From 9fc3bf98fb1926c5f38e44cf8a36aedc8d9dd9ab Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Fri, 26 Aug 2022 10:21:29 +0200 Subject: [PATCH] Respect UsePlayerStartZ level flag in Sandwich/Tether. --- language.version | 4 ++-- zscript/items/swwm_powerups.zsc | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/language.version b/language.version index 108ad67f1..46b0fae41 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r374 \cu(Thu 25 Aug 20:39:32 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r374 \cu(2022-08-25 20:39:32)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r374 \cu(Fri 26 Aug 10:21:29 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r374 \cu(2022-08-26 10:21:29)\c-"; diff --git a/zscript/items/swwm_powerups.zsc b/zscript/items/swwm_powerups.zsc index 84ff58c82..d1d61a36e 100644 --- a/zscript/items/swwm_powerups.zsc +++ b/zscript/items/swwm_powerups.zsc @@ -117,6 +117,7 @@ Class GrilledCheeseSandwich : Inventory { if ( deathmatch ) [safepos, safeangle] = level.PickDeathmatchStart(); else [safepos, safeangle] = level.PickPlayerStart(Owner.PlayerNumber()); + if ( !level.useplayerstartz ) safepos.z = ONFLOORZ; } else { @@ -3087,6 +3088,7 @@ Class SafetyTether : Inventory double safeangle; if ( deathmatch ) [safepos, safeangle] = level.PickDeathmatchStart(); else [safepos, safeangle] = level.PickPlayerStart(Owner.PlayerNumber()); + if ( !level.useplayerstartz ) safepos.z = ONFLOORZ; Vector3 oldpos = Owner.pos; if ( !Owner.Teleport(safepos,safeangle,0) ) { @@ -3127,6 +3129,12 @@ Class SafetyTether : Inventory Vector3 safepos; if ( deathmatch ) safepos = level.PickDeathmatchStart(); else safepos = level.PickPlayerStart(Owner.PlayerNumber()); + if ( !level.useplayerstartz ) + { + // find the floor for proper distance check + let s = level.PointInSector(safepos.xy); + safepos.z = s.floorplane.ZAtPoint(safepos.xy); + } bFailed = (level.Vec3Diff(Owner.pos,safepos).length() < 400); if ( (Owner.player == players[consoleplayer]) || bBigPowerup ) Owner.A_StartSound(bFailed?"powerup/tetherfail":"powerup/tetheruse",CHAN_ITEMEXTRA,CHANF_OVERLAP); // don't consume on use, will happen later