@@ -59,6 +59,7 @@ IMPLEMENT_SERVERCLASS_ST( CASW_Weapon, DT_ASW_Weapon )
5959 SendPropBool( SENDINFO( m_bIsTemporaryPickup ) ),
6060 SendPropEHandle( SENDINFO( m_hOriginalOwnerMR ) ),
6161 SendPropInt( SENDINFO( m_iInventoryEquipSlot ), 2, SPROP_UNSIGNED ),
62+ SendPropInt( SENDINFO( m_iClassRequirementOverride ) ),
6263END_SEND_TABLE()
6364
6465// ---------------------------------------------------------
@@ -72,13 +73,15 @@ BEGIN_DATADESC( CASW_Weapon )
7273 DEFINE_FIELD( m_fFastReloadStart, FIELD_TIME ),
7374 DEFINE_FIELD( m_fFastReloadEnd, FIELD_TIME ),
7475 DEFINE_KEYFIELD( m_bIsTemporaryPickup, FIELD_BOOLEAN, " IsTemporaryPickup" ),
76+ DEFINE_KEYFIELD( m_iClassRequirementOverride, FIELD_INTEGER, " ClassRequirementOverride" ),
7577 DEFINE_INPUTFUNC( FIELD_EHANDLE, " ForcePickUp" , InputForcePickUp ),
7678 DEFINE_INPUTFUNC( FIELD_VOID, " ForceDrop" , InputForceDrop ),
7779 DEFINE_OUTPUT( m_OnPickedUp, " OnPickedUp" ),
7880 DEFINE_OUTPUT( m_OnDropped, " OnDropped" ),
7981END_DATADESC()
8082
8183BEGIN_ENT_SCRIPTDESC( CASW_Weapon, CBaseCombatWeapon, " Alien Swarm weapon" )
84+ DEFINE_SCRIPTFUNC( SetMarineClassRequirement, " -1 = default behaviour, 0 = officer, 1 = SW, 2 = medic, 3 = tech" )
8285END_SCRIPTDESC()
8386
8487ConVar asw_weapon_safety_hull(" asw_weapon_safety_hull" , " 0" , FCVAR_CHEAT, " Size of hull used to check for AI shots going too near a friendly" );
@@ -109,6 +112,7 @@ CASW_Weapon::CASW_Weapon()
109112 m_bIsTemporaryPickup = false ;
110113 m_hOriginalOwnerMR = NULL ;
111114 m_iInventoryEquipSlot = 0 ;
115+ m_iClassRequirementOverride = -1 ;
112116}
113117
114118
@@ -452,3 +456,8 @@ void CASW_Weapon::InputForceDrop( inputdata_t &data )
452456
453457 pMarine->DropWeapon ( this , false );
454458}
459+
460+ void CASW_Weapon::SetMarineClassRequirement ( int nClass )
461+ {
462+ m_iClassRequirementOverride = nClass;
463+ }
0 commit comments