From 7732f5e96dd01fbfa0345e5e4e2dd9468d1e5442 Mon Sep 17 00:00:00 2001 From: Tom Overton Date: Thu, 21 Jul 2022 21:53:14 -0700 Subject: [PATCH] Boss_02 Documentation, Part 2: Document Twinmold Param Types and name most BSS variables (#931) * Boss_02 Documentation, Part 2: Document Twinmold Param Types and name most BSS variables * Respond to hensldm's review --- src/overlays/actors/ovl_Boss_02/z_boss_02.c | 442 ++++++++++---------- src/overlays/actors/ovl_Boss_02/z_boss_02.h | 9 +- tools/disasm/functions.txt | 10 +- tools/disasm/variables.txt | 12 +- 4 files changed, 241 insertions(+), 232 deletions(-) diff --git a/src/overlays/actors/ovl_Boss_02/z_boss_02.c b/src/overlays/actors/ovl_Boss_02/z_boss_02.c index b898f996fb..ab2219ebdb 100644 --- a/src/overlays/actors/ovl_Boss_02/z_boss_02.c +++ b/src/overlays/actors/ovl_Boss_02/z_boss_02.c @@ -16,16 +16,16 @@ void Boss02_Init(Actor* thisx, PlayState* play); void Boss02_Destroy(Actor* thisx, PlayState* play); -void Boss02_Update(Actor* thisx, PlayState* play); -void Boss02_Draw(Actor* thisx, PlayState* play); +void Boss02_Twinmold_Update(Actor* thisx, PlayState* play); +void Boss02_Twinmold_Draw(Actor* thisx, PlayState* play); void func_809DAA74(Boss02* this, PlayState* play); void func_809DAA98(Boss02* this, PlayState* play); void func_809DAAA8(Boss02* this, PlayState* play); void func_809DAB78(Boss02* this, PlayState* play); -void func_809DC218(Actor* thisx, PlayState* play); -void func_809DC78C(Actor* thisx, PlayState* play); -void func_809DD0A8(Actor* thisx, PlayState* play); +void Boss02_Tail_Update(Actor* thisx, PlayState* play); +void Boss02_Static_Update(Actor* thisx, PlayState* play); +void Boss02_Static_Draw(Actor* thisx, PlayState* play); void Boss02_UpdateEffects(PlayState* play); void Boss02_DrawEffects(PlayState* play); void func_809DD934(Boss02* this, PlayState* play); @@ -33,15 +33,15 @@ void func_809DEAC4(Boss02* this, PlayState* play); u8 D_809E0420; u8 D_809E0421; -u8 D_809E0422; // 0 when the giant's mask is off, 1 when the giant's mask is on -Boss02* D_809E0424; -Boss02* D_809E0428; -Boss02* D_809E042C; -u8 D_809E0430; -DoorWarp1* D_809E0434; -TwinmoldEffect D_809E0438[150]; +u8 sIsInGiantMode; +Boss02* sRedTwinmold; +Boss02* sBlueTwinmold; +Boss02* sTwinmoldStatic; +u8 sMusicStartTimer; +DoorWarp1* sBlueWarp; +TwinmoldEffect sEffects[150]; -static DamageTable sDamageTable1 = { +static DamageTable sBlueTwinmoldDamageTable = { /* Deku Nut */ DMG_ENTRY(0, 0x0), /* Deku Stick */ DMG_ENTRY(1, 0xF), /* Horse trample */ DMG_ENTRY(0, 0x0), @@ -76,7 +76,7 @@ static DamageTable sDamageTable1 = { /* Powder Keg */ DMG_ENTRY(1, 0xF), }; -static DamageTable sDamageTable2 = { +static DamageTable sRedTwinmoldDamageTable = { /* Deku Nut */ DMG_ENTRY(0, 0x0), /* Deku Stick */ DMG_ENTRY(1, 0xF), /* Horse trample */ DMG_ENTRY(0, 0x0), @@ -119,8 +119,8 @@ const ActorInit Boss_02_InitVars = { sizeof(Boss02), (ActorFunc)Boss02_Init, (ActorFunc)Boss02_Destroy, - (ActorFunc)Boss02_Update, - (ActorFunc)Boss02_Draw, + (ActorFunc)Boss02_Twinmold_Update, + (ActorFunc)Boss02_Twinmold_Draw, }; f32 D_809DF5B0 = 1.0f; @@ -480,7 +480,7 @@ void func_809DA24C(PlayState* play) { void Boss02_SpawnEffectSand(TwinmoldEffect* effects, Vec3f* pos, f32 scale) { s16 i; - for (i = 0; i < ARRAY_COUNT(D_809E0438); i++, effects++) { + for (i = 0; i < ARRAY_COUNT(sEffects); i++, effects++) { if (effects->type == TWINMOLD_EFFECT_NONE) { effects->type = TWINMOLD_EFFECT_SAND; effects->pos = *pos; @@ -501,7 +501,7 @@ void Boss02_SpawnEffectSand(TwinmoldEffect* effects, Vec3f* pos, f32 scale) { void Boss02_SpawnEffectFragment(TwinmoldEffect* effects, Vec3f* pos) { s16 i; - for (i = 0; i < ARRAY_COUNT(D_809E0438); i++, effects++) { + for (i = 0; i < ARRAY_COUNT(sEffects); i++, effects++) { if (effects->type == TWINMOLD_EFFECT_NONE) { effects->type = TWINMOLD_EFFECT_FRAGMENT; effects->pos = *pos; @@ -523,7 +523,7 @@ void Boss02_SpawnEffectFragment(TwinmoldEffect* effects, Vec3f* pos) { void Boss02_SpawnEffectFlash(TwinmoldEffect* effects, Vec3f* pos) { s16 i; - for (i = 0; i < ARRAY_COUNT(D_809E0438); i++, effects++) { + for (i = 0; i < ARRAY_COUNT(sEffects); i++, effects++) { if ((effects->type == TWINMOLD_EFFECT_NONE) || (effects->type == TWINMOLD_EFFECT_FRAGMENT)) { effects->type = TWINMOLD_EFFECT_FLASH; effects->pos = *pos; @@ -549,47 +549,48 @@ void Boss02_Init(Actor* thisx, PlayState* play) { s32 i; s32 pad[2]; - if ((gSaveContext.save.weekEventReg[52] & 0x20) && (this->actor.params == 0)) { - D_809E0434 = (DoorWarp1*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 0.0f, 60.0f, - 0.0f, 0, 0, 0, 1); + if ((gSaveContext.save.weekEventReg[52] & 0x20) && (this->actor.params == TWINMOLD_RED)) { + sBlueWarp = (DoorWarp1*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 0.0f, 60.0f, + 0.0f, 0, 0, 0, 1); Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, 0.0f, 30.0f, -150.0f, 0, 1, 0, 0); } this->actor.targetMode = 10; this->unk_1D3C.z = this->unk_1D3C.x = 0.0f; this->unk_1D3C.y = 1.0f; - if (this->actor.params == 200) { - D_809E042C = this; - play->specialEffects = (void*)D_809E0438; - this->actor.update = func_809DC78C; - this->actor.draw = func_809DD0A8; + if (this->actor.params == TWINMOLD_STATIC) { + sTwinmoldStatic = this; + play->specialEffects = (void*)sEffects; + this->actor.update = Boss02_Static_Update; + this->actor.draw = Boss02_Static_Draw; this->actor.flags &= ~ACTOR_FLAG_1; this->unk_1D70 = 0.00999999977648f; - if ((KREG(64) != 0) || (gSaveContext.eventInf[5] & 0x20) || (D_809E0434 != NULL)) { + if ((KREG(64) != 0) || (gSaveContext.eventInf[5] & 0x20) || (sBlueWarp != NULL)) { this->unk_1D20 = 0; - D_809E0430 = KREG(15) + 20; + sMusicStartTimer = KREG(15) + 20; } else { this->unk_1D20 = 1; } XREG(41) = KREG(14) + 20; this->unk_01AC = 1.0f; Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_TANRON5, 0.0f, 1000.0f, 0.0f, 0, 0, 0, 0); - } else if (this->actor.params == 100) { - this->actor.update = func_809DC218; + } else if (this->actor.params == TWINMOLD_TAIL) { + this->actor.update = Boss02_Tail_Update; this->actor.draw = NULL; this->actor.hintId = 0x2E; } else { - if (this->actor.params != 35) { - this->actor.params = 0; - Actor_Spawn(&play->actorCtx, play, ACTOR_BOSS_02, 0.0f, 0.0f, 0.0f, 0, 0, 0, 200); - D_809E0424 = this; - D_809E0428 = (Boss02*)Actor_Spawn(&play->actorCtx, play, ACTOR_BOSS_02, this->actor.world.pos.x, - this->actor.world.pos.y, this->actor.world.pos.z, this->actor.world.rot.x, - this->actor.world.rot.y, this->actor.world.rot.z, 35); - D_809E0424->actor.colChkInfo.damageTable = &sDamageTable2; - D_809E0428->actor.colChkInfo.damageTable = &sDamageTable1; - D_809E0424->unk_1674 = D_809E0428; - D_809E0428->unk_1674 = D_809E0424; + if (this->actor.params != TWINMOLD_BLUE) { + this->actor.params = TWINMOLD_RED; + Actor_Spawn(&play->actorCtx, play, ACTOR_BOSS_02, 0.0f, 0.0f, 0.0f, 0, 0, 0, TWINMOLD_STATIC); + sRedTwinmold = this; + sBlueTwinmold = + (Boss02*)Actor_Spawn(&play->actorCtx, play, ACTOR_BOSS_02, this->actor.world.pos.x, + this->actor.world.pos.y, this->actor.world.pos.z, this->actor.world.rot.x, + this->actor.world.rot.y, this->actor.world.rot.z, TWINMOLD_BLUE); + sRedTwinmold->actor.colChkInfo.damageTable = &sRedTwinmoldDamageTable; + sBlueTwinmold->actor.colChkInfo.damageTable = &sBlueTwinmoldDamageTable; + sRedTwinmold->otherTwinmold = sBlueTwinmold; + sBlueTwinmold->otherTwinmold = sRedTwinmold; } this->actor.colChkInfo.mass = MASS_HEAVY; @@ -603,7 +604,7 @@ void Boss02_Init(Actor* thisx, PlayState* play) { this->colliderSphere2Elements); Collider_InitAndSetCylinder(play, &this->colliderCylinder, &this->actor, &sCylinderInit); - if (D_809E0434 != NULL) { + if (sBlueWarp != NULL) { func_809DAA74(this, play); } else { func_809DAAA8(this, play); @@ -617,7 +618,8 @@ void Boss02_Init(Actor* thisx, PlayState* play) { this->unk_014C = Rand_ZeroFloat(1000.0f); this->unk_1678 = 22; - Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_BOSS_02, 0.0f, 0.0f, 0.0f, 0, 0, 0, 100); + Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_BOSS_02, 0.0f, 0.0f, 0.0f, 0, 0, 0, + TWINMOLD_TAIL); } } @@ -635,14 +637,14 @@ void func_809DAA98(Boss02* this, PlayState* play) { void func_809DAAA8(Boss02* this, PlayState* play) { this->actionFunc = func_809DAB78; Animation_MorphToLoop(&this->skelAnime, &gTwinmoldHeadFlyAnim, 0.0f); - if (D_809E042C->unk_1D20 != 0) { + if (sTwinmoldStatic->unk_1D20 != 0) { this->unk_0144 = 10; } else { this->unk_0144 = 100; this->unk_01A8 = 25.0f; - D_809E042C->unk_1D7E = 100; + sTwinmoldStatic->unk_1D7E = 100; this->actor.world.pos.x = 0.0f; - if (D_809E0424 == this) { + if (sRedTwinmold == this) { this->actor.world.pos.z = -1000.0f; } else { this->actor.world.pos.z = 1400.0f; @@ -666,7 +668,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { f32 phi_f2; s16 temp_s0; s16 temp_s2; - Boss02* spB0 = this->unk_1674; + Boss02* otherTwinmold = this->otherTwinmold; Vec3f spA4; f32 spA0; f32 sp9C; @@ -693,7 +695,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_01A4 = Math_SinS(this->unk_0196) * this->unk_019C; this->actor.world.rot.x = this->actor.shape.rot.x + this->unk_01A4; - if (!(this->unk_014C & 0x1F) && (D_809E042C->unk_1D20 == 0)) { + if (!(this->unk_014C & 0x1F) && (sTwinmoldStatic->unk_1D20 == 0)) { this->unk_01A0 = Rand_ZeroFloat(0x1000) + 0x800; this->unk_019A = Rand_ZeroFloat(0x400) + 0x200; } @@ -716,7 +718,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { Actor_UpdatePos(&this->actor); spD0 = this->actor.world.pos; - if (D_809E0422 != 0) { + if (sIsInGiantMode) { spD0.y = 5000.0f; } else { spD0.y = 2000.0f; @@ -752,9 +754,9 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_0B1C[this->unk_014E].z = BINANG_TO_RAD(this->actor.world.rot.z); } - if ((this->unk_0144 < 10) && (spB0->unk_0144 >= 20)) { + if ((this->unk_0144 < 10) && (otherTwinmold->unk_0144 >= 20)) { this->unk_01B0.y = -1000.0f * D_809DF5B0; - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->unk_01B0.y += 3150.0f; } this->unk_0144 = 3; @@ -774,7 +776,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->actor.world.pos.x = randPlusMinusPoint5Scaled(5000.0f * D_809DF5B0); this->actor.world.pos.z = randPlusMinusPoint5Scaled(5000.0f * D_809DF5B0); this->actor.world.pos.y = -500.0f * D_809DF5B0; - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->actor.world.pos.y += 3150.0f; } } @@ -807,7 +809,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_01B0.z = 500.0f; } this->unk_01B0.y = Rand_ZeroFloat(800.0f * D_809DF5B0) + (200.0f * D_809DF5B0); - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->unk_01B0.y += 3150.0f; } } @@ -824,7 +826,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { if (sqrtf(SQ(spCC) + SQ(spC8) + SQ(spC4)) < (phi_f2 * D_809DF5B0)) { this->unk_0144 = 3; this->unk_01B0.y = -3000.0f * D_809DF5B0; - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->unk_01B0.y += 3150.0f; } this->unk_0146[0] = 150; @@ -846,7 +848,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_0144 = 3; this->unk_01B0.x = randPlusMinusPoint5Scaled(500.0f * D_809DF5B0) + this->actor.world.pos.x; this->unk_01B0.y = -3000.0f * D_809DF5B0; - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->unk_01B0.y += 3150.0f; } this->unk_01B0.z = randPlusMinusPoint5Scaled(500.0f * D_809DF5B0) + this->actor.world.pos.z; @@ -870,7 +872,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { return; case 11: - if (this == D_809E0424) { + if (this == sRedTwinmold) { this->unk_01B0.x = D_809DF9C0[this->unk_1D1A].x; this->unk_01B0.y = D_809DF9C0[this->unk_1D1A].y; this->unk_01B0.z = D_809DF9C0[this->unk_1D1A].z; @@ -894,7 +896,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { if (this->unk_1D1A > 8) { this->unk_1D1A = 8; } - if (this == D_809E0424) { + if (this == sRedTwinmold) { this->unk_01B0.x = D_809DF9C0[this->unk_1D1A].x; this->unk_01B0.y = D_809DF9C0[this->unk_1D1A].y; this->unk_01B0.z = D_809DF9C0[this->unk_1D1A].z; @@ -915,7 +917,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_0146[0] = 50; this->unk_01B0.x = player->actor.world.pos.x + spA4.x; this->unk_01B0.y = randPlusMinusPoint5Scaled(500.0f * D_809DF5B0) + (600.0f * D_809DF5B0); - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->unk_01B0.y += 3150.0f; } this->unk_01B0.z = player->actor.world.pos.z + spA4.z; @@ -933,8 +935,8 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_0144 = 21; this->unk_0146[0] = 20; this->unk_0152 = 0; - D_809E042C->unk_1D20 = 102; - D_809E042C->unk_1D5C = 0.0f; + sTwinmoldStatic->unk_1D20 = 102; + sTwinmoldStatic->unk_1D5C = 0.0f; play_sound(NA_SE_EN_INBOSS_DEAD_PRE2_OLD); } else if (!(this->unk_0146[1] & 0xF) && (Rand_ZeroOne() < 0.5f)) { Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_INBOSS_DAMAGE_OLD); @@ -974,7 +976,7 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->actor.speedXZ = 15.0f * D_809DF5B0; } - if (spB0->unk_0144 >= 10) { + if (otherTwinmold->unk_0144 >= 10) { Audio_QueueSeqCmd(NA_BGM_CLEAR_BOSS | 0x8000); } @@ -998,10 +1000,10 @@ void func_809DAB78(Boss02* this, PlayState* play) { this->unk_0170 = this->unk_017C; this->unk_016C = 30; this->unk_0170.y = this->actor.floorHeight; - D_809E042C->unk_1D20 = 103; - D_809E042C->unk_1D1C = 0; - D_809E042C->unk_0146[0] = 15; - D_809E042C->unk_0150 = 0; + sTwinmoldStatic->unk_1D20 = 103; + sTwinmoldStatic->unk_1D1C = 0; + sTwinmoldStatic->unk_0146[0] = 15; + sTwinmoldStatic->unk_0150 = 0; play_sound(NA_SE_EV_LIGHTNING); for (i = 0; i < 30; i++) { @@ -1052,13 +1054,13 @@ void func_809DAB78(Boss02* this, PlayState* play) { } void func_809DBFB4(Boss02* this, PlayState* play) { - Boss02* temp_s6 = this->unk_1674; + Boss02* otherTwinmold = this->otherTwinmold; s32 temp; s32 i; u8 damage; if (this->unk_0154 == 0) { - if (D_809E0422 != 0) { + if (sIsInGiantMode) { temp = 0; } else { temp = 1; @@ -1078,7 +1080,7 @@ void func_809DBFB4(Boss02* this, PlayState* play) { this->unk_015C = 10; } - if (D_809E0422 != 0) { + if (sIsInGiantMode) { this->unk_0152 = 15; } else { this->unk_0152 = 12; @@ -1086,7 +1088,7 @@ void func_809DBFB4(Boss02* this, PlayState* play) { damage = this->actor.colChkInfo.damage; - if (temp_s6->unk_0144 < 20) { + if (otherTwinmold->unk_0144 < 20) { do { do { this->actor.colChkInfo.health -= damage; @@ -1100,17 +1102,17 @@ void func_809DBFB4(Boss02* this, PlayState* play) { this->skelAnime.playSpeed = 2.0f; this->unk_0144 = 20; - if (temp_s6->unk_0144 >= 10) { + if (otherTwinmold->unk_0144 >= 10) { Audio_QueueSeqCmd(0x100100FF); } else { - temp_s6->unk_0195 = 1; + otherTwinmold->unk_0195 = 1; } this->unk_0146[1] = BREG(70) + 170; this->unk_0146[0] = 0; this->actor.shape.rot.x = 0x4000; - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { if (this->actor.world.pos.y < -200.0f) { this->actor.world.pos.y = -200.0f; } @@ -1118,12 +1120,12 @@ void func_809DBFB4(Boss02* this, PlayState* play) { this->actor.world.pos.y = 3130.0f; } - D_809E042C->unk_1D20 = 100; + sTwinmoldStatic->unk_1D20 = 100; - if (this == D_809E0424) { - D_809E042C->unk_0194 = 0; + if (this == sRedTwinmold) { + sTwinmoldStatic->unk_0194 = 0; } else { - D_809E042C->unk_0194 = 1; + sTwinmoldStatic->unk_0194 = 1; } } } @@ -1132,23 +1134,23 @@ void func_809DBFB4(Boss02* this, PlayState* play) { } } -void func_809DC218(Actor* thisx, PlayState* play) { +void Boss02_Tail_Update(Actor* thisx, PlayState* play) { Boss02* this = THIS; s32 pad; - Vec3f sp24; - CollisionPoly* sp20; + Vec3f pos; + CollisionPoly* outPoly; this->unk_014C++; if ((this->unk_014C + this->actor.params) & 1) { - sp24 = this->actor.world.pos; + pos = this->actor.world.pos; this->actor.focus.pos = this->actor.world.pos; - if (D_809E0422 != 0) { - sp24.y = 5000.0f; + if (sIsInGiantMode) { + pos.y = 5000.0f; } else { - sp24.y = 2000.0f; + pos.y = 2000.0f; } - if ((this->actor.focus.pos.y < BgCheck_EntityRaycastFloor1(&play->colCtx, &sp20, &sp24)) || (D_809E0422 != 0)) { + if ((this->actor.focus.pos.y < BgCheck_EntityRaycastFloor1(&play->colCtx, &outPoly, &pos)) || sIsInGiantMode) { this->actor.flags &= ~ACTOR_FLAG_1; } else { this->actor.flags |= ACTOR_FLAG_1; @@ -1156,19 +1158,19 @@ void func_809DC218(Actor* thisx, PlayState* play) { } } -void Boss02_Update(Actor* thisx, PlayState* play) { +void Boss02_Twinmold_Update(Actor* thisx, PlayState* play) { Vec3f sp3C; Boss02* this = THIS; s32 pad; s16 i; - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { Actor_SetScale(&this->actor, 0.6f); } else { Actor_SetScale(&this->actor, 0.060000001f); } - if (D_809E042C->unk_1D18 == 0) { + if (sTwinmoldStatic->unk_1D18 == 0) { for (i = 0; i < ARRAY_COUNT(this->unk_0146); i++) { if (this->unk_0146[i] != 0) { this->unk_0146[i]--; @@ -1274,18 +1276,18 @@ void Boss02_Update(Actor* thisx, PlayState* play) { } } -void func_809DC78C(Actor* thisx, PlayState* play) { +void Boss02_Static_Update(Actor* thisx, PlayState* play) { Boss02* this = THIS; this->unk_01AC = D_809DF5B0; play->envCtx.sandstormState = 0xD; - if (D_809E0434 != NULL) { + if (sBlueWarp != NULL) { this->unk_1D74 = KREG(23) + -15.0f; D_801F4E30 = 0; play->envCtx.lightSettingOverride = 1; play->skyboxId = 1; - } else if (D_809E0422 == 0) { + } else if (!sIsInGiantMode) { this->unk_1D74 = 0.0f; D_801F4E30 = this->unk_1D7C; play->envCtx.lightSettingOverride = 0; @@ -1303,10 +1305,10 @@ void func_809DC78C(Actor* thisx, PlayState* play) { this->unk_0146[0]--; } - if (D_809E0434 == NULL) { - if (D_809E0430 != 0) { - D_809E0430--; - if (D_809E0430 == 0) { + if (sBlueWarp == NULL) { + if (sMusicStartTimer != 0) { + sMusicStartTimer--; + if (sMusicStartTimer == 0) { Audio_QueueSeqCmd(NA_BGM_BOSS | 0x8000); } } @@ -1328,7 +1330,7 @@ Gfx* D_809DFA9C[] = { Vec3f D_809DFAF4 = { -10000.0f, -100000.0f, -100000.0f }; -void Boss02_Draw(Actor* thisx, PlayState* play2) { +void Boss02_Twinmold_Draw(Actor* thisx, PlayState* play2) { PlayState* play = play2; Boss02* this = THIS; s32 i; @@ -1358,7 +1360,7 @@ void Boss02_Draw(Actor* thisx, PlayState* play2) { gSPSegment(POLY_OPA_DISP++, 0x0D, mtx); - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { sp98 = -500.0f; } else { sp98 = 3100.0f; @@ -1452,7 +1454,7 @@ void Boss02_Draw(Actor* thisx, PlayState* play2) { CLOSE_DISPS(play->state.gfxCtx); - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { func_809DA50C(0, &this->colliderSphere2, &D_809DFAF4); func_809DA50C(21, &this->colliderSphere1, &this->unk_147C[0]); } else { @@ -1461,7 +1463,7 @@ void Boss02_Draw(Actor* thisx, PlayState* play2) { } } -void func_809DD0A8(Actor* thisx, PlayState* play) { +void Boss02_Static_Draw(Actor* thisx, PlayState* play) { Boss02_DrawEffects(play); } @@ -1470,13 +1472,13 @@ void Boss02_UpdateEffects(PlayState* play) { f32 floorY; s16 i; - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { floorY = 0.0f; } else { floorY = 3150.0f; } - for (i = 0; i < ARRAY_COUNT(D_809E0438); i++, effect++) { + for (i = 0; i < ARRAY_COUNT(sEffects); i++, effect++) { if (effect->type) { effect->timer++; effect->pos.x += effect->velocity.x * D_809DF5B0; @@ -1523,7 +1525,7 @@ void Boss02_DrawEffects(PlayState* play) { func_8012C28C(play->state.gfxCtx); func_8012C2DC(play->state.gfxCtx); - for (i = 0; i < ARRAY_COUNT(D_809E0438); i++, effect++) { + for (i = 0; i < ARRAY_COUNT(sEffects); i++, effect++) { if (effect->type == TWINMOLD_EFFECT_SAND) { if (!flag) { gSPDisplayList(POLY_XLU_DISP++, gTwinmoldDustMaterialDL); @@ -1551,7 +1553,7 @@ void Boss02_DrawEffects(PlayState* play) { } effect = (TwinmoldEffect*)play->specialEffects; - for (i = 0, flag = false; i < ARRAY_COUNT(D_809E0438); i++, effect++) { + for (i = 0, flag = false; i < ARRAY_COUNT(sEffects); i++, effect++) { if (effect->type == TWINMOLD_EFFECT_FRAGMENT) { if (!flag) { gDPSetCombineLERP(POLY_OPA_DISP++, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0, PRIMITIVE, @@ -1572,7 +1574,7 @@ void Boss02_DrawEffects(PlayState* play) { } effect = (TwinmoldEffect*)play->specialEffects; - for (i = 0, flag = false; i < ARRAY_COUNT(D_809E0438); i++, effect++) { + for (i = 0, flag = false; i < ARRAY_COUNT(sEffects); i++, effect++) { if (effect->type == TWINMOLD_EFFECT_FLASH) { if (!flag) { //! @bug - dev forgot to set flag to 1, should only apply to first entry? gSPDisplayList(POLY_XLU_DISP++, gLightOrb1DL); @@ -1591,7 +1593,7 @@ void Boss02_DrawEffects(PlayState* play) { } effect = (TwinmoldEffect*)play->specialEffects; - for (i = 0, flag = false; i < ARRAY_COUNT(D_809E0438); i++, effect++) { + for (i = 0, flag = false; i < ARRAY_COUNT(sEffects); i++, effect++) { if (effect->type == TWINMOLD_EFFECT_BLACK_DUST) { if (!flag) { gSPDisplayList(POLY_XLU_DISP++, gTwinmoldDustMaterialDL); @@ -1638,7 +1640,7 @@ void func_809DD934(Boss02* this, PlayState* play) { this->unk_1D14 = 0; this->unk_1D5C = 0.0f; this->unk_1D58 = 0.0f; - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { this->unk_1D18 = 1; this->unk_1D68 = 10.0f; this->unk_1D64 = 60.0f; @@ -1767,19 +1769,19 @@ void func_809DD934(Boss02* this, PlayState* play) { play->envCtx.lightSettings.fogNear = this->unk_1D74; if (sp57) { - D_809E0422 = 1 - D_809E0422; - if (D_809E0422 == 0) { + sIsInGiantMode = 1 - sIsInGiantMode; + if (!sIsInGiantMode) { D_809DF5B0 = 1.0f; } else { D_809DF5B0 = 0.1f; } this->unk_01AC = D_809DF5B0; - if (D_809E0422 == 0) { - if (D_809E0434 != NULL) { - D_809E0434->unk_203 = 0; - D_809E0434->unk_204 = 1.0f; - D_809E0434->dyna.actor.world.pos.y = 60.0f; + if (!sIsInGiantMode) { + if (sBlueWarp != NULL) { + sBlueWarp->unk_203 = 0; + sBlueWarp->unk_204 = 1.0f; + sBlueWarp->dyna.actor.world.pos.y = 60.0f; } player->actor.world.pos.x *= 10.0f; @@ -1788,70 +1790,70 @@ void func_809DD934(Boss02* this, PlayState* play) { player->unk_B68 = player->actor.world.pos.y; player->actor.world.pos.z *= 10.0f; - if ((D_809E0434 != NULL) && ((SQ(player->actor.world.pos.z) + SQ(player->actor.world.pos.x)) < SQ(60.0f))) { + if ((sBlueWarp != NULL) && ((SQ(player->actor.world.pos.z) + SQ(player->actor.world.pos.x)) < SQ(60.0f))) { player->actor.world.pos.z = 60.0f; player->actor.world.pos.x = 60.0f; } - D_809E0424->actor.world.pos.x *= 10.0f; - D_809E0424->actor.world.pos.y -= 3150.0f; - D_809E0424->actor.world.pos.y *= 10.0f; - D_809E0424->actor.world.pos.z *= 10.0f; + sRedTwinmold->actor.world.pos.x *= 10.0f; + sRedTwinmold->actor.world.pos.y -= 3150.0f; + sRedTwinmold->actor.world.pos.y *= 10.0f; + sRedTwinmold->actor.world.pos.z *= 10.0f; - D_809E0424->unk_0170.x *= 10.0f; - D_809E0424->unk_0170.y -= 3150.0f; - D_809E0424->unk_0170.y *= 10.0f; - D_809E0424->unk_0170.z *= 10.0f; + sRedTwinmold->unk_0170.x *= 10.0f; + sRedTwinmold->unk_0170.y -= 3150.0f; + sRedTwinmold->unk_0170.y *= 10.0f; + sRedTwinmold->unk_0170.z *= 10.0f; for (i = 0; i < ARRAY_COUNT(this->unk_01BC); i++) { - D_809E0424->unk_01BC[i].x *= 10.0f; - D_809E0424->unk_01BC[i].y -= 3150.0f; - D_809E0424->unk_01BC[i].y *= 10.0f; - D_809E0424->unk_01BC[i].z *= 10.0f; + sRedTwinmold->unk_01BC[i].x *= 10.0f; + sRedTwinmold->unk_01BC[i].y -= 3150.0f; + sRedTwinmold->unk_01BC[i].y *= 10.0f; + sRedTwinmold->unk_01BC[i].z *= 10.0f; } - D_809E0424->unk_01B0.x *= 10.0f; - D_809E0424->unk_01B0.y -= 3150.0f; - D_809E0424->unk_01B0.y *= 10.0f; - D_809E0424->unk_01B0.z *= 10.0f; + sRedTwinmold->unk_01B0.x *= 10.0f; + sRedTwinmold->unk_01B0.y -= 3150.0f; + sRedTwinmold->unk_01B0.y *= 10.0f; + sRedTwinmold->unk_01B0.z *= 10.0f; - D_809E0424->unk_017C.y -= 3150.0f; - D_809E0424->unk_017C.y *= 10.0f; - D_809E0424->unk_0188.y -= 3150.0f; - D_809E0424->unk_0188.y *= 10.0f; + sRedTwinmold->unk_017C.y -= 3150.0f; + sRedTwinmold->unk_017C.y *= 10.0f; + sRedTwinmold->unk_0188.y -= 3150.0f; + sRedTwinmold->unk_0188.y *= 10.0f; - D_809E0428->actor.world.pos.x *= 10.0f; - D_809E0428->actor.world.pos.y -= 3150.0f; - D_809E0428->actor.world.pos.y *= 10.0f; - D_809E0428->actor.world.pos.z *= 10.0f; + sBlueTwinmold->actor.world.pos.x *= 10.0f; + sBlueTwinmold->actor.world.pos.y -= 3150.0f; + sBlueTwinmold->actor.world.pos.y *= 10.0f; + sBlueTwinmold->actor.world.pos.z *= 10.0f; - D_809E0428->unk_0170.x *= 10.0f; - D_809E0428->unk_0170.y -= 3150.0f; - D_809E0428->unk_0170.y *= 10.0f; - D_809E0428->unk_0170.z *= 10.0f; + sBlueTwinmold->unk_0170.x *= 10.0f; + sBlueTwinmold->unk_0170.y -= 3150.0f; + sBlueTwinmold->unk_0170.y *= 10.0f; + sBlueTwinmold->unk_0170.z *= 10.0f; for (i = 0; i < ARRAY_COUNT(this->unk_01BC); i++) { - D_809E0428->unk_01BC[i].x *= 10.0f; - D_809E0428->unk_01BC[i].y -= 3150.0f; - D_809E0428->unk_01BC[i].y *= 10.0f; - D_809E0428->unk_01BC[i].z *= 10.0f; + sBlueTwinmold->unk_01BC[i].x *= 10.0f; + sBlueTwinmold->unk_01BC[i].y -= 3150.0f; + sBlueTwinmold->unk_01BC[i].y *= 10.0f; + sBlueTwinmold->unk_01BC[i].z *= 10.0f; } - D_809E0428->unk_01B0.x *= 10.0f; - D_809E0428->unk_01B0.y -= 3150.0f; - D_809E0428->unk_01B0.y *= 10.0f; - D_809E0428->unk_01B0.z *= 10.0f; + sBlueTwinmold->unk_01B0.x *= 10.0f; + sBlueTwinmold->unk_01B0.y -= 3150.0f; + sBlueTwinmold->unk_01B0.y *= 10.0f; + sBlueTwinmold->unk_01B0.z *= 10.0f; - D_809E0428->unk_017C.y -= 3150.0f; - D_809E0428->unk_017C.y *= 10.0f; - D_809E0428->unk_0188.y -= 3150.0f; - D_809E0428->unk_0188.y *= 10.0f; + sBlueTwinmold->unk_017C.y -= 3150.0f; + sBlueTwinmold->unk_017C.y *= 10.0f; + sBlueTwinmold->unk_0188.y -= 3150.0f; + sBlueTwinmold->unk_0188.y *= 10.0f; } else { - if (D_809E0434 != 0) { - D_809E0434->unk_203 = 1; - D_809E0434->unk_204 = 0.1f; - D_809E0434->dyna.actor.world.pos.y = 3155.0f; + if (sBlueWarp != 0) { + sBlueWarp->unk_203 = 1; + sBlueWarp->unk_204 = 0.1f; + sBlueWarp->dyna.actor.world.pos.y = 3155.0f; } player->actor.world.pos.x *= 0.1f; @@ -1860,59 +1862,59 @@ void func_809DD934(Boss02* this, PlayState* play) { player->unk_B68 = player->actor.world.pos.y; player->actor.world.pos.z *= 0.1f; - D_809E0424->actor.world.pos.x *= 0.1f; - D_809E0424->actor.world.pos.y *= 0.1f; - D_809E0424->actor.world.pos.y += 3150.0f; - D_809E0424->actor.world.pos.z *= 0.1f; + sRedTwinmold->actor.world.pos.x *= 0.1f; + sRedTwinmold->actor.world.pos.y *= 0.1f; + sRedTwinmold->actor.world.pos.y += 3150.0f; + sRedTwinmold->actor.world.pos.z *= 0.1f; - D_809E0424->unk_0170.x *= 0.1f; - D_809E0424->unk_0170.y *= 0.1f; - D_809E0424->unk_0170.y += 3150.0f; - D_809E0424->unk_0170.z *= 0.1f; + sRedTwinmold->unk_0170.x *= 0.1f; + sRedTwinmold->unk_0170.y *= 0.1f; + sRedTwinmold->unk_0170.y += 3150.0f; + sRedTwinmold->unk_0170.z *= 0.1f; for (i = 0; i < ARRAY_COUNT(this->unk_01BC); i++) { - D_809E0424->unk_01BC[i].x *= 0.1f; - D_809E0424->unk_01BC[i].y *= 0.1f; - D_809E0424->unk_01BC[i].y += 3150.0f; - D_809E0424->unk_01BC[i].z *= 0.1f; + sRedTwinmold->unk_01BC[i].x *= 0.1f; + sRedTwinmold->unk_01BC[i].y *= 0.1f; + sRedTwinmold->unk_01BC[i].y += 3150.0f; + sRedTwinmold->unk_01BC[i].z *= 0.1f; } - D_809E0424->unk_01B0.x *= 0.1f; - D_809E0424->unk_01B0.y *= 0.1f; - D_809E0424->unk_01B0.y += 3150.0f; - D_809E0424->unk_01B0.z *= 0.1f; + sRedTwinmold->unk_01B0.x *= 0.1f; + sRedTwinmold->unk_01B0.y *= 0.1f; + sRedTwinmold->unk_01B0.y += 3150.0f; + sRedTwinmold->unk_01B0.z *= 0.1f; - D_809E0424->unk_017C.y *= 0.1f; - D_809E0424->unk_017C.y += 3150.0f; - D_809E0424->unk_0188.y *= 0.1f; - D_809E0424->unk_0188.y += 3150.0f; + sRedTwinmold->unk_017C.y *= 0.1f; + sRedTwinmold->unk_017C.y += 3150.0f; + sRedTwinmold->unk_0188.y *= 0.1f; + sRedTwinmold->unk_0188.y += 3150.0f; - D_809E0428->actor.world.pos.x *= 0.1f; - D_809E0428->actor.world.pos.y *= 0.1f; - D_809E0428->actor.world.pos.y += 3150.0f; - D_809E0428->actor.world.pos.z *= 0.1f; + sBlueTwinmold->actor.world.pos.x *= 0.1f; + sBlueTwinmold->actor.world.pos.y *= 0.1f; + sBlueTwinmold->actor.world.pos.y += 3150.0f; + sBlueTwinmold->actor.world.pos.z *= 0.1f; - D_809E0428->unk_0170.x *= 0.1f; - D_809E0428->unk_0170.y *= 0.1f; - D_809E0428->unk_0170.y += 3150.0f; - D_809E0428->unk_0170.z *= 0.1f; + sBlueTwinmold->unk_0170.x *= 0.1f; + sBlueTwinmold->unk_0170.y *= 0.1f; + sBlueTwinmold->unk_0170.y += 3150.0f; + sBlueTwinmold->unk_0170.z *= 0.1f; for (i = 0; i < ARRAY_COUNT(this->unk_01BC); i++) { - D_809E0428->unk_01BC[i].x *= 0.1f; - D_809E0428->unk_01BC[i].y *= 0.1f; - D_809E0428->unk_01BC[i].y += 3150.0f; - D_809E0428->unk_01BC[i].z *= 0.1f; + sBlueTwinmold->unk_01BC[i].x *= 0.1f; + sBlueTwinmold->unk_01BC[i].y *= 0.1f; + sBlueTwinmold->unk_01BC[i].y += 3150.0f; + sBlueTwinmold->unk_01BC[i].z *= 0.1f; } - D_809E0428->unk_01B0.x *= 0.1f; - D_809E0428->unk_01B0.y *= 0.1f; - D_809E0428->unk_01B0.y += 3150.0f; - D_809E0428->unk_01B0.z *= 0.1f; + sBlueTwinmold->unk_01B0.x *= 0.1f; + sBlueTwinmold->unk_01B0.y *= 0.1f; + sBlueTwinmold->unk_01B0.y += 3150.0f; + sBlueTwinmold->unk_01B0.z *= 0.1f; - D_809E0428->unk_017C.y *= 0.1f; - D_809E0428->unk_017C.y += 3150.0f; - D_809E0428->unk_0188.y *= 0.1f; - D_809E0428->unk_0188.y += 3150.0f; + sBlueTwinmold->unk_017C.y *= 0.1f; + sBlueTwinmold->unk_017C.y += 3150.0f; + sBlueTwinmold->unk_0188.y *= 0.1f; + sBlueTwinmold->unk_0188.y += 3150.0f; } player->actor.home.pos = player->actor.world.pos; @@ -1927,15 +1929,15 @@ void func_809DD934(Boss02* this, PlayState* play) { temp_a0_5 = temp_a0_5->next; } { - f32 tmp = D_809E0422 ? 3150.0f : 0.0f; + f32 tmp = sIsInGiantMode ? 3150.0f : 0.0f; - Actor_Spawn(&play->actorCtx, play, ACTOR_BG_INIBS_MOVEBG, 0, tmp, 0, 0, 0, 0, D_809E0422); + Actor_Spawn(&play->actorCtx, play, ACTOR_BG_INIBS_MOVEBG, 0, tmp, 0, 0, 0, 0, sIsInGiantMode); } temp_a0_5 = play->actorCtx.actorLists[ACTORCAT_BOSS].first; while (temp_a0_5 != NULL) { if ((temp_a0_5->id == ACTOR_EN_TANRON5) || (temp_a0_5->id == ACTOR_ITEM_B_HEART)) { - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { temp_a0_5->world.pos.y -= 3150.0f; temp_a0_5->world.pos.y *= 10.0f; @@ -2043,9 +2045,9 @@ void func_809DEAC4(Boss02* this, PlayState* play) { this->unk_1D1C++; if (this->unk_0194 == 0) { - sp68 = D_809E0424; + sp68 = sRedTwinmold; } else { - sp68 = D_809E0428; + sp68 = sBlueTwinmold; } switch (this->unk_1D20) { @@ -2090,12 +2092,12 @@ void func_809DEAC4(Boss02* this, PlayState* play) { if (this->unk_1D1C == 45) { func_800B7298(play, &this->actor, 21); - D_809E0430 = KREG(91) + 43; + sMusicStartTimer = KREG(91) + 43; } if (this->unk_1D1C == 85) { - D_809E0424->unk_0144 = 11; - D_809E0424->unk_014C = 0; + sRedTwinmold->unk_0144 = 11; + sRedTwinmold->unk_014C = 0; } if (this->unk_1D1C == 92) { @@ -2128,8 +2130,8 @@ void func_809DEAC4(Boss02* this, PlayState* play) { Math_ApproachF(&this->unk_1D30.z, this->unk_1D48.z, 0.1f, 3000.0f); if (this->unk_1D1C == 100) { - D_809E0428->unk_0144 = 11; - D_809E0428->unk_014C = 0; + sBlueTwinmold->unk_0144 = 11; + sBlueTwinmold->unk_014C = 0; this->unk_0194 = 1; } @@ -2145,8 +2147,8 @@ void func_809DEAC4(Boss02* this, PlayState* play) { func_800B7298(play, &this->actor, 6); this->actor.flags |= ACTOR_FLAG_1; this->unk_1D20 = 0; - D_809E0424->unk_0144 = D_809E0428->unk_0144 = 3; - D_809E0424->unk_0146[0] = D_809E0428->unk_0146[0] = 60; + sRedTwinmold->unk_0144 = sBlueTwinmold->unk_0144 = 3; + sRedTwinmold->unk_0146[0] = sBlueTwinmold->unk_0146[0] = 60; gSaveContext.eventInf[5] |= 0x20; } break; @@ -2176,7 +2178,7 @@ void func_809DEAC4(Boss02* this, PlayState* play) { this->unk_1D24.x = player->actor.world.pos.x; this->unk_1D24.y = player->actor.world.pos.y + 100.0f; - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { if (this->unk_1D24.y < 100.0f) { this->unk_1D24.y = 100.0f; } @@ -2207,26 +2209,26 @@ void func_809DEAC4(Boss02* this, PlayState* play) { this->unk_1D20 = 0; this->actor.flags |= ACTOR_FLAG_1; sp68->unk_0144 = 10; - if ((D_809E0424->unk_0144 >= 10) && (D_809E0428->unk_0144 >= 10)) { + if ((sRedTwinmold->unk_0144 >= 10) && (sBlueTwinmold->unk_0144 >= 10)) { f32 phi_f0; this->unk_1D7E = 0; - if (D_809E0422 == 0) { + if (!sIsInGiantMode) { Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, 0.0f, 30.0f, -150.0f, 0, 1, 0, 0); phi_f0 = 60.0f; } else { Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, 0.0f, 3153.0f, -15.0f, 0, 1, 0, 35); phi_f0 = 3155.0f; } - D_809E0434 = (DoorWarp1*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, - 0.0f, phi_f0, 0.0f, 0, 0, 0, 1); + sBlueWarp = (DoorWarp1*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, + 0.0f, phi_f0, 0.0f, 0, 0, 0, 1); - if (D_809E0422 == 0) { - D_809E0434->unk_203 = 0; - D_809E0434->unk_204 = 1.0f; + if (!sIsInGiantMode) { + sBlueWarp->unk_203 = 0; + sBlueWarp->unk_204 = 1.0f; } else { - D_809E0434->unk_203 = 1; - D_809E0434->unk_204 = 0.1f; + sBlueWarp->unk_203 = 1; + sBlueWarp->unk_204 = 0.1f; } } } diff --git a/src/overlays/actors/ovl_Boss_02/z_boss_02.h b/src/overlays/actors/ovl_Boss_02/z_boss_02.h index 601a3e492b..7c1dd81e34 100644 --- a/src/overlays/actors/ovl_Boss_02/z_boss_02.h +++ b/src/overlays/actors/ovl_Boss_02/z_boss_02.h @@ -30,6 +30,13 @@ typedef enum { /* 4 */ TWINMOLD_EFFECT_FLASH, // The flashes of light that appear when the parts of Twinmold explode } TwinmoldEffectType; +typedef enum { + /* 0 */ TWINMOLD_RED, + /* 35 */ TWINMOLD_BLUE = 35, + /* 100 */ TWINMOLD_TAIL = 100, + /* 200 */ TWINMOLD_STATIC = 200, +} TwinmoldParams; + typedef struct Boss02 { /* 0x0000 */ Actor actor; /* 0x0144 */ u8 unk_0144; @@ -68,7 +75,7 @@ typedef struct Boss02 { /* 0x15D4 */ Vec3s jointTable[TWINMOLD_HEAD_LIMB_MAX]; /* 0x1622 */ Vec3s morphTable[TWINMOLD_HEAD_LIMB_MAX]; /* 0x1670 */ Boss02ActionFunc actionFunc; - /* 0x1674 */ struct Boss02* unk_1674; // points to the other's instance + /* 0x1674 */ struct Boss02* otherTwinmold; // points to the other's instance /* 0x1678 */ s32 unk_1678; /* 0x167C */ Vec3f unk_167C; /* 0x1688 */ ColliderJntSph colliderSphere1; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index b6e95426c9..63db13c513 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -9306,11 +9306,11 @@ 0x809DAAA8:("func_809DAAA8",), 0x809DAB78:("func_809DAB78",), 0x809DBFB4:("func_809DBFB4",), - 0x809DC218:("func_809DC218",), - 0x809DC320:("Boss02_Update",), - 0x809DC78C:("func_809DC78C",), - 0x809DCA00:("Boss02_Draw",), - 0x809DD0A8:("func_809DD0A8",), + 0x809DC218:("Boss02_Tail_Update",), + 0x809DC320:("Boss02_Twinmold_Update",), + 0x809DC78C:("Boss02_Static_Update",), + 0x809DCA00:("Boss02_Twinmold_Draw",), + 0x809DD0A8:("Boss02_Static_Draw",), 0x809DD0CC:("Boss02_UpdateEffects",), 0x809DD2F8:("Boss02_DrawEffects",), 0x809DD934:("func_809DD934",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 3c97d3de0f..e6f3e21390 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -10232,12 +10232,12 @@ 0x809E0420:("D_809E0420","UNK_TYPE1","",0x1), 0x809E0421:("D_809E0421","UNK_TYPE1","",0x1), 0x809E0422:("D_809E0422","UNK_TYPE1","",0x1), - 0x809E0424:("D_809E0424","UNK_TYPE4","",0x4), - 0x809E0428:("D_809E0428","UNK_TYPE4","",0x4), - 0x809E042C:("D_809E042C","UNK_TYPE4","",0x4), - 0x809E0430:("D_809E0430","UNK_TYPE1","",0x1), - 0x809E0434:("D_809E0434","UNK_TYPE4","",0x4), - 0x809E0438:("D_809E0438","UNK_TYPE1","",0x1), + 0x809E0424:("sRedTwinmold","UNK_TYPE4","",0x4), + 0x809E0428:("sBlueTwinmold","UNK_TYPE4","",0x4), + 0x809E042C:("sTwinmoldStatic","UNK_TYPE4","",0x4), + 0x809E0430:("sMusicStartTimer","UNK_TYPE1","",0x1), + 0x809E0434:("sBlueWarp","UNK_TYPE4","",0x4), + 0x809E0438:("sEffects","UNK_TYPE1","",0x1), 0x809E8EA0:("D_809E8EA0","UNK_TYPE4","",0x4), 0x809E8EAC:("Boss_03_InitVars","UNK_TYPE1","",0x1), 0x809E8ECC:("D_809E8ECC","UNK_TYPE1","",0x1),