"Fix" for library "vanishing" on reload after death.
This is a very gross hack, please don't look at it.
This commit is contained in:
parent
8fa56ea950
commit
15cb678975
4 changed files with 41 additions and 2 deletions
|
|
@ -1,2 +1,2 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cxSWWM GZ\c- r358 (Thu 18 Jun 21:16:25 CEST 2020)";
|
||||
SWWM_MODVER="\cxSWWM GZ\c- r359 (Fri 19 Jun 13:29:36 CEST 2020)";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
GameInfo
|
||||
{
|
||||
AddEventHandlers = "SWWMCrashHandler", "SWWMBrutalHandler", "SWWMHDoomHandler", "SWWMVanillaBossHandler", "SWWMHandler", "SWWMGoreHandler", "CBTHandler", "SWWMPreloader"
|
||||
AddEventHandlers = "SWWMCrashHandler", "SWWMBrutalHandler", "SWWMHDoomHandler", "SWWMVanillaBossHandler", "SWWMHandler", "SWWMGoreHandler", "CBTHandler", "SWWMPreloader", "SWWMExcuseMeWhatTheFuckHandler"
|
||||
PlayerClasses = "Demolitionist"
|
||||
StatusBarClass = "SWWMStatusBar"
|
||||
BackpackType = "HammerspaceEmbiggener"
|
||||
|
|
|
|||
|
|
@ -445,6 +445,41 @@ Class SWWMLore
|
|||
bool read;
|
||||
}
|
||||
|
||||
// so apparently on restart after dying, static thinkers don't get reloaded until AFTER the player has spawned
|
||||
// and the player calls GiveDefaultInventory even though it's all later discarded and they're given the saved inventory
|
||||
// all I can ask is: WHY
|
||||
Class SWWMExcuseMeWhatTheFuckHandler : StaticEventHandler
|
||||
{
|
||||
bool reborn_hackfix;
|
||||
int clear_hackfix;
|
||||
|
||||
override void WorldTick()
|
||||
{
|
||||
if ( gamestate != GS_LEVEL ) return;
|
||||
if ( clear_hackfix > 0 )
|
||||
{
|
||||
clear_hackfix--;
|
||||
if ( clear_hackfix <= 0 )
|
||||
reborn_hackfix = false;
|
||||
}
|
||||
}
|
||||
|
||||
static bool WhyTheFuckIsThisAThing()
|
||||
{
|
||||
let hnd = SWWMExcuseMeWhatTheFuckHandler(StaticEventHandler.Find("SWWMExcuseMeWhatTheFuckHandler"));
|
||||
if ( !hnd ) return false;
|
||||
return hnd.reborn_hackfix;
|
||||
}
|
||||
|
||||
static void ThisIsSomeSeriousBullshit()
|
||||
{
|
||||
let hnd = SWWMExcuseMeWhatTheFuckHandler(StaticEventHandler.Find("SWWMExcuseMeWhatTheFuckHandler"));
|
||||
if ( !hnd ) return;
|
||||
hnd.reborn_hackfix = true;
|
||||
hnd.clear_hackfix = 2;
|
||||
}
|
||||
}
|
||||
|
||||
Class SWWMLoreLibrary : Thinker
|
||||
{
|
||||
PlayerInfo myplayer;
|
||||
|
|
@ -584,6 +619,8 @@ Class SWWMLoreLibrary : Thinker
|
|||
|
||||
static void Add( PlayerInfo p, String ref )
|
||||
{
|
||||
// ignore this call on player rebirth, otherwise a new thinker will be created when the player calls GiveDefaultInventory
|
||||
if ( SWWMExcuseMeWhatTheFuckHandler.WhyTheFuckIsThisAThing() ) return;
|
||||
SWWMLoreLibrary ll = Find(p);
|
||||
if ( !ll )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1021,6 +1021,8 @@ Class Demolitionist : PlayerPawn
|
|||
}
|
||||
else if ( (player.cmd.buttons&BT_USE) && (deadtimer > 120) )
|
||||
{
|
||||
// gross hackfix for library "vanishing"
|
||||
SWWMExcuseMeWhatTheFuckHandler.ThisIsSomeSeriousBullshit();
|
||||
// reload save
|
||||
player.cls = null;
|
||||
player.playerstate = PST_ENTER;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue