Team Fortress 2 Source Code as on 22/4/2020
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.
 
 
 
 
 
 

147 lines
2.9 KiB

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#include "cbase.h"
#include "cs_gamerules.h"
#include "cs_blackmarket.h"
#include "weapon_csbase.h"
#include "filesystem.h"
#include <KeyValues.h>
#include "cs_gamestats.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
extern int g_iRoundCount;
#ifndef CLIENT_DLL
inline void CBlackMarketElement::NetworkStateChanged()
{
}
inline void CBlackMarketElement::NetworkStateChanged( void *pVar )
{
}
blackmarket_items_t blackmarket_items[] =
{
{ "kevlar", KEVLAR_PRICE },
{ "assaultsuit", ASSAULTSUIT_PRICE },
{ "nightvision", NVG_PRICE },
};
CUtlVector<CBlackMarketElement> g_BlackMarket_WeaponsBought;
void TrackAutoBuyPurchases( const char *pWeaponName, CCSPlayer *pBuyer )
{
if ( pBuyer->IsInAutoBuy() == false )
return;
if ( pBuyer->IsInAutoBuy() == true )
{
if ( Q_stristr( pWeaponName, "m4a1" ) )
{
g_iAutoBuyM4A1Purchases++;
}
else if ( Q_stristr( pWeaponName, "ak47" ) )
{
g_iAutoBuyAK47Purchases++;
}
else if ( Q_stristr( pWeaponName, "famas" ) )
{
g_iAutoBuyFamasPurchases++;
}
else if ( Q_stristr( pWeaponName, "galil" ) )
{
g_iAutoBuyGalilPurchases++;
}
else if ( Q_stristr( pWeaponName, "assault" ) )
{
g_iAutoBuyVestHelmPurchases++;
}
else if ( Q_stristr( pWeaponName, "kevlar" ) )
{
g_iAutoBuyVestPurchases++;
}
}
}
void BlackMarketAddWeapon( const char *pWeaponName, CCSPlayer *pBuyer )
{
//Ignore bot purchases.
if ( pBuyer && pBuyer->IsBot() )
return;
CSWeaponID iWeaponID = AliasToWeaponID( pWeaponName );
TrackAutoBuyPurchases( pWeaponName, pBuyer );
if ( g_BlackMarket_WeaponsBought.Count() > 0 )
{
for ( int i = 0; i < g_BlackMarket_WeaponsBought.Count(); i++ )
{
if ( g_BlackMarket_WeaponsBought[i].m_iWeaponID == iWeaponID )
{
g_BlackMarket_WeaponsBought[i].m_iTimesBought++;
g_iWeaponPurchases[g_BlackMarket_WeaponsBought[i].m_iWeaponID]++;
return;
}
}
}
CBlackMarketElement newweapon;
newweapon.m_iWeaponID = iWeaponID;
newweapon.m_iTimesBought = 1;
newweapon.m_iPrice = 0;
g_iWeaponPurchases[newweapon.m_iWeaponID] = 1;
g_BlackMarket_WeaponsBought.AddToTail( newweapon );
}
int GetPistolCount( void )
{
int iNumPistol = 0;
for ( int j = 1; j < WEAPON_MAX; j++ )
{
CCSWeaponInfo *pWeaponInfo = GetWeaponInfo( (CSWeaponID)j );
if ( pWeaponInfo )
{
if ( pWeaponInfo->m_WeaponType == WEAPONTYPE_PISTOL )
{
iNumPistol++;
}
}
}
return iNumPistol;
}
int GetRifleCount( void )
{
int iNumRifle = 0;
for ( int j = 1; j < WEAPON_MAX; j++ )
{
CCSWeaponInfo *pWeaponInfo = GetWeaponInfo( (CSWeaponID)j );
if ( pWeaponInfo )
{
if ( pWeaponInfo->m_WeaponType != WEAPONTYPE_PISTOL )
{
iNumRifle++;
}
}
}
return iNumRifle + ARRAYSIZE( blackmarket_items );
}
#endif