207 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 * vim: set ts=4 :
 | 
						|
 * =============================================================================
 | 
						|
 * SourceMod Counter-Strike:Source Extension
 | 
						|
 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
						|
 * =============================================================================
 | 
						|
 *
 | 
						|
 * This program is free software; you can redistribute it and/or modify it under
 | 
						|
 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
						|
 * Free Software Foundation.
 | 
						|
 * 
 | 
						|
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
						|
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
						|
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
						|
 * details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU General Public License along with
 | 
						|
 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 *
 | 
						|
 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
						|
 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
						|
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
						|
 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
						|
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
						|
 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
						|
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
						|
 * or <http://www.sourcemod.net/license.php>.
 | 
						|
 *
 | 
						|
 * Version: $Id$
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _INCLUDE_CSTRIKE_UTIL_H_
 | 
						|
#define _INCLUDE_CSTRIKE_UTIL_H_
 | 
						|
 //THIS IS THE INCLUDE ENUM DO NOT CHANGE ONLY UPDATE THE INCLUDE
 | 
						|
 //This is used to match to old weaponid's to their correct enum value
 | 
						|
 //Anything after heavy assault suit will pass the itemdef as they will be the id set in include
 | 
						|
enum SMCSWeapon
 | 
						|
{
 | 
						|
	SMCSWeapon_NONE = 0,
 | 
						|
	SMCSWeapon_P228,
 | 
						|
	SMCSWeapon_GLOCK,
 | 
						|
	SMCSWeapon_SCOUT,
 | 
						|
	SMCSWeapon_HEGRENADE,
 | 
						|
	SMCSWeapon_XM1014,
 | 
						|
	SMCSWeapon_C4,
 | 
						|
	SMCSWeapon_MAC10,
 | 
						|
	SMCSWeapon_AUG,
 | 
						|
	SMCSWeapon_SMOKEGRENADE,
 | 
						|
	SMCSWeapon_ELITE,
 | 
						|
	SMCSWeapon_FIVESEVEN,
 | 
						|
	SMCSWeapon_UMP45,
 | 
						|
	SMCSWeapon_SG550,
 | 
						|
	SMCSWeapon_GALIL,
 | 
						|
	SMCSWeapon_FAMAS,
 | 
						|
	SMCSWeapon_USP,
 | 
						|
	SMCSWeapon_AWP,
 | 
						|
	SMCSWeapon_MP5NAVY,
 | 
						|
	SMCSWeapon_M249,
 | 
						|
	SMCSWeapon_M3,
 | 
						|
	SMCSWeapon_M4A1,
 | 
						|
	SMCSWeapon_TMP,
 | 
						|
	SMCSWeapon_G3SG1,
 | 
						|
	SMCSWeapon_FLASHBANG,
 | 
						|
	SMCSWeapon_DEAGLE,
 | 
						|
	SMCSWeapon_SG552,
 | 
						|
	SMCSWeapon_AK47,
 | 
						|
	SMCSWeapon_KNIFE,
 | 
						|
	SMCSWeapon_P90,
 | 
						|
	SMCSWeapon_SHIELD,
 | 
						|
	SMCSWeapon_KEVLAR,
 | 
						|
	SMCSWeapon_ASSAULTSUIT,
 | 
						|
	SMCSWeapon_NIGHTVISION,
 | 
						|
	SMCSWeapon_GALILAR,
 | 
						|
	SMCSWeapon_BIZON,
 | 
						|
	SMCSWeapon_MAG7,
 | 
						|
	SMCSWeapon_NEGEV,
 | 
						|
	SMCSWeapon_SAWEDOFF,
 | 
						|
	SMCSWeapon_TEC9,
 | 
						|
	SMCSWeapon_TASER,
 | 
						|
	SMCSWeapon_HKP2000,
 | 
						|
	SMCSWeapon_MP7,
 | 
						|
	SMCSWeapon_MP9,
 | 
						|
	SMCSWeapon_NOVA,
 | 
						|
	SMCSWeapon_P250,
 | 
						|
	SMCSWeapon_SCAR17,
 | 
						|
	SMCSWeapon_SCAR20,
 | 
						|
	SMCSWeapon_SG556,
 | 
						|
	SMCSWeapon_SSG08,
 | 
						|
	SMCSWeapon_KNIFE_GG,
 | 
						|
	SMCSWeapon_MOLOTOV,
 | 
						|
	SMCSWeapon_DECOY,
 | 
						|
	SMCSWeapon_INCGRENADE,
 | 
						|
	SMCSWeapon_DEFUSER,
 | 
						|
	SMCSWeapon_HEAVYASSAULTSUIT,
 | 
						|
	SMCSWeapon_MAXWEAPONIDS, //This only exists here... the include has more. This is for easy array construction
 | 
						|
};
 | 
						|
 | 
						|
#if SOURCE_ENGINE == SE_CSGO
 | 
						|
//These are the ItemDefintion indexs they are used as a reference to create GetWeaponIdFromDefIdx
 | 
						|
/*
 | 
						|
enum CSGOItemDefs
 | 
						|
{
 | 
						|
	CSGOItemDef_NONE = 0,
 | 
						|
	CSGOItemDef_DEAGLE,
 | 
						|
	CSGOItemDef_ELITE,
 | 
						|
	CSGOItemDef_FIVESEVEN,
 | 
						|
	CSGOItemDef_GLOCK,
 | 
						|
	CSGOItemDef_P228,
 | 
						|
	CSGOItemDef_USP,
 | 
						|
	CSGOItemDef_AK47,
 | 
						|
	CSGOItemDef_AUG,
 | 
						|
	CSGOItemDef_AWP,
 | 
						|
	CSGOItemDef_FAMAS,
 | 
						|
	CSGOItemDef_G3SG1,
 | 
						|
	CSGOItemDef_GALIL,
 | 
						|
	CSGOItemDef_GALILAR,
 | 
						|
	CSGOItemDef_M249,
 | 
						|
	CSGOItemDef_M3,
 | 
						|
	CSGOItemDef_M4A1,
 | 
						|
	CSGOItemDef_MAC10,
 | 
						|
	CSGOItemDef_MP5NAVY,
 | 
						|
	CSGOItemDef_P90,
 | 
						|
	CSGOItemDef_SCOUT,
 | 
						|
	CSGOItemDef_SG550,
 | 
						|
	CSGOItemDef_SG552,
 | 
						|
	CSGOItemDef_TMP,
 | 
						|
	CSGOItemDef_UMP45,
 | 
						|
	CSGOItemDef_XM1014,
 | 
						|
	CSGOItemDef_BIZON,
 | 
						|
	CSGOItemDef_MAG7,
 | 
						|
	CSGOItemDef_NEGEV,
 | 
						|
	CSGOItemDef_SAWEDOFF,
 | 
						|
	CSGOItemDef_TEC9,
 | 
						|
	CSGOItemDef_TASER,
 | 
						|
	CSGOItemDef_HKP2000,
 | 
						|
	CSGOItemDef_MP7,
 | 
						|
	CSGOItemDef_MP9,
 | 
						|
	CSGOItemDef_NOVA,
 | 
						|
	CSGOItemDef_P250,
 | 
						|
	CSGOItemDef_SCAR17,
 | 
						|
	CSGOItemDef_SCAR20,
 | 
						|
	CSGOItemDef_SG556,
 | 
						|
	CSGOItemDef_SSG08,
 | 
						|
	CSGOItemDef_KNIFE_GG,
 | 
						|
	CSGOItemDef_KNIFE,
 | 
						|
	CSGOItemDef_FLASHBANG,
 | 
						|
	CSGOItemDef_HEGRENADE,
 | 
						|
	CSGOItemDef_SMOKEGRENADE,
 | 
						|
	CSGOItemDef_MOLOTOV,
 | 
						|
	CSGOItemDef_DECOY,
 | 
						|
	CSGOItemDef_INCGRENADE,
 | 
						|
	CSGOItemDef_C4,
 | 
						|
	CSGOItemDef_KEVLAR,
 | 
						|
	CSGOItemDef_ASSAULTSUIT,
 | 
						|
	CSGOItemDef_HEAVYASSAULTSUIT,
 | 
						|
	CSGOItemDef_UNUSED,
 | 
						|
	CSGOItemDef_NVG,
 | 
						|
	CSGOItemDef_DEFUSER,
 | 
						|
	CSGOItemDef_MAXDEFS,
 | 
						|
};
 | 
						|
*/
 | 
						|
struct ItemDefHashValue;
 | 
						|
class CEconItemView;
 | 
						|
class CCSWeaponData;
 | 
						|
class CEconItemSchema;
 | 
						|
class CEconItemDefinition
 | 
						|
{
 | 
						|
public:
 | 
						|
	void **m_pVtable;
 | 
						|
	KeyValues *m_pKv;
 | 
						|
	uint16_t m_iDefinitionIndex;
 | 
						|
	int GetDefaultLoadoutSlot()
 | 
						|
	{
 | 
						|
		static int iLoadoutSlotOffset = -1;
 | 
						|
 | 
						|
		if (iLoadoutSlotOffset == -1)
 | 
						|
		{
 | 
						|
			if (!g_pGameConf->GetOffset("LoadoutSlotOffset", &iLoadoutSlotOffset) || iLoadoutSlotOffset == -1)
 | 
						|
			{
 | 
						|
				iLoadoutSlotOffset = -1;
 | 
						|
				return -1;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return *(int *)((intptr_t)this + iLoadoutSlotOffset);
 | 
						|
	}
 | 
						|
};
 | 
						|
 | 
						|
CEconItemView *GetEconItemView(CBaseEntity *pEntity, int iSlot);
 | 
						|
CCSWeaponData *GetCCSWeaponData(CEconItemView *view);
 | 
						|
CEconItemSchema *GetItemSchema();
 | 
						|
CEconItemDefinition *GetItemDefintionByName(const char *classname);
 | 
						|
void CreateHashMaps();
 | 
						|
void ClearHashMaps();
 | 
						|
SMCSWeapon GetWeaponIdFromDefIdx(uint16_t iDefIdx);
 | 
						|
ItemDefHashValue *GetHashValueFromWeapon(const char *szWeapon);
 | 
						|
#else //CS:S ONLY STUFF
 | 
						|
void *GetWeaponInfo(int weaponID);
 | 
						|
#endif
 | 
						|
 | 
						|
const char *GetWeaponNameFromClassname(const char *weapon);
 | 
						|
const char *GetTranslatedWeaponAlias(const char *weapon);
 | 
						|
int AliasToWeaponID(const char *weapon);
 | 
						|
const char *WeaponIDToAlias(int weaponID);
 | 
						|
bool IsValidWeaponID(int weaponId);
 | 
						|
#endif
 |