2021-04-20 00:56:11 +02:00
|
|
|
#pragma once
|
2021-08-23 17:11:45 +02:00
|
|
|
#include <d3d11.h>
|
2021-04-20 00:56:11 +02:00
|
|
|
|
|
|
|
namespace game
|
|
|
|
{
|
|
|
|
typedef float vec_t;
|
|
|
|
typedef vec_t vec2_t[2];
|
|
|
|
typedef vec_t vec3_t[3];
|
|
|
|
typedef vec_t vec4_t[4];
|
|
|
|
|
|
|
|
struct gclient_s
|
|
|
|
{
|
2021-04-26 22:17:56 +02:00
|
|
|
char __pad0[0x8C];
|
|
|
|
vec3_t velocity;
|
2021-05-09 09:37:02 +03:00
|
|
|
char __pad1[59504];
|
|
|
|
char flags;
|
2021-04-23 03:46:11 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct client_t
|
|
|
|
{
|
|
|
|
char __pad0[13508];
|
2021-04-20 00:56:11 +02:00
|
|
|
};
|
|
|
|
|
2021-08-23 17:11:45 +02:00
|
|
|
enum $219904913BC1E6DB920C78C8CC0BD8F1
|
|
|
|
{
|
|
|
|
FL_GODMODE = 0x1,
|
|
|
|
FL_DEMI_GODMODE = 0x2,
|
|
|
|
FL_NOTARGET = 0x4,
|
|
|
|
FL_NO_KNOCKBACK = 0x8,
|
|
|
|
FL_NO_RADIUS_DAMAGE = 0x10,
|
|
|
|
FL_SUPPORTS_LINKTO = 0x20,
|
|
|
|
FL_NO_AUTO_ANIM_UPDATE = 0x40,
|
|
|
|
FL_GRENADE_TOUCH_DAMAGE = 0x80,
|
|
|
|
FL_STABLE_MISSILES = 0x100,
|
|
|
|
FL_REPEAT_ANIM_UPDATE = 0x200,
|
|
|
|
FL_VEHICLE_TARGET = 0x400,
|
|
|
|
FL_GROUND_ENT = 0x800,
|
|
|
|
FL_CURSOR_HINT = 0x1000,
|
|
|
|
FL_MISSILE_ATTRACTOR_OR_REPULSOR = 0x2000,
|
|
|
|
FL_WEAPON_BEING_GRABBED = 0x4000,
|
|
|
|
FL_DELETE = 0x8000,
|
|
|
|
FL_BOUNCE = 0x10000,
|
|
|
|
FL_MOVER_SLIDE = 0x20000,
|
|
|
|
FL_MOVING = 0x40000,
|
|
|
|
FL_DONT_AUTOBOLT_MISSILE_EFFECTS = 0x80000,
|
|
|
|
FL_DISABLE_MISSILE_STICK = 0x100000,
|
|
|
|
FL_NO_MELEE_TARGET = 0x2000000,
|
|
|
|
FL_DYNAMICPATH = 0x8000000,
|
|
|
|
FL_AUTO_BLOCKPATHS = 0x10000000,
|
|
|
|
FL_OBSTACLE = 0x20000000,
|
|
|
|
FL_BADPLACE_VOLUME = 0x80000000,
|
|
|
|
};
|
|
|
|
|
2021-04-20 00:56:11 +02:00
|
|
|
struct EntityState
|
|
|
|
{
|
|
|
|
char entityNum;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct gentity_s
|
|
|
|
{
|
2021-09-17 00:12:54 +02:00
|
|
|
EntityState s;
|
|
|
|
char __pad0[0x1B];
|
2021-04-26 01:28:46 +02:00
|
|
|
vec3_t origin;
|
|
|
|
char __pad1[0xF0];
|
|
|
|
gclient_s* client;
|
2021-05-09 09:37:02 +03:00
|
|
|
char __pad2[0x4C];
|
|
|
|
char flags;
|
2021-08-23 17:11:45 +02:00
|
|
|
char __pad3[392];
|
2021-04-23 03:46:11 +02:00
|
|
|
}; // size = 760
|
2021-04-20 00:56:11 +02:00
|
|
|
|
2022-01-07 01:22:05 +01:00
|
|
|
struct pathlink_s
|
|
|
|
{
|
|
|
|
char __pad0[4];
|
|
|
|
unsigned __int16 nodeNum;
|
|
|
|
char __pad[6];
|
|
|
|
};
|
|
|
|
|
|
|
|
static_assert(sizeof(pathlink_s) == 12);
|
|
|
|
|
|
|
|
struct pathnode_t
|
|
|
|
{
|
|
|
|
unsigned __int16 type;
|
|
|
|
unsigned int spawnflags;
|
|
|
|
unsigned int targetname;
|
|
|
|
unsigned int script_linkName;
|
|
|
|
unsigned int script_noteworthy;
|
|
|
|
unsigned int target;
|
|
|
|
unsigned int animscript;
|
|
|
|
int animscriptfunc;
|
|
|
|
float vLocalOrigin[3];
|
|
|
|
char __pad0[28];
|
|
|
|
unsigned __int16 totalLinkCount;
|
|
|
|
char __pad1[2];
|
|
|
|
pathlink_s* Links;
|
|
|
|
char __pad2[104];
|
|
|
|
}; // size = 192
|
|
|
|
|
|
|
|
static_assert(sizeof(pathnode_t) == 192);
|
|
|
|
|
|
|
|
struct PathData
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
unsigned int nodeCount;
|
|
|
|
pathnode_t* nodes;
|
|
|
|
// ...
|
|
|
|
};
|
|
|
|
|
2021-04-20 00:56:11 +02:00
|
|
|
struct Material
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
};
|
|
|
|
|
2021-09-12 02:26:53 +02:00
|
|
|
struct point
|
|
|
|
{
|
|
|
|
float x;
|
|
|
|
float y;
|
|
|
|
float f2;
|
|
|
|
float f3;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct rectangle
|
|
|
|
{
|
|
|
|
point p0;
|
|
|
|
point p1;
|
|
|
|
point p2;
|
|
|
|
point p3;
|
|
|
|
};
|
|
|
|
|
2021-09-22 00:57:41 +02:00
|
|
|
struct rgba
|
|
|
|
{
|
|
|
|
uint8_t r;
|
|
|
|
uint8_t g;
|
|
|
|
uint8_t b;
|
|
|
|
uint8_t a;
|
|
|
|
};
|
|
|
|
|
2021-04-20 00:56:11 +02:00
|
|
|
struct Glyph
|
|
|
|
{
|
|
|
|
unsigned short letter;
|
|
|
|
char x0;
|
|
|
|
char y0;
|
|
|
|
char dx;
|
|
|
|
char pixelWidth;
|
|
|
|
char pixelHeight;
|
|
|
|
float s0;
|
|
|
|
float t0;
|
|
|
|
float s1;
|
|
|
|
float t1;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Font_s
|
|
|
|
{
|
|
|
|
const char* fontName;
|
|
|
|
int pixelHeight;
|
|
|
|
int glyphCount;
|
|
|
|
Material* material;
|
|
|
|
Material* glowMaterial;
|
|
|
|
Glyph* glyphs;
|
|
|
|
};
|
|
|
|
|
|
|
|
enum keyNum_t
|
|
|
|
{
|
|
|
|
K_NONE = 0x0,
|
|
|
|
K_FIRSTGAMEPADBUTTON_RANGE_1 = 0x1,
|
|
|
|
K_BUTTON_A = 0x1,
|
|
|
|
K_BUTTON_B = 0x2,
|
|
|
|
K_BUTTON_X = 0x3,
|
|
|
|
K_BUTTON_Y = 0x4,
|
|
|
|
K_BUTTON_LSHLDR = 0x5,
|
|
|
|
K_BUTTON_RSHLDR = 0x6,
|
|
|
|
K_LASTGAMEPADBUTTON_RANGE_1 = 0x6,
|
|
|
|
K_BS = 0x8,
|
|
|
|
K_TAB = 0x9,
|
|
|
|
K_ENTER = 0xD,
|
|
|
|
K_FIRSTGAMEPADBUTTON_RANGE_2 = 0xE,
|
|
|
|
K_BUTTON_START = 0xE,
|
|
|
|
K_BUTTON_BACK = 0xF,
|
|
|
|
K_BUTTON_LSTICK = 0x10,
|
|
|
|
K_BUTTON_RSTICK = 0x11,
|
|
|
|
K_BUTTON_LTRIG = 0x12,
|
|
|
|
K_BUTTON_RTRIG = 0x13,
|
|
|
|
K_DPAD_UP = 0x14,
|
|
|
|
K_FIRSTDPAD = 0x14,
|
|
|
|
K_DPAD_DOWN = 0x15,
|
|
|
|
K_DPAD_LEFT = 0x16,
|
|
|
|
K_DPAD_RIGHT = 0x17,
|
|
|
|
K_BUTTON_LSTICK_ALTIMAGE2 = 0x10,
|
|
|
|
K_BUTTON_RSTICK_ALTIMAGE2 = 0x11,
|
|
|
|
K_BUTTON_LSTICK_ALTIMAGE = 0xBC,
|
|
|
|
K_BUTTON_RSTICK_ALTIMAGE = 0xBD,
|
|
|
|
K_LASTDPAD = 0x17,
|
|
|
|
K_LASTGAMEPADBUTTON_RANGE_2 = 0x17,
|
|
|
|
K_ESCAPE = 0x1B,
|
|
|
|
K_FIRSTGAMEPADBUTTON_RANGE_3 = 0x1C,
|
|
|
|
K_APAD_UP = 0x1C,
|
|
|
|
K_FIRSTAPAD = 0x1C,
|
|
|
|
K_APAD_DOWN = 0x1D,
|
|
|
|
K_APAD_LEFT = 0x1E,
|
|
|
|
K_APAD_RIGHT = 0x1F,
|
|
|
|
K_LASTAPAD = 0x1F,
|
|
|
|
K_LASTGAMEPADBUTTON_RANGE_3 = 0x1F,
|
|
|
|
K_SPACE = 0x20,
|
|
|
|
K_GRAVE = 0x60,
|
|
|
|
K_TILDE = 0x7E,
|
|
|
|
K_BACKSPACE = 0x7F,
|
|
|
|
K_ASCII_FIRST = 0x80,
|
|
|
|
K_ASCII_181 = 0x80,
|
|
|
|
K_ASCII_191 = 0x81,
|
|
|
|
K_ASCII_223 = 0x82,
|
|
|
|
K_ASCII_224 = 0x83,
|
|
|
|
K_ASCII_225 = 0x84,
|
|
|
|
K_ASCII_228 = 0x85,
|
|
|
|
K_ASCII_229 = 0x86,
|
|
|
|
K_ASCII_230 = 0x87,
|
|
|
|
K_ASCII_231 = 0x88,
|
|
|
|
K_ASCII_232 = 0x89,
|
|
|
|
K_ASCII_233 = 0x8A,
|
|
|
|
K_ASCII_236 = 0x8B,
|
|
|
|
K_ASCII_241 = 0x8C,
|
|
|
|
K_ASCII_242 = 0x8D,
|
|
|
|
K_ASCII_243 = 0x8E,
|
|
|
|
K_ASCII_246 = 0x8F,
|
|
|
|
K_ASCII_248 = 0x90,
|
|
|
|
K_ASCII_249 = 0x91,
|
|
|
|
K_ASCII_250 = 0x92,
|
|
|
|
K_ASCII_252 = 0x93,
|
|
|
|
K_END_ASCII_CHARS = 0x94,
|
|
|
|
K_COMMAND = 0x96,
|
|
|
|
K_CAPSLOCK = 0x97,
|
|
|
|
K_POWER = 0x98,
|
|
|
|
K_PAUSE = 0x99,
|
|
|
|
K_UPARROW = 0x9A,
|
|
|
|
K_DOWNARROW = 0x9B,
|
|
|
|
K_LEFTARROW = 0x9C,
|
|
|
|
K_RIGHTARROW = 0x9D,
|
|
|
|
K_ALT = 0x9E,
|
|
|
|
K_CTRL = 0x9F,
|
|
|
|
K_SHIFT = 0xA0,
|
|
|
|
K_INS = 0xA1,
|
|
|
|
K_DEL = 0xA2,
|
|
|
|
K_PGDN = 0xA3,
|
|
|
|
K_PGUP = 0xA4,
|
|
|
|
K_HOME = 0xA5,
|
|
|
|
K_END = 0xA6,
|
|
|
|
K_F1 = 0xA7,
|
|
|
|
K_F2 = 0xA8,
|
|
|
|
K_F3 = 0xA9,
|
|
|
|
K_F4 = 0xAA,
|
|
|
|
K_F5 = 0xAB,
|
|
|
|
K_F6 = 0xAC,
|
|
|
|
K_F7 = 0xAD,
|
|
|
|
K_F8 = 0xAE,
|
|
|
|
K_F9 = 0xAF,
|
|
|
|
K_F10 = 0xB0,
|
|
|
|
K_F11 = 0xB1,
|
|
|
|
K_F12 = 0xB2,
|
|
|
|
K_F13 = 0xB3,
|
|
|
|
K_F14 = 0xB4,
|
|
|
|
K_F15 = 0xB5,
|
|
|
|
K_KP_HOME = 0xB6,
|
|
|
|
K_KP_UPARROW = 0xB7,
|
|
|
|
K_KP_PGUP = 0xB8,
|
|
|
|
K_KP_LEFTARROW = 0xB9,
|
|
|
|
K_KP_5 = 0xBA,
|
|
|
|
K_KP_RIGHTARROW = 0xBB,
|
|
|
|
K_KP_END = 0xBC,
|
|
|
|
K_KP_DOWNARROW = 0xBD,
|
|
|
|
K_KP_PGDN = 0xBE,
|
|
|
|
K_KP_ENTER = 0xBF,
|
|
|
|
K_KP_INS = 0xC0,
|
|
|
|
K_KP_DEL = 0xC1,
|
|
|
|
K_KP_SLASH = 0xC2,
|
|
|
|
K_KP_MINUS = 0xC3,
|
|
|
|
K_KP_PLUS = 0xC4,
|
|
|
|
K_KP_NUMLOCK = 0xC5,
|
|
|
|
K_KP_STAR = 0xC6,
|
|
|
|
K_KP_EQUALS = 0xC7,
|
|
|
|
K_MOUSE1 = 0xC8,
|
|
|
|
K_MOUSE2 = 0xC9,
|
|
|
|
K_MOUSE3 = 0xCA,
|
|
|
|
K_MOUSE4 = 0xCB,
|
|
|
|
K_MOUSE5 = 0xCC,
|
|
|
|
K_MWHEELDOWN = 0xCD,
|
|
|
|
K_MWHEELUP = 0xCE,
|
|
|
|
K_AUX1 = 0xCF,
|
|
|
|
K_AUX2 = 0xD0,
|
|
|
|
K_AUX3 = 0xD1,
|
|
|
|
K_AUX4 = 0xD2,
|
|
|
|
K_AUX5 = 0xD3,
|
|
|
|
K_AUX6 = 0xD4,
|
|
|
|
K_AUX7 = 0xD5,
|
|
|
|
K_AUX8 = 0xD6,
|
|
|
|
K_AUX9 = 0xD7,
|
|
|
|
K_AUX10 = 0xD8,
|
|
|
|
K_AUX11 = 0xD9,
|
|
|
|
K_AUX12 = 0xDA,
|
|
|
|
K_AUX13 = 0xDB,
|
|
|
|
K_AUX14 = 0xDC,
|
|
|
|
K_AUX15 = 0xDD,
|
|
|
|
K_AUX16 = 0xDE,
|
|
|
|
K_LAST_KEY = 0xDF
|
|
|
|
};
|
|
|
|
|
2021-09-07 00:40:37 +02:00
|
|
|
enum errorParm
|
|
|
|
{
|
|
|
|
ERR_FATAL = 0,
|
|
|
|
ERR_DROP = 1,
|
|
|
|
ERR_SERVERDISCONNECT = 2,
|
|
|
|
ERR_DISCONNECT = 3,
|
|
|
|
ERR_SCRIPT = 4,
|
|
|
|
ERR_SCRIPT_DROP = 5,
|
|
|
|
ERR_LOCALIZATION = 6,
|
|
|
|
ERR_MAPLOADERRORSUMMARY = 7,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum threadType
|
|
|
|
{
|
|
|
|
THREAD_CONTEXT_MAIN = 0x0,
|
|
|
|
THREAD_CONTEXT_BACKEND = 0x1,
|
|
|
|
THREAD_CONTEXT_WORKER0 = 0x2,
|
|
|
|
THREAD_CONTEXT_WORKER1 = 0x3,
|
|
|
|
THREAD_CONTEXT_WORKER2 = 0x4,
|
|
|
|
THREAD_CONTEXT_WORKER3 = 0x5,
|
|
|
|
THREAD_CONTEXT_WORKER4 = 0x6,
|
|
|
|
THREAD_CONTEXT_WORKER5 = 0x7,
|
|
|
|
THREAD_CONTEXT_WORKER6 = 0x8,
|
|
|
|
THREAD_CONTEXT_WORKER7 = 0x9,
|
|
|
|
THREAD_CONTEXT_SERVER = 0xA,
|
|
|
|
THREAD_CONTEXT_TRACE_COUNT = 0xB,
|
|
|
|
THREAD_CONTEXT_TRACE_LAST = 0xA,
|
|
|
|
THREAD_CONTEXT_CINEMATIC = 0xB,
|
|
|
|
THREAD_CONTEXT_DATABASE = 0xC,
|
|
|
|
THREAD_CONTEXT_STREAM = 0xD,
|
|
|
|
THREAD_CONTEXT_SNDSTREAMPACKETCALLBACK = 0xE,
|
|
|
|
THREAD_CONTEXT_STATS_WRITE = 0xF,
|
|
|
|
THREAD_CONTEXT_COUNT = 0x10,
|
|
|
|
};
|
|
|
|
|
2021-04-20 00:56:11 +02:00
|
|
|
struct KeyState
|
|
|
|
{
|
|
|
|
int down;
|
|
|
|
int repeats;
|
|
|
|
int binding;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct PlayerKeyState
|
|
|
|
{
|
|
|
|
int overstrikeMode;
|
|
|
|
int anyKeyDown;
|
|
|
|
KeyState keys[256];
|
|
|
|
};
|
|
|
|
|
|
|
|
enum DvarSetSource : std::uint32_t
|
|
|
|
{
|
|
|
|
DVAR_SOURCE_INTERNAL = 0x0,
|
|
|
|
DVAR_SOURCE_EXTERNAL = 0x1,
|
|
|
|
DVAR_SOURCE_SCRIPT = 0x2,
|
|
|
|
DVAR_SOURCE_UISCRIPT = 0x3,
|
|
|
|
DVAR_SOURCE_SERVERCMD = 0x4,
|
|
|
|
DVAR_SOURCE_NUM = 0x5,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum DvarFlags : std::uint32_t
|
|
|
|
{
|
|
|
|
DVAR_FLAG_NONE = 0,
|
|
|
|
DVAR_FLAG_SAVED = 0x1,
|
|
|
|
DVAR_FLAG_LATCHED = 0x2,
|
|
|
|
DVAR_FLAG_CHEAT = 0x4,
|
|
|
|
DVAR_FLAG_REPLICATED = 0x8,
|
|
|
|
DVAR_FLAG_WRITE = 0x800,
|
|
|
|
DVAR_FLAG_READ = 0x2000,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum dvar_type : std::int8_t
|
|
|
|
{
|
|
|
|
boolean = 0,
|
|
|
|
value = 1,
|
|
|
|
vec2 = 2,
|
|
|
|
vec3 = 3,
|
|
|
|
vec4 = 4,
|
|
|
|
integer = 5,
|
|
|
|
enumeration = 6,
|
|
|
|
string = 7,
|
|
|
|
color = 8,
|
|
|
|
rgb = 9 // Color without alpha
|
|
|
|
};
|
|
|
|
|
|
|
|
union dvar_value
|
|
|
|
{
|
|
|
|
bool enabled;
|
|
|
|
int integer;
|
|
|
|
unsigned int unsignedInt;
|
|
|
|
float value;
|
|
|
|
float vector[4];
|
|
|
|
const char* string;
|
|
|
|
char color[4];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct $A37BA207B3DDD6345C554D4661813EDD
|
|
|
|
{
|
|
|
|
int stringCount;
|
|
|
|
const char* const* strings;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct $9CA192F9DB66A3CB7E01DE78A0DEA53D
|
|
|
|
{
|
|
|
|
int min;
|
|
|
|
int max;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct $251C2428A496074035CACA7AAF3D55BD
|
|
|
|
{
|
|
|
|
float min;
|
|
|
|
float max;
|
|
|
|
};
|
|
|
|
|
|
|
|
union dvar_limits
|
|
|
|
{
|
|
|
|
$A37BA207B3DDD6345C554D4661813EDD enumeration;
|
|
|
|
$9CA192F9DB66A3CB7E01DE78A0DEA53D integer;
|
|
|
|
$251C2428A496074035CACA7AAF3D55BD value;
|
|
|
|
$251C2428A496074035CACA7AAF3D55BD vector;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct dvar_t
|
|
|
|
{
|
2021-04-23 03:46:11 +02:00
|
|
|
int name; //00
|
2021-04-20 00:56:11 +02:00
|
|
|
unsigned int flags; //08
|
|
|
|
dvar_type type; //0C
|
|
|
|
bool modified; //0D
|
|
|
|
dvar_value current; //10
|
|
|
|
dvar_value latched;
|
|
|
|
dvar_value reset;
|
|
|
|
dvar_limits domain;
|
2022-01-03 19:04:42 +01:00
|
|
|
char __pad0[0xC];
|
2021-04-20 00:56:11 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct ScreenPlacement
|
|
|
|
{
|
|
|
|
vec2_t scaleVirtualToReal;
|
|
|
|
vec2_t scaleVirtualToFull;
|
|
|
|
vec2_t scaleRealToVirtual;
|
|
|
|
vec2_t realViewportPosition;
|
|
|
|
vec2_t realViewportSize;
|
|
|
|
vec2_t virtualViewableMin;
|
|
|
|
vec2_t virtualViewableMax;
|
|
|
|
vec2_t realViewableMin;
|
|
|
|
vec2_t realViewableMax;
|
|
|
|
vec2_t virtualAdjustableMin;
|
|
|
|
vec2_t virtualAdjustableMax;
|
|
|
|
vec2_t realAdjustableMin;
|
|
|
|
vec2_t realAdjustableMax;
|
|
|
|
vec2_t subScreenLeft;
|
|
|
|
};
|
|
|
|
|
2022-01-07 01:22:05 +01:00
|
|
|
struct refdef_t
|
|
|
|
{
|
|
|
|
char __pad0[0x10];
|
|
|
|
float fovX;
|
|
|
|
float fovY;
|
|
|
|
char __pad1[0x8];
|
|
|
|
float org[3];
|
|
|
|
float axis[3][3];
|
|
|
|
};
|
|
|
|
|
2021-04-20 00:56:11 +02:00
|
|
|
struct CmdArgs
|
|
|
|
{
|
|
|
|
int nesting;
|
|
|
|
int localClientNum[8];
|
|
|
|
int controllerIndex[8];
|
|
|
|
int argc[8];
|
|
|
|
const char** argv[8];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct cmd_function_s
|
|
|
|
{
|
|
|
|
cmd_function_s* next;
|
|
|
|
const char* name;
|
|
|
|
void(__cdecl* function)();
|
|
|
|
};
|
|
|
|
|
|
|
|
enum XAssetType
|
|
|
|
{
|
|
|
|
ASSET_TYPE_PHYSPRESET,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_PHYS_COLLMAP,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_PHYSWATERPRESET,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_PHYS_WORLDMAP,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_PHYSCONSTRAINT,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_XANIM,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_XMODELSURFS,
|
|
|
|
ASSET_TYPE_XMODEL,
|
|
|
|
ASSET_TYPE_MATERIAL,
|
|
|
|
ASSET_TYPE_COMPUTESHADER,
|
|
|
|
ASSET_TYPE_VERTEXSHADER,
|
|
|
|
ASSET_TYPE_HULLSHADER,
|
|
|
|
ASSET_TYPE_DOMAINSHADER,
|
|
|
|
ASSET_TYPE_PIXELSHADER,
|
|
|
|
ASSET_TYPE_VERTEXDECL,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_TECHSET,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_IMAGE,
|
|
|
|
ASSET_TYPE_SOUND,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_SOUNDSUBMIX,
|
|
|
|
ASSET_TYPE_SNDCURVE,
|
|
|
|
ASSET_TYPE_LPFCURVE,
|
|
|
|
ASSET_TYPE_REVERBSENDCURVE,
|
|
|
|
ASSET_TYPE_SNDCONTEXT,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_LOADED_SOUND,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_COL_MAP_SP,
|
|
|
|
ASSET_TYPE_COM_MAP,
|
|
|
|
ASSET_TYPE_GLASS_MAP,
|
|
|
|
ASSET_TYPE_AIPATHS,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_VEHICLE_TRACK,
|
|
|
|
ASSET_TYPE_MAP_ENTS,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_FX_MAP,
|
|
|
|
ASSET_TYPE_GFX_MAP,
|
|
|
|
ASSET_TYPE_LIGHTDEF,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_UI_MAP,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_MENUFILE,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_MENU,
|
|
|
|
ASSET_TYPE_ANIMCLASS,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_LOCALIZE,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_ATTACHMENT,
|
|
|
|
ASSET_TYPE_WEAPON,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_SNDDRIVERGLOBALS,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_FX,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_IMPACTFX,
|
|
|
|
ASSET_TYPE_SURFACEFX,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_AITYPE,
|
|
|
|
ASSET_TYPE_MPTYPE,
|
|
|
|
ASSET_TYPE_CHARACTER,
|
|
|
|
ASSET_TYPE_XMODELALIAS,
|
|
|
|
ASSET_TYPE_RAWFILE,
|
|
|
|
ASSET_TYPE_SCRIPTFILE,
|
|
|
|
ASSET_TYPE_STRINGTABLE,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_LEADERBOARDDEF,
|
|
|
|
ASSET_TYPE_VIRTUALLEADERBOARDDEF,
|
|
|
|
ASSET_TYPE_STRUCTUREDDATADEF,
|
|
|
|
ASSET_TYPE_DDL,
|
|
|
|
ASSET_TYPE_PROTO,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_TRACER,
|
|
|
|
ASSET_TYPE_VEHICLE,
|
|
|
|
ASSET_TYPE_ADDON_MAP_ENTS,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_NETCONSTSTRINGS,
|
|
|
|
ASSET_TYPE_REVERBPRESET,
|
|
|
|
ASSET_TYPE_LUAFILE,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_SCRIPTABLE,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_EQUIPSNDTABLE,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_VECTORFIELD,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_DOPPLERPRESET,
|
|
|
|
ASSET_TYPE_PARTICLESIMANIMATION,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_LASER,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_SKELETONSCRIPT,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_CLUT,
|
2021-09-10 03:21:51 +02:00
|
|
|
ASSET_TYPE_TTF,
|
2021-04-20 00:56:11 +02:00
|
|
|
ASSET_TYPE_COUNT,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StreamFileNameRaw
|
|
|
|
{
|
|
|
|
const char* dir;
|
|
|
|
const char* name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StreamFileNamePacked
|
|
|
|
{
|
|
|
|
unsigned __int64 offset;
|
|
|
|
unsigned __int64 length;
|
|
|
|
};
|
|
|
|
|
|
|
|
union StreamFileInfo
|
|
|
|
{
|
|
|
|
StreamFileNameRaw raw;
|
|
|
|
StreamFileNamePacked packed;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StreamFileName
|
|
|
|
{
|
|
|
|
unsigned __int16 isLocalized;
|
|
|
|
unsigned __int16 fileIndex;
|
|
|
|
StreamFileInfo info;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StreamedSound
|
|
|
|
{
|
|
|
|
StreamFileName filename;
|
|
|
|
unsigned int totalMsec;
|
|
|
|
};
|
|
|
|
|
|
|
|
union SoundFileRef
|
|
|
|
{
|
|
|
|
StreamedSound streamSnd;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SoundFile
|
|
|
|
{
|
|
|
|
char type;
|
|
|
|
char exists;
|
|
|
|
SoundFileRef u;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct snd_alias_t
|
|
|
|
{
|
|
|
|
const char* aliasName;
|
|
|
|
char __pad0[24];
|
|
|
|
SoundFile* soundFile;
|
|
|
|
char __pad1[198];
|
|
|
|
// not gonna map this out...
|
|
|
|
};
|
|
|
|
|
|
|
|
struct snd_alias_list_t
|
|
|
|
{
|
|
|
|
const char* aliasName;
|
|
|
|
snd_alias_t* head;
|
|
|
|
void* unk;
|
|
|
|
unsigned char count;
|
|
|
|
unsigned char unkCount;
|
|
|
|
char __pad0[6];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct RawFile
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
int compressedLen;
|
|
|
|
int len;
|
|
|
|
const char* buffer;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ScriptFile
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
int compressedLen;
|
|
|
|
int len;
|
|
|
|
int bytecodeLen;
|
|
|
|
const char* buffer;
|
|
|
|
char* bytecode;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StringTableCell
|
|
|
|
{
|
|
|
|
const char* string;
|
|
|
|
int hash;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StringTable
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
int columnCount;
|
|
|
|
int rowCount;
|
|
|
|
StringTableCell* values;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct LuaFile
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
int len;
|
|
|
|
char strippingType;
|
|
|
|
const char* buffer;
|
|
|
|
};
|
|
|
|
|
|
|
|
union XAssetHeader
|
|
|
|
{
|
|
|
|
void* data;
|
|
|
|
Material* material;
|
|
|
|
Font_s* font;
|
|
|
|
RawFile* rawfile;
|
|
|
|
ScriptFile* scriptfile;
|
|
|
|
StringTable* stringTable;
|
|
|
|
LuaFile* luaFile;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct XAsset
|
|
|
|
{
|
|
|
|
XAssetType type;
|
|
|
|
XAssetHeader header;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct XAssetEntry
|
|
|
|
{
|
|
|
|
XAsset asset;
|
|
|
|
char zoneIndex;
|
|
|
|
volatile char inuseMask;
|
|
|
|
unsigned int nextHash;
|
|
|
|
unsigned int nextOverride;
|
|
|
|
unsigned int nextPoolEntry;
|
|
|
|
};
|
2021-04-29 23:47:05 +02:00
|
|
|
|
|
|
|
enum DBSyncMode
|
|
|
|
{
|
|
|
|
DB_LOAD_ASYNC = 0x0,
|
|
|
|
DB_LOAD_SYNC = 0x1,
|
|
|
|
DB_LOAD_ASYNC_WAIT_ALLOC = 0x2,
|
|
|
|
DB_LOAD_ASYNC_FORCE_FREE = 0x3,
|
|
|
|
DB_LOAD_ASYNC_NO_SYNC_THREADS = 0x4,
|
|
|
|
DB_LOAD_SYNC_SKIP_ALWAYS_LOADED = 0x5,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct XZoneInfo
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
int allocFlags;
|
|
|
|
int freeFlags;
|
|
|
|
};
|
2021-04-23 03:46:11 +02:00
|
|
|
|
|
|
|
enum scr_string_t
|
|
|
|
{
|
|
|
|
scr_string_t_dummy = 0x0,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct scr_entref_t
|
|
|
|
{
|
|
|
|
unsigned short entnum;
|
|
|
|
unsigned short classnum;
|
|
|
|
};
|
|
|
|
|
|
|
|
enum scriptType_e
|
|
|
|
{
|
|
|
|
SCRIPT_NONE = 0,
|
|
|
|
SCRIPT_OBJECT = 1,
|
|
|
|
SCRIPT_STRING = 2,
|
|
|
|
SCRIPT_ISTRING = 3,
|
|
|
|
SCRIPT_VECTOR = 4,
|
|
|
|
SCRIPT_FLOAT = 5,
|
|
|
|
SCRIPT_INTEGER = 6,
|
|
|
|
SCRIPT_END = 8,
|
2021-08-29 22:53:20 +02:00
|
|
|
SCRIPT_FUNCTION = 9,
|
|
|
|
SCRIPT_STRUCT = 19,
|
2021-12-20 01:53:01 +01:00
|
|
|
SCRIPT_ENTITY = 21,
|
2021-08-29 22:53:20 +02:00
|
|
|
SCRIPT_ARRAY = 22,
|
2021-04-23 03:46:11 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct VariableStackBuffer
|
|
|
|
{
|
|
|
|
const char* pos;
|
|
|
|
unsigned __int16 size;
|
|
|
|
unsigned __int16 bufLen;
|
|
|
|
unsigned __int16 localId;
|
|
|
|
char time;
|
|
|
|
char buf[1];
|
|
|
|
};
|
|
|
|
|
|
|
|
union VariableUnion
|
|
|
|
{
|
|
|
|
int intValue;
|
|
|
|
unsigned int uintValue;
|
|
|
|
float floatValue;
|
|
|
|
unsigned int stringValue;
|
|
|
|
const float* vectorValue;
|
|
|
|
const char* codePosValue;
|
|
|
|
unsigned int pointerValue;
|
|
|
|
VariableStackBuffer* stackValue;
|
|
|
|
unsigned int entityOffset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct VariableValue
|
|
|
|
{
|
|
|
|
VariableUnion u;
|
|
|
|
int type;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct function_stack_t
|
|
|
|
{
|
|
|
|
const char* pos;
|
|
|
|
unsigned int localId;
|
|
|
|
unsigned int localVarCount;
|
|
|
|
VariableValue* top;
|
|
|
|
VariableValue* startTop;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct function_frame_t
|
|
|
|
{
|
|
|
|
function_stack_t fs;
|
|
|
|
int topType;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct scrVmPub_t
|
|
|
|
{
|
|
|
|
unsigned int* localVars;
|
|
|
|
VariableValue* maxstack;
|
|
|
|
int function_count;
|
|
|
|
function_frame_t* function_frame;
|
|
|
|
VariableValue* top;
|
|
|
|
unsigned int inparamcount;
|
|
|
|
unsigned int outparamcount;
|
|
|
|
function_frame_t function_frame_start[32];
|
|
|
|
VariableValue stack[2048];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct scr_classStruct_t
|
|
|
|
{
|
|
|
|
unsigned __int16 id;
|
|
|
|
unsigned __int16 entArrayId;
|
|
|
|
char charId;
|
|
|
|
const char* name;
|
|
|
|
};
|
2021-04-23 19:11:43 +02:00
|
|
|
|
|
|
|
struct ObjectVariableChildren
|
|
|
|
{
|
|
|
|
unsigned __int16 firstChild;
|
|
|
|
unsigned __int16 lastChild;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ObjectVariableValue_u_f
|
|
|
|
{
|
|
|
|
unsigned __int16 prev;
|
|
|
|
unsigned __int16 next;
|
|
|
|
};
|
|
|
|
|
|
|
|
union ObjectVariableValue_u_o_u
|
|
|
|
{
|
|
|
|
unsigned __int16 size;
|
|
|
|
unsigned __int16 entnum;
|
|
|
|
unsigned __int16 nextEntId;
|
|
|
|
unsigned __int16 self;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ObjectVariableValue_u_o
|
|
|
|
{
|
|
|
|
unsigned __int16 refCount;
|
|
|
|
ObjectVariableValue_u_o_u u;
|
|
|
|
};
|
|
|
|
|
|
|
|
union ObjectVariableValue_w
|
|
|
|
{
|
|
|
|
unsigned int type;
|
|
|
|
unsigned int classnum;
|
|
|
|
unsigned int notifyName;
|
|
|
|
unsigned int waitTime;
|
|
|
|
unsigned int parentLocalId;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ChildVariableValue_u_f
|
|
|
|
{
|
|
|
|
unsigned __int16 prev;
|
|
|
|
unsigned __int16 next;
|
|
|
|
};
|
|
|
|
|
|
|
|
union ChildVariableValue_u
|
|
|
|
{
|
|
|
|
ChildVariableValue_u_f f;
|
|
|
|
VariableUnion u;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ChildBucketMatchKeys_keys
|
|
|
|
{
|
|
|
|
unsigned __int16 name_hi;
|
|
|
|
unsigned __int16 parentId;
|
|
|
|
};
|
|
|
|
|
|
|
|
union ChildBucketMatchKeys
|
|
|
|
{
|
|
|
|
ChildBucketMatchKeys_keys keys;
|
|
|
|
unsigned int match;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ChildVariableValue
|
|
|
|
{
|
|
|
|
ChildVariableValue_u u;
|
|
|
|
unsigned __int16 next;
|
|
|
|
char type;
|
|
|
|
char name_lo;
|
|
|
|
ChildBucketMatchKeys k;
|
|
|
|
unsigned __int16 nextSibling;
|
|
|
|
unsigned __int16 prevSibling;
|
|
|
|
};
|
|
|
|
|
|
|
|
union ObjectVariableValue_u
|
|
|
|
{
|
|
|
|
ObjectVariableValue_u_f f;
|
|
|
|
ObjectVariableValue_u_o o;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ObjectVariableValue
|
|
|
|
{
|
|
|
|
ObjectVariableValue_u u;
|
|
|
|
ObjectVariableValue_w w;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct scrVarGlob_t
|
|
|
|
{
|
|
|
|
ObjectVariableValue objectVariableValue[56320];
|
|
|
|
ObjectVariableChildren objectVariableChildren[56320];
|
|
|
|
unsigned __int16 childVariableBucket[65536];
|
|
|
|
ChildVariableValue childVariableValue[384000];
|
|
|
|
};
|
2021-05-08 21:07:31 +02:00
|
|
|
|
|
|
|
enum GfxDrawSceneMethod
|
|
|
|
{
|
|
|
|
GFX_DRAW_SCENE_STANDARD = 0x0,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum MaterialTechniqueType
|
|
|
|
{
|
|
|
|
TECHNIQUE_UNLIT = 8,
|
|
|
|
TECHNIQUE_EMISSIVE = 9,
|
|
|
|
TECHNIQUE_LIT = 13,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GfxDrawMethod_s
|
|
|
|
{
|
|
|
|
int drawScene;
|
|
|
|
int baseTechType;
|
|
|
|
int emissiveTechType;
|
|
|
|
int forceTechType;
|
|
|
|
};
|
2021-08-23 17:11:45 +02:00
|
|
|
|
|
|
|
struct GfxImageLoadDef
|
|
|
|
{
|
|
|
|
char levelCount;
|
|
|
|
char numElements;
|
|
|
|
char pad[2];
|
|
|
|
int flags;
|
|
|
|
int format;
|
|
|
|
int resourceSize;
|
|
|
|
char data[1];
|
|
|
|
};
|
|
|
|
|
|
|
|
union $3FA29451CE6F1FA138A5ABAB84BE9676
|
|
|
|
{
|
|
|
|
ID3D11Texture1D* linemap;
|
|
|
|
ID3D11Texture2D* map;
|
|
|
|
ID3D11Texture3D* volmap;
|
|
|
|
ID3D11Texture2D* cubemap;
|
|
|
|
GfxImageLoadDef* loadDef;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GfxTexture
|
|
|
|
{
|
|
|
|
$3FA29451CE6F1FA138A5ABAB84BE9676 ___u0;
|
|
|
|
ID3D11ShaderResourceView* shaderView;
|
|
|
|
ID3D11ShaderResourceView* shaderViewAlternate;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Picmip
|
|
|
|
{
|
|
|
|
char platform[2];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct CardMemory
|
|
|
|
{
|
|
|
|
int platform[2];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GfxImage
|
|
|
|
{
|
|
|
|
GfxTexture textures;
|
|
|
|
int flags;
|
|
|
|
int imageFormat;
|
|
|
|
int resourceSize;
|
|
|
|
char mapType;
|
|
|
|
char semantic;
|
|
|
|
char category;
|
|
|
|
char flags2;
|
|
|
|
Picmip picmip;
|
|
|
|
char track;
|
|
|
|
//CardMemory cardMemory;
|
|
|
|
unsigned short width;
|
|
|
|
unsigned short height;
|
|
|
|
unsigned short depth;
|
|
|
|
unsigned short numElements;
|
|
|
|
char pad3[4];
|
|
|
|
void* pixelData;
|
|
|
|
//GfxImageLoadDef *loadDef;
|
|
|
|
uint64_t streams[4];
|
|
|
|
const char* name;
|
|
|
|
};
|
2021-12-22 21:32:09 +01:00
|
|
|
|
|
|
|
struct Bounds
|
|
|
|
{
|
|
|
|
vec3_t midPoint;
|
|
|
|
vec3_t halfSize;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pmove_t
|
|
|
|
{
|
|
|
|
};
|
|
|
|
|
|
|
|
struct trace_t
|
|
|
|
{
|
|
|
|
char __pad0[0x29];
|
|
|
|
bool allsolid; // Confirmed in CM_PositionTestCapsuleInTriangle
|
|
|
|
bool startsolid; // Confirmed in PM_JitterPoint
|
|
|
|
};
|
|
|
|
|
2021-09-27 01:37:48 +02:00
|
|
|
namespace hks
|
|
|
|
{
|
2021-09-28 02:11:17 +02:00
|
|
|
struct GenericChunkHeader
|
|
|
|
{
|
|
|
|
unsigned __int64 m_flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ChunkHeader : GenericChunkHeader
|
|
|
|
{
|
|
|
|
ChunkHeader* m_next;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct UserData : ChunkHeader
|
|
|
|
{
|
|
|
|
unsigned __int64 m_envAndSizeOffsetHighBits;
|
|
|
|
unsigned __int64 m_metaAndSizeOffsetLowBits;
|
|
|
|
char m_data[8];
|
|
|
|
};
|
|
|
|
|
2021-09-27 01:37:48 +02:00
|
|
|
struct InternString
|
|
|
|
{
|
|
|
|
unsigned __int64 m_flags;
|
|
|
|
unsigned __int64 m_lengthbits;
|
|
|
|
unsigned int m_hash;
|
|
|
|
char m_data[30];
|
|
|
|
};
|
|
|
|
|
2021-10-01 00:55:14 +02:00
|
|
|
struct HashTable;
|
2021-10-02 01:08:04 +02:00
|
|
|
struct cclosure;
|
2021-10-01 00:55:14 +02:00
|
|
|
|
2021-09-27 01:37:48 +02:00
|
|
|
union HksValue
|
|
|
|
{
|
2021-10-02 01:08:04 +02:00
|
|
|
cclosure* cClosure;
|
2021-09-27 01:37:48 +02:00
|
|
|
void* closure;
|
2021-09-28 02:11:17 +02:00
|
|
|
UserData* userData;
|
2021-10-01 00:55:14 +02:00
|
|
|
HashTable* table;
|
2021-09-27 01:37:48 +02:00
|
|
|
void* tstruct;
|
|
|
|
InternString* str;
|
|
|
|
void* thread;
|
|
|
|
void* ptr;
|
|
|
|
float number;
|
|
|
|
unsigned int native;
|
|
|
|
bool boolean;
|
|
|
|
};
|
|
|
|
|
2021-09-28 02:11:17 +02:00
|
|
|
enum HksObjectType
|
2021-09-27 01:37:48 +02:00
|
|
|
{
|
2021-09-28 02:11:17 +02:00
|
|
|
TANY = 0xFFFFFFFE,
|
|
|
|
TNONE = 0xFFFFFFFF,
|
|
|
|
TNIL = 0x0,
|
|
|
|
TBOOLEAN = 0x1,
|
|
|
|
TLIGHTUSERDATA = 0x2,
|
|
|
|
TNUMBER = 0x3,
|
|
|
|
TSTRING = 0x4,
|
|
|
|
TTABLE = 0x5,
|
2021-10-01 23:41:32 +02:00
|
|
|
TFUNCTION = 0x6, // idk
|
2021-09-28 02:11:17 +02:00
|
|
|
TUSERDATA = 0x7,
|
|
|
|
TTHREAD = 0x8,
|
2021-10-01 23:41:32 +02:00
|
|
|
TIFUNCTION = 0x9, // Lua function
|
|
|
|
TCFUNCTION = 0xA, // C function
|
2021-09-28 02:11:17 +02:00
|
|
|
TUI64 = 0xB,
|
|
|
|
TSTRUCT = 0xC,
|
|
|
|
NUM_TYPE_OBJECTS = 0xE,
|
2021-09-27 01:37:48 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct HksObject
|
|
|
|
{
|
2021-09-28 02:11:17 +02:00
|
|
|
HksObjectType t;
|
2021-09-27 01:37:48 +02:00
|
|
|
HksValue v;
|
|
|
|
};
|
|
|
|
|
2021-10-01 23:41:32 +02:00
|
|
|
const struct hksInstruction
|
|
|
|
{
|
|
|
|
unsigned int code;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ActivationRecord
|
|
|
|
{
|
|
|
|
HksObject* m_base;
|
|
|
|
const hksInstruction* m_returnAddress;
|
|
|
|
__int16 m_tailCallDepth;
|
|
|
|
__int16 m_numVarargs;
|
|
|
|
int m_numExpectedReturns;
|
|
|
|
};
|
|
|
|
|
2021-10-01 00:55:14 +02:00
|
|
|
struct CallStack
|
|
|
|
{
|
2021-10-01 23:41:32 +02:00
|
|
|
ActivationRecord* m_records;
|
|
|
|
ActivationRecord* m_lastrecord;
|
|
|
|
ActivationRecord* m_current;
|
|
|
|
const hksInstruction* m_current_lua_pc;
|
|
|
|
const hksInstruction* m_hook_return_addr;
|
2021-10-01 00:55:14 +02:00
|
|
|
int m_hook_level;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ApiStack
|
2021-09-27 01:37:48 +02:00
|
|
|
{
|
|
|
|
HksObject* top;
|
|
|
|
HksObject* base;
|
|
|
|
HksObject* alloc_top;
|
|
|
|
HksObject* bottom;
|
|
|
|
};
|
|
|
|
|
2021-10-01 23:41:32 +02:00
|
|
|
struct UpValue : ChunkHeader
|
|
|
|
{
|
|
|
|
HksObject m_storage;
|
|
|
|
HksObject* loc;
|
|
|
|
UpValue* m_next;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct CallSite
|
|
|
|
{
|
|
|
|
_SETJMP_FLOAT128 m_jumpBuffer[16];
|
|
|
|
CallSite* m_prev;
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Status
|
|
|
|
{
|
|
|
|
NEW = 0x1,
|
|
|
|
RUNNING = 0x2,
|
|
|
|
YIELDED = 0x3,
|
|
|
|
DEAD_ERROR = 0x4,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum HksError
|
|
|
|
{
|
|
|
|
HKS_NO_ERROR = 0x0,
|
|
|
|
LUA_ERRSYNTAX = 0xFFFFFFFC,
|
|
|
|
LUA_ERRFILE = 0xFFFFFFFB,
|
|
|
|
LUA_ERRRUN = 0xFFFFFF9C,
|
|
|
|
LUA_ERRMEM = 0xFFFFFF38,
|
|
|
|
LUA_ERRERR = 0xFFFFFED4,
|
|
|
|
HKS_THROWING_ERROR = 0xFFFFFE0C,
|
|
|
|
HKS_GC_YIELD = 0x1,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct lua_Debug
|
|
|
|
{
|
|
|
|
int event;
|
|
|
|
const char* name;
|
|
|
|
const char* namewhat;
|
|
|
|
const char* what;
|
|
|
|
const char* source;
|
|
|
|
int currentline;
|
|
|
|
int nups;
|
|
|
|
int nparams;
|
|
|
|
int ishksfunc;
|
|
|
|
int linedefined;
|
|
|
|
int lastlinedefined;
|
|
|
|
char short_src[512];
|
|
|
|
int callstack_level;
|
|
|
|
int is_tail_call;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct lua_State : ChunkHeader
|
2021-10-01 00:55:14 +02:00
|
|
|
{
|
2021-10-01 23:41:32 +02:00
|
|
|
void* m_global;
|
2021-10-01 00:55:14 +02:00
|
|
|
CallStack m_callStack;
|
|
|
|
ApiStack m_apistack;
|
2021-10-01 23:41:32 +02:00
|
|
|
UpValue* pending;
|
|
|
|
HksObject globals;
|
|
|
|
HksObject m_cEnv;
|
|
|
|
CallSite* m_callsites;
|
|
|
|
int m_numberOfCCalls;
|
|
|
|
void* m_context;
|
|
|
|
InternString* m_name;
|
|
|
|
lua_State* m_nextState;
|
|
|
|
lua_State* m_nextStateStack;
|
|
|
|
Status m_status;
|
|
|
|
HksError m_error;
|
2021-10-01 00:55:14 +02:00
|
|
|
};
|
|
|
|
|
2021-09-27 01:37:48 +02:00
|
|
|
using lua_function = int(__fastcall*)(lua_State*);
|
|
|
|
|
|
|
|
struct luaL_Reg
|
|
|
|
{
|
|
|
|
const char* name;
|
|
|
|
lua_function function;
|
|
|
|
};
|
2021-10-01 00:55:14 +02:00
|
|
|
|
|
|
|
struct Node
|
|
|
|
{
|
|
|
|
HksObject m_key;
|
|
|
|
HksObject m_value;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Metatable
|
|
|
|
{
|
|
|
|
};
|
|
|
|
|
|
|
|
struct HashTable : ChunkHeader
|
|
|
|
{
|
|
|
|
Metatable* m_meta;
|
|
|
|
unsigned int m_version;
|
|
|
|
unsigned int m_mask;
|
|
|
|
Node* m_hashPart;
|
|
|
|
HksObject* m_arrayPart;
|
|
|
|
unsigned int m_arraySize;
|
|
|
|
Node* m_freeNode;
|
|
|
|
};
|
2021-10-02 01:08:04 +02:00
|
|
|
|
|
|
|
struct cclosure : ChunkHeader
|
|
|
|
{
|
|
|
|
lua_function m_function;
|
|
|
|
HashTable* m_env;
|
|
|
|
__int16 m_numUpvalues;
|
|
|
|
__int16 m_flags;
|
|
|
|
InternString* m_name;
|
|
|
|
HksObject m_upvalues[1];
|
|
|
|
};
|
2021-09-27 01:37:48 +02:00
|
|
|
}
|
2021-04-20 00:56:11 +02:00
|
|
|
}
|