From f163ed3befe99defdb901e45c9e20c658b6fc2a0 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Wed, 16 Dec 2020 03:01:28 +0100 Subject: [PATCH] Workaround to preserve collectibles after death exits. --- language.version | 2 +- zscript/swwm_handler.zsc | 9 +++++++++ zscript/swwm_player.zsc | 7 +++++++ zscript/swwm_thinkers.zsc | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/language.version b/language.version index 43570c765..7417c3863 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r683 \cu(Wed 16 Dec 00:44:30 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r684 \cu(Wed 16 Dec 03:01:28 CET 2020)"; diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 0643c6aaa..c4b9ff524 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -993,6 +993,15 @@ Class SWWMHandler : EventHandler // reset score (optional) if inventory should be cleared if ( swwm_resetscore && level.removeitems && !e.IsReturn ) c.credits = c.hcredits = 0; + // re-add any missing collectibles after a death exit (yes, this happens) + for ( int i=0; i 0) && (mystats.ownedcollectibles.Find(cls) < mystats.ownedcollectibles.Size()) ) return; + mystats.ownedcollectibles.Push(cls); + } } override bool UseInventory( Inventory item ) { diff --git a/zscript/swwm_thinkers.zsc b/zscript/swwm_thinkers.zsc index df98dbe70..06c6b3ed2 100644 --- a/zscript/swwm_thinkers.zsc +++ b/zscript/swwm_thinkers.zsc @@ -42,6 +42,8 @@ Class SWWMStats : Thinker // [Strife] preserve previous mission logs String oldlogtext; Array questbacklog; + // hackaround for stuff getting lost + Array > ownedcollectibles; bool GotWeapon( Class which ) {