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 ) {