New gamedata organization (bug 3546, r=ds,pred).
This commit is contained in:
parent
bc3491c5bd
commit
e31cbbfe21
@ -90,9 +90,37 @@ struct TempSigInfo
|
||||
unsigned int s_ServerBinCRC;
|
||||
bool s_ServerBinCRC_Ok = false;
|
||||
|
||||
static bool DoesGameMatch(const char *value)
|
||||
{
|
||||
if (strcmp(value, g_Game) == 0 ||
|
||||
strcmp(value, g_GameDesc) == 0 ||
|
||||
strcmp(value, g_GameName) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool DoesEngineMatch(const char *value)
|
||||
{
|
||||
#if SOURCE_ENGINE == SE_EPISODEONE
|
||||
if (strcmp(value, "original") == 0)
|
||||
#elif SOURCE_ENGINE == SE_ORANGEBOX
|
||||
if (strcmp(value, "orangebox") == 0)
|
||||
#elif SOURCE_ENGINE == SE_LEFT4DEAD
|
||||
if (strcmp(value, "left4dead") == 0)
|
||||
#else
|
||||
#error "Unknown engine type"
|
||||
#endif
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
CGameConfig::CGameConfig(const char *file)
|
||||
{
|
||||
m_pFile = sm_strdup(file);
|
||||
strncopy(m_File, file, sizeof(m_File));
|
||||
m_pOffsets = sm_trie_create();
|
||||
m_pProps = sm_trie_create();
|
||||
m_pKeys = sm_trie_create();
|
||||
@ -110,7 +138,6 @@ CGameConfig::~CGameConfig()
|
||||
sm_trie_destroy(m_pProps);
|
||||
sm_trie_destroy(m_pKeys);
|
||||
sm_trie_destroy(m_pSigs);
|
||||
delete [] m_pFile;
|
||||
delete m_pStrings;
|
||||
}
|
||||
|
||||
@ -136,11 +163,9 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n
|
||||
}
|
||||
case PSTATE_GAMES:
|
||||
{
|
||||
if ((strcmp(name, "*") == 0)
|
||||
|| (strcmp(name, "#default") == 0)
|
||||
|| (strcasecmp(name, g_Game) == 0)
|
||||
|| (strcasecmp(name, g_GameDesc) == 0)
|
||||
|| (strcasecmp(name, g_GameName) == 0))
|
||||
if (strcmp(name, "*") == 0 ||
|
||||
strcmp(name, "#default") == 0 ||
|
||||
DoesGameMatch(name))
|
||||
{
|
||||
bShouldBeReadingDefault = true;
|
||||
m_ParseState = PSTATE_GAMEDEFS;
|
||||
@ -160,12 +185,15 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n
|
||||
{
|
||||
m_ParseState = PSTATE_GAMEDEFS_KEYS;
|
||||
}
|
||||
else if ((strcmp(name, "#supported") == 0)
|
||||
&& (strcmp(m_Game, "#default") == 0))
|
||||
else if ((strcmp(name, "#supported") == 0) && (strcmp(m_Game, "#default") == 0))
|
||||
{
|
||||
m_ParseState = PSTATE_GAMEDEFS_SUPPORTED;
|
||||
/* Ignore this section unless we get a game. */
|
||||
bShouldBeReadingDefault = false;
|
||||
had_game = false;
|
||||
matched_game = false;
|
||||
had_engine = false;
|
||||
matched_engine = false;
|
||||
}
|
||||
else if (strcmp(name, "Signatures") == 0)
|
||||
{
|
||||
@ -244,7 +272,7 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n
|
||||
if (error[0] != '\0')
|
||||
{
|
||||
m_IgnoreLevel = 1;
|
||||
g_Logger.LogError("[SM] Error while parsing CRC section for \"%s\" (%s):", m_Game, m_pFile);
|
||||
g_Logger.LogError("[SM] Error while parsing CRC section for \"%s\" (%s):", m_Game, m_CurFile);
|
||||
g_Logger.LogError("[SM] %s", error);
|
||||
} else {
|
||||
m_ParseState = PSTATE_GAMEDEFS_CRC_BINARY;
|
||||
@ -297,13 +325,29 @@ SMCResult CGameConfig::ReadSMC_KeyValue(const SMCStates *states, const char *key
|
||||
int id = m_pStrings->AddString(value);
|
||||
sm_trie_replace(m_pKeys, key, (void *)id);
|
||||
} else if (m_ParseState == PSTATE_GAMEDEFS_SUPPORTED) {
|
||||
if (strcmp(key, "game") == 0
|
||||
&& (strcasecmp(value, g_Game) == 0
|
||||
|| strcasecmp(value, g_GameDesc) == 0
|
||||
|| strcasecmp(value, g_GameName) == 0)
|
||||
)
|
||||
if (strcmp(key, "game") == 0)
|
||||
{
|
||||
bShouldBeReadingDefault = true;
|
||||
had_game = true;
|
||||
if (DoesGameMatch(value))
|
||||
{
|
||||
matched_game = true;
|
||||
}
|
||||
if ((!had_engine && matched_game) || (matched_engine && matched_game))
|
||||
{
|
||||
bShouldBeReadingDefault = true;
|
||||
}
|
||||
}
|
||||
else if (strcmp(key, "engine") == 0)
|
||||
{
|
||||
had_engine = true;
|
||||
if (DoesEngineMatch(value))
|
||||
{
|
||||
matched_engine = true;
|
||||
}
|
||||
if ((!had_game && matched_engine) || (matched_game && matched_engine))
|
||||
{
|
||||
bShouldBeReadingDefault = true;
|
||||
}
|
||||
}
|
||||
} else if (m_ParseState == PSTATE_GAMEDEFS_SIGNATURES_SIG) {
|
||||
if (strcmp(key, PLATFORM_NAME) == 0)
|
||||
@ -390,7 +434,7 @@ SMCResult CGameConfig::ReadSMC_LeavingSection(const SMCStates *states)
|
||||
g_Logger.LogError("[SM] Unable to find property %s.%s (file \"%s\") (mod \"%s\")",
|
||||
m_Class,
|
||||
m_Prop,
|
||||
m_pFile,
|
||||
m_CurFile,
|
||||
m_Game);
|
||||
}
|
||||
}
|
||||
@ -440,7 +484,7 @@ SMCResult CGameConfig::ReadSMC_LeavingSection(const SMCStates *states)
|
||||
{
|
||||
g_Logger.LogError("[SM] Unrecognized library \"%s\" (gameconf \"%s\")",
|
||||
s_TempSig.library,
|
||||
m_pFile);
|
||||
m_CurFile);
|
||||
} else {
|
||||
#if defined PLATFORM_LINUX
|
||||
if (s_TempSig.sig[0] == '@')
|
||||
@ -457,12 +501,12 @@ SMCResult CGameConfig::ReadSMC_LeavingSection(const SMCStates *states)
|
||||
} else {
|
||||
g_Logger.LogError("[SM] Unable to load library \"%s\" (gameconf \"%s\")",
|
||||
s_TempSig.library,
|
||||
m_pFile);
|
||||
m_File);
|
||||
}
|
||||
} else {
|
||||
g_Logger.LogError("[SM] Unable to find library \"%s\" in memory (gameconf \"%s\")",
|
||||
s_TempSig.library,
|
||||
m_pFile);
|
||||
m_File);
|
||||
}
|
||||
}
|
||||
if (final_addr)
|
||||
@ -526,37 +570,206 @@ skip_find:
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
|
||||
bool CGameConfig::Reparse(char *error, size_t maxlength)
|
||||
{
|
||||
SMCError err;
|
||||
SMCStates state = {0, 0};
|
||||
#define MSTATE_NONE 0
|
||||
#define MSTATE_MAIN 1
|
||||
#define MSTATE_FILE 2
|
||||
|
||||
char path[PLATFORM_MAX_PATH];
|
||||
g_SourceMod.BuildPath(Path_SM, path, sizeof(path), "gamedata/%s.txt", m_pFile);
|
||||
/* Backwards compatibility */
|
||||
if (!g_LibSys.PathExists(path))
|
||||
class MasterReader : public ITextListener_SMC
|
||||
{
|
||||
public:
|
||||
virtual void ReadSMC_ParseStart()
|
||||
{
|
||||
g_SourceMod.BuildPath(Path_SM, path, sizeof(path), "configs/gamedata/%s.txt", m_pFile);
|
||||
state = MSTATE_NONE;
|
||||
ignoreLevel = 0;
|
||||
}
|
||||
|
||||
/* Initialize parse states */
|
||||
m_IgnoreLevel = 0;
|
||||
bShouldBeReadingDefault = true;
|
||||
m_ParseState = PSTATE_NONE;
|
||||
virtual SMCResult ReadSMC_NewSection(const SMCStates *states, const char *name)
|
||||
{
|
||||
if (ignoreLevel)
|
||||
{
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
|
||||
if (state == MSTATE_NONE)
|
||||
{
|
||||
if (strcmp(name, "Game Master") == 0)
|
||||
{
|
||||
state = MSTATE_MAIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
ignoreLevel++;
|
||||
}
|
||||
}
|
||||
else if (state == MSTATE_MAIN)
|
||||
{
|
||||
strncopy(cur_file, name, sizeof(cur_file));
|
||||
had_engine = false;
|
||||
matched_engine = false;
|
||||
had_game = false;
|
||||
matched_game = false;
|
||||
state = MSTATE_FILE;
|
||||
}
|
||||
else if (state == MSTATE_FILE)
|
||||
{
|
||||
ignoreLevel++;
|
||||
}
|
||||
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
|
||||
virtual SMCResult ReadSMC_KeyValue(const SMCStates *states, const char *key, const char *value)
|
||||
{
|
||||
if (ignoreLevel || state != MSTATE_FILE)
|
||||
{
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
|
||||
if (strcmp(key, "engine") == 0)
|
||||
{
|
||||
had_engine = true;
|
||||
if (DoesEngineMatch(value))
|
||||
{
|
||||
matched_engine = true;
|
||||
}
|
||||
}
|
||||
else if (strcmp(key, "game") == 0)
|
||||
{
|
||||
had_game = true;
|
||||
if (DoesGameMatch(value))
|
||||
{
|
||||
matched_game = true;
|
||||
}
|
||||
}
|
||||
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
|
||||
virtual SMCResult ReadSMC_LeavingSection(const SMCStates *states)
|
||||
{
|
||||
if (ignoreLevel)
|
||||
{
|
||||
ignoreLevel--;
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
|
||||
if (state == MSTATE_FILE)
|
||||
{
|
||||
/* The four success conditions:
|
||||
* 1. Needed nothing.
|
||||
* 2. Needed game only.
|
||||
* 3. Needed engine only.
|
||||
* 4. Needed both engine and game.
|
||||
* Final result is minimized via k-map.
|
||||
*/
|
||||
#if 0
|
||||
if ((!had_engine && !had_game) ||
|
||||
(!had_engine && (had_game && matched_game)) ||
|
||||
(!had_game && (had_engine && matched_engine)) ||
|
||||
((had_game && had_engine) && (matched_game && matched_engine)))
|
||||
#endif
|
||||
if ((!had_engine && !had_game) ||
|
||||
(!had_engine && matched_game) ||
|
||||
(!had_game && matched_engine) ||
|
||||
(matched_engine && matched_game))
|
||||
{
|
||||
fileList->push_back(cur_file);
|
||||
}
|
||||
state = MSTATE_MAIN;
|
||||
}
|
||||
else if (state == MSTATE_MAIN)
|
||||
{
|
||||
state = MSTATE_NONE;
|
||||
}
|
||||
|
||||
return SMCResult_Continue;
|
||||
}
|
||||
public:
|
||||
List<String> *fileList;
|
||||
unsigned int state;
|
||||
unsigned int ignoreLevel;
|
||||
char cur_file[PLATFORM_MAX_PATH];
|
||||
bool had_engine;
|
||||
bool matched_engine;
|
||||
bool had_game;
|
||||
bool matched_game;
|
||||
};
|
||||
|
||||
static MasterReader master_reader;
|
||||
|
||||
bool CGameConfig::Reparse(char *error, size_t maxlength)
|
||||
{
|
||||
/* Reset cached data */
|
||||
m_pStrings->Reset();
|
||||
sm_trie_clear(m_pOffsets);
|
||||
sm_trie_clear(m_pProps);
|
||||
sm_trie_clear(m_pKeys);
|
||||
|
||||
if ((err=textparsers->ParseSMCFile(path, this, &state, error, maxlength))
|
||||
char path[PLATFORM_MAX_PATH];
|
||||
|
||||
/* See if we can use the extended gamedata format. */
|
||||
g_SourceMod.BuildPath(Path_SM, path, sizeof(path), "gamedata/%s/master.games.txt", m_File);
|
||||
if (!g_LibSys.PathExists(path))
|
||||
{
|
||||
/* Nope, use the old mechanism. */
|
||||
UTIL_Format(path, sizeof(path), "%s.txt", m_File);
|
||||
return EnterFile(path, error, maxlength);
|
||||
}
|
||||
|
||||
/* Otherwise, it's time to parse the master. */
|
||||
SMCError err;
|
||||
SMCStates state = {0, 0};
|
||||
List<String> fileList;
|
||||
master_reader.fileList = &fileList;
|
||||
|
||||
err = textparsers->ParseSMCFile(path, &master_reader, &state, error, maxlength);
|
||||
if (err != SMCError_Okay)
|
||||
{
|
||||
const char *msg = textparsers->GetSMCErrorString(err);
|
||||
|
||||
g_Logger.LogError("[SM] Error parsing master gameconf file \"%s\":", path);
|
||||
g_Logger.LogError("[SM] Error %d on line %d, col %d: %s",
|
||||
err,
|
||||
state.line,
|
||||
state.col,
|
||||
msg ? msg : "Unknown error");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Go through each file we found and parse it. */
|
||||
List<String>::iterator iter;
|
||||
for (iter = fileList.begin(); iter != fileList.end(); iter++)
|
||||
{
|
||||
UTIL_Format(path, sizeof(path), "%s/%s", m_File, (*iter).c_str());
|
||||
if (!EnterFile(path, error, maxlength))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CGameConfig::EnterFile(const char *file, char *error, size_t maxlength)
|
||||
{
|
||||
SMCError err;
|
||||
SMCStates state = {0, 0};
|
||||
|
||||
g_SourceMod.BuildPath(Path_SM, m_CurFile, sizeof(m_CurFile), "gamedata/%s", file);
|
||||
|
||||
/* Initialize parse states */
|
||||
m_IgnoreLevel = 0;
|
||||
bShouldBeReadingDefault = true;
|
||||
m_ParseState = PSTATE_NONE;
|
||||
|
||||
if ((err=textparsers->ParseSMCFile(m_CurFile, this, &state, error, maxlength))
|
||||
!= SMCError_Okay)
|
||||
{
|
||||
const char *msg;
|
||||
|
||||
msg = textparsers->GetSMCErrorString(err);
|
||||
|
||||
g_Logger.LogError("[SM] Error parsing gameconfig file \"%s\":", path);
|
||||
g_Logger.LogError("[SM] Error parsing gameconfig file \"%s\":", m_CurFile);
|
||||
g_Logger.LogError("[SM] Error %d on line %d, col %d: %s",
|
||||
err,
|
||||
state.line,
|
||||
@ -722,7 +935,7 @@ void GameConfigManager::CloseGameConfigFile(IGameConfig *cfg)
|
||||
|
||||
if (pConfig->DecRefCount() == 0)
|
||||
{
|
||||
sm_trie_delete(m_pLookup, pConfig->m_pFile);
|
||||
sm_trie_delete(m_pLookup, pConfig->m_File);
|
||||
delete pConfig;
|
||||
}
|
||||
}
|
||||
|
@ -55,6 +55,7 @@ public:
|
||||
~CGameConfig();
|
||||
public:
|
||||
bool Reparse(char *error, size_t maxlength);
|
||||
bool EnterFile(const char *file, char *error, size_t maxlength);
|
||||
public: //ITextListener_SMC
|
||||
SMCResult ReadSMC_NewSection(const SMCStates *states, const char *name);
|
||||
SMCResult ReadSMC_KeyValue(const SMCStates *states, const char *key, const char *value);
|
||||
@ -69,7 +70,8 @@ public:
|
||||
unsigned int DecRefCount();
|
||||
private:
|
||||
BaseStringTable *m_pStrings;
|
||||
char *m_pFile;
|
||||
char m_File[PLATFORM_MAX_PATH];
|
||||
char m_CurFile[PLATFORM_MAX_PATH];
|
||||
Trie *m_pOffsets;
|
||||
Trie *m_pProps;
|
||||
Trie *m_pKeys;
|
||||
@ -83,6 +85,10 @@ private:
|
||||
char m_offset[64];
|
||||
char m_Game[256];
|
||||
bool bShouldBeReadingDefault;
|
||||
bool had_game;
|
||||
bool matched_game;
|
||||
bool had_engine;
|
||||
bool matched_engine;
|
||||
|
||||
/* Custom Sections */
|
||||
unsigned int m_CustomLevel;
|
||||
|
@ -1,180 +0,0 @@
|
||||
"Games"
|
||||
{
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "13"
|
||||
"linux" "14"
|
||||
}
|
||||
|
||||
"m_lifeState"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_lifeState"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"dod"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"RadioMenuTimeout" "4"
|
||||
}
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "11"
|
||||
"linux" "12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"ship"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "18"
|
||||
"linux" "19"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"tf"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "11"
|
||||
"linux" "12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"ageofchivalry"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"RadioMenuTimeout" "4"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "11"
|
||||
"linux" "12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"left4dead"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "11"
|
||||
"linux" "12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Which games support ShowMenu?
|
||||
*/
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "dod"
|
||||
"game" "sourceforts"
|
||||
"game" "insurgency"
|
||||
"game" "Insurgency"
|
||||
"game" "tf"
|
||||
"game" "pvkii"
|
||||
"game" "diprip"
|
||||
"game" "synergy"
|
||||
"game" "FortressForever"
|
||||
"game" "left4dead"
|
||||
"game" "ageofchivalry"
|
||||
"game" "obsidian"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"HudRadioMenuMsg" "ShowMenu"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Which games support HudMsg?
|
||||
*/
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "hl2mp"
|
||||
"game" "sourceforts"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
"game" "obsidian"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"HudTextMsg" "HudMsg"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Which games use an extra byte in the HintText
|
||||
* message? Even though it's in the SDK, apparently
|
||||
* only CS:S does this right now.
|
||||
*/
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"HintTextPreByte" "yes"
|
||||
}
|
||||
}
|
||||
|
||||
"cstrike"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"GameExtension" "game.cstrike"
|
||||
}
|
||||
}
|
||||
|
||||
"tf"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"GameExtension" "game.tf2"
|
||||
"RadioMenuTimeout" "4"
|
||||
}
|
||||
}
|
||||
|
||||
"synergy"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"RadioMenuTimeout" "4"
|
||||
}
|
||||
}
|
||||
}
|
143
gamedata/core.games/common.games.txt
Normal file
143
gamedata/core.games/common.games.txt
Normal file
@ -0,0 +1,143 @@
|
||||
"Games"
|
||||
{
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"m_lifeState"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_lifeState"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Original engine specifics */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"engine" "original"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "13"
|
||||
"linux" "14"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* OB/L4D engine specifics */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"engine" "orangebox"
|
||||
"engine" "left4dead"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "11"
|
||||
"linux" "12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* The Ship is completely different */
|
||||
"ship"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GetDataDescMap"
|
||||
{
|
||||
"windows" "18"
|
||||
"linux" "19"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Which games support ShowMenu? */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "dod"
|
||||
"game" "sourceforts"
|
||||
"game" "insurgency"
|
||||
"game" "tf"
|
||||
"game" "pvkii"
|
||||
"game" "diprip"
|
||||
"game" "synergy"
|
||||
"game" "FortressForever"
|
||||
"game" "left4dead"
|
||||
"game" "obsidian"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"HudRadioMenuMsg" "ShowMenu"
|
||||
}
|
||||
}
|
||||
|
||||
/* Which games need a radio menu timeout? */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "tf"
|
||||
"game" "synergy"
|
||||
"game" "dod"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"RadioMenuTimeout" "4"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Which games support HudMsg?
|
||||
*/
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "hl2mp"
|
||||
"game" "sourceforts"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
"game" "obsidian"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"HudTextMsg" "HudMsg"
|
||||
}
|
||||
}
|
||||
|
||||
"cstrike"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"HintTextPreByte" "yes"
|
||||
"GameExtension" "game.cstrike"
|
||||
}
|
||||
}
|
||||
|
||||
"tf"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"GameExtension" "game.tf2"
|
||||
}
|
||||
}
|
||||
}
|
6
gamedata/core.games/master.games.txt
Normal file
6
gamedata/core.games/master.games.txt
Normal file
@ -0,0 +1,6 @@
|
||||
"Game Master"
|
||||
{
|
||||
"common.games.txt"
|
||||
{
|
||||
}
|
||||
}
|
@ -1,635 +0,0 @@
|
||||
"Games"
|
||||
{
|
||||
/* Sounds */
|
||||
"#default"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"SlapSoundCount" "3"
|
||||
"SlapSound1" "player/pl_fallpain1.wav"
|
||||
"SlapSound2" "player/pl_fallpain3.wav"
|
||||
"SlapSound3" "player/pl_pain5.wav"
|
||||
"m_iFrags" "m_iFrags"
|
||||
}
|
||||
"Offsets"
|
||||
{
|
||||
"m_iHealth"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_iHealth"
|
||||
}
|
||||
"m_lifeState"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_lifeState"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* General Temp Entities */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into CBaseTempEntity constructor */
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"windows" "17"
|
||||
}
|
||||
"GetTEName"
|
||||
{
|
||||
"windows" "4"
|
||||
"linux" "4"
|
||||
}
|
||||
"GetTENext"
|
||||
{
|
||||
"windows" "8"
|
||||
"linux" "8"
|
||||
}
|
||||
"TE_GetServerClass"
|
||||
{
|
||||
"windows" "0"
|
||||
"linux" "0"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"CBaseTempEntity"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00"
|
||||
}
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Create Entity Signatures */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x64\x8B\xCB"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z18CreateEntityByNamePKci"
|
||||
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* CGlobalEntityList */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into LevelShutdown */
|
||||
"gEntList"
|
||||
{
|
||||
"windows" "11"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"LevelShutdown"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
|
||||
}
|
||||
"gEntList"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@gEntList"
|
||||
}
|
||||
|
||||
/* Functions in CGlobalEntityList */
|
||||
"FindEntityByClassname"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x85\xC9\x57\x74\x19\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x83\xC0\x01\xC1\xE0\x04\x8B\x3C\x30\xEB\x06\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x39\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x03"
|
||||
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* General GameRules */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into CreateGameRulesObject */
|
||||
"g_pGameRules"
|
||||
{
|
||||
"windows" "2"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* This signature sometimes has multiple matches, but this
|
||||
* does not matter as g_pGameRules is involved in all of them.
|
||||
* The same g_pGameRules offset applies to each match.
|
||||
*
|
||||
* Sometimes this block of bytes is at the beginning of the static
|
||||
* CreateGameRulesObject function and sometimes it is in the middle
|
||||
* of an entirely different function. This depends on the game.
|
||||
*/
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
|
||||
}
|
||||
"g_pGameRules"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@g_pGameRules"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* IServer interface pointer */
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into IVEngineServer::CreateFakeClient */
|
||||
"sv"
|
||||
{
|
||||
"windows" "6"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* CBaseServer object for IServer interface */
|
||||
"sv"
|
||||
{
|
||||
"library" "engine"
|
||||
"linux" "@sv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* EntityFactoryDictionary function */
|
||||
"#default"
|
||||
{
|
||||
"Signatures"
|
||||
{
|
||||
"EntityFactory"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\xB8\x01\x00\x00\x00\x84\x2A\x2A\x2A\x2A\x2A\x75\x1D\x09\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8\x2A\x2A\x2A\x2A\xC3"
|
||||
"linux" "@_Z23EntityFactoryDictionaryv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* CBaseEntityOutput::FireOutput */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
"Signatures"
|
||||
{
|
||||
"FireOutput"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6"
|
||||
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
|
||||
}
|
||||
}
|
||||
"Offsets"
|
||||
{
|
||||
"FireOutputBackup"
|
||||
{
|
||||
"windows" "6"
|
||||
"linux" "10"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* SetUserInfo data */
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/**
|
||||
* CBaseClient::SetUserCVar(char const*,char const*);
|
||||
* Linux offset straight from VTable dump.
|
||||
* Windows offset is crazy. Found the windows 'SetName' function using string "(%d)%-0.*s"
|
||||
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
|
||||
*/
|
||||
"SetUserCvar"
|
||||
{
|
||||
"windows" "17"
|
||||
"linux" "55"
|
||||
}
|
||||
/**
|
||||
* Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made.
|
||||
* Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end.
|
||||
* Linux: mov byte ptr [esi+98h], 0
|
||||
* Win: mov byte ptr [esi+0A4h], 0
|
||||
*/
|
||||
"InfoChanged"
|
||||
{
|
||||
"windows" "164"
|
||||
"linux" "152"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Team Fortress 2 */
|
||||
"tf"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "406"
|
||||
"linux" "410"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "238"
|
||||
"linux" "239"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "236"
|
||||
"linux" "237"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "193"
|
||||
"linux" "194"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "197"
|
||||
"linux" "198"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "388"
|
||||
"linux" "388"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "229"
|
||||
"linux" "230"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Day of Defeat: Source */
|
||||
"dod"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "350"
|
||||
"linux" "351"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "238"
|
||||
"linux" "239"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "236"
|
||||
"linux" "237"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "193"
|
||||
"linux" "194"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "197"
|
||||
"linux" "198"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "388"
|
||||
"linux" "388"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "229"
|
||||
"linux" "230"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Afe of Chivalry */
|
||||
"ageofchivalry"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "351"
|
||||
"linux" "352"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "239"
|
||||
"linux" "240"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "237"
|
||||
"linux" "238"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "194"
|
||||
"linux" "195"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "198"
|
||||
"linux" "199"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "101"
|
||||
"linux" "102"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "389"
|
||||
"linux" "389"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "230"
|
||||
"linux" "231"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Obsidian Conflict 1.3 */
|
||||
"obsidian"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "350"
|
||||
"linux" "351"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "237"
|
||||
"linux" "238"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "235"
|
||||
"linux" "236"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "190"
|
||||
"linux" "191"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "194"
|
||||
"linux" "195"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "393"
|
||||
"linux" "393"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "127"
|
||||
"linux" "128"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "119"
|
||||
"linux" "120"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "228"
|
||||
"linux" "229"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
37
gamedata/sdktools.games/common.games.txt
Normal file
37
gamedata/sdktools.games/common.games.txt
Normal file
@ -0,0 +1,37 @@
|
||||
"Games"
|
||||
{
|
||||
/* Sounds */
|
||||
"#default"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"SlapSoundCount" "3"
|
||||
"SlapSound1" "player/pl_fallpain1.wav"
|
||||
"SlapSound2" "player/pl_fallpain3.wav"
|
||||
"SlapSound3" "player/pl_pain5.wav"
|
||||
}
|
||||
}
|
||||
|
||||
/* Properties */
|
||||
"#default"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"m_iFrags" "m_iFrags"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"m_iHealth"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_iHealth"
|
||||
}
|
||||
"m_lifeState"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_lifeState"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
288
gamedata/sdktools.games/engine.ep1.txt
Normal file
288
gamedata/sdktools.games/engine.ep1.txt
Normal file
@ -0,0 +1,288 @@
|
||||
"Games"
|
||||
{
|
||||
/* General Temp Entities */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "hl2mp"
|
||||
"game" "ship"
|
||||
"game" "!Dystopia"
|
||||
"game" "insurgency"
|
||||
"game" "pvkii"
|
||||
"game" "sourceforts"
|
||||
"game" "FortressForever"
|
||||
"game" "empires"
|
||||
"game" "synergy"
|
||||
"game" "hidden"
|
||||
"game" "zombie_master"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into CBaseTempEntity constructor */
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"windows" "17"
|
||||
}
|
||||
"GetTEName"
|
||||
{
|
||||
"windows" "4"
|
||||
"linux" "4"
|
||||
}
|
||||
"GetTENext"
|
||||
{
|
||||
"windows" "8"
|
||||
"linux" "8"
|
||||
}
|
||||
"TE_GetServerClass"
|
||||
{
|
||||
"windows" "1"
|
||||
"linux" "1"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"CBaseTempEntity"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00"
|
||||
}
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* General GameRules */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "garrysmod"
|
||||
"game" "hl2mp"
|
||||
"game" "ship"
|
||||
"game" "!Dystopia"
|
||||
"game" "insurgency"
|
||||
"game" "pvkii"
|
||||
"game" "sourceforts"
|
||||
"game" "FortressForever"
|
||||
"game" "empires"
|
||||
"game" "synergy"
|
||||
"game" "hidden"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into CreateGameRulesObject */
|
||||
"g_pGameRules"
|
||||
{
|
||||
"windows" "2"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* This signature sometimes has multiple matches, but this
|
||||
* does not matter as g_pGameRules is involved in all of them.
|
||||
* The same g_pGameRules offset applies to each match.
|
||||
*
|
||||
* Sometimes this block of bytes is at the beginning of the static
|
||||
* CreateGameRulesObject function and sometimes it is in the middle
|
||||
* of an entirely different function. This depends on the game.
|
||||
*/
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50"
|
||||
}
|
||||
"g_pGameRules"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@g_pGameRules"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* CGlobalEntityList */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "garrysmod"
|
||||
"game" "hl2mp"
|
||||
"game" "ship"
|
||||
"game" "insurgency"
|
||||
"game" "pvkii"
|
||||
"game" "sourceforts"
|
||||
"game" "FortressForever"
|
||||
"game" "empires"
|
||||
"game" "synergy"
|
||||
"game" "hidden"
|
||||
"game" "zombie_master"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into LevelShutdown */
|
||||
"gEntList"
|
||||
{
|
||||
"windows" "11"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"LevelShutdown"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
|
||||
}
|
||||
"gEntList"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@gEntList"
|
||||
}
|
||||
|
||||
/* Functions in CGlobalEntityList */
|
||||
"FindEntityByClassname"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x85\xC9\x57\x74\x2A\x8B\x01\xFF\x50\x2A\x8B\x08\x81\xE1\x2A\x2A\x2A\x2A\x83\xC1\x2A\xC1\xE1\x2A\x8B\x3C\x31\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x24\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\x9B\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
|
||||
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Create Entity Signatures */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "hl2mp"
|
||||
"game" "insurgency"
|
||||
"game" "pvkii"
|
||||
"game" "sourceforts"
|
||||
"game" "empires"
|
||||
"game" "synergy"
|
||||
"game" "hidden"
|
||||
"game" "FortressForever"
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\xCB\xFF\x50\x60"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z18CreateEntityByNamePKci"
|
||||
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x25\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x56\xFF\x50\x54\x85\xC0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* IServer interface pointer */
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into IVEngineServer::CreateFakeClient */
|
||||
"sv"
|
||||
{
|
||||
"windows" "6"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* CBaseServer object for IServer interface */
|
||||
"sv"
|
||||
{
|
||||
"library" "engine"
|
||||
"linux" "@sv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* EntityFactoryDictionary function */
|
||||
"#default"
|
||||
{
|
||||
"Signatures"
|
||||
{
|
||||
"EntityFactory"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\xB8\x01\x00\x00\x00\x84\x2A\x2A\x2A\x2A\x2A\x75\x1D\x09\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8\x2A\x2A\x2A\x2A\xC3"
|
||||
"linux" "@_Z23EntityFactoryDictionaryv"
|
||||
}
|
||||
}
|
||||
}
|
||||
/* CBaseEntityOutput::FireOutput */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
"game" "hl2mp"
|
||||
}
|
||||
"Signatures"
|
||||
{
|
||||
"FireOutput"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x81\xEC\x1C\x03\x00\x00\x53\x55\x56\x8B\x71\x14"
|
||||
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
|
||||
}
|
||||
}
|
||||
"Offsets"
|
||||
{
|
||||
"FireOutputBackup"
|
||||
{
|
||||
"windows" "6"
|
||||
"linux" "6"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* SetUserInfo data */
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/**
|
||||
* CBaseClient::SetUserCVar(char const*,char const*);
|
||||
* Linux offset straight from VTable dump.
|
||||
* Windows offset is crazy. Found the windows 'SetName' function using string "(%d)%-0.*s"
|
||||
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
|
||||
*/
|
||||
"SetUserCvar"
|
||||
{
|
||||
"windows" "17"
|
||||
"linux" "53"
|
||||
}
|
||||
/**
|
||||
* Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made.
|
||||
* Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end.
|
||||
* Linux: mov byte ptr [esi+98h], 0
|
||||
* Win: mov byte ptr [esi+0A4h], 0
|
||||
*/
|
||||
"InfoChanged"
|
||||
{
|
||||
"windows" "164"
|
||||
"linux" "152"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
257
gamedata/sdktools.games/engine.ep2.txt
Normal file
257
gamedata/sdktools.games/engine.ep2.txt
Normal file
@ -0,0 +1,257 @@
|
||||
"Games"
|
||||
{
|
||||
/* General Temp Entities */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into CBaseTempEntity constructor */
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"windows" "17"
|
||||
}
|
||||
"GetTEName"
|
||||
{
|
||||
"windows" "4"
|
||||
"linux" "4"
|
||||
}
|
||||
"GetTENext"
|
||||
{
|
||||
"windows" "8"
|
||||
"linux" "8"
|
||||
}
|
||||
"TE_GetServerClass"
|
||||
{
|
||||
"windows" "0"
|
||||
"linux" "0"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"CBaseTempEntity"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00"
|
||||
}
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Create Entity Signatures */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x64\x8B\xCB"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z18CreateEntityByNamePKci"
|
||||
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* CGlobalEntityList */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into LevelShutdown */
|
||||
"gEntList"
|
||||
{
|
||||
"windows" "11"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"LevelShutdown"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
|
||||
}
|
||||
"gEntList"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@gEntList"
|
||||
}
|
||||
|
||||
/* Functions in CGlobalEntityList */
|
||||
"FindEntityByClassname"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x85\xC9\x57\x74\x19\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x83\xC0\x01\xC1\xE0\x04\x8B\x3C\x30\xEB\x06\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x39\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x03"
|
||||
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* General GameRules */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into CreateGameRulesObject */
|
||||
"g_pGameRules"
|
||||
{
|
||||
"windows" "2"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* This signature sometimes has multiple matches, but this
|
||||
* does not matter as g_pGameRules is involved in all of them.
|
||||
* The same g_pGameRules offset applies to each match.
|
||||
*
|
||||
* Sometimes this block of bytes is at the beginning of the static
|
||||
* CreateGameRulesObject function and sometimes it is in the middle
|
||||
* of an entirely different function. This depends on the game.
|
||||
*/
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
|
||||
}
|
||||
"g_pGameRules"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@g_pGameRules"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* IServer interface pointer */
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* Offset into IVEngineServer::CreateFakeClient */
|
||||
"sv"
|
||||
{
|
||||
"windows" "6"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* CBaseServer object for IServer interface */
|
||||
"sv"
|
||||
{
|
||||
"library" "engine"
|
||||
"linux" "@sv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* EntityFactoryDictionary function */
|
||||
"#default"
|
||||
{
|
||||
"Signatures"
|
||||
{
|
||||
"EntityFactory"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\xB8\x01\x00\x00\x00\x84\x2A\x2A\x2A\x2A\x2A\x75\x1D\x09\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8\x2A\x2A\x2A\x2A\xC3"
|
||||
"linux" "@_Z23EntityFactoryDictionaryv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* CBaseEntityOutput::FireOutput */
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "dod"
|
||||
"game" "tf"
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
"Signatures"
|
||||
{
|
||||
"FireOutput"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6"
|
||||
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
|
||||
}
|
||||
}
|
||||
"Offsets"
|
||||
{
|
||||
"FireOutputBackup"
|
||||
{
|
||||
"windows" "6"
|
||||
"linux" "10"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* SetUserInfo data */
|
||||
"#default"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/**
|
||||
* CBaseClient::SetUserCVar(char const*,char const*);
|
||||
* Linux offset straight from VTable dump.
|
||||
* Windows offset is crazy. Found the windows 'SetName' function using string "(%d)%-0.*s"
|
||||
* Cross referenced back to the vtable and counted manually (SetUserCvar is 1 higher, offsets start from 1)
|
||||
*/
|
||||
"SetUserCvar"
|
||||
{
|
||||
"windows" "17"
|
||||
"linux" "55"
|
||||
}
|
||||
/**
|
||||
* Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made.
|
||||
* Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end.
|
||||
* Linux: mov byte ptr [esi+98h], 0
|
||||
* Win: mov byte ptr [esi+0A4h], 0
|
||||
*/
|
||||
"InfoChanged"
|
||||
{
|
||||
"windows" "164"
|
||||
"linux" "152"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -8,20 +8,6 @@
|
||||
"SlapSoundCount" "2"
|
||||
"SlapSound1" "player/damage1.wav"
|
||||
"SlapSound2" "player/damage2.wav"
|
||||
"m_iFrags" "m_iFrags"
|
||||
}
|
||||
"Offsets"
|
||||
{
|
||||
"m_iHealth"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_iHealth"
|
||||
}
|
||||
"m_lifeState"
|
||||
{
|
||||
"class" "CBasePlayer"
|
||||
"prop" "m_lifeState"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
90
gamedata/sdktools.games/game.aoc.txt
Normal file
90
gamedata/sdktools.games/game.aoc.txt
Normal file
@ -0,0 +1,90 @@
|
||||
"Games"
|
||||
{
|
||||
/* Age of Chivalry */
|
||||
"ageofchivalry"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "351"
|
||||
"linux" "352"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "239"
|
||||
"linux" "240"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "237"
|
||||
"linux" "238"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "194"
|
||||
"linux" "195"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "198"
|
||||
"linux" "199"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "101"
|
||||
"linux" "102"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "389"
|
||||
"linux" "389"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "230"
|
||||
"linux" "231"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
98
gamedata/sdktools.games/game.cstrike.txt
Normal file
98
gamedata/sdktools.games/game.cstrike.txt
Normal file
@ -0,0 +1,98 @@
|
||||
"Games"
|
||||
{
|
||||
/* Counter-Strike: Source */
|
||||
"cstrike"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"SlapSoundCount" "3"
|
||||
"SlapSound1" "player/damage1.wav"
|
||||
"SlapSound2" "player/damage2.wav"
|
||||
"SlapSound3" "player/damage3.wav"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "329"
|
||||
"linux" "330"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "224"
|
||||
"linux" "225"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "188"
|
||||
"linux" "189"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "189"
|
||||
"linux" "190"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "98"
|
||||
"linux" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "357"
|
||||
"linux" "358"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "126"
|
||||
"linux" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "118"
|
||||
"linux" "119"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "217"
|
||||
"linux" "218"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
90
gamedata/sdktools.games/game.dod.txt
Normal file
90
gamedata/sdktools.games/game.dod.txt
Normal file
@ -0,0 +1,90 @@
|
||||
"Games"
|
||||
{
|
||||
/* Day of Defeat: Source */
|
||||
"dod"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "350"
|
||||
"linux" "351"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "238"
|
||||
"linux" "239"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "236"
|
||||
"linux" "237"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "193"
|
||||
"linux" "194"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "197"
|
||||
"linux" "198"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "388"
|
||||
"linux" "388"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "229"
|
||||
"linux" "230"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
125
gamedata/sdktools.games/game.dystopia.txt
Normal file
125
gamedata/sdktools.games/game.dystopia.txt
Normal file
@ -0,0 +1,125 @@
|
||||
"Games"
|
||||
{
|
||||
/* Dsytopia */
|
||||
"!Dystopia"
|
||||
{
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "331"
|
||||
"linux" "332"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "229"
|
||||
"linux" "230"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "227"
|
||||
"linux" "228"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "191"
|
||||
"linux" "192"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "192"
|
||||
"linux" "193"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "360"
|
||||
"linux" "361"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "128"
|
||||
"linux" "129"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "120"
|
||||
"linux" "121"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "220"
|
||||
"linux" "221"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
|
||||
/* Offset into CBaseTempEntity constructor.
|
||||
* On Windows Dsytopia is heavily inlined; we use the function
|
||||
* surrounding "aCouldnTFindTem" in IDA instead.
|
||||
*/
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"windows" "70"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
/* On Windows Dsytopia is heavily inlined; we use the function
|
||||
* surrounding "aCouldnTFindTem" in IDA instead.
|
||||
*/
|
||||
"CBaseTempEntity"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x81\xEC\x84\x00\x00\x00\x56\x8B\xF1\x8B\x46\x6C\x57\x8D\x7E\x6C\x8D\x4C\x24\x08\x83\xC8\x20\x51\x89\x44\x24\x0C\xE8\x2A\x2A\x2A"
|
||||
}
|
||||
|
||||
/* Dystopia always has to be different, doesn't it
|
||||
*
|
||||
* This is very similar to the general signature, except that
|
||||
* it does "mov edx, [eax+2Ch]" before making a call rather than
|
||||
* doing "call dword ptr [eax+2Ch]"
|
||||
*/
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
106
gamedata/sdktools.games/game.empires.txt
Normal file
106
gamedata/sdktools.games/game.empires.txt
Normal file
@ -0,0 +1,106 @@
|
||||
"Games"
|
||||
{
|
||||
/* Empires 2 */
|
||||
"empires"
|
||||
{
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "332"
|
||||
"linux" "333"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "230"
|
||||
"linux" "231"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "228"
|
||||
"linux" "229"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "192"
|
||||
"linux" "193"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "193"
|
||||
"linux" "194"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "102"
|
||||
"linux" "103"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "360"
|
||||
"linux" "361"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "36"
|
||||
"linux" "37"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "221"
|
||||
"linux" "222"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
|
||||
/* Offset into LevelShutdown for CGlobalEntList */
|
||||
"gEntList"
|
||||
{
|
||||
"windows" "64"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"LevelShutdown"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2B\x56\xE8\x2A\x2A\x2A\x2A\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x8B\xF1\x74\x0E"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
114
gamedata/sdktools.games/game.ff.txt
Normal file
114
gamedata/sdktools.games/game.ff.txt
Normal file
@ -0,0 +1,114 @@
|
||||
"Games"
|
||||
{
|
||||
/* Fortress Forever */
|
||||
"FortressForever"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "338"
|
||||
"linux" "339"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "236"
|
||||
"linux" "237"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "234"
|
||||
"linux" "235"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "198"
|
||||
"linux" "199"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "199"
|
||||
"linux" "200"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "104"
|
||||
"linux" "105"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "366"
|
||||
"linux" "367"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "136"
|
||||
"linux" "137"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "128"
|
||||
"linux" "129"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "39"
|
||||
"linux" "40"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "34"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "33"
|
||||
"linux" "36"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "28"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "227"
|
||||
"linux" "228"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "36"
|
||||
"linux" "37"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x09\x8B\x01\x8B\x50\x2C\x6A\x01"
|
||||
}
|
||||
"FindEntityByClassname"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x85\xC9\x57\x74\x19\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x83\xC0\x01\xC1\xE0\x04\x8B\x3C\x30\xEB\x06\x8B\xBE\x04\x00\x01\x00\x85\xFF\x74\x39\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x03"
|
||||
}
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x60\x8B\xCB"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
66
gamedata/sdktools.games/game.garrysmod.txt
Normal file
66
gamedata/sdktools.games/game.garrysmod.txt
Normal file
@ -0,0 +1,66 @@
|
||||
"Games"
|
||||
{
|
||||
/* Garry's Mod 10 - Windows only
|
||||
* This mod is not officially supported, and the definitions are
|
||||
* for Garry's Mod pre-Orange Box.
|
||||
* (credits: Damaged Soul)
|
||||
*/
|
||||
"garrysmod"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "366"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "264"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "262"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "220"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "221"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "394"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "119"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
101
gamedata/sdktools.games/game.hidden.txt
Normal file
101
gamedata/sdktools.games/game.hidden.txt
Normal file
@ -0,0 +1,101 @@
|
||||
"Games"
|
||||
{
|
||||
/* Hidden:Source Beta 4b */
|
||||
"hidden"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "348"
|
||||
"linux" "349"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "207"
|
||||
"linux" "208"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "205"
|
||||
"linux" "206"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "170"
|
||||
"linux" "171"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "171"
|
||||
"linux" "172"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "90"
|
||||
"linux" "91"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "114"
|
||||
"linux" "115"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "106"
|
||||
"linux" "107"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "31"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
"TE_GetServerClass"
|
||||
{
|
||||
"windows" "0"
|
||||
"linux" "0"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "198"
|
||||
"linux" "199"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x53\x56\x8B\x74\x24\x0C\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\xCB\xFF\x50\x14"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
90
gamedata/sdktools.games/game.hl2mp.txt
Normal file
90
gamedata/sdktools.games/game.hl2mp.txt
Normal file
@ -0,0 +1,90 @@
|
||||
"Games"
|
||||
{
|
||||
/* Half-Life 2: Deathmatch */
|
||||
"hl2mp"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "328"
|
||||
"linux" "329"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "224"
|
||||
"linux" "225"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "188"
|
||||
"linux" "189"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "189"
|
||||
"linux" "190"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "98"
|
||||
"linux" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "356"
|
||||
"linux" "357"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "126"
|
||||
"linux" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "118"
|
||||
"linux" "119"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "217"
|
||||
"linux" "218"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
71
gamedata/sdktools.games/game.insurgency.txt
Normal file
71
gamedata/sdktools.games/game.insurgency.txt
Normal file
@ -0,0 +1,71 @@
|
||||
"Games"
|
||||
{
|
||||
/* Insurgency */
|
||||
"insurgency"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "174"
|
||||
"linux" "175"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "175"
|
||||
"linux" "176"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "90"
|
||||
"linux" "91"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "115"
|
||||
"linux" "116"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "107"
|
||||
"linux" "108"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "31"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "24"
|
||||
"linux" "25"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "215"
|
||||
"linux" "216"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
90
gamedata/sdktools.games/game.obsidian.txt
Normal file
90
gamedata/sdktools.games/game.obsidian.txt
Normal file
@ -0,0 +1,90 @@
|
||||
"Games"
|
||||
{
|
||||
/* Obsidian Conflict 1.3 */
|
||||
"obsidian"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "350"
|
||||
"linux" "351"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "237"
|
||||
"linux" "238"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "235"
|
||||
"linux" "236"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "190"
|
||||
"linux" "191"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "194"
|
||||
"linux" "195"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "393"
|
||||
"linux" "393"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "127"
|
||||
"linux" "128"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "119"
|
||||
"linux" "120"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "228"
|
||||
"linux" "229"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
91
gamedata/sdktools.games/game.pvkii.txt
Normal file
91
gamedata/sdktools.games/game.pvkii.txt
Normal file
@ -0,0 +1,91 @@
|
||||
"Games"
|
||||
{
|
||||
/* Pirates, Vikings and Knights II */
|
||||
"pvkii"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "328"
|
||||
"linux" "329"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "224"
|
||||
"linux" "225"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "188"
|
||||
"linux" "189"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "189"
|
||||
"linux" "190"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "98"
|
||||
"linux" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "356"
|
||||
"linux" "357"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "126"
|
||||
"linux" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "118"
|
||||
"linux" "119"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "217"
|
||||
"linux" "218"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
114
gamedata/sdktools.games/game.ship.txt
Normal file
114
gamedata/sdktools.games/game.ship.txt
Normal file
@ -0,0 +1,114 @@
|
||||
"Games"
|
||||
{
|
||||
/* The Ship */
|
||||
"ship"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "316"
|
||||
"linux" "317"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "220"
|
||||
"linux" "221"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "218"
|
||||
"linux" "219"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "180"
|
||||
"linux" "181"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "181"
|
||||
"linux" "182"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "343"
|
||||
"linux" "344"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "124"
|
||||
"linux" "125"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "116"
|
||||
"linux" "117"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "34"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "33"
|
||||
"linux" "36"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "39"
|
||||
"linux" "40"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "211"
|
||||
"linux" "212"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "37"
|
||||
"linux" "38"
|
||||
}
|
||||
|
||||
/* Temp Entities */
|
||||
"TE_GetServerClass"
|
||||
{
|
||||
"windows" "0"
|
||||
"linux" "0"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x53\x56\x8B\x74\x24\x0C\x85\xF6\x57\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\xCB\xFF\x50\x60\x8B\0x16"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z18CreateEntityByNamePKci"
|
||||
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x25\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x56\xFF\x50\x54\x85\xC0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
91
gamedata/sdktools.games/game.sourceforts.txt
Normal file
91
gamedata/sdktools.games/game.sourceforts.txt
Normal file
@ -0,0 +1,91 @@
|
||||
"Games"
|
||||
{
|
||||
/* SourceForts */
|
||||
"SourceForts"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "328"
|
||||
"linux" "329"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "224"
|
||||
"linux" "225"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "188"
|
||||
"linux" "189"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "189"
|
||||
"linux" "190"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "98"
|
||||
"linux" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "356"
|
||||
"linux" "357"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "126"
|
||||
"linux" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "118"
|
||||
"linux" "119"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "217"
|
||||
"linux" "218"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
91
gamedata/sdktools.games/game.synergy.txt
Normal file
91
gamedata/sdktools.games/game.synergy.txt
Normal file
@ -0,0 +1,91 @@
|
||||
"Games"
|
||||
{
|
||||
/* Synergy Release 1 */
|
||||
"synergy"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "334"
|
||||
"linux" "335"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "224"
|
||||
"linux" "225"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "188"
|
||||
"linux" "189"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "189"
|
||||
"linux" "190"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "98"
|
||||
"linux" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "362"
|
||||
"linux" "363"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "126"
|
||||
"linux" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "118"
|
||||
"linux" "119"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "217"
|
||||
"linux" "218"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
90
gamedata/sdktools.games/game.tf.txt
Normal file
90
gamedata/sdktools.games/game.tf.txt
Normal file
@ -0,0 +1,90 @@
|
||||
"Games"
|
||||
{
|
||||
/* Team Fortress 2 */
|
||||
"tf"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "406"
|
||||
"linux" "410"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "238"
|
||||
"linux" "239"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "236"
|
||||
"linux" "237"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "193"
|
||||
"linux" "194"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "197"
|
||||
"linux" "198"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "388"
|
||||
"linux" "388"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "130"
|
||||
"linux" "131"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "122"
|
||||
"linux" "123"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "28"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "28"
|
||||
"linux" "29"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "27"
|
||||
"linux" "30"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "23"
|
||||
"linux" "24"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "34"
|
||||
"linux" "35"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "229"
|
||||
"linux" "230"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "32"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
136
gamedata/sdktools.games/game.zm.txt
Normal file
136
gamedata/sdktools.games/game.zm.txt
Normal file
@ -0,0 +1,136 @@
|
||||
"Games"
|
||||
{
|
||||
/* Zombie Master 1.1.3 */
|
||||
"zombie_master"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
/* CBasePlayer */
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "329"
|
||||
"linux" "330"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "224"
|
||||
"linux" "225"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "188"
|
||||
"linux" "189"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "189"
|
||||
"linux" "190"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "98"
|
||||
"linux" "99"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "357"
|
||||
"linux" "358"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "126"
|
||||
"linux" "127"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "118"
|
||||
"linux" "119"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"s_pTempEntities"
|
||||
{
|
||||
"windows" "30"
|
||||
}
|
||||
"g_pGameRules"
|
||||
{
|
||||
"windows" "7"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "198"
|
||||
"linux" "199"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"CBaseTempEntity"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x55\x8B\xEC\x51\x89\x4D\xFC\x8B\x45\xFC\xC7\x00\x2A\x2A\x2A\x2A\x8B\x4D\xFC\x8B\x55\x08\x89\x51\x04\x8B\x45\xFC\x8B\x0D\x2A\x2A"
|
||||
}
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x55\x8B\xEC\x83\xEC\x20\x83\x7D\x08\x00\x0F\x84\x95\x01\x00\x00\xA1\x2A\x2A\x2A\x2A\x50\x8D\x4D\xF0\xE8\x2A\x2A\x2A\x2A\x8D\x4D"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z18CreateEntityByNamePKci"
|
||||
"windows" "\x55\x8B\xEC\x83\xEC\x0C\x83\x7D\x0C\xFF\x74\x39\x8B\x45\x0C\x50\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x11\x8B\x0D\x2A\x2A\x2A\x2A\xFF\x52"
|
||||
}
|
||||
"FindEntityByClassname"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x55\x8B\xEC\x83\xEC\x10\x89\x4D\xF4\x83\x7D\x08\x00\x74\x1C\x8B\x45\x08\x8B\x10\x8B\x4D\x08\xFF\x52\x08\x50\x8B\x4D\xF4\xE8\x2A\x2A\x2A\x2A\x8B\x40\x0C\x89\x45\x\xF0\xEB\x0B\x8B\x4D\xF4\xE8\x2A\x2A\x2A\x2A\x89\x45\xF0\x8B\x4D\xF0\x89\x4D\xFC\xEB\x09\x8B\x55\xFC\x8B\x42\x0C\x89\x45\xFC\x83\x7D\xFC\x00\x74\x38\x8B\x4D\xFC\x8B\x11\x89"
|
||||
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
|
||||
}
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x55\x8B\xEC\x83\xEC\x10\xA1\x2A\x2A\x2A\x2A\x89\x45\xF4\x8B\x4D\xF4\x89\x4D\xF8\x83\x7D\xF8\x00"
|
||||
}
|
||||
"g_pGameRules"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@g_pGameRules"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
gamedata/sdktools.games/game.zpanic.txt
Normal file
120
gamedata/sdktools.games/game.zpanic.txt
Normal file
@ -0,0 +1,120 @@
|
||||
"Games"
|
||||
{
|
||||
/* Zombie Panic! Source 1.2b
|
||||
* Note: This mod is not fully supported yet.
|
||||
* The definitions below were supplied by a third party.
|
||||
* (thanks "noob cannon lol")
|
||||
*/
|
||||
"$Zombie Panic! Source"
|
||||
{
|
||||
"Offsets"
|
||||
{
|
||||
"GiveNamedItem"
|
||||
{
|
||||
"windows" "333"
|
||||
"linux" "334"
|
||||
}
|
||||
"RemovePlayerItem"
|
||||
{
|
||||
"windows" "230"
|
||||
"linux" "231"
|
||||
}
|
||||
"Weapon_GetSlot"
|
||||
{
|
||||
"windows" "226"
|
||||
"linux" "227"
|
||||
}
|
||||
"Ignite"
|
||||
{
|
||||
"windows" "190"
|
||||
"linux" "191"
|
||||
}
|
||||
"Extinguish"
|
||||
{
|
||||
"windows" "191"
|
||||
"linux" "192"
|
||||
}
|
||||
"Teleport"
|
||||
{
|
||||
"windows" "100"
|
||||
"linux" "101"
|
||||
}
|
||||
"CommitSuicide"
|
||||
{
|
||||
"windows" "361"
|
||||
"linux" "362"
|
||||
}
|
||||
"GetVelocity"
|
||||
{
|
||||
"windows" "128"
|
||||
"linux" "129"
|
||||
}
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "120"
|
||||
"linux" "121"
|
||||
}
|
||||
"AcceptInput"
|
||||
{
|
||||
"windows" "35"
|
||||
"linux" "36"
|
||||
}
|
||||
"DispatchKeyValue"
|
||||
{
|
||||
"windows" "31"
|
||||
"linux" "30"
|
||||
}
|
||||
"DispatchKeyValueFloat"
|
||||
{
|
||||
"windows" "30"
|
||||
"linux" "31"
|
||||
}
|
||||
"DispatchKeyValueVector"
|
||||
{
|
||||
"windows" "29"
|
||||
"linux" "32"
|
||||
}
|
||||
"SetEntityModel"
|
||||
{
|
||||
"windows" "25"
|
||||
"linux" "26"
|
||||
}
|
||||
"WeaponEquip"
|
||||
{
|
||||
"windows" "219"
|
||||
"linux" "220"
|
||||
}
|
||||
"Activate"
|
||||
{
|
||||
"windows" "32"
|
||||
"linux" "33"
|
||||
}
|
||||
}
|
||||
"Signatures"
|
||||
{
|
||||
"CreateGameRulesObject"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2C\x6A\x01"
|
||||
}
|
||||
"FindEntityByClassname"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x2A\x2A\x8B\x00\x25\xFF\x0F\x00\x00\x40\xC1\xC1\xE0\x04\x8B\x2A\x2A\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x24\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\xA4\x24\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
|
||||
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
|
||||
}
|
||||
"CreateEntityByName"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z18CreateEntityByNamePKci"
|
||||
"windows" "\x56\x8B\x74\x24\x2A\x57\x8B\x7C\x24\x2A\x83\xFE\xFF\x74\x2A\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x2A\x56\xFF\xD2"
|
||||
}
|
||||
"DispatchSpawn"
|
||||
{
|
||||
"library" "server"
|
||||
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
|
||||
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x2A\x85\xF6\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x60\x8B\xCB"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
112
gamedata/sdktools.games/master.games.txt
Normal file
112
gamedata/sdktools.games/master.games.txt
Normal file
@ -0,0 +1,112 @@
|
||||
"Game Master"
|
||||
{
|
||||
"common.games.txt"
|
||||
{
|
||||
}
|
||||
|
||||
"engine.l4d.txt"
|
||||
{
|
||||
"engine" "left4dead"
|
||||
}
|
||||
|
||||
"engine.ep2.txt"
|
||||
{
|
||||
"engine" "orangebox"
|
||||
}
|
||||
|
||||
"engine.ep1.txt"
|
||||
{
|
||||
"engine" "original"
|
||||
}
|
||||
|
||||
"game.tf.txt"
|
||||
{
|
||||
"game" "tf"
|
||||
}
|
||||
|
||||
"game.dod.txt"
|
||||
{
|
||||
"game" "dod"
|
||||
}
|
||||
|
||||
"game.cstrike.txt"
|
||||
{
|
||||
"game" "cstrike"
|
||||
}
|
||||
|
||||
"game.hl2mp.txt"
|
||||
{
|
||||
"game" "hl2mp"
|
||||
}
|
||||
|
||||
"game.ship.txt"
|
||||
{
|
||||
"game" "ship"
|
||||
}
|
||||
|
||||
"game.dystopia.txt"
|
||||
{
|
||||
"game" "!Dystopia"
|
||||
}
|
||||
|
||||
"game.insurgency.txt"
|
||||
{
|
||||
"game" "insurgency"
|
||||
}
|
||||
|
||||
"game.pvkii.txt"
|
||||
{
|
||||
"game" "pvkii"
|
||||
}
|
||||
|
||||
"game.ff.txt"
|
||||
{
|
||||
"game" "FortressForever"
|
||||
}
|
||||
|
||||
"game.garrysmod.txt"
|
||||
{
|
||||
"engine" "original"
|
||||
"game" "garrysmod"
|
||||
}
|
||||
|
||||
"game.empires.txt"
|
||||
{
|
||||
"game" "empires"
|
||||
}
|
||||
|
||||
"game.sourceforts.txt"
|
||||
{
|
||||
"game" "sourceforts"
|
||||
}
|
||||
|
||||
"game.synergy.txt"
|
||||
{
|
||||
"game" "synergy"
|
||||
}
|
||||
|
||||
"game.hidden.txt"
|
||||
{
|
||||
"game" "hidden"
|
||||
}
|
||||
|
||||
"game.zm.txt"
|
||||
{
|
||||
"game" "zombie_master"
|
||||
}
|
||||
|
||||
"game.zpanic.txt"
|
||||
{
|
||||
"game" "$Zombie Panic! Source"
|
||||
}
|
||||
|
||||
"game.obsidian.txt"
|
||||
{
|
||||
"game" "obsidian"
|
||||
}
|
||||
|
||||
"game.aoc.txt"
|
||||
{
|
||||
"game" "ageofchivalry"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user