From c0c27dfd1a63162a7a439bf541bdb01aef82bb14 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 31 Oct 2021 00:29:54 +0200 Subject: [PATCH] - replaced lo_sp with an actor pointer, both in USER and PLAYER. --- source/games/sw/src/actor.cpp | 6 +++--- source/games/sw/src/ai.cpp | 7 ++++--- source/games/sw/src/bots.h | 2 +- source/games/sw/src/bunny.cpp | 25 ++++++++++++------------ source/games/sw/src/coolg.cpp | 2 +- source/games/sw/src/draw.cpp | 4 ++-- source/games/sw/src/eel.cpp | 4 ++-- source/games/sw/src/game.h | 6 ++++-- source/games/sw/src/hornet.cpp | 2 +- source/games/sw/src/player.cpp | 15 ++++++++------- source/games/sw/src/ripper.cpp | 4 ++-- source/games/sw/src/ripper2.cpp | 6 ++---- source/games/sw/src/save.cpp | 4 ++-- source/games/sw/src/sprite.cpp | 34 ++++++++++++++++++--------------- source/games/sw/src/track.cpp | 3 ++- source/games/sw/src/weapon.cpp | 26 ++++++++++++------------- source/games/sw/src/zilla.cpp | 4 ++-- 17 files changed, 80 insertions(+), 74 deletions(-) diff --git a/source/games/sw/src/actor.cpp b/source/games/sw/src/actor.cpp index 9f8241bb1..c9d291b74 100644 --- a/source/games/sw/src/actor.cpp +++ b/source/games/sw/src/actor.cpp @@ -130,7 +130,7 @@ int DoActorDie(DSWActor* actor, DSWActor* weapActor, int meansofdeath) switch (wu->ID) { // Coolie actually explodes himself - // he is the Sprite AND Weapon + // he is the Sprite AND weapon case COOLIE_RUN_R0: ChangeState(actor, u->StateEnd); u->RotNum = 0; @@ -422,7 +422,7 @@ int DoActorDebris(DSWActor* actor) getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz); u->lo_sectp = §or[sp->sectnum]; u->hi_sectp = §or[sp->sectnum]; - u->lo_sp = nullptr; + u->lowActor = nullptr; u->hi_sp = nullptr; break; } @@ -782,7 +782,7 @@ int DoActorStopFall(DSWActor* actor) // don't stand on face or wall sprites - jump again - if (u->lo_sp && !TEST(u->lo_sp->cstat, CSTAT_SPRITE_ALIGNMENT_FLOOR)) + if (u->lowActor && !TEST(u->lowActor->s().cstat, CSTAT_SPRITE_ALIGNMENT_FLOOR)) { //sp->ang = NORM_ANGLE(sp->ang + (RANDOM_P2(64<<8)>>8) - 32); sp->ang = NORM_ANGLE(sp->ang + 1024 + (RANDOM_P2(512<<8)>>8)); diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index db720aa75..2e34d40d7 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -1619,7 +1619,8 @@ int move_scan(DSWActor* actor, short ang, int dist, int *stopx, int *stopy, int short sang,ss; int x, y, z, loz, hiz; - SPRITEp lo_sp, hi_sp; + SPRITEp hi_sp; + DSWActor *lowActor; SECTORp lo_sectp, hi_sectp; @@ -1632,7 +1633,7 @@ int move_scan(DSWActor* actor, short ang, int dist, int *stopx, int *stopy, int sang = sp->ang; loz = u->loz; hiz = u->hiz; - lo_sp = u->lo_sp; + lowActor = u->lowActor; hi_sp = u->hi_sp; lo_sectp = u->lo_sectp; hi_sectp = u->hi_sectp; @@ -1661,7 +1662,7 @@ int move_scan(DSWActor* actor, short ang, int dist, int *stopx, int *stopy, int sp->ang = sang; u->loz = loz; u->hiz = hiz; - u->lo_sp = lo_sp; + u->lowActor = lowActor; u->hi_sp = hi_sp; u->lo_sectp = lo_sectp; u->hi_sectp = hi_sectp; diff --git a/source/games/sw/src/bots.h b/source/games/sw/src/bots.h index 5d0776960..c4a3f2124 100644 --- a/source/games/sw/src/bots.h +++ b/source/games/sw/src/bots.h @@ -67,7 +67,7 @@ struct NODETREEstruct typedef struct BOT_BRAIN { short tgt_inv; // Inventory item it wants to use - short tgt_weapon; // Weapon in wants to activate and use + short tgt_weapon; // weapon in wants to activate and use short tgt_enemy; // Enemy it wants to kill short tgt_sprite; // Sprite it wants to pickup or operate short tgt_sector; // Sector it wants to get to diff --git a/source/games/sw/src/bunny.cpp b/source/games/sw/src/bunny.cpp index b875a7434..ce6277456 100644 --- a/source/games/sw/src/bunny.cpp +++ b/source/games/sw/src/bunny.cpp @@ -955,7 +955,7 @@ DoPickCloseBunny(USERp u) { near_dist = dist; u->targetActor = itActor; - u->lo_sp = tsp; + u->lowActor = itActor; //Bunny_Result = i; return i; } @@ -972,15 +972,14 @@ DoBunnyQuickJump(DSWActor* actor) if (u->spal != PALETTE_PLAYER8) return false; - if (!u->lo_sp && u->spal == PALETTE_PLAYER8 && MoveSkip4) + if (!u->lowActor&& u->spal == PALETTE_PLAYER8 && MoveSkip4) DoPickCloseBunny(u); // Random Chance of like sexes fighting - if (u->lo_sp) + if (u->lowActor) { - short hit_sprite = short(u->lo_sp - sprite); - auto hitActor = &swActors[hit_sprite]; - SPRITEp tsp = u->lo_sp; + auto hitActor = u->lowActor; + SPRITEp tsp = &hitActor->s(); USERp tu = hitActor->u(); if (!tu || tu->ID != BUNNY_RUN_R0) return false; @@ -1001,7 +1000,7 @@ DoBunnyQuickJump(DSWActor* actor) tu->Health = 0; // Blood fountains - InitBloodSpray(hit_sprite,true,-1); + InitBloodSpray(hitActor->GetSpriteIndex(), true,-1); if (SpawnShrap(hitActor, actor)) { @@ -1012,18 +1011,18 @@ DoBunnyQuickJump(DSWActor* actor) Bunny_Count--; // Bunny died - u->lo_sp = nullptr; + u->lowActor = nullptr; return true; } } } // Get layed! - if (u->lo_sp && u->spal == PALETTE_PLAYER8) // Only males check this + if (u->lowActor && u->spal == PALETTE_PLAYER8) // Only males check this { - short hit_sprite = short(u->lo_sp - sprite); - SPRITEp tsp = u->lo_sp; - USERp tu = User[hit_sprite].Data(); + auto hitActor = u->lowActor; + SPRITEp tsp = &hitActor->s(); + USERp tu = hitActor->u(); if (!tu || tu->ID != BUNNY_RUN_R0) return false; @@ -1090,7 +1089,7 @@ DoBunnyQuickJump(DSWActor* actor) tu->Vis = tsp->ang; NewStateGroup(actor, sg_BunnyScrew); - NewStateGroup_(hit_sprite, sg_BunnyScrew); + NewStateGroup(hitActor, sg_BunnyScrew); u->WaitTics = tu->WaitTics = SEC(10); // Mate for this long return true; } diff --git a/source/games/sw/src/coolg.cpp b/source/games/sw/src/coolg.cpp index fdf9c1f2f..09d890126 100644 --- a/source/games/sw/src/coolg.cpp +++ b/source/games/sw/src/coolg.cpp @@ -660,7 +660,7 @@ int DoCoolgMatchPlayerZ(DSWActor* actor) loz -= Z(FixedToInt(SectUser[u->lo_sectp - sector]->depth_fixed)) - Z(8); // lower bound - if (u->lo_sp) + if (u->lowActor) bound = loz - u->floor_dist; else bound = loz - u->floor_dist - COOLG_BOB_AMT; diff --git a/source/games/sw/src/draw.cpp b/source/games/sw/src/draw.cpp index b60bc3619..c2a949f0f 100644 --- a/source/games/sw/src/draw.cpp +++ b/source/games/sw/src/draw.cpp @@ -308,9 +308,9 @@ DoShadows(spritetype* tsprite, int& spritesortcnt, tspriteptr_t tsp, int viewz, SET(New->cstat, CSTAT_SPRITE_TRANSLUCENT); loz = tu->loz; - if (tu->lo_sp) + if (tu->lowActor) { - if (!TEST(tu->lo_sp->cstat, CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_ALIGNMENT_FLOOR)) + if (!TEST(tu->lowActor->s().cstat, CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_ALIGNMENT_FLOOR)) { loz = DoShadowFindGroundPoint(tsp); } diff --git a/source/games/sw/src/eel.cpp b/source/games/sw/src/eel.cpp index 42738feb7..1ec8e4e04 100644 --- a/source/games/sw/src/eel.cpp +++ b/source/games/sw/src/eel.cpp @@ -480,9 +480,9 @@ int DoEelMatchPlayerZ(DSWActor* actor) loz -= Z(FixedToInt(SectUser[u->lo_sectp - sector]->depth_fixed)) - Z(8); // lower bound - if (u->lo_sp && u->tgt_sp() == u->hi_sp) + if (u->lowActor && u->tgt_sp() == u->hi_sp) { - DISTANCE(sp->x, sp->y, u->lo_sp->x, u->lo_sp->y, dist, a, b, c); + DISTANCE(sp->x, sp->y, u->lowActor->s().x, u->lowActor->s().y, dist, a, b, c); if (dist <= 300) bound = u->sz; else diff --git a/source/games/sw/src/game.h b/source/games/sw/src/game.h index 09287f40a..695fbf726 100644 --- a/source/games/sw/src/game.h +++ b/source/games/sw/src/game.h @@ -775,7 +775,8 @@ struct PLAYERstruct int hiz,loz; int ceiling_dist,floor_dist; SECTORp hi_sectp, lo_sectp; - SPRITEp hi_sp, lo_sp; + SPRITEp hi_sp; + DSWActor* lowActor; SPRITEp last_camera_sp; int circle_camera_dist; @@ -1131,7 +1132,8 @@ struct USER int hiz,loz; int zclip; // z height to move up for clipmove SECTORp hi_sectp, lo_sectp; - SPRITEp hi_sp, lo_sp; + SPRITEp hi_sp; + DSWActor* lowActor; int active_range; diff --git a/source/games/sw/src/hornet.cpp b/source/games/sw/src/hornet.cpp index 016a36a43..20142f4de 100644 --- a/source/games/sw/src/hornet.cpp +++ b/source/games/sw/src/hornet.cpp @@ -386,7 +386,7 @@ int DoHornetMatchPlayerZ(short SpriteNum) loz -= Z(FixedToInt(SectUser[u->lo_sectp - sector]->depth_fixed)) - Z(8); // lower bound - if (u->lo_sp) + if (u->lowActor) bound = loz - u->floor_dist; else bound = loz - u->floor_dist - HORNET_BOB_AMT; diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index aeb613daa..b1e188181 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -1946,7 +1946,8 @@ DoPlayerZrange(PLAYERp pp) // 49152+spritenum (sprite first touched) pp->lo_sectp = pp->hi_sectp = nullptr; - pp->lo_sp = pp->hi_sp = nullptr; + pp->lowActor = nullptr; + pp->hi_sp = nullptr; if (TEST(ceilhit, 0xc000) == 49152) { @@ -1959,14 +1960,14 @@ DoPlayerZrange(PLAYERp pp) if (TEST(florhit, 0xc000) == 49152) { - pp->lo_sp = &sprite[florhit & 4095]; + pp->lowActor = &swActors[florhit & 4095]; // prevent player from standing on Zombies - if (pp->lo_sp->statnum == STAT_ENEMY && User[pp->lo_sp - sprite]->ID == ZOMBIE_RUN_R0) + if (pp->lowActor->s().statnum == STAT_ENEMY && pp->lowActor->u()->ID == ZOMBIE_RUN_R0) { - pp->lo_sectp = §or[pp->lo_sp->sectnum]; - pp->loz = pp->lo_sp->z; - pp->lo_sp = nullptr; + pp->lo_sectp = §or[pp->lowActor->s().sectnum]; + pp->loz = pp->lowActor->s().z; + pp->lowActor = nullptr; } } else @@ -6082,7 +6083,7 @@ DoPlayerDeathZrange(PLAYERp pp) // update player values with results from DoFindGround // pp->hiz = u->hiz; pp->loz = u->loz; - pp->lo_sp = u->lo_sp; + pp->lowActor = u->lowActor; //pp->hi_sp = u->hi_sp; pp->lo_sectp = u->lo_sectp; //pp->hi_sectp = u->hi_sectp; diff --git a/source/games/sw/src/ripper.cpp b/source/games/sw/src/ripper.cpp index dbfc5a490..9daa23071 100644 --- a/source/games/sw/src/ripper.cpp +++ b/source/games/sw/src/ripper.cpp @@ -1161,9 +1161,9 @@ DoRipperQuickJump(DSWActor* actor) // Tests to see if ripper is on top of a player/enemy and then immediatly // does another jump - if (u->lo_sp) + if (u->lowActor) { - SPRITEp tsp = u->lo_sp; + SPRITEp tsp = &u->lowActor->s(); if (TEST(tsp->extra, SPRX_PLAYER_OR_ENEMY)) { diff --git a/source/games/sw/src/ripper2.cpp b/source/games/sw/src/ripper2.cpp index 8d02c3491..92507b489 100644 --- a/source/games/sw/src/ripper2.cpp +++ b/source/games/sw/src/ripper2.cpp @@ -1139,7 +1139,6 @@ int DoRipper2MoveJump(DSWActor* actor) { USER* u = actor->u(); - int SpriteNum = u->SpriteNum; if (TEST(u->Flags, SPR_JUMPING | SPR_FALLING)) { @@ -1169,14 +1168,13 @@ int DoRipper2QuickJump(DSWActor* actor) { USER* u = actor->u(); - int SpriteNum = u->SpriteNum; // Tests to see if ripper2 is on top of a player/enemy and then immediatly // does another jump - if (u->lo_sp) + if (u->lowActor) { - SPRITEp tsp = u->lo_sp; + SPRITEp tsp = &u->lowActor->s(); if (TEST(tsp->extra, SPRX_PLAYER_OR_ENEMY)) { diff --git a/source/games/sw/src/save.cpp b/source/games/sw/src/save.cpp index b251ea6bd..8affa9600 100644 --- a/source/games/sw/src/save.cpp +++ b/source/games/sw/src/save.cpp @@ -461,7 +461,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, PLAYERstruct& w, P ("hi_sectp", w.hi_sectp) ("lo_sectp", w.lo_sectp) ("hi_sp", w.hi_sp) - ("lo_sp", w.lo_sp) + ("lo_sp", w.lowActor) ("last_camera_sp", w.last_camera_sp) ("circle_camera_dist", w.circle_camera_dist) ("six", w.six) @@ -867,7 +867,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, USER& w, USER* def ("hi_sectp", w.hi_sectp, def->hi_sectp) ("lo_sectp", w.lo_sectp, def->lo_sectp) ("hi_sp", w.hi_sp, def->hi_sp) - ("lo_sp", w.lo_sp, def->lo_sp) + ("lo_sp", w.lowActor, def->lowActor) ("active_range", w.active_range, def->active_range) ("SpriteNum", w.SpriteNum, def->SpriteNum) ("Attach", w.Attach, def->Attach) diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 37ba36256..4147c32c6 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -626,8 +626,9 @@ void KillActor(DSWActor* actor) void KillSprite(int16_t SpriteNum) { - SPRITEp sp = &sprite[SpriteNum]; - USERp u = User[SpriteNum].Data(); + auto actor = &swActors[SpriteNum]; + SPRITEp sp = &actor->s(); + USERp u = actor->u(); int i; unsigned stat; short statnum,sectnum; @@ -804,8 +805,8 @@ void KillSprite(int16_t SpriteNum) if (u.Data()) { if (u->hi_sp == sp) u->hi_sp = nullptr; - if (u->lo_sp == sp) u->lo_sp = nullptr; - if (u->tgt_sp() == sp) u->targetActor = nullptr; + if (u->lowActor == actor) u->lowActor = nullptr; + if (u->targetActor == actor) u->targetActor = nullptr; } } } @@ -936,7 +937,7 @@ SpawnUser(short SpriteNum, short id, STATEp state) #else u->loz = sector[sp->sectnum].floorz; u->hiz = sector[sp->sectnum].ceilingz; - u->lo_sp = nullptr; + u->lowActor = nullptr; u->hi_sp = nullptr; u->lo_sectp = §or[sp->sectnum]; u->hi_sectp = §or[sp->sectnum]; @@ -4940,7 +4941,8 @@ DoActorZrange(short SpriteNum) SET(sp->cstat, save_cstat); u->lo_sectp = u->hi_sectp = nullptr; - u->lo_sp = u->hi_sp = nullptr; + u->hi_sp = nullptr; + u->lowActor = nullptr; switch (TEST(ceilhit, HIT_MASK)) { @@ -4958,7 +4960,7 @@ DoActorZrange(short SpriteNum) switch (TEST(florhit, HIT_MASK)) { case HIT_SPRITE: - u->lo_sp = &sprite[NORM_SPRITE(florhit)]; + u->lowActor = &swActors[NORM_SPRITE(florhit)]; break; case HIT_SECTOR: u->lo_sectp = §or[NORM_SECTOR(florhit)]; @@ -4981,7 +4983,8 @@ DoActorGlobZ(short SpriteNum) u->hiz = globhiz; u->lo_sectp = u->hi_sectp = nullptr; - u->lo_sp = u->hi_sp = nullptr; + u->hi_sp = nullptr; + u->lowActor = nullptr; switch (TEST(globhihit, HIT_MASK)) { @@ -4996,7 +4999,7 @@ DoActorGlobZ(short SpriteNum) switch (TEST(globlohit, HIT_MASK)) { case HIT_SPRITE: - u->lo_sp = &sprite[globlohit & 4095]; + u->lowActor = &swActors[globlohit & 4095]; break; default: u->lo_sectp = §or[globlohit & 4095]; @@ -5105,7 +5108,8 @@ int move_actor(DSWActor* actor, int xchange, int ychange, int zchange) SPRITEp sp = &actor->s(); int x, y, z, loz, hiz; - SPRITEp lo_sp, hi_sp; + SPRITEp hi_sp; + DSWActor* lowActor; SECTORp lo_sectp, hi_sectp; short sectnum; short dist; @@ -5125,7 +5129,7 @@ int move_actor(DSWActor* actor, int xchange, int ychange, int zchange) z = sp->z; loz = u->loz; hiz = u->hiz; - lo_sp = u->lo_sp; + lowActor = u->lowActor; hi_sp = u->hi_sp; lo_sectp = u->lo_sectp; hi_sectp = u->hi_sectp; @@ -5148,7 +5152,7 @@ int move_actor(DSWActor* actor, int xchange, int ychange, int zchange) //sp->z = u->loz; // place on ground in case you are in the air u->loz = loz; u->hiz = hiz; - u->lo_sp = lo_sp; + u->lowActor = lowActor; u->hi_sp = hi_sp; u->lo_sectp = lo_sectp; u->hi_sectp = hi_sectp; @@ -5167,7 +5171,7 @@ int move_actor(DSWActor* actor, int xchange, int ychange, int zchange) //sp->z = u->loz; // place on ground in case you are in the air u->loz = loz; u->hiz = hiz; - u->lo_sp = lo_sp; + u->lowActor = lowActor; u->hi_sp = hi_sp; u->lo_sectp = lo_sectp; u->hi_sectp = hi_sectp; @@ -7378,7 +7382,7 @@ move_ground_missile(short spritenum, int xchange, int ychange, int ceildist, int getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz); u->hi_sectp = u->lo_sectp = §or[sp->sectnum]; - u->hi_sp = u->lo_sp = nullptr; + u->hi_sp = u->lowActor = nullptr; return retval; } else @@ -7405,7 +7409,7 @@ move_ground_missile(short spritenum, int xchange, int ychange, int ceildist, int getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz); u->hi_sectp = u->lo_sectp = §or[sp->sectnum]; - u->hi_sp = u->lo_sp = nullptr; + u->hi_sp = nullptr; u->lowActor = nullptr; sp->z = u->loz - Z(8); if (labs(u->hiz - u->loz) < Z(12)) diff --git a/source/games/sw/src/track.cpp b/source/games/sw/src/track.cpp index 51a2c92d2..560629a07 100644 --- a/source/games/sw/src/track.cpp +++ b/source/games/sw/src/track.cpp @@ -1799,6 +1799,7 @@ PlayerPart: { sp = &sprite[sop->sp_num[i]]; u = User[sop->sp_num[i]].Data(); + auto actor = &swActors[u->SpriteNum]; // if its a player sprite || NOT attached if (!u || u->PlayerP || !TEST(u->Flags, SPR_SO_ATTACHED)) @@ -1809,7 +1810,7 @@ PlayerPart: { pp = Player + pnum; - if (pp->lo_sp && pp->lo_sp == sp) + if (pp->lowActor && pp->lowActor == actor) { if (PlayerMove) MovePlayer(pp, sop, nx, ny); diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index 102365a9a..ff5479880 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -4460,15 +4460,13 @@ WeaponMoveHit(short SpriteNum) if (sp->z > DIV2(u->hiz + u->loz)) { // hit a floor sprite - if (u->lo_sp) + if (u->lowActor) { - if (u->lo_sp->lotag == TAG_SPRITE_HIT_MATCH) + if (u->lowActor->s().lotag == TAG_SPRITE_HIT_MATCH) { - if (MissileHitMatch(SpriteNum, -1, short(u->lo_sp - sprite))) + if (MissileHitMatch(SpriteNum, -1, u->lowActor->GetSpriteIndex())) return true; - //DoMatchEverything(nullptr, u->lo_sp->hitag, -1); - //return(true); } return true; @@ -8053,8 +8051,8 @@ DoStar(DSWActor* actor) } } - if (u->lo_sp) - if (u->lo_sp->lotag == TAG_SPRITE_HIT_MATCH) + if (u->lowActor) + if (u->lowActor->s().lotag == TAG_SPRITE_HIT_MATCH) break; if (u->hi_sp) if (u->hi_sp->lotag == TAG_SPRITE_HIT_MATCH) @@ -11980,12 +11978,13 @@ DoFindGround(int16_t SpriteNum) { case HIT_SPRITE: { - hsp = &sprite[NORM_SPRITE(florhit)]; + auto florActor = &swActors[NORM_SPRITE(florhit)]; + hsp = &florActor->s(); if (TEST(hsp->cstat, CSTAT_SPRITE_ALIGNMENT_FLOOR)) { // found a sprite floor - u->lo_sp = hsp; + u->lowActor = florActor; u->lo_sectp = nullptr; return true; } @@ -12004,7 +12003,7 @@ DoFindGround(int16_t SpriteNum) case HIT_SECTOR: { u->lo_sectp = §or[NORM_SECTOR(florhit)]; - u->lo_sp = nullptr; + u->lowActor = nullptr; return true; } @@ -12038,12 +12037,13 @@ int DoFindGroundPoint(DSWActor* actor) { case HIT_SPRITE: { - hsp = &sprite[NORM_SPRITE(florhit)]; + auto florActor = &swActors[NORM_SPRITE(florhit)]; + hsp = &florActor->s(); if (TEST(hsp->cstat, CSTAT_SPRITE_ALIGNMENT_FLOOR)) { // found a sprite floor - u->lo_sp = hsp; + u->lowActor = florActor; u->lo_sectp = nullptr; return true; } @@ -12062,7 +12062,7 @@ int DoFindGroundPoint(DSWActor* actor) case HIT_SECTOR: { u->lo_sectp = §or[NORM_SECTOR(florhit)]; - u->lo_sp = nullptr; + u->lowActor = nullptr; return true; } diff --git a/source/games/sw/src/zilla.cpp b/source/games/sw/src/zilla.cpp index 0f9e7fd2e..5d3dd6fae 100644 --- a/source/games/sw/src/zilla.cpp +++ b/source/games/sw/src/zilla.cpp @@ -703,7 +703,7 @@ int NullZilla(DSWActor* actor) getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz); u->lo_sectp = §or[sp->sectnum]; u->hi_sectp = §or[sp->sectnum]; - u->lo_sp = nullptr; + u->lowActor = nullptr; u->hi_sp = nullptr; sp->z = u->loz; @@ -788,7 +788,7 @@ int DoZillaDeathMelt(DSWActor* actor) getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz); u->lo_sectp = §or[sp->sectnum]; u->hi_sectp = §or[sp->sectnum]; - u->lo_sp = nullptr; + u->lowActor = nullptr; u->hi_sp = nullptr; sp->z = u->loz;