diff options
author | 2025-04-07 16:18:35 -0400 | |
---|---|---|
committer | 2025-04-07 22:35:53 +0100 | |
commit | 25838ab4eb1fc94f59186cb24b75f440f9062f9a (patch) | |
tree | 4dfcd7fe9fa686133ce8d050596c38a02ae6c3b0 /gamedata/gamelib.txt | |
parent | 58b495650f7613cdebfe78fff9de2b99556f1998 (diff) | |
download | sst-25838ab4eb1fc94f59186cb24b75f440f9062f9a.tar.gz sst-25838ab4eb1fc94f59186cb24b75f440f9062f9a.zip |
Fix the infamous Swamp Fever "god mode glitch"
Turns out this was fixed in version 2112 (October 2012), so it was
fairly easy to isolate in Ghidra (I had previously thought this was
fixed by TLS). The CDirector::FinaleEscapeState member is used in
CDirector::IsFinaleWon (and maybe another function, I don't remember).
Prior to Valve's fix, the value was never reset to 0 after finishing a
campaign, so when the Swamp (or Crash Course) "minifinale" events ran,
the game would behave as though the player was entering the
end-of-finale cutscene and block votes, make players invincible etc.
2112 fixed this bug by setting the member back to 0 in CDirector::Reset,
so here we just set it to 0 when quickreset is used, since that is
essentially the recommended way to start a run at this point.
Now co-op hosts won't need to restart their game after finishing
a campaign anymore!
Diffstat (limited to 'gamedata/gamelib.txt')
-rw-r--r-- | gamedata/gamelib.txt | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gamedata/gamelib.txt b/gamedata/gamelib.txt index 615ecf4..486a216 100644 --- a/gamedata/gamelib.txt +++ b/gamedata/gamelib.txt @@ -42,6 +42,8 @@ vtidx_GameShutdown 7 vtidx_OnGameplayStart L4D2 11 # note: just happens to be the same on linux! L4D1 11 +off_FinaleEscapeState + L4D2 164 # only currently needed for 2000-2111 to fix the swamp 1 bug # CInput vtidx_CreateMove 3 |