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,6 +1849,7 @@ void CHFGrunt :: HandleAnimEvent( MonsterEvent_t *pEvent )
{
case HGRUNT_ALLY_AE_DROP_GUN:
{
if (GetBodygroup(FG_GUN_GROUP) != FG_GUN_NONE)
DropMyItems(FALSE);
SetUse( NULL );
}
@ -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,6 +155,8 @@ void CMassn::HandleAnimEvent(MonsterEvent_t *pEvent)
Vector vecGunPos;
Vector vecGunAngles;
if(GetBodygroup(GUN_GROUP) != GUN_NONE)
{
GetAttachment(0, vecGunPos, vecGunAngles);
// switch to body group with no gun.
@ -174,7 +176,7 @@ void CMassn::HandleAnimEvent(MonsterEvent_t *pEvent)
{
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,6 +1010,7 @@ 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 ) )
{
@ -1020,6 +1021,8 @@ void CVoltigore::StartTask(Task_t *pTask)
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;
@ -787,6 +787,8 @@ void CHGrunt::HandleAnimEvent( MonsterEvent_t *pEvent )
switch( pEvent->event )
{
case HGRUNT_AE_DROP_GUN:
{
if ( GetBodygroup( GUN_GROUP ) != GUN_NONE )
{
Vector vecGunPos;
Vector vecGunAngles;
@ -811,6 +813,7 @@ void CHGrunt::HandleAnimEvent( MonsterEvent_t *pEvent )
DropItem( "ammo_ARgrenades", BodyTarget( pev->origin ), vecGunAngles );
}
}
}
break;
case HGRUNT_AE_RELOAD:
EMIT_SOUND( ENT( pev ), CHAN_WEAPON, "hgrunt/gr_reload1.wav", 1, ATTN_NORM );

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
@ -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,