From bd47d616159edc97a43371395036353eeb4f3a89 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 31 Oct 2021 11:52:18 +0100 Subject: [PATCH] - replaced some changespritesect with ChangeActorSect. --- source/games/sw/src/ai.cpp | 2 +- source/games/sw/src/player.cpp | 26 +++++++++++++------------- source/games/sw/src/sprite.cpp | 15 +++++++++------ source/games/sw/src/swactor.h | 4 ++++ 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index 6e5a30096..bad6db478 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -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; } diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index 507ecafee..3052c67e2 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -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; } diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 999038851..2a4dd0c26 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -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); } diff --git a/source/games/sw/src/swactor.h b/source/games/sw/src/swactor.h index 64968bbe7..39646f2de 100644 --- a/source/games/sw/src/swactor.h +++ b/source/games/sw/src/swactor.h @@ -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