-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathasw_pickup_shared.cpp
More file actions
61 lines (51 loc) · 1.67 KB
/
asw_pickup_shared.cpp
File metadata and controls
61 lines (51 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "cbase.h"
#ifdef CLIENT_DLL
#include "c_asw_player.h"
#include "c_asw_weapon.h"
#include "c_asw_marine.h"
#include "c_asw_pickup.h"
#include "c_asw_pickup_weapon.h"
#include "c_asw_ammo.h"
#define CASW_Marine C_ASW_Marine
#define CASW_Pickup_Weapon C_ASW_Pickup_Weapon
#define CASW_Weapon C_ASW_Weapon
#define CASW_Ammo C_ASW_Ammo
#else
#include "asw_marine.h"
#include "asw_player.h"
#include "asw_weapon.h"
#include "asw_pickup.h"
#include "asw_pickup_weapon.h"
#include "asw_ammo.h"
#endif
#include "asw_gamerules.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
bool CASW_Ammo::AllowedToPickup( CASW_Inhabitable_NPC *pNPC )
{
CASW_Marine *pMarine = CASW_Marine::AsMarine( pNPC );
if ( !pMarine )
return false;
if ( !ASWGameRules()->MarineCanPickupAmmo( pMarine, this ) )
{
if ( !ASWGameRules()->MarineHasRoomInAmmoBag( pMarine, m_iAmmoIndex ) )
return false;
}
return true;
}
bool CASW_Pickup_Weapon::AllowedToPickup( CASW_Inhabitable_NPC *pNPC )
{
CASW_Marine *pMarine = CASW_Marine::AsMarine( pNPC );
if ( !pMarine || !ASWGameRules() || !pMarine->GetMarineResource() )
return false;
// check if we're swapping for an existing item
int i = pMarine->GetWeaponPositionForPickup( GetWeaponClass(), m_bIsTemporaryPickup );
CASW_Weapon *pWeapon = pMarine->GetASWWeapon( i );
const char *szSwappingClass = pWeapon ? pWeapon->GetClassname() : "";
// first check if the gamerules will allow it
bool bAllowed = ASWGameRules()->MarineCanPickup( pMarine->GetMarineResource(), GetWeaponClass(), szSwappingClass, m_iClassRequirementOverride );
#ifdef CLIENT_DLL
m_bSwappingWeapon = ( pWeapon != NULL );
#endif
return bAllowed;
}