diff --git a/language.version b/language.version index 9596564ef..e0e4f123b 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r734 \cu(Thu 19 Jan 10:25:09 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r734 \cu(2023-01-19 10:25:09)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r735 \cu(Thu 19 Jan 22:40:26 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r735 \cu(2023-01-19 22:40:26)\c-"; diff --git a/zscript/weapons/swwm_baseweapon.zsc b/zscript/weapons/swwm_baseweapon.zsc index 774276efa..7e5944ef7 100644 --- a/zscript/weapons/swwm_baseweapon.zsc +++ b/zscript/weapons/swwm_baseweapon.zsc @@ -51,6 +51,24 @@ Class SWWMWeapon : Weapon abstract return null; } + // temporarily needed to ensure unimplemented weapons can still activate their pickup specials, to avoid softlocks + private void OnTouchSpecials( Actor toucher ) + { + DoPickupSpecial(toucher); + if ( bCountItem ) + { + if ( toucher.player ) toucher.player.itemcount++; + level.found_items++; + bCountItem = false; + } + if ( bCountSecret ) + { + if ( toucher.player ) toucher.player.mo.GiveSecret(true,true); + else toucher.GiveSecret(true,true); + bCountSecret = false; + } + } + override void Touch( Actor toucher ) { // show message about unimplemented weapons @@ -59,6 +77,7 @@ Class SWWMWeapon : Weapon abstract { if ( toucher.CheckLocalView() ) Console.MidPrint(SmallFont,String.Format(StringTable.Localize(SWWMUtility.SellFemaleItem(self,"SWWM_TODOWEAPON_FEM")?"$SWWM_TODOWEAPON_FEM":"$SWWM_TODOWEAPON"),GetTag())); + OnTouchSpecials(toucher); return; } // show prompt to swap weapon, and prevent normal pickup