sourcemod/extensions/cstrike/util_cstrike.h
2017-10-27 18:55:02 -04:00

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