From 95c92153ad1d4d18f964fb580ed7112c8f1d0b6c Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 3 Nov 2021 17:29:20 +0100 Subject: [PATCH] - zilla.cpp --- source/games/sw/src/sprite.cpp | 4 ++-- source/games/sw/src/zilla.cpp | 43 ++++++++++------------------------ 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 67b92adf6..e6b05765a 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -59,7 +59,7 @@ int SetupGoro(DSWActor*); int SetupCoolg(DSWActor*); int SetupEel(DSWActor*); int SetupSumo(DSWActor*); -int SetupZilla(short); +int SetupZilla(DSWActor*); int SetupToiletGirl(DSWActor*); int SetupWashGirl(DSWActor*); int SetupCarGirl(DSWActor*); @@ -1282,7 +1282,7 @@ ActorSpawn(SPRITEp sp) } PicAnimOff(sp->picnum); - SetupZilla(SpriteNum); + SetupZilla(actor); break; } diff --git a/source/games/sw/src/zilla.cpp b/source/games/sw/src/zilla.cpp index 9a213a762..8ab7e2892 100644 --- a/source/games/sw/src/zilla.cpp +++ b/source/games/sw/src/zilla.cpp @@ -638,22 +638,20 @@ ACTOR_ACTION_SET ZillaActionSet = nullptr }; -int -SetupZilla(short SpriteNum) +int SetupZilla(DSWActor* actor) { - auto actor = &swActors[SpriteNum]; - SPRITEp sp = &sprite[SpriteNum]; + SPRITEp sp = &actor->s(); USERp u; ANIMATOR DoActorDecide; if (TEST(sp->cstat, CSTAT_SPRITE_RESTORE)) { - u = User[SpriteNum].Data(); + u = actor->u(); ASSERT(u); } else { - u = SpawnUser(SpriteNum,ZILLA_RUN_R0,s_ZillaRun[0]); + u = SpawnUser(actor, ZILLA_RUN_R0, s_ZillaRun[0]); u->Health = 6000; } @@ -672,19 +670,13 @@ SetupZilla(short SpriteNum) sp->xrepeat = 97; sp->yrepeat = 79; - //SET(u->Flags, SPR_XFLIP_TOGGLE); - return 0; } int NullZilla(DSWActor* actor) { USER* u = actor->u(); - int SpriteNum = u->SpriteNum; - SPRITEp sp = User[SpriteNum]->SpriteP; - - //if (TEST(u->Flags,SPR_SLIDING)) - //DoActorSlide(actor); + SPRITEp sp = &actor->s(); #if 0 if (u->State == s_ZillaDie) @@ -713,25 +705,21 @@ int NullZilla(DSWActor* actor) int DoZillaMove(DSWActor* actor) { USER* u = actor->u(); - int SpriteNum = u->SpriteNum; - SPRITEp sp = &sprite[SpriteNum]; + SPRITEp sp = &actor->s(); short choose; - //if (TEST(u->Flags,SPR_SLIDING)) - //DoActorSlide(actor); - // Random Zilla taunts if (!SoundValidAndActive(sp, CHAN_AnimeMad)) { choose = STD_RANDOM_RANGE(1000); if (choose > 990) - PlaySound(DIGI_Z16004, sp, v3df_none, CHAN_AnimeMad); + PlaySound(DIGI_Z16004, actor, v3df_none, CHAN_AnimeMad); else if (choose > 985) - PlaySound(DIGI_Z16004, sp, v3df_none, CHAN_AnimeMad); + PlaySound(DIGI_Z16004, actor, v3df_none, CHAN_AnimeMad); else if (choose > 980) - PlaySound(DIGI_Z16004, sp, v3df_none, CHAN_AnimeMad); + PlaySound(DIGI_Z16004, actor, v3df_none, CHAN_AnimeMad); else if (choose > 975) - PlaySound(DIGI_Z16004, sp, v3df_none, CHAN_AnimeMad); + PlaySound(DIGI_Z16004, actor, v3df_none, CHAN_AnimeMad); } @@ -752,11 +740,7 @@ int DoZillaMove(DSWActor* actor) int DoZillaStomp(DSWActor* actor) { - USER* u = actor->u(); - int SpriteNum = u->SpriteNum; - SPRITEp sp = &sprite[SpriteNum]; - - PlaySound(DIGI_ZILLASTOMP, sp, v3df_follow); + PlaySound(DIGI_ZILLASTOMP, actor, v3df_follow); return 0; } @@ -766,11 +750,10 @@ extern int SpawnGrenadeExp(int16_t Weapon); int DoZillaDeathMelt(DSWActor* actor) { USER* u = actor->u(); - int SpriteNum = u->SpriteNum; - SPRITEp sp = &sprite[SpriteNum]; + SPRITEp sp = &actor->s(); if (RandomRange(1000) > 800) - SpawnGrenadeExp(SpriteNum); + SpawnGrenadeExp(actor->GetSpriteIndex()); u->ID = ZILLA_RUN_R0; RESET(u->Flags, SPR_JUMPING|SPR_FALLING|SPR_MOVED);