Cstrike: Move all hardcoded datas to its own gamedata files
This commit is contained in:
@ -16,153 +16,6 @@
|
||||
|
||||
#include "amxxmodule.h"
|
||||
|
||||
#if defined(__linux__) || defined (__APPLE__)
|
||||
#define EXTRAOFFSET 5 // offsets 5 higher in Linux builds
|
||||
#define EXTRAOFFSET_WEAPONS 4 // weapon offsets are obviously only 4 steps higher on Linux!
|
||||
#define ACTUAL_EXTRA_OFFSET 20 // actual, byte-addressable offset
|
||||
#else
|
||||
#define EXTRAOFFSET 0 // no change in Windows builds
|
||||
#define EXTRAOFFSET_WEAPONS 0
|
||||
#define ACTUAL_EXTRA_OFFSET 0
|
||||
#endif
|
||||
|
||||
/*
|
||||
Offset history:
|
||||
041029:
|
||||
Confirmed (pretty much) ALL offsets for 32 bit Windows, 32 bit Linux and amd64 (yes that's all of them).
|
||||
Found out that weapon offsets are only +4 higher on Linux.
|
||||
Also backpack ammo offsets were all obviously 5 steps too high since unknown time...
|
||||
|
||||
*/
|
||||
// "player" entities
|
||||
#if !defined __amd64__
|
||||
// 32 bit offsets here
|
||||
#define OFFSET_ARMORTYPE 112 + EXTRAOFFSET
|
||||
#define OFFSET_TEAM 114 + EXTRAOFFSET
|
||||
#define OFFSET_CSMONEY 115 + EXTRAOFFSET
|
||||
#define OFFSET_PRIMARYWEAPON 116 + EXTRAOFFSET
|
||||
#define OFFSET_LASTACTIVITY 124 + EXTRAOFFSET
|
||||
#define OFFSET_INTERNALMODEL 126 + EXTRAOFFSET
|
||||
#define OFFSET_NVGOGGLES 129 + EXTRAOFFSET
|
||||
#define OFFSET_DEFUSE_PLANT 193 + EXTRAOFFSET
|
||||
#define OFFSET_MENU 205 + EXTRAOFFSET
|
||||
#define OFFSET_VIP 209 + EXTRAOFFSET
|
||||
#define OFFSET_TK 216 + EXTRAOFFSET // 040926
|
||||
#define OFFSET_HOSTAGEKILLS 217 + EXTRAOFFSET
|
||||
#define OFFSET_MAPZONE 235 + EXTRAOFFSET
|
||||
#define OFFSET_ISDRIVING 350 + EXTRAOFFSET // 040926
|
||||
#define OFFSET_STATIONARY 362 + EXTRAOFFSET // 040927 (363 works also!)
|
||||
#define OFFSET_ZOOMTYPE 363 + EXTRAOFFSET
|
||||
|
||||
#define OFFSET_AWM_AMMO 377 + EXTRAOFFSET // 041029: All of these *_AMMO:s were changed -5
|
||||
#define OFFSET_SCOUT_AMMO 378 + EXTRAOFFSET
|
||||
#define OFFSET_PARA_AMMO 379 + EXTRAOFFSET
|
||||
#define OFFSET_FAMAS_AMMO 380 + EXTRAOFFSET
|
||||
#define OFFSET_M3_AMMO 381 + EXTRAOFFSET
|
||||
#define OFFSET_USP_AMMO 382 + EXTRAOFFSET
|
||||
#define OFFSET_FIVESEVEN_AMMO 383 + EXTRAOFFSET
|
||||
#define OFFSET_DEAGLE_AMMO 384 + EXTRAOFFSET
|
||||
#define OFFSET_P228_AMMO 385 + EXTRAOFFSET
|
||||
#define OFFSET_GLOCK_AMMO 386 + EXTRAOFFSET
|
||||
#define OFFSET_FLASH_AMMO 387 + EXTRAOFFSET
|
||||
#define OFFSET_HE_AMMO 388 + EXTRAOFFSET
|
||||
#define OFFSET_SMOKE_AMMO 389 + EXTRAOFFSET
|
||||
#define OFFSET_C4_AMMO 390 + EXTRAOFFSET
|
||||
|
||||
#define OFFSET_CSDEATHS 444 + EXTRAOFFSET // 040926
|
||||
#define OFFSET_SHIELD 510 + EXTRAOFFSET
|
||||
// "weapon_*" entities
|
||||
#define OFFSET_WEAPONTYPE 43 + EXTRAOFFSET_WEAPONS
|
||||
#define OFFSET_CLIPAMMO 51 + EXTRAOFFSET_WEAPONS
|
||||
#define OFFSET_SILENCER_FIREMODE 74 + EXTRAOFFSET_WEAPONS
|
||||
// "hostage_entity" entities
|
||||
#define OFFSET_HOSTAGEFOLLOW 86 + EXTRAOFFSET
|
||||
#define OFFSET_HOSTAGE_NEXTUSE 100 + EXTRAOFFSET
|
||||
#define OFFSET_HOSTAGE_LASTUSE 483 + EXTRAOFFSET
|
||||
#define OFFSET_HOSTAGEID 487 + EXTRAOFFSET
|
||||
// "armoury_entity"
|
||||
#define OFFSET_ARMOURY_TYPE 34 + EXTRAOFFSET_WEAPONS
|
||||
// C4 offsets
|
||||
#define OFFSET_C4_EXPLODE_TIME 100 + EXTRAOFFSET
|
||||
#define OFFSET_C4_DEFUSING 0x181 + ACTUAL_EXTRA_OFFSET
|
||||
#else
|
||||
// Amd64 offsets here
|
||||
#define OFFSET_ARMORTYPE 137 + EXTRAOFFSET
|
||||
#define OFFSET_TEAM 139 + EXTRAOFFSET // +25
|
||||
#define OFFSET_CSMONEY 140 + EXTRAOFFSET // +25
|
||||
#define OFFSET_PRIMARYWEAPON 141 + EXTRAOFFSET // +25
|
||||
#define OFFSET_INTERNALMODEL 152 + EXTRAOFFSET // +26
|
||||
#define OFFSET_NVGOGGLES 155 + EXTRAOFFSET // +26
|
||||
#define OFFSET_DEFUSE_PLANT 219 + EXTRAOFFSET // +26
|
||||
#define OFFSET_VIP 242 + EXTRAOFFSET // +27
|
||||
#define OFFSET_TK 249 + EXTRAOFFSET // +33 040927
|
||||
#define OFFSET_MAPZONE 268 + EXTRAOFFSET // +27
|
||||
#define OFFSET_ISDRIVING 386 + EXTRAOFFSET // 040927
|
||||
#define OFFSET_STATIONARY 400 + EXTRAOFFSET // 040927 (401 works also)
|
||||
#define OFFSET_ZOOMTYPE 402 + EXTRAOFFSET
|
||||
|
||||
#define OFFSET_AWM_AMMO 426 + EXTRAOFFSET // +44
|
||||
#define OFFSET_SCOUT_AMMO 427 + EXTRAOFFSET // +44
|
||||
#define OFFSET_PARA_AMMO 428 + EXTRAOFFSET // +44
|
||||
#define OFFSET_FAMAS_AMMO 429 + EXTRAOFFSET // +44
|
||||
#define OFFSET_M3_AMMO 430 + EXTRAOFFSET // +44
|
||||
#define OFFSET_USP_AMMO 431 + EXTRAOFFSET // +44
|
||||
#define OFFSET_FIVESEVEN_AMMO 432 + EXTRAOFFSET // +44
|
||||
#define OFFSET_DEAGLE_AMMO 433 + EXTRAOFFSET // +44
|
||||
#define OFFSET_P228_AMMO 434 + EXTRAOFFSET // +44
|
||||
#define OFFSET_GLOCK_AMMO 435 + EXTRAOFFSET // +44
|
||||
#define OFFSET_FLASH_AMMO 436 + EXTRAOFFSET // +44
|
||||
#define OFFSET_HE_AMMO 437 + EXTRAOFFSET // +44
|
||||
#define OFFSET_SMOKE_AMMO 438 + EXTRAOFFSET // +44
|
||||
#define OFFSET_C4_AMMO 439 + EXTRAOFFSET // +44
|
||||
|
||||
#define OFFSET_CSDEATHS 493 + EXTRAOFFSET // +49
|
||||
#define OFFSET_SHIELD 559 + EXTRAOFFSET
|
||||
// "weapon_*" entities
|
||||
#define OFFSET_WEAPONTYPE 57 + EXTRAOFFSET // +14
|
||||
#define OFFSET_CLIPAMMO 65 + EXTRAOFFSET // +14
|
||||
#define OFFSET_SILENCER_FIREMODE 88 + EXTRAOFFSET // +14
|
||||
// "hostage_entity" entities
|
||||
#define OFFSET_HOSTAGEFOLLOW 51 + EXTRAOFFSET // +21, long=51, int=107! (must use the long* offset because pointers on amd64 are stored the size of longs, 8 bytes, instead of the usual int 4 bytes.)
|
||||
#define OFFSET_HOSTAGEID 516 + EXTRAOFFSET // +29
|
||||
#endif
|
||||
|
||||
#if defined(__linux__)
|
||||
#define CS_IDENT_USEBOTARGS "UseBotArgs"
|
||||
#define CS_IDENT_BOTARGS "BotArgs"
|
||||
#define CS_IDENT_HIDDEN_STATE false
|
||||
#elif defined(__APPLE__)
|
||||
#define CS_IDENT_USEBOTARGS "UseBotArgs"
|
||||
#define CS_IDENT_BOTARGS "BotArgs"
|
||||
#define CS_IDENT_HIDDEN_STATE true
|
||||
#else
|
||||
#define CS_CLICMD_OFFS_USEBOTARGS 2
|
||||
#define CS_CLICMD_OFFS_BOTARGS 22
|
||||
#endif
|
||||
|
||||
#if defined(__linux__)
|
||||
#define CS_IDENT_GIVENSHIELD "_ZN11CBasePlayer10GiveShieldEb" // CS_OnBuy forward
|
||||
#define CS_IDENT_GIVENAMEDITEM "_ZN11CBasePlayer13GiveNamedItemEPKc" // CS_OnBuy forward
|
||||
#define CS_IDENT_ADDACCOUNT "_ZN11CBasePlayer10AddAccountEib" // CS_OnBuy forward
|
||||
#define CS_IDENT_CREATENAMEDENTITY "_Z19CREATE_NAMED_ENTITYj" // cs_create_entity
|
||||
#define CS_IDENT_UTIL_FINDENTITYBYSTRING "_Z23UTIL_FindEntityByStringP11CBaseEntityPKcS2_" // cs_create_entity
|
||||
#define CS_IDENT_HIDDEN_STATE false
|
||||
#elif defined(__APPLE__)
|
||||
#define CS_IDENT_GIVENSHIELD "_ZN11CBasePlayer10GiveShieldEb"
|
||||
#define CS_IDENT_GIVENAMEDITEM "_ZN11CBasePlayer13GiveNamedItemEPKc"
|
||||
#define CS_IDENT_ADDACCOUNT "_ZN11CBasePlayer10AddAccountEib"
|
||||
#define CS_IDENT_CREATENAMEDENTITY "_Z19CREATE_NAMED_ENTITYj"
|
||||
#define CS_IDENT_UTIL_FINDENTITYBYSTRING "_Z23UTIL_FindEntityByStringP11CBaseEntityPKcS2_"
|
||||
#define CS_IDENT_HIDDEN_STATE true
|
||||
#elif defined(WIN32)
|
||||
#define CS_IDENT_GIVENSHIELD "\\x56\\x8B\\x2A\\x57\\x33\\x2A\\x8B\\x2A\\x2A\\x2A\\x2A\\x2A\\xB0"
|
||||
#define CS_IDENT_GIVENAMEDITEM "\\x8B\\x2A\\x2A\\x2A\\x56\\x57\\x8B\\x2A\\x8B\\x2A\\x2A\\x2A\\x2A\\x2A\\x2B"
|
||||
#define CS_IDENT_ADDACCOUNT "\\x8B\\x2A\\x2A\\x2A\\x56\\x8B\\x2A\\x8B\\x2A\\x2A\\x2A\\x2A\\x2A\\x03"
|
||||
#define CS_IDENT_CREATENAMEDENTITY "\\x56\\x57\\x8B\\x2A\\x2A\\x2A\\x57\\xFF\\x2A\\x2A\\x2A\\x2A\\x2A\\x8B"
|
||||
#define CS_IDENT_UTIL_FINDENTITYBYSTRING "\\x51\\x8B\\x2A\\x2A\\x2A\\x53\\x55\\x56\\x85\\x2A\\x57"
|
||||
#define CS_IDENT_HIDDEN_STATE false
|
||||
#endif
|
||||
|
||||
#define CSI_P228 CSW_P228
|
||||
#define CSI_SCOUT CSW_SCOUT
|
||||
#define CSI_HEGRENADE CSW_HEGRENADE
|
||||
@ -230,7 +83,7 @@
|
||||
#define CSW_DEAGLE 26
|
||||
#define CSW_SG552 27
|
||||
#define CSW_AK47 28
|
||||
//#define CSW_KNIFE 29
|
||||
#define CSW_KNIFE 29
|
||||
#define CSW_P90 30
|
||||
#define CSW_VEST 31 // Brand new invention!
|
||||
#define CSW_VESTHELM 32 // Brand new invention!
|
||||
@ -257,36 +110,72 @@
|
||||
#define CSA_VESTHELM 17
|
||||
#define CSA_SMOKEGRENADE 18
|
||||
|
||||
#define M4A1_SILENCED (1<<2)
|
||||
#define M4A1_ATTACHSILENCEANIM 6
|
||||
#define M4A1_DETACHSILENCEANIM 13
|
||||
#define USP_SILENCED (1<<0)
|
||||
#define USP_ATTACHSILENCEANIM 7
|
||||
#define USP_DETACHSILENCEANIM 15
|
||||
enum WeaponState
|
||||
{
|
||||
WPNSTATE_USP_SILENCED = (1 << 0),
|
||||
WPNSTATE_GLOCK18_BURST_MODE = (1 << 1),
|
||||
WPNSTATE_M4A1_SILENCED = (1 << 2),
|
||||
WPNSTATE_ELITE_LEFT = (1 << 3),
|
||||
WPNSTATE_FAMAS_BURST_MODE = (1 << 4),
|
||||
WPNSTATE_SHIELD_DRAWN = (1 << 5),
|
||||
};
|
||||
|
||||
#define GLOCK_SEMIAUTOMATIC 0
|
||||
#define GLOCK_BURSTMODE 2
|
||||
#define FAMAS_AUTOMATIC 0
|
||||
#define FAMAS_BURSTMODE 16
|
||||
enum m4a1_e
|
||||
{
|
||||
M4A1_IDLE,
|
||||
M4A1_SHOOT1,
|
||||
M4A1_SHOOT2,
|
||||
M4A1_SHOOT3,
|
||||
M4A1_RELOAD,
|
||||
M4A1_DRAW,
|
||||
M4A1_ATTACH_SILENCER,
|
||||
M4A1_UNSIL_IDLE,
|
||||
M4A1_UNSIL_SHOOT1,
|
||||
M4A1_UNSIL_SHOOT2,
|
||||
M4A1_UNSIL_SHOOT3,
|
||||
M4A1_UNSIL_RELOAD,
|
||||
M4A1_UNSIL_DRAW,
|
||||
M4A1_DETACH_SILENCER
|
||||
};
|
||||
|
||||
#define PLAYER_IS_VIP (1<<8)
|
||||
enum usp_e
|
||||
{
|
||||
USP_IDLE,
|
||||
USP_SHOOT1,
|
||||
USP_SHOOT2,
|
||||
USP_SHOOT3,
|
||||
USP_SHOOT_EMPTY,
|
||||
USP_RELOAD,
|
||||
USP_DRAW,
|
||||
USP_ATTACH_SILENCER,
|
||||
USP_UNSIL_IDLE,
|
||||
USP_UNSIL_SHOOT1,
|
||||
USP_UNSIL_SHOOT2,
|
||||
USP_UNSIL_SHOOT3,
|
||||
USP_UNSIL_SHOOT_EMPTY,
|
||||
USP_UNSIL_RELOAD,
|
||||
USP_UNSIL_DRAW,
|
||||
USP_DETACH_SILENCER
|
||||
};
|
||||
|
||||
#define PLAYER_IN_BUYZONE (1<<0)
|
||||
enum SignalState
|
||||
{
|
||||
SIGNAL_BUY = (1 << 0),
|
||||
SIGNAL_BOMB = (1 << 1),
|
||||
SIGNAL_RESCUE = (1 << 2),
|
||||
SIGNAL_ESCAPE = (1 << 3),
|
||||
SIGNAL_VIPSAFETY = (1 << 4),
|
||||
};
|
||||
|
||||
#define TEAM_UNASSIGNED 0
|
||||
#define TEAM_T 1
|
||||
#define TEAM_CT 2
|
||||
#define TEAM_SPECTATOR 3
|
||||
|
||||
#define CAN_PLANT_BOMB (1<<8) // 256
|
||||
#define HAS_DEFUSE_KIT (1<<16) // 65536
|
||||
|
||||
#define DEFUSER_COLOUR_R 0
|
||||
#define DEFUSER_COLOUR_G 160
|
||||
#define DEFUSER_COLOUR_B 0
|
||||
|
||||
#define HAS_NVGOGGLES (1<<0)
|
||||
|
||||
#define SCOREATTRIB_NOTHING 0
|
||||
#define SCOREATTRIB_DEAD 1
|
||||
#define SCOREATTRIB_BOMB 2 // t only
|
||||
@ -299,14 +188,11 @@
|
||||
#define CS_ARMOR_KEVLAR 1
|
||||
#define CS_ARMOR_ASSAULTSUIT 2
|
||||
|
||||
#define CS_FIRST_ZOOM 0x28
|
||||
#define CS_SECOND_AWP_ZOOM 0xA
|
||||
#define CS_SECOND_NONAWP_ZOOM 0xF
|
||||
#define CS_AUGSG552_ZOOM 0x37
|
||||
#define CS_NO_ZOOM 0x5A
|
||||
|
||||
#define HAS_SHIELD (1<<24) //16777216
|
||||
|
||||
#define CS_FIRST_ZOOM 40
|
||||
#define CS_SECOND_AWP_ZOOM 10
|
||||
#define CS_SECOND_NONAWP_ZOOM 15
|
||||
#define CS_AUGSG552_ZOOM 55
|
||||
#define CS_NO_ZOOM 90
|
||||
|
||||
enum CS_Internal_Models {
|
||||
CS_DONTCHANGE = 0,
|
||||
|
Reference in New Issue
Block a user