Fix male assassins and opfor grunts dropping weapons again (#372)

This commit is contained in:
Roman Chistokhodov 2023-04-29 17:14:53 +03:00 committed by GitHub
parent fd613ebed7
commit 341e2767ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 20 deletions

View File

@ -1846,7 +1846,8 @@ void CHFGrunt :: HandleAnimEvent( MonsterEvent_t *pEvent )
{ {
case HGRUNT_ALLY_AE_DROP_GUN: case HGRUNT_ALLY_AE_DROP_GUN:
{ {
DropMyItems(FALSE); if (GetBodygroup(FG_GUN_GROUP) != FG_GUN_NONE)
DropMyItems(FALSE);
SetUse( NULL ); SetUse( NULL );
} }
break; break;
@ -3240,7 +3241,7 @@ void CTorch::HandleAnimEvent(MonsterEvent_t *pEvent)
KillGas (); KillGas ();
break; break;
case HGRUNT_ALLY_AE_DROP_GUN: 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); DropMyItems(FALSE);
} }
@ -3771,7 +3772,7 @@ void CMedic::HandleAnimEvent(MonsterEvent_t *pEvent)
break; break;
case HGRUNT_ALLY_AE_DROP_GUN: 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); DropMyItems(FALSE);
} }

View File

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