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
 |