- replaced some changespritesect with ChangeActorSect.

This commit is contained in:
Christoph Oelckers 2021-10-31 11:52:18 +01:00
parent a48b45143e
commit bd47d61615
4 changed files with 27 additions and 20 deletions

View file

@ -1586,7 +1586,7 @@ Collision move_scan(DSWActor* actor, short ang, int dist, int *stopx, int *stopy
u->highActor = highActor;
u->lo_sectp = lo_sectp;
u->hi_sectp = hi_sectp;
changespritesect(u->SpriteNum, ss);
ChangeActorSect(actor, ss);
return ret;
}

View file

@ -1846,7 +1846,7 @@ UpdatePlayerSprite(PLAYERp pp)
// there are multiple death functions
if (TEST(pp->Flags, PF_DEAD))
{
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
sprite[pp->PlayerSprite].ang = pp->angle.ang.asbuild();
UpdatePlayerUnderSprite(pp);
return;
@ -1855,24 +1855,24 @@ UpdatePlayerSprite(PLAYERp pp)
if (pp->sop_control)
{
sp->z = sector[pp->cursectnum].floorz;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
else if (pp->DoPlayerAction == DoPlayerCrawl)
{
sp->z = pp->posz + PLAYER_CRAWL_HEIGHT;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
#if 0
else if (pp->DoPlayerAction == DoPlayerSwim)
{
sp->z = pp->loz - Z(pp->WadeDepth) + Z(1);
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
#endif
else if (pp->DoPlayerAction == DoPlayerWade)
{
sp->z = pp->posz + PLAYER_HEIGHT;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
if (pp->WadeDepth > Z(29))
{
@ -1883,7 +1883,7 @@ UpdatePlayerSprite(PLAYERp pp)
{
// bobbing and sprite position taken care of in DoPlayerDive
sp->z = pp->posz + Z(10);
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
else if (pp->DoPlayerAction == DoPlayerClimb)
{
@ -1893,7 +1893,7 @@ UpdatePlayerSprite(PLAYERp pp)
//sp->x += MOVEx(256+64, sp->ang);
//sp->y += MOVEy(256+64, sp->ang);
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
else if (pp->DoPlayerAction == DoPlayerFly)
{
@ -1902,22 +1902,22 @@ UpdatePlayerSprite(PLAYERp pp)
//sp->z = pp->posz + PLAYER_HEIGHT;
//DoPlayerSpriteBob(pp, PLAYER_HEIGHT, PLAYER_FLY_BOB_AMT, 3);
DoPlayerSpriteBob(pp, PLAYER_HEIGHT, Z(6), 3);
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
else if (pp->DoPlayerAction == DoPlayerJump || pp->DoPlayerAction == DoPlayerFall || pp->DoPlayerAction == DoPlayerForceJump)
{
sp->z = pp->posz + PLAYER_HEIGHT;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
else if (pp->DoPlayerAction == DoPlayerTeleportPause)
{
sp->z = pp->posz + PLAYER_HEIGHT;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
else
{
sp->z = pp->loz;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
}
UpdatePlayerUnderSprite(pp);
@ -3558,7 +3558,7 @@ DoPlayerClimb(PLAYERp pp)
// setsprite to players location
sp->z = pp->posz + PLAYER_HEIGHT;
changespritesect(pp->PlayerSprite, pp->cursectnum);
ChangeActorSect(pp->Actor(), pp->cursectnum);
if (!SyncInput())
{
@ -6374,7 +6374,7 @@ void DoPlayerDeathMoveHead(PLAYERp pp)
if (sectnum < 0)
{
pp->cursectnum = pp->lv_sectnum;
changespritesect(pp->PlayerSprite, pp->lv_sectnum);
ChangeActorSect(pp->Actor(), pp->lv_sectnum);
pp->posx = sp->x = pp->lv_x;
pp->posy = sp->y = pp->lv_y;
}

View file

@ -2208,7 +2208,7 @@ SpriteSetup(void)
sp->xvel = sp->lotag;
sp->ang = SP_TAG6(sp);
// attach to the sector that contains the wall
changespritesect(SpriteNum, hitinfo.sect);
ChangeActorSect(actor, hitinfo.sect);
StartInterpolation(hitinfo.wall, Interp_Wall_PanX);
StartInterpolation(hitinfo.wall, Interp_Wall_PanY);
change_actor_stat(actor, STAT_WALL_PAN);
@ -5156,7 +5156,7 @@ int move_actor(DSWActor* actor, int xchange, int ychange, int zchange)
u->lo_sectp = lo_sectp;
u->hi_sectp = hi_sectp;
SetCollision(u, -1); // caution!!
changespritesect(SpriteNum, sectnum);
ChangeActorSect(actor, sectnum);
return false;
}
@ -5175,7 +5175,7 @@ int move_actor(DSWActor* actor, int xchange, int ychange, int zchange)
u->lo_sectp = lo_sectp;
u->hi_sectp = hi_sectp;
SetCollision(u, -1); // caution!!
changespritesect(SpriteNum, sectnum);
ChangeActorSect(actor, sectnum);
return false;
}
}
@ -6993,6 +6993,7 @@ move_sprite(int spritenum, int xchange, int ychange, int zchange, int ceildist,
int pushmove_sprite(short SpriteNum)
{
auto actor = &swActors[SpriteNum];
SPRITEp sp = &sprite[SpriteNum];
USERp u = User[SpriteNum].Data();
int sectnum, ret;
@ -7003,7 +7004,7 @@ int pushmove_sprite(short SpriteNum)
(((int)sp->clipdist)<<2)-GETZRANGE_CLIP_ADJ, u->ceiling_dist, u->floor_dist, CLIPMASK_ACTOR);
if (sectnum != sp->sectnum && sectnum >= 0)
changespritesect(SpriteNum, sectnum);
ChangeActorSect(actor, sectnum);
if (ret < 0)
{
@ -7017,21 +7018,23 @@ int pushmove_sprite(short SpriteNum)
void MissileWarpUpdatePos(short SpriteNum, short sectnum)
{
auto actor = &swActors[SpriteNum];
USERp u = User[SpriteNum].Data();
SPRITEp sp = u->SpriteP;
sp->backuppos();
u->oz = sp->oz;
changespritesect(SpriteNum, sectnum);
ChangeActorSect(actor, sectnum);
MissileZrange(SpriteNum);
}
void ActorWarpUpdatePos(short SpriteNum, short sectnum)
{
auto actor = &swActors[SpriteNum];
USERp u = User[SpriteNum].Data();
SPRITEp sp = u->SpriteP;
sp->backuppos();
u->oz = sp->oz;
changespritesect(SpriteNum, sectnum);
ChangeActorSect(actor, sectnum);
DoActorZrange(SpriteNum);
}

View file

@ -186,5 +186,9 @@ inline FSerializer& Serialize(FSerializer& arc, const char* keyname, DSWActor*&
return arc;
}
inline void ChangeActorSect(DSWActor* actor, int sect)
{
changespritesect(actor->GetSpriteIndex(), sect);
}
END_SW_NS