Respect UsePlayerStartZ level flag in Sandwich/Tether.

This commit is contained in:
Mari the Deer 2022-08-26 10:21:29 +02:00
commit 9fc3bf98fb
2 changed files with 10 additions and 2 deletions

View file

@ -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