Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified addons/sourcemod/bin/sourcemod.2.l4d2.dll
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcemod.2.l4d2.so
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcemod.logic.dll
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcemod.logic.so
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcemod_mm.dll
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcemod_mm_i486.so
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcepawn.jit.x86.dll
Binary file not shown.
Binary file modified addons/sourcemod/bin/sourcepawn.jit.x86.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/bintools.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/bintools.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/clientprefs.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/clientprefs.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dbi.mysql.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dbi.mysql.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dbi.pgsql.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dbi.pgsql.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dbi.sqlite.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dbi.sqlite.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dhooks.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/dhooks.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/geoip.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/geoip.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/regex.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/regex.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/sdkhooks.ext.2.l4d2.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/sdkhooks.ext.2.l4d2.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/sdktools.ext.2.l4d2.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/sdktools.ext.2.l4d2.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/topmenus.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/topmenus.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/updater.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/updater.ext.so
Binary file not shown.
Binary file modified addons/sourcemod/extensions/webternet.ext.dll
Binary file not shown.
Binary file modified addons/sourcemod/extensions/webternet.ext.so
Binary file not shown.
4 changes: 2 additions & 2 deletions addons/sourcemod/gamedata/core.games/engine.swarm.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
/* Offset into "LevelShutdown" */
"gEntList"
{
"windows" "28"
"windows" "25"
}

"EntInfo"
Expand All @@ -65,7 +65,7 @@
"LevelShutdown"
{
"library" "server"
"windows" "\x55\x8B\xEC\x51\xA1\x2A\x2A\x2A\x2A\xC6\x05\x2A\x2A\x2A\x2A\x01"
"windows" "\xA1\x2A\x2A\x2A\x2A\xC6\x05\x2A\x2A\x2A\x2A\x2A\x53"
}
}
}
Expand Down
52 changes: 0 additions & 52 deletions addons/sourcemod/gamedata/l4d2_changelevel.txt

This file was deleted.

95 changes: 95 additions & 0 deletions addons/sourcemod/gamedata/l4d2_fix_changelevel.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
"Games"
{
"left4dead2"
{
"Functions"
{
"CVEngineServer::ChangeLevel"
{
"signature" "CVEngineServer::ChangeLevel"
"callconv" "thiscall"
"return" "void"
"this" "ignore"
"arguments"
{
"map"
{
"type" "charptr"
}
"reason"
{
"type" "charptr"
}
}
}
}

"Offsets"
{
"CDirector::m_mapDurationTimer"
{
"linux" "936"
"windows" "936"
}

"CDirector::m_flTotalMissionElaspedTime"
{
"linux" "944"
"windows" "944"
}
}

"Addresses"
{
"CDirector::m_isTransitioning"
{
"signature" "CDirector::OnBeginTransition"
"linux"
{
"read" "14"
}
"windows"
{
"read" "26"
}
}
}

"Signatures"
{
"CDirector::ClearTeamScores"
{
"library" "server"
"linux" "@_ZN9CDirector15ClearTeamScoresEb"
"windows" "\x55\x8B\xEC\x56\x8B\x75\x08\x57\x8B\xF9\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9"
/* 55 8B EC 56 8B 75 08 57 8B F9 8B 0D ? ? ? ? 85 C9 */
}

"CDirector::OnBeginTransition"
{
"library" "server"
"linux" "@_ZN9CDirector17OnBeginTransitionEb"
"windows" "\x55\x8B\x2A\x2A\x2A\x2A\x80\x2A\x2A\x2A\x53\x56\x8B\x2A\x0F\x2A\x2A\x57\x8D"
/* 55 8B ? ? ? ? 80 ? ? ? 53 56 8B ? 0F ? ? 57 8D */
}

// Search string "Preparing player entities for changelevel"
"CTerrorGameRules::OnBeginChangeLevel"
{
"library" "server"
"linux" "@_ZN16CTerrorGameRules18OnBeginChangeLevelEPKc"
"windows" "\x55\x8B\x2A\x56\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x8B\x2A\x2A\x8B\x2A\xFF"
/* 55 8B ? 56 8B ? ? ? ? ? 8B ? 8B ? ? 8B ? FF */
}

// Search string "VEngineServer::Changelevel with NULL s1"
"CVEngineServer::ChangeLevel"
{
"library" "engine"
"linux" "@_ZN14CVEngineServer11ChangeLevelEPKcS1_"
"windows" "\x55\x8B\x2A\x2A\x2A\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x2A\x2A\x89\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x56\x8B\x2A\x2A\x57\x8B"
/* 55 8B ? ? ? ? ? ? ? A1 ? ? ? ? ? ? 89 ? ? A1 ? ? ? ? 56 8B ? ? 57 8B */
}
}
}
}
123 changes: 123 additions & 0 deletions addons/sourcemod/gamedata/left4dhooks.l4d2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -901,6 +901,21 @@
}
}

"L4DD::CDirector::AddSurvivorBot"
{
"signature" "CDirector::AddSurvivorBot"
"callconv" "thiscall"
"return" "void"
"this" "ignore"
"arguments"
{
"a1"
{
"type" "int"
}
}
}

"L4DD::CThrow::ActivateAbililty"
{
"signature" "CThrow::ActivateAbililty"
Expand Down Expand Up @@ -2013,6 +2028,20 @@
"read" "0"
}

"gEntList"
{
"windows"
{
"signature" "gEntList"
"read" "116"
}
"linux"
{
"signature" "gEntList"
}
"read" "0"
}

"L4DD::ScriptVM"
{
"windows"
Expand Down Expand Up @@ -3350,6 +3379,15 @@
/* Search: "unsticking %s from %.1f %.1f %.1f to %.1f %.1f %.1f\n" */
}

"CDirector::IsLocationFoggedToSurvivors"
{
"library" "server"
"linux" "@_ZNK9CDirector27IsLocationFoggedToSurvivorsERK6Vector"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x83\x2A\x2A\x33\x2A\x85\x2A\x0F\x2A\x2A\x52\x68\x2A\x2A\x2A\x2A\xE8"
/* ? ? ? ? ? ? ? ? 8B ? ? 83 ? ? 33 ? 85 ? 0F ? ? 52 68 ? ? ? ? E8 */
/* Search: "ZombieSpawnInFog" */
}

/**
* CTerrorPlayer::GetSpecialInfectedDominatingMe(CTerrorPlayer *this)
*
Expand Down Expand Up @@ -3404,6 +3442,24 @@
// /* ? ? ? ? ? ? 8B ? ? 85 ? 74 ? 8B ? 8B ? ? FF ? 8B ? 89 ? ? EB ? C7 45 ? ? ? ? ? 8D ? ? 51 8D 8E ? ? ? ? E8 ? ? ? ? 33 */
}

"CGlobalEntityList::FindEntityByClassnameNearest"
{
"library" "server"
"linux" "@_ZN17CGlobalEntityList28FindEntityByClassnameNearestEPKcRK6Vectorf"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x53\x33\x2A\xF3\x2A\x2A\x2A\x0F\x2E\x2A\x2A\x2A\x2A\x2A\x9F"
/* ? ? ? ? ? ? ? ? ? 53 33 ? F3 ? ? ? 0F 2E ? ? ? ? ? 9F */
/* Search: "CheckpointDoorClosed". Target is sub call with "info_changelevel" as param. */
}

"CGlobalEntityList::FindEntityByClassnameWithin"
{
"library" "server"
"linux" "@_ZN17CGlobalEntityList27FindEntityByClassnameWithinEP11CBaseEntityPKcRK6Vectorf"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\xF3\x2A\x2A\x2A\x0F\x2E\x2A\x2A\x2A\x2A\x2A\x9F\xF6\x2A\x2A\x7A\x2A\x8B"
/* ? ? ? ? ? ? ? ? 83 ? ? F3 ? ? ? 0F 2E ? ? ? ? ? 9F F6 ? ? 7A ? 8B */
/* Search: "info_ladder_dismount" and target calls twice with this param. */
}

/*
* CDirector::HasAnySurvivorLeftSafeArea(CDirector *this)
*/
Expand Down Expand Up @@ -4252,6 +4308,20 @@
/* 55 8B EC 51 83 7D 08 00 56 8B F1 89 */
}

/*
* CDirector::AddSurvivorBot(SurvivorCharacterType) const
*
* Windows: find string "sb_add" → xref to ConCommand registration →
* handler calls AddSurvivorBot(char*) wrapper → wrapper tail-calls this function
*/
"CDirector::AddSurvivorBot"
{
"library" "server"
"linux" "@_ZNK9CDirector14AddSurvivorBotE21SurvivorCharacterType"
"windows" "\x55\x8B\xEC\x8B\x89\x2A\x2A\x2A\x2A\x83\xEC\x2A\x56\x8D\x45\xFF"
/* 55 8B EC 8B 89 ? ? ? ? 83 EC ? 56 8D 45 FF */
}

/*
* CThrow::ActivateAbililty()
* Start a tank rock throw
Expand Down Expand Up @@ -4779,6 +4849,18 @@
/* Search: "Created new fencetop area %d(%x) between %d(%x) and %d(%x)\n" - target call is within the if statement below */
}

/*
* CNavArea::IsBlocked(CNavArea *this, int, bool)
*/
"CNavArea::IsBlocked"
{
"library" "server"
"linux" "@_ZNK8CNavArea9IsBlockedEib"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x74\x2A\x8B\x2A\x2A\x85\x2A\x79\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x83"
/* ? ? ? ? ? ? ? 74 ? 8B ? ? 85 ? 79 ? 8B ? ? ? ? ? 83 */
/* Search: "Flow Error: Goal area is blocked!\n", target function is call above with "-1" */
}

/*
* CTerrorPlayer::GetFlowDistance(TerrorNavArea::FlowType)
*/
Expand Down Expand Up @@ -5710,6 +5792,17 @@
"linux" "@g_pGameRules"
}

/* Used on Windows to resolve the "gEntList" pointer */
/* ResolveFollowupTargetToEntity(char *) */
"gEntList"
{
"library" "server"
"linux" "@gEntList"
"windows" "\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x57\x8B\x2A\x68\x2A\x2A\x2A\x2A\x57\xE8\x2A\x2A\x2A\x2A\x83"
/* ? ? ? ? ? 8B ? ? 57 8B ? 68 ? ? ? ? 57 E8 ? ? ? ? 83 */
/* Search: "Couldn't resolve response target %s\n". Call with "0, v3, 0, 0, 0, 0" as params has target ptr. */
}

/* 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.
Expand Down Expand Up @@ -5767,6 +5860,36 @@
/* 55 8B EC 81 EC ? ? ? ? A1 ? ? ? ? 33 C5 89 45 FC 8B 45 14 53 8B 5D 08 */
}

/* Search: "Frame %8d/tick %8d: frame out of budget (%.2fms > %.2fms)\n" - xref to this function is our target
*/
"TheNextBots"
{
"library" "server"
"linux" "@_Z11TheNextBotsv"
"windows" "\x2A\x2A\x2A\x2A\x2A\x84\x05\x2A\x2A\x2A\x2A\x0F\x85\x2A\x2A\x2A\x2A\x09\x2A\x2A\x2A\x2A\x2A\x33\x2A\xB9\x2A\x2A\x2A\x2A\x33"
/* ? ? ? ? ? 84 05 ? ? ? ? 0F 85 ? ? ? ? 09 ? ? ? ? ? 33 ? B9 ? ? ? ? 33 */
}

/* Search: "Chainsaw.Die" - You will see "TheNextBots" above the call, and below is a sub call with "1.0" as param
*/
"NextBotManager::RushVictim"
{
"library" "server"
"linux" "@_ZN14NextBotManager10RushVictimEP13CTerrorPlayerf"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x83\x2A\x2A\x0F\x2E\x2A\x2A\x2A\x2A\x2A\x9F\xF6\x2A\x2A\x7A\x2A\xA1\x2A\x2A\x2A\x2A\xF3"
/* ? ? ? ? ? ? ? ? 83 ? ? 0F 2E ? ? ? ? ? 9F F6 ? ? 7A ? A1 ? ? ? ? F3 */
}

/* Search: "Going into Old ClearNWait" - Below is a call, click into that and into the function it calls, this is the target
*/
"NextBotManager::StartAssault"
{
"library" "server"
"linux" "@_ZN14NextBotManager12StartAssaultEv"
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x3D\x2A\x2A\x2A\x2A\x74\x2A\x56\x57\x0F\x2A\x2A\x8B\x2A\x2A\x03\x2A\x03\x2A\x03\x2A\x8B\x2A\x2A\x8B\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\xFF\x2A\x8B\x2A\xE8\x2A\x2A\x2A\x2A\x83"
/* ? ? ? ? ? ? ? 3D ? ? ? ? 74 ? 56 57 0F ? ? 8B ? ? 03 ? 03 ? 03 ? 8B ? ? 8B ? 8B ? ? ? ? ? 8B ? FF ? 8B ? E8 ? ? ? ? 83 */
}

"nav_update_lighting"
{
"library" "server"
Expand Down
7 changes: 7 additions & 0 deletions addons/sourcemod/gamedata/sdktools.games/game.dod.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@
{
"Offsets"
{
"SetOwnerEntity"
{
"windows" "18"
"windows64" "18"
"linux" "19"
"linux64" "19"
}
"GiveNamedItem"
{
"windows" "407"
Expand Down
Loading
Loading