From 7d9daad797beead93692b3ea7b337d56852eff98 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Mon, 6 Jun 2022 00:59:50 +0200 Subject: [PATCH] Version mismatch messages don't show again when reloading a save from the current session. --- language.version | 4 ++-- zscript/swwm_statichandler.zsc | 26 +++++++++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/language.version b/language.version index 19bbc51a2..fb8d28df1 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r96 \cu(Sun 5 Jun 00:36:15 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r96 \cu(2022-06-05 00:36:15)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r97 \cu(Mon 6 Jun 00:59:50 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r97 \cu(2022-06-06 00:59:50)\c-"; diff --git a/zscript/swwm_statichandler.zsc b/zscript/swwm_statichandler.zsc index db5cb4b2a..ae524d2b0 100644 --- a/zscript/swwm_statichandler.zsc +++ b/zscript/swwm_statichandler.zsc @@ -4,6 +4,7 @@ Class SWWMSaveVerData : SWWMStaticThinker { String ver; + int uid; } Class SWWMStaticHandler : StaticEventHandler @@ -14,6 +15,7 @@ Class SWWMStaticHandler : StaticEventHandler // versioning bool tainted; String taintver; + int uid; int checktic; int maptime; bool unloading; @@ -36,6 +38,7 @@ Class SWWMStaticHandler : StaticEventHandler let svd = new("SWWMSaveVerData"); svd.ChangeStatNum(Thinker.STAT_STATIC); svd.ver = StringTable.Localize("$SWWM_SHORTVER"); + uid = 0; } override void WorldUnloaded( WorldEvent e ) @@ -98,13 +101,18 @@ Class SWWMStaticHandler : StaticEventHandler { tainted = true; taintver = "\cg(no version info)\c-"; - return; + uid = 0; } - String cver = StringTable.Localize("$SWWM_SHORTVER"); - if ( svd.ver != cver ) + else { - tainted = true; - taintver = svd.ver; + String cver = StringTable.Localize("$SWWM_SHORTVER"); + if ( svd.ver != cver ) + { + tainted = true; + taintver = svd.ver; + } + if ( svd.uid == uid ) checktic = 0; + uid = svd.uid; } } @@ -306,10 +314,18 @@ Class SWWMStaticHandler : StaticEventHandler c.A_StartSound("misc/achievement2",CHAN_ITEM,CHANF_UI|CHANF_OVERLAP); } } + else if ( e.Name ~== "swwmsessionid" ) + { + let ti = ThinkerIterator.Create("SWWMSaveVerData",Thinker.STAT_STATIC); + let svd = SWWMSaveVerData(ti.Next()); + if ( !uid ) uid = e.Args[0]; + if ( svd && !svd.uid ) svd.uid = e.Args[0]; + } } override void PostUiTick() { + if ( !uid ) EventHandler.SendNetworkEvent("swwmsessionid",SystemTime.Now()); if ( gamestate != GS_TITLELEVEL ) titlefirst = true; // we skip it if ( !aprcheck && (gamestate == GS_LEVEL) ) {