- handle most GetOverlapSector callers.

This commit is contained in:
Christoph Oelckers 2021-11-24 23:41:59 +01:00
parent 11d3a660ad
commit 1162442068
2 changed files with 11 additions and 15 deletions

View file

@ -4073,7 +4073,6 @@ void DoPlayerWarpToUnderwater(PLAYERp pp)
auto sectu = pp->cursector();
SPRITEp under_sp = nullptr, over_sp = nullptr;
bool Found = false;
short over, under;
if (Prediction)
return;
@ -4122,15 +4121,15 @@ void DoPlayerWarpToUnderwater(PLAYERp pp)
pp->posx = under_sp->x - u->sx;
pp->posy = under_sp->y - u->sy;
over = over_sp->sectnum;
under = under_sp->sectnum;
auto over = over_sp->sector();
auto under = under_sp->sector();
if (GetOverlapSector(pp->posx, pp->posy, &over, &under) == 2)
{
pp->cursectnum = under;
pp->setcursector(under);
}
else
pp->cursectnum = over;
pp->setcursector(over);
pp->posz = under_sp->sector()->ceilingz + Z(6);
@ -4146,7 +4145,6 @@ void DoPlayerWarpToSurface(PLAYERp pp)
{
USERp u = pp->Actor()->u();
auto sectu = pp->cursector();
short over, under;
SPRITEp under_sp = nullptr, over_sp = nullptr;
bool Found = false;
@ -4197,12 +4195,12 @@ void DoPlayerWarpToSurface(PLAYERp pp)
pp->posx = over_sp->x - u->sx;
pp->posy = over_sp->y - u->sy;
over = over_sp->sectnum;
under = under_sp->sectnum;
auto over = over_sp->sector();
auto under = under_sp->sector();
if (GetOverlapSector(pp->posx, pp->posy, &over, &under))
{
pp->cursectnum = over;
pp->setcursector(over);
}
pp->posz = over_sp->sector()->floorz - Z(2);

View file

@ -18023,7 +18023,6 @@ bool SpriteWarpToUnderwater(DSWActor* actor)
auto sectu = sp->sector();
SPRITEp under_sp = nullptr, over_sp = nullptr;
bool Found = false;
short over, under;
int sx, sy;
// 0 not valid for water match tags
@ -18073,8 +18072,8 @@ bool SpriteWarpToUnderwater(DSWActor* actor)
sp->x = under_sp->x - sx;
sp->y = under_sp->y - sy;
over = over_sp->sectnum;
under = under_sp->sectnum;
auto over = over_sp->sector();
auto under = under_sp->sector();
if (GetOverlapSector(sp->x, sp->y, &over, &under) == 2)
{
@ -18097,7 +18096,6 @@ bool SpriteWarpToSurface(DSWActor* actor)
USERp u = actor->u();
auto sp = &actor->s();
auto sectu = sp->sector();
short over, under;
int sx, sy;
SPRITEp under_sp = nullptr, over_sp = nullptr;
@ -18154,8 +18152,8 @@ bool SpriteWarpToSurface(DSWActor* actor)
sp->x = over_sp->x - sx;
sp->y = over_sp->y - sy;
over = over_sp->sectnum;
under = under_sp->sectnum;
auto over = over_sp->sector();
auto under = under_sp->sector();
if (GetOverlapSector(sp->x, sp->y, &over, &under))
{