You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.2 KiB
92 lines
3.2 KiB
#include "cbase.h" |
|
#include "asw_ammo_drop_shared.h" |
|
#include "ammodef.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
bool CASW_Ammo_Drop_Shared::ms_bAmmoCostInitiated = false; |
|
int CASW_Ammo_Drop_Shared::ms_iAmmoType[ASW_AMMO_DROP_TYPE_COUNT]; |
|
int CASW_Ammo_Drop_Shared::ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_COUNT]; |
|
int CASW_Ammo_Drop_Shared::ms_iAmmoClips[ASW_AMMO_DROP_TYPE_COUNT]; |
|
|
|
#define AMMO_COST_INVALID 9999 |
|
|
|
void CASW_Ammo_Drop_Shared::InitAmmoCosts() |
|
{ |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_RIFLE] = GetAmmoDef()->Index("ASW_R"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_AUTOGUN] = GetAmmoDef()->Index("ASW_AG"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_SHOTGUN] = GetAmmoDef()->Index("ASW_SG"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_ASSAULT_SHOTGUN] = GetAmmoDef()->Index("ASW_ASG"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_FLAMER] = GetAmmoDef()->Index("ASW_F"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_RAILGUN] = GetAmmoDef()->Index("ASW_RG"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_PDW] = GetAmmoDef()->Index("ASW_PDW"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_PISTOL] = GetAmmoDef()->Index("ASW_P"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_MINING_LASER] = GetAmmoDef()->Index("ASW_ML"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_TESLA_CANNON] = GetAmmoDef()->Index("ASW_TG"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_GRENADE_LAUNCHER] = GetAmmoDef()->Index("ASW_GL"); |
|
ms_iAmmoType[ASW_AMMO_DROP_TYPE_SNIPER] = GetAmmoDef()->Index("ASW_SNIPER"); |
|
|
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_RIFLE] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_AUTOGUN] = 100; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_SHOTGUN] = 10; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_ASSAULT_SHOTGUN] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_FLAMER] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_RAILGUN] = 10; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_PDW] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_PISTOL] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_MINING_LASER] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_TESLA_CANNON] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_GRENADE_LAUNCHER] = 20; |
|
ms_iAmmoUnitCost[ASW_AMMO_DROP_TYPE_SNIPER] = 20; |
|
|
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_RIFLE] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_AUTOGUN] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_SHOTGUN] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_ASSAULT_SHOTGUN] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_FLAMER] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_RAILGUN] = 5; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_PDW] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_PISTOL] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_MINING_LASER] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_TESLA_CANNON] = 1; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_GRENADE_LAUNCHER] = 3; |
|
ms_iAmmoClips[ASW_AMMO_DROP_TYPE_SNIPER] = 1; |
|
|
|
ms_bAmmoCostInitiated = true; |
|
} |
|
|
|
int CASW_Ammo_Drop_Shared::GetAmmoUnitCost( int iAmmoType ) |
|
{ |
|
if ( !ms_bAmmoCostInitiated ) |
|
{ |
|
InitAmmoCosts(); |
|
} |
|
|
|
for ( int i = 0; i < ASW_AMMO_DROP_TYPE_COUNT; i++ ) |
|
{ |
|
if ( iAmmoType == ms_iAmmoType[i] ) |
|
{ |
|
return ms_iAmmoUnitCost[i]; |
|
} |
|
} |
|
|
|
return AMMO_COST_INVALID; |
|
} |
|
|
|
int CASW_Ammo_Drop_Shared::GetAmmoClipsToGive( int iAmmoType ) |
|
{ |
|
if ( !ms_bAmmoCostInitiated ) |
|
{ |
|
InitAmmoCosts(); |
|
} |
|
|
|
for ( int i = 0; i < ASW_AMMO_DROP_TYPE_COUNT; i++ ) |
|
{ |
|
if ( iAmmoType == ms_iAmmoType[i] ) |
|
{ |
|
return ms_iAmmoClips[i]; |
|
} |
|
} |
|
return 1; |
|
} |