From 0b3b30170cd1fed64db2450f22671ed620d1b3b8 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 3 Nov 2021 17:47:13 +0100 Subject: [PATCH] - DoActorZRange parameters. --- source/games/sw/src/bunny.cpp | 8 +++--- source/games/sw/src/coolie.cpp | 2 +- source/games/sw/src/jweapon.cpp | 2 +- source/games/sw/src/ripper.cpp | 4 +-- source/games/sw/src/ripper2.cpp | 4 +-- source/games/sw/src/sprite.cpp | 44 +++++---------------------------- source/games/sw/src/sprite.h | 2 +- source/games/sw/src/track.cpp | 2 +- source/games/sw/src/weapon.cpp | 14 ++++++----- source/games/sw/src/zombie.cpp | 4 +-- 10 files changed, 28 insertions(+), 58 deletions(-) diff --git a/source/games/sw/src/bunny.cpp b/source/games/sw/src/bunny.cpp index d3f5df70f..f457c825d 100644 --- a/source/games/sw/src/bunny.cpp +++ b/source/games/sw/src/bunny.cpp @@ -875,7 +875,7 @@ int DoBunnyBeginJumpAttack(DSWActor* actor) u->jump_grav = 17; // was 8 // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actor->GetSpriteIndex()); + DoActorZrange(actor); DoJump(actor); @@ -903,7 +903,7 @@ int DoBunnyMoveJump(DSWActor* actor) DoActorFall(actor); } - DoActorZrange(actor->GetSpriteIndex()); + DoActorZrange(actor); if (!TEST(u->Flags, SPR_JUMPING | SPR_FALLING)) { @@ -1220,7 +1220,7 @@ void BunnyHatch(DSWActor* actor) nu->jump_grav = 8; // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); DoActorJump(actorNew); } @@ -1287,7 +1287,7 @@ DSWActor* BunnyHatch2(DSWActor* actor) nu->active_range = 75000; // Set it far // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); DoActorJump(actorNew); diff --git a/source/games/sw/src/coolie.cpp b/source/games/sw/src/coolie.cpp index 784b7fde4..7cb3a2e15 100644 --- a/source/games/sw/src/coolie.cpp +++ b/source/games/sw/src/coolie.cpp @@ -466,7 +466,7 @@ void EnemyDefaults(DSWActor* actor, ACTOR_ACTION_SETp action, PERSONALITYp perso u->Personality = person; u->ActorActionSet = action; - DoActorZrange(actor->GetSpriteIndex()); + DoActorZrange(actor); //KeepActorOnFloor(actor); // for swimming actors diff --git a/source/games/sw/src/jweapon.cpp b/source/games/sw/src/jweapon.cpp index 05d195ddd..083c576a2 100644 --- a/source/games/sw/src/jweapon.cpp +++ b/source/games/sw/src/jweapon.cpp @@ -1994,7 +1994,7 @@ int InitBloodSpray(DSWActor* actor, bool dogib, short velocity) wu->zchange = wp->zvel >> 1; if (!GlobalSkipZrange) - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); } return 0; diff --git a/source/games/sw/src/ripper.cpp b/source/games/sw/src/ripper.cpp index eb4b00128..37b952f17 100644 --- a/source/games/sw/src/ripper.cpp +++ b/source/games/sw/src/ripper.cpp @@ -1103,7 +1103,7 @@ int DoRipperBeginJumpAttack(DSWActor* actor) u->jump_grav = 17; // was 8 // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actor->GetSpriteIndex()); + DoActorZrange(actor); DoJump(actor); @@ -1262,7 +1262,7 @@ void RipperHatch(DSWActor* actor) nu->jump_grav = 8; // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); DoJump(actorNew); } diff --git a/source/games/sw/src/ripper2.cpp b/source/games/sw/src/ripper2.cpp index 78b692591..6add381c5 100644 --- a/source/games/sw/src/ripper2.cpp +++ b/source/games/sw/src/ripper2.cpp @@ -1113,7 +1113,7 @@ int DoRipper2BeginJumpAttack(DSWActor* actor) u->jump_grav = 8; // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actor->GetSpriteIndex()); + DoActorZrange(actor); DoJump(actor); @@ -1273,7 +1273,7 @@ void Ripper2Hatch(DSWActor* actor) nu->jump_grav = 8; // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); DoJump(actorNew); } diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 34349bae2..6250c2b7a 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -1623,7 +1623,7 @@ IconDefault(short SpriteNum) RESET(sp->cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN); u->Radius = 650; - DoActorZrange(SpriteNum); + DoActorZrange(actor); } void PreMapCombineFloors(void) @@ -3182,43 +3182,12 @@ KeyMain: u->Radius = 500; sp->hitag = LUMINOUS; //Set so keys over ride colored lighting - DoActorZrange(SpriteNum); + DoActorZrange(actor); } break; -#if 0 - case RED_KEY_STATUE: - num = 0; - goto KeyStatueMain; - case BLUE_KEY_STATUE: - num = 1; - goto KeyStatueMain; - case GREEN_KEY_STATUE: - num = 2; - goto KeyStatueMain; - case YELLOW_KEY_STATUE: - num = 3; -KeyStatueMain: - - u = SpawnUser(SpriteNum, 0, nullptr); - - ASSERT(u != nullptr); - sprite[SpriteNum].picnum = u->ID = sprite[SpriteNum].picnum; - - u->spal = sp->pal; - ChangeState(actor, s_KeyStatue[num]); - - RESET(picanm[sp->picnum].sf, PICANM_ANIMTYPE_MASK); - RESET(picanm[sp->picnum + 1].sf, PICANM_ANIMTYPE_MASK); - - change_actor_stat(actor, STAT_ITEM); - - DoActorZrange(SpriteNum); - break; -#endif - // Used for multiplayer locks case 1846: case 1850: @@ -4904,11 +4873,10 @@ getzrangepoint(int x, int y, int z, short sectnum, } -void -DoActorZrange(short SpriteNum) +void DoActorZrange(DSWActor* actor) { - SPRITEp sp = &sprite[SpriteNum]; - USERp u = User[SpriteNum].Data(); + USERp u = actor->u(), wu; + SPRITEp sp = &actor->s(), wp; int ceilhit, florhit; short save_cstat; @@ -7016,7 +6984,7 @@ void ActorWarpUpdatePos(short SpriteNum, short sectnum) sp->backuppos(); u->oz = sp->oz; ChangeActorSect(actor, sectnum); - DoActorZrange(SpriteNum); + DoActorZrange(actor); } void MissileWarpType(DSWActor* sp, DSWActor* act_warp) diff --git a/source/games/sw/src/sprite.h b/source/games/sw/src/sprite.h index 53d09603e..4eaeca0d4 100644 --- a/source/games/sw/src/sprite.h +++ b/source/games/sw/src/sprite.h @@ -49,7 +49,7 @@ bool CanMoveHere(int16_t spritenum); bool SpriteOverlap(int16_t spritenum_a, int16_t spritenum_b); int DoActorDie(DSWActor* actor, DSWActor* weapActor, int meansofdeath); void SpriteControl(void); -void DoActorZrange(short SpriteNum); +void DoActorZrange(DSWActor*); void PreMapCombineFloors(void); void SpriteSetupPost(void); int ActorCoughItem(short SpriteNum); diff --git a/source/games/sw/src/track.cpp b/source/games/sw/src/track.cpp index 6e27f523c..c9fc6ac5d 100644 --- a/source/games/sw/src/track.cpp +++ b/source/games/sw/src/track.cpp @@ -3584,7 +3584,7 @@ ActorTrackDecide(TRACK_POINTp tpoint, short SpriteNum) // destination z for climbing u->sz = sector[wall[hit_wall].nextsector].floorz; - DoActorZrange(SpriteNum); + DoActorZrange(actor); // // Adjust for YCENTERING diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index f11a40aec..974110b0f 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -7907,7 +7907,7 @@ DoStar(DSWActor* actor) sp->z += 128 * MISSILEMOVETICS; - DoActorZrange(Weapon); + DoActorZrange(actor); MissileWaterAdjust(Weapon); if (sp->z > u->loz) @@ -19528,7 +19528,8 @@ SpriteWarpToUnderwater(SPRITEp sp) bool SpriteWarpToSurface(SPRITEp sp) { - USERp u = User[sp - sprite].Data(); + auto actor = &swActors[sp - sprite]; + USERp u = actor->u(); int i; SECT_USERp sectu = SectUser[sp->sectnum].Data(); short over, under; @@ -19599,7 +19600,7 @@ SpriteWarpToSurface(SPRITEp sp) sp->z = sector[over_sp->sectnum].floorz - Z(2); // set z range and wade depth so we know how high to set view - DoActorZrange(short(sp - sprite)); + DoActorZrange(actor); MissileWaterAdjust(short(sp - sprite)); @@ -19612,8 +19613,9 @@ SpriteWarpToSurface(SPRITEp sp) int SpawnSplash(short SpriteNum) { - USERp u = User[SpriteNum].Data(), wu; - SPRITEp sp = User[SpriteNum]->SpriteP, wp; + auto actor = &swActors[SpriteNum]; + USERp u = actor->u(), wu; + SPRITEp sp = &actor->s(), wp; short w; SECT_USERp sectu = SectUser[sp->sectnum].Data(); @@ -19630,7 +19632,7 @@ SpawnSplash(short SpriteNum) PlaySound(DIGI_SPLASH1, sp, v3df_none); - DoActorZrange(SpriteNum); + DoActorZrange(actor); MissileWaterAdjust(SpriteNum); w = SpawnSprite(STAT_MISSILE, SPLASH, s_Splash, sp->sectnum, sp->x, sp->y, u->loz, sp->ang, 0); diff --git a/source/games/sw/src/zombie.cpp b/source/games/sw/src/zombie.cpp index fbca7922c..7a70ef406 100644 --- a/source/games/sw/src/zombie.cpp +++ b/source/games/sw/src/zombie.cpp @@ -804,7 +804,7 @@ void SpawnZombie(PLAYERp pp, DSWActor* weaponActor) RESET(nu->Flags, SPR_FALLING); // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); } void SpawnZombie2(DSWActor* actor) @@ -862,7 +862,7 @@ void SpawnZombie2(DSWActor* actor) RESET(nu->Flags, SPR_FALLING); // if I didn't do this here they get stuck in the air sometimes - DoActorZrange(actorNew->GetSpriteIndex()); + DoActorZrange(actorNew); } int DoZombieMove(DSWActor* actor)