Merge branch 'opfor' into opforfixed

This commit is contained in:
Andrey Akhmichin 2023-04-29 19:21:01 +05:00
commit 906fb522ff
No known key found for this signature in database
GPG Key ID: BE329F7886439BC8
9 changed files with 69 additions and 57 deletions

View File

@ -37,7 +37,7 @@ def build(bld):
defines = ['CLIENT_DLL']
includes = ['.',
'../dlls',
'../dlls/gearbox'
'../dlls/gearbox',
'../common',
'../engine',
'../pm_shared',

View File

@ -1849,7 +1849,8 @@ void CHFGrunt :: HandleAnimEvent( MonsterEvent_t *pEvent )
{
case HGRUNT_ALLY_AE_DROP_GUN:
{
DropMyItems(FALSE);
if (GetBodygroup(FG_GUN_GROUP) != FG_GUN_NONE)
DropMyItems(FALSE);
SetUse( NULL );
}
break;
@ -1949,7 +1950,7 @@ void CHFGrunt :: HandleAnimEvent( MonsterEvent_t *pEvent )
SENTENCEG_PlayRndSz(ENT(pev), SentenceByNumber(FGRUNT_SENT_ALERT), FGRUNT_SENTENCE_VOLUME, ATTN_NORM, 0, m_voicePitch);
JustSpoke();
}
break;
}
default:
@ -3318,7 +3319,7 @@ void CTorch::HandleAnimEvent(MonsterEvent_t *pEvent)
KillGas ();
break;
case HGRUNT_ALLY_AE_DROP_GUN:
if ( FBitSet( pev->weapons, TORCH_EAGLE ) )
if ( FBitSet( pev->weapons, TORCH_EAGLE ) && pev->body != TORCH_GUN_NONE )
{
DropMyItems(FALSE);
}
@ -3849,7 +3850,7 @@ void CMedic::HandleAnimEvent(MonsterEvent_t *pEvent)
break;
case HGRUNT_ALLY_AE_DROP_GUN:
if ( FBitSet( pev->weapons, MEDIC_EAGLE | MEDIC_HANDGUN ) )
if ( FBitSet( pev->weapons, MEDIC_EAGLE | MEDIC_HANDGUN ) && GetBodygroup(MEDIC_GUN_GROUP) != MEDIC_GUN_NONE )
{
DropMyItems(FALSE);
}

View File

@ -155,26 +155,28 @@ void CMassn::HandleAnimEvent(MonsterEvent_t *pEvent)
Vector vecGunPos;
Vector vecGunAngles;
GetAttachment(0, vecGunPos, vecGunAngles);
// switch to body group with no gun.
SetBodygroup(GUN_GROUP, GUN_NONE);
// now spawn a gun.
if (FBitSet(pev->weapons, MASSN_SNIPERRIFLE))
if(GetBodygroup(GUN_GROUP) != GUN_NONE)
{
DropItem("weapon_sniperrifle", vecGunPos, vecGunAngles);
}
else
{
DropItem("weapon_9mmAR", vecGunPos, vecGunAngles);
}
GetAttachment(0, vecGunPos, vecGunAngles);
if (FBitSet(pev->weapons, MASSN_GRENADELAUNCHER))
{
DropItem("ammo_ARgrenades", BodyTarget(pev->origin), vecGunAngles);
}
// switch to body group with no gun.
SetBodygroup(GUN_GROUP, GUN_NONE);
// now spawn a gun.
if (FBitSet(pev->weapons, MASSN_SNIPERRIFLE))
{
DropItem("weapon_sniperrifle", vecGunPos, vecGunAngles);
}
else
{
DropItem("weapon_9mmAR", vecGunPos, vecGunAngles);
}
if (FBitSet(pev->weapons, MASSN_GRENADELAUNCHER))
{
DropItem("ammo_ARgrenades", BodyTarget(pev->origin), vecGunAngles);
}
}
}
break;

View File

@ -390,7 +390,7 @@ void CStrooper::HandleAnimEvent(MonsterEvent_t *pEvent)
SENTENCEG_PlayRndSz(ENT(pev), "ST_ALERT", STROOPER_SENTENCE_VOLUME, STROOPER_ATTN, 0, m_voicePitch);
JustSpoke();
}
break;
}
default:

View File

@ -1010,16 +1010,19 @@ void CVoltigore::StartTask(Task_t *pTask)
}
break;
case TASK_VOLTIGORE_GET_PATH_TO_ENEMY_CORPSE:
UTIL_MakeVectors( pev->angles );
if( BuildRoute( m_vecEnemyLKP - gpGlobals->v_forward * 50, bits_MF_TO_LOCATION, NULL ) )
{
TaskComplete();
}
else
{
ALERT( at_aiconsole, "VoltigoreGetPathToEnemyCorpse failed!!\n" );
TaskFail();
UTIL_MakeVectors( pev->angles );
if( BuildRoute( m_vecEnemyLKP - gpGlobals->v_forward * 50, bits_MF_TO_LOCATION, NULL ) )
{
TaskComplete();
}
else
{
ALERT( at_aiconsole, "VoltigoreGetPathToEnemyCorpse failed!!\n" );
TaskFail();
}
}
break;
default:
CBaseMonster::StartTask(pTask);
break;

View File

@ -212,7 +212,7 @@ void CHGrunt::GibMonster( void )
Vector vecGunPos;
Vector vecGunAngles;
if( GetBodygroup( 2 ) != 2 )
if( GetBodygroup( GUN_GROUP ) != GUN_NONE )
{
// throw a gun if the grunt has one
GetAttachment( 0, vecGunPos, vecGunAngles );
@ -543,7 +543,7 @@ void CHGrunt::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir
if( ptr->iHitgroup == 11 )
{
// make sure we're wearing one
if( GetBodygroup( 1 ) == HEAD_GRUNT && ( bitsDamageType & (DMG_BULLET | DMG_SLASH | DMG_BLAST | DMG_CLUB ) ) )
if( GetBodygroup( HEAD_GROUP ) == HEAD_GRUNT && ( bitsDamageType & (DMG_BULLET | DMG_SLASH | DMG_BLAST | DMG_CLUB ) ) )
{
// absorb damage
flDamage -= 20;
@ -788,27 +788,30 @@ void CHGrunt::HandleAnimEvent( MonsterEvent_t *pEvent )
{
case HGRUNT_AE_DROP_GUN:
{
Vector vecGunPos;
Vector vecGunAngles;
GetAttachment( 0, vecGunPos, vecGunAngles );
// switch to body group with no gun.
SetBodygroup( GUN_GROUP, GUN_NONE );
// now spawn a gun.
if( FBitSet( pev->weapons, HGRUNT_SHOTGUN ) )
if ( GetBodygroup( GUN_GROUP ) != GUN_NONE )
{
DropItem( "weapon_shotgun", vecGunPos, vecGunAngles );
}
else
{
DropItem( "weapon_9mmAR", vecGunPos, vecGunAngles );
}
Vector vecGunPos;
Vector vecGunAngles;
if( FBitSet( pev->weapons, HGRUNT_GRENADELAUNCHER ) )
{
DropItem( "ammo_ARgrenades", BodyTarget( pev->origin ), vecGunAngles );
GetAttachment( 0, vecGunPos, vecGunAngles );
// switch to body group with no gun.
SetBodygroup( GUN_GROUP, GUN_NONE );
// now spawn a gun.
if( FBitSet( pev->weapons, HGRUNT_SHOTGUN ) )
{
DropItem( "weapon_shotgun", vecGunPos, vecGunAngles );
}
else
{
DropItem( "weapon_9mmAR", vecGunPos, vecGunAngles );
}
if( FBitSet( pev->weapons, HGRUNT_GRENADELAUNCHER ) )
{
DropItem( "ammo_ARgrenades", BodyTarget( pev->origin ), vecGunAngles );
}
}
}
break;

View File

@ -2330,7 +2330,7 @@ void CSpriteTrain::Activate( void )
if( FStringNull( pev->targetname ) )
{
m_nexting = TRUE;
m_nextTime = pev->ltime + 0.1;
pev->nextthink = pev->ltime + 0.1;
}
else
pev->spawnflags |= SF_TRAIN_WAIT_RETRIGGER;
@ -2441,12 +2441,12 @@ void CSpriteTrain::Wait()
STOP_SOUND( edict(), CHAN_STATIC, STRING( pev->noiseMovement ) );
if( pev->noiseStopMoving )
EMIT_SOUND( ENT( pev ), CHAN_VOICE, STRING( pev->noiseStopMoving ), m_volume, ATTN_NORM );
pev->nextthink = 0;
return;
}
if( m_flWait != 0 )
{
pev->nextthink = pev->ltime + m_flWait;
if( pev->noiseMovement )
STOP_SOUND( edict(), CHAN_STATIC, STRING( pev->noiseMovement ) );
if( pev->noiseStopMoving )
@ -2474,7 +2474,6 @@ void CSpriteTrain::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE
// Pop back to last target if it's available
if( pev->enemy )
pev->target = pev->enemy->v.targetname;
pev->nextthink = 0;
pev->velocity = g_vecZero;
if( pev->noiseStopMoving )
EMIT_SOUND( ENT( pev ), CHAN_VOICE, STRING( pev->noiseStopMoving ), m_volume, ATTN_NORM );

View File

@ -20,7 +20,7 @@ def configure(conf):
conf.fatal("Could not find hl.def")
def build(bld):
excluded_files = ['mpstubb.cpp', 'stats.cpp', 'prop.cpp', 'Wxdebug.cpp', 'gearbox/gearbox_client.cpp']
excluded_files = ['mpstubb.cpp', 'stats.cpp', 'Wxdebug.cpp', 'gearbox/gearbox_client.cpp']
source = bld.path.ant_glob('**/*.cpp', excl=excluded_files)
source += bld.path.parent.ant_glob('pm_shared/*.c')

View File

@ -10,6 +10,7 @@ import re
VERSION = '2.4'
APPNAME = 'hlsdk-portable'
top = '.'
default_prefix = '/'
Context.Context.line_just = 60 # should fit for everything on 80x26
@ -21,7 +22,7 @@ def get_taskgen_count(self):
def options(opt):
opt.load('reconfigure compiler_optimizations xcompile compiler_cxx compiler_c clang_compilation_database strip_on_install msdev msvs msvc subproject')
grp = opt.add_option_group('Common options')
grp.add_option('-8', '--64bits', action = 'store_true', dest = 'ALLOW64', default = False,
@ -238,6 +239,9 @@ def configure(conf):
conf.add_subproject('cl_dll')
def build(bld):
if bld.is_install and not bld.options.destdir:
bld.fatal('Set the install destination directory using --destdir option')
# don't clean QtCreator files and reconfigure saved options
bld.clean_files = bld.bldnode.ant_glob('**',
excl='*.user configuration.py .lock* *conf_check_*/** config.log %s/*' % Build.CACHE_DIR,