diff --git a/language.version b/language.version index 8b6563ba9..5eca259aa 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r377 \cu(Fri 19 Mar 22:14:44 CET 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r377 \cu(2021-03-19 22:14:44)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r379 \cu(Fri 19 Mar 22:15:44 CET 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r379 \cu(2021-03-19 22:15:44)\c-"; diff --git a/zscript/handler/swwm_handler_worldthings.zsc b/zscript/handler/swwm_handler_worldthings.zsc index c01d67f65..27bd1e8b0 100644 --- a/zscript/handler/swwm_handler_worldthings.zsc +++ b/zscript/handler/swwm_handler_worldthings.zsc @@ -197,7 +197,7 @@ extend Class SWWMHandler override void WorldThingDestroyed( WorldEvent e ) { - if ( !e.Thing.default.bSHOOTABLE || !e.Thing.default.bMISSILE ) + if ( !e.Thing.default.bSHOOTABLE && !e.Thing.default.bMISSILE && !(e Thing is 'Inventory') ) return; // remove from suckables int pos = suckableactors.Find(e.Thing); @@ -343,7 +343,7 @@ extend Class SWWMHandler SWWMShadow.Track(e.Thing); } // Ynykron vortex optimization (faster than a thinker iterator) - if ( e.Thing.bSHOOTABLE || e.Thing.bMISSILE ) + if ( e.Thing.bSHOOTABLE || e.Thing.bMISSILE || (e.Thing is 'Inventory') ) SuckableActors.Push(e.Thing); // vanilla blood color changes if ( (e.Thing.GetClass() == "BaronOfHell") || (e.Thing.GetClass() == "HellKnight") || (e.Thing.GetClass() == "Bishop") || (e.Thing.GetClass() == "Korax") ) diff --git a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc index 8fb76fc0f..7ca07fc1b 100644 --- a/zscript/weapons/swwm_deathlydeathcannon_fx.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon_fx.zsc @@ -2302,6 +2302,8 @@ Class YnykronSingularity : Actor if ( !a ) continue; if ( a.bDORMANT || (a.Health <= 0) || (a == self) || !SWWMUtility.SphereIntersect(a,pos,20000.*scale.x) || !CheckSight(a,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) continue; + if ( (a is 'Inventory') && !a.bSPECIAL ) // must be a pickup + continue; if ( a.player && (a.player.cheats&CF_NOCLIP2) ) // for safety continue; double capmass = a.mass; @@ -2316,6 +2318,9 @@ Class YnykronSingularity : Actor a.Destroy(); continue; } + // don't delet inventory + if ( a is 'Inventory' ) + continue; // delet missile if ( a.bMISSILE ) {