From e9a46d8aba62e5f71313d707e2d64c25755a2c40 Mon Sep 17 00:00:00 2001 From: petrie911 Date: Tue, 3 Oct 2023 15:00:33 -0500 Subject: [PATCH 1/5] functions --- .../actors/ovl_Boss_Hakugin/z_boss_hakugin.c | 310 +++++++++++++++++- .../actors/ovl_Boss_Hakugin/z_boss_hakugin.h | 6 +- 2 files changed, 296 insertions(+), 20 deletions(-) diff --git a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c index dc5a2b951..9957b2bba 100644 --- a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c +++ b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c @@ -238,6 +238,7 @@ static InitChainEntry D_80B0EAD8[] = { extern ColliderJntSphElementInit D_80B0E700[19]; extern ColliderJntSphInit D_80B0E9AC; extern ColliderTrisElementInit D_80B0E9BC[1]; +extern Vec3f D_80B0E9D4[3]; extern ColliderTrisInit D_80B0E9F8; extern ColliderSphereInit D_80B0EA08; extern ColliderCylinderInit D_80B0EA34; @@ -543,25 +544,247 @@ void func_80B05EE0(BossHakugin* this, PlayState* play) { BHEART_PARAM_NORMAL); } -void func_80B0607C(BossHakugin* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0607C.s") +void func_80B0607C(BossHakugin* this, PlayState* play) { + CollisionPoly* sp8C = NULL; + CollisionPoly* sp88 = NULL; + s32 sp84; + s16 sp82; + s16 sp80; + s16 var_v0; + Vec3f sp70; + Vec3f sp64; + Vec3f sp58; + Vec3f sp4C; + f32 sp48; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06558.s") + sp58.x = this->actor.world.pos.x + (Math_SinS(this->unk_01A0) * (5.0f * this->actor.speed)); + sp58.y = this->actor.world.pos.y + 450.0f; + sp58.z = this->actor.world.pos.z + (Math_CosS(this->unk_01A0) * (5.0f * this->actor.speed)); -void func_80B06600(BossHakugin* this, Vec3f* arg1, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06600.s") + sp4C.x = sp58.x - Math_CosS(this->unk_01A0) * 1000.0f; + sp4C.y = sp58.y; + sp4C.z = sp58.z + (Math_SinS(this->unk_01A0) * 1000.0f); -void func_80B0696C(BossHakugin* this, Vec3f* arg1); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0696C.s") + if (BgCheck_EntityLineTest1(&play->colCtx, &sp58, &sp4C, &sp70, &sp8C, 1, 1, 0, 1, &sp84)) { + sp82 = + Math_Atan2S_XY(sp8C->normal.z * COLPOLY_NORMAL_FRAC, sp8C->normal.x * COLPOLY_NORMAL_FRAC) - this->unk_01A0; + this->unk_01BC = Math_Vec3f_DistXZ(&sp58, &sp70); + } else { + sp82 = 0; + this->unk_01BC = 30000.0f; + } + sp4C.x = (2.0f * sp58.x) - sp4C.x; + sp4C.z = (2.0f * sp58.z) - sp4C.z; + if (BgCheck_EntityLineTest1(&play->colCtx, &sp58, &sp4C, &sp64, &sp88, 1, 1, 0, 1, &sp84)) { + sp80 = + Math_Atan2S_XY(sp88->normal.z * COLPOLY_NORMAL_FRAC, sp88->normal.x * COLPOLY_NORMAL_FRAC) - this->unk_01A0; + this->unk_01C0 = Math_Vec3f_DistXZ(&sp58, &sp64); + } else { + sp80 = 0; + this->unk_01C0 = 30000.0f; + } + if (this->unk_01B4 == 1) { + this->unk_01C0 -= 50.0f; + } else { + this->unk_01BC -= 50.0f; + } + if (this->unk_01BC <= 89.100006f) { + sp48 = (this->unk_01B4 == 1) ? 89.100006f : 139.1f; + this->actor.world.pos.x = + (sp70.x + (sp48 * Math_CosS(this->unk_01A0))) - (Math_SinS(this->unk_01A0) * (5.0f * this->actor.speed)); + this->actor.world.pos.z = + (sp70.z - (sp48 * Math_SinS(this->unk_01A0))) - (Math_CosS(this->unk_01A0) * (5.0f * this->actor.speed)); + } else if (this->unk_01C0 <= 89.100006f) { + sp48 = (this->unk_01B4 == 1) ? 139.1f : 89.100006f; + this->actor.world.pos.x = + (sp64.x - (sp48 * Math_CosS(this->unk_01A0))) - (Math_SinS(this->unk_01A0) * (5.0f * this->actor.speed)); + this->actor.world.pos.z = + (sp64.z + (sp48 * Math_SinS(this->unk_01A0))) - (Math_CosS(this->unk_01A0) * (5.0f * this->actor.speed)); + } + if ((this->unk_01C0 < 30000.0f) && (this->unk_01BC < 30000.0f)) { + var_v0 = (s16)(sp82 + sp80) >> 1; + if (((this->unk_01B4 == 1) && (var_v0 < 0)) || ((this->unk_01B4 == -1) && (var_v0 > 0))) { + this->unk_01A0 += var_v0; + } + } +} -void func_80B06B20(BossHakugin* this, Vec3f* arg1); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06B20.s") +void func_80B06558(BossHakuginUnkStruct_2618* arg0) { + s32 i; + Vec3f sp38[3]; -void func_80B06C08(BossHakugin* this); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06C08.s") + Matrix_SetTranslateRotateYXZ(arg0->unk_00.x, arg0->unk_00.y, arg0->unk_00.z, &arg0->unk_0E); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + for (i = 0; i < 3; i++) { + Matrix_MultVec3f(&D_80B0E9D4[i], &sp38[i]); + } + Collider_SetTrisVertices(&arg0->unk_14, 0, &sp38[0], &sp38[1], &sp38[2]); +} -void func_80B06D38(BossHakugin* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B06D38.s") +void func_80B06600(BossHakugin* this, Vec3f* arg1, PlayState* play) { + s32 i; + Player* player = GET_PLAYER(play); + CollisionPoly* spD4; + Vec3f spC8; + Vec3f spBC; + Vec3f spB0; + Vec3f spA4; + Vec3f sp98; + Vec3f sp8C; + BossHakuginUnkStruct_2618* effect; + s32 sp84; + + Math_Vec3f_Copy(&spC8, arg1); + spBC.x = player->actor.world.pos.x - (Math_SinS(this->actor.shape.rot.y) * 50.0f); + spBC.y = player->actor.world.pos.y + 40.0f; + spBC.z = player->actor.world.pos.z - (Math_CosS(this->actor.shape.rot.y) * 50.0f); + Actor_OffsetOfPointInActorCoords(&this->actor, &sp98, &spBC); + Audio_PlaySfx_AtPos(&this->unk_0458, 0x384DU); + for (i = 0; i < 20; i++) { + effect = &this->unk_2618[i]; + Actor_OffsetOfPointInActorCoords(&this->actor, &sp8C, &spC8); + if (sp98.z < sp8C.z) { + effect->unk_0E.y = this->actor.shape.rot.y + ((s32)Rand_Next() >> 0x13); + } else { + effect->unk_0E.y = Math_Vec3f_Yaw(&spC8, &spBC) + ((s32)Rand_Next() >> 0x13); + } + effect->unk_0E.x = Math_Vec3f_Pitch(&spC8, &spBC) + ((s32)Rand_Next() >> 0x13); + effect->unk_0E.z = 0; + effect->unk_00.x = spC8.x + (80.0f * Math_CosS(effect->unk_0E.x) * Math_SinS(effect->unk_0E.y)); + effect->unk_00.y = spC8.y - (80.0f * Math_SinS(effect->unk_0E.x)); + effect->unk_00.z = spC8.z + (80.0f * Math_CosS(effect->unk_0E.x) * Math_CosS(effect->unk_0E.y)); + spB0.x = (2.0f * effect->unk_00.x) - spC8.x; + spB0.y = (2.0f * effect->unk_00.y) - spC8.y; + spB0.z = (2.0f * effect->unk_00.z) - spC8.z; + if (BgCheck_EntityLineTest1(&play->colCtx, &spC8, &spB0, &spA4, &spD4, 0, 1, 0, 1, &sp84)) { + effect->unk_0E.x -= 0x2000; + effect->unk_00.x = spC8.x + (80.0f * Math_CosS(effect->unk_0E.x) * Math_SinS(effect->unk_0E.y)); + effect->unk_00.y = spC8.y - (80.0f * Math_SinS(effect->unk_0E.x)); + effect->unk_00.z = spC8.z + (80.0f * Math_CosS(effect->unk_0E.x) * Math_CosS(effect->unk_0E.y)); + spC8.x = (2.0f * effect->unk_00.x) - spC8.x; + spC8.y = (2.0f * effect->unk_00.y) - spC8.y; + spC8.z = (2.0f * effect->unk_00.z) - spC8.z; + } else { + Math_Vec3f_Copy(&spC8, &spB0); + } + effect->unk_0C = 0x113 + 0x14 * i; + func_80B06558(effect); + effect->unk_0E.z = (s32)Rand_Next() >> 0x10; + } +} + +void func_80B0696C(BossHakugin* this, Vec3f* arg1) { + s32 i; + BossHakuginEffect* temp_s0; + + for (i = 0; i < 180; i++) { + temp_s0 = &this->unk_09F8[i]; + if (temp_s0->unk_18 < 0) { + s16 sp2E; + s16 sp2C; + f32 sp28; + + Math_Vec3f_Copy(&temp_s0->unk_0, arg1); + sp2C = Rand_S16Offset(0x1000, 0x3000); + sp2E = this->actor.shape.rot.y + ((s32)Rand_Next() >> 0x12) + 0x8000; + sp28 = Rand_ZeroFloat(5.0f) + 7.0f; + temp_s0->unk_C.x = sp28 * Math_CosS(sp2C) * Math_SinS(sp2E); + temp_s0->unk_C.y = sp28 * Math_SinS(sp2C); + temp_s0->unk_C.z = sp28 * Math_CosS(sp2C) * Math_CosS(sp2E); + temp_s0->unk_0.x = arg1->x + (Rand_ZeroFloat(3.0f) * temp_s0->unk_C.x); + temp_s0->unk_0.y = arg1->y + (Rand_ZeroFloat(3.0f) * temp_s0->unk_C.y); + temp_s0->unk_0.z = arg1->z + (Rand_ZeroFloat(3.0f) * temp_s0->unk_C.z); + temp_s0->unk_24 = (Rand_ZeroFloat(6.0f) + 15.0f) * 0.0001f; + temp_s0->unk_18 = 0x28; + temp_s0->unk_1A = 0; + break; + } + } +} + +void func_80B06B20(BossHakugin* this, Vec3f* arg1) { + Actor* sp1C; + s32 i; + + if (((this->unk_044C.z < -200.0f) && (this->actor.speed > 10.0f) && (this->unk_018D == 0) && + (Rand_ZeroOne() < 0.4f))) { + this->unk_018D = 4; + } else { + if (this->unk_018D > 0) { + this->unk_018D--; + } + return; + } + + for (i = 0; i < 8; i++) { + sp1C = this->unk_09B0[i]; + + if (sp1C->params == 0) { + Math_Vec3f_Copy(&sp1C->world.pos, arg1); + sp1C->params = 1; + break; + } + } +} + +void func_80B06C08(BossHakugin* this) { + s32 i; + + if ((this->unk_018E == 0) && (this->actor.colChkInfo.health < 0x14) && (Rand_ZeroOne() < 0.35f)) { + this->unk_018E = 4; + } else { + if (this->unk_018E > 0) { + this->unk_018E--; + } + return; + } + for (i = 0; i < 10; i++) { + Actor* tmp = this->unk_09D0[i]; + + if (tmp->params == 0) { + tmp->params = 2; + return; + } + } +} + +void func_80B06D38(BossHakugin* this, PlayState* play) { + EnBom* sp44; + s16 temp_a1; + + if ((this->actor.speed > 10.0f) && ((s32)this->actor.colChkInfo.health < 0xA) && (this->unk_018F == 0) && + (Rand_ZeroOne() < 0.35f)) { + this->unk_018F = 4; + } else { + if (this->unk_018F > 0) { + this->unk_018F--; + } + return; + } + sp44 = + (EnBom*) Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, + this->unk_0484.elements[1].dim.worldSphere.center.x - (100.0f * Math_SinS(this->actor.shape.rot.y)), + this->unk_0484.elements[1].dim.worldSphere.center.y + 100.0f, + this->unk_0484.elements[1].dim.worldSphere.center.z - (Math_CosS(this->actor.shape.rot.y) * 100.0f), + 0, 0, 0, 0); + if (sp44 != NULL) { + temp_a1 = (this->actor.yawTowardsPlayer - this->actor.shape.rot.y) - 0x8000; + if (temp_a1 > 0x2000) { + sp44->actor.world.rot.y = this->actor.shape.rot.y + 0xA000; + } else if (temp_a1 < -0x2000) { + sp44->actor.world.rot.y = this->actor.shape.rot.y + 0x6000; + } else { + sp44->actor.world.rot.y = this->actor.yawTowardsPlayer; + } + + sp44->timer = (Rand_Next() >> 0x1C) + 0x11; + sp44->actor.velocity.y = 2.0f; + sp44->actor.speed = this->actor.xzDistToPlayer * 0.01f; + sp44->actor.speed = CLAMP(sp44->actor.speed, 6.0f, 12.0f); + + Actor_SetScale(&sp44->actor, 0.02f); + } +} void func_80B06F48(BossHakugin* this, PlayState* play) { BossHakuginFhgFlashUnkStruct* iter; @@ -723,8 +946,42 @@ void func_80B07700(BossHakugin* this, PlayState* play, s32 arg2) { EffectSsIceSmoke_Spawn(play, &pos, &vel, &gZeroVec3f, 0x258); } -void func_80B0791C(BossHakugin* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0791C.s") +s32 func_80B0791C(BossHakugin* this, PlayState* play) { + Player* sp34 = GET_PLAYER(play); + s16 var_v1; + s32 var_v0_2; + f32 sp28; + f32 sp24; + + if (this->unk_044C.z > 0.0f) { + return 0; + } + var_v1 = this->unk_01A0 - Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)); + var_v0_2 = ABS_ALT(var_v1); + + if (var_v0_2 < 0x4000) { + if (var_v0_2 < 0x1800) { + this->unk_018C = 0; + } + return 0; + } + if (this->unk_018C == 1) { + return 0; + } + sp24 = this->actor.world.pos.x * this->unk_01B4; + sp28 = this->actor.world.pos.z * this->unk_01B4; + if (((sp34->actor.world.pos.x > 1200.0f) && (sp34->actor.world.pos.z < 1200.0f) && + (sp34->actor.world.pos.z > -1200.0f) && (this->actor.world.pos.x < 0.0f) && (sp28 > 1200.0f)) || + ((sp34->actor.world.pos.x < -1200.0f) && (sp34->actor.world.pos.z < 1200.0f) && + (sp34->actor.world.pos.z > -1200.0f) && (this->actor.world.pos.x > 0.0f) && (sp28 < -1200.0f)) || + ((sp34->actor.world.pos.z > 1200.0f) && (sp34->actor.world.pos.x < 1200.0f) && + (sp34->actor.world.pos.x > -1200.0f) && (this->actor.world.pos.z < 0.0f) && (sp24 < -1200.0f)) || + ((sp34->actor.world.pos.z < -1200.0f) && (sp34->actor.world.pos.x < 1200.0f) && + (sp34->actor.world.pos.x > -1200.0f) && (this->actor.world.pos.z > 0.0f) && (sp24 > 1200.0f))) { + return 1; + } + return 0; +} void func_80B07B88(BossHakugin* this, PlayState* play) { if (this->unk_0196 == 0xA) { @@ -1499,8 +1756,27 @@ void func_80B0AC30(BossHakugin* this, PlayState* play); s32 func_80B0ADFC(BossHakugin* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0ADFC.s") -void func_80B0B238(BossHakugin* this); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0B238.s") +void func_80B0B238(BossHakugin* this) { + BossHakuginEffect* temp_s0; + s32 i; + + for (i = 0; i < 180; i++) { + temp_s0 = &this->unk_09F8[i]; + + if (temp_s0->unk_18 >= 0) { + temp_s0->unk_18--; + temp_s0->unk_C.y += -1.0f; + Math_Vec3f_Sum(&temp_s0->unk_0, &temp_s0->unk_C, &temp_s0->unk_0); + if (temp_s0->unk_0.y < -500.0f) { + temp_s0->unk_18 = -1; + } else { + temp_s0->unk_1C.x += (s16)(0x700 + (Rand_Next() >> 0x17)); + temp_s0->unk_1C.y += (s16)(0x900 + (Rand_Next() >> 0x17)); + temp_s0->unk_1C.z += (s16)(0xB00 + (Rand_Next() >> 0x17)); + } + } + } +} void func_80B0B34C(BossHakugin* this) { BossHakuginEffect* effect; diff --git a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h index e7aaaffb7..6662f11e0 100644 --- a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h +++ b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h @@ -39,9 +39,9 @@ typedef struct BossHakugin { /* 0x0144 */ SkelAnime skelAnime; /* 0x0188 */ BossHakuginActionFunc actionFunc; /* 0x018C */ u8 unk_018C; - /* 0x018D */ s8 unk_018D; - /* 0x018E */ s8 unk_018E; - /* 0x018F */ s8 unk_018F; + /* 0x018D */ u8 unk_018D; + /* 0x018E */ u8 unk_018E; + /* 0x018F */ u8 unk_018F; /* 0x0190 */ u8 unk_0190; // boolean? /* 0x0191 */ u8 unk_0191; /* 0x0192 */ u8 unk_0192; From d3104be63caa4060a87ff169f42bf255d6a2a08c Mon Sep 17 00:00:00 2001 From: engineer124 <47598039+engineer124@users.noreply.github.com> Date: Thu, 5 Oct 2023 15:44:51 +1100 Subject: [PATCH 2/5] Switch Flag Cleanup (#1406) * cleanup switchFlag * more cleanup * switchFlags --- .../ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.c | 4 +- .../ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.h | 2 +- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.c | 6 +-- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.h | 2 +- .../ovl_Bg_Dblue_Balance/z_bg_dblue_balance.c | 30 ++++++----- .../ovl_Bg_Dblue_Balance/z_bg_dblue_balance.h | 6 +-- .../ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c | 52 +++++++++---------- .../ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h | 4 +- .../z_bg_dblue_waterfall.c | 20 +++---- .../z_bg_dblue_waterfall.h | 2 +- .../ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c | 17 +++--- .../ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.h | 2 +- .../actors/ovl_Bg_F40_Block/z_bg_f40_block.c | 10 ++-- .../actors/ovl_Bg_F40_Block/z_bg_f40_block.h | 2 +- .../ovl_Bg_F40_Switch/z_bg_f40_switch.c | 8 +-- .../ovl_Bg_F40_Switch/z_bg_f40_switch.h | 2 +- .../ovl_Bg_F40_Swlift/z_bg_f40_swlift.c | 2 +- .../ovl_Bg_F40_Swlift/z_bg_f40_swlift.h | 2 +- .../ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c | 15 +++--- .../ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.h | 2 +- .../z_bg_hakugin_bombwall.c | 4 +- .../z_bg_hakugin_bombwall.h | 2 +- .../z_bg_hakugin_elvpole.c | 10 ++-- .../z_bg_hakugin_elvpole.h | 2 +- .../ovl_Bg_Hakugin_Post/z_bg_hakugin_post.c | 36 ++++++------- .../ovl_Bg_Hakugin_Post/z_bg_hakugin_post.h | 5 +- .../z_bg_hakugin_switch.c | 18 +++---- .../z_bg_hakugin_switch.h | 2 +- .../z_bg_ikana_bombwall.c | 4 +- .../z_bg_ikana_bombwall.h | 2 +- .../ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.c | 2 +- .../ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.h | 2 +- .../z_bg_ikana_rotaryroom.c | 22 ++++---- .../z_bg_ikana_rotaryroom.h | 4 +- .../ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c | 10 ++-- .../ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.h | 3 ++ .../ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c | 4 +- .../ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.h | 2 +- .../actors/ovl_Bg_Ikninside/z_bg_ikninside.c | 4 +- .../actors/ovl_Bg_Ikninside/z_bg_ikninside.h | 2 +- .../ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.c | 2 +- .../ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.h | 2 +- .../ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.c | 4 +- .../ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.h | 2 +- .../ovl_Bg_Kin2_Fence/z_bg_kin2_fence.c | 4 +- .../ovl_Bg_Kin2_Fence/z_bg_kin2_fence.h | 2 + .../actors/ovl_Bg_Ladder/z_bg_ladder.c | 2 +- .../actors/ovl_Bg_Ladder/z_bg_ladder.h | 2 +- .../ovl_Bg_Last_Bwall/z_bg_last_bwall.c | 4 +- .../ovl_Bg_Last_Bwall/z_bg_last_bwall.h | 2 +- .../actors/ovl_Bg_Spdweb/z_bg_spdweb.c | 2 +- .../actors/ovl_Bg_Spdweb/z_bg_spdweb.h | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 11 ++-- .../actors/ovl_Door_Shutter/z_door_shutter.h | 2 +- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c | 16 +++--- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.h | 2 +- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 16 +++--- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.h | 2 +- src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.c | 16 +++--- src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.h | 2 +- src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.c | 16 +++--- src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.h | 2 +- src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.c | 12 ++--- src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.h | 2 +- src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.c | 22 ++++---- src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.h | 2 +- src/overlays/actors/ovl_En_Bat/z_en_bat.c | 2 +- src/overlays/actors/ovl_En_Bat/z_en_bat.h | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 7 +-- .../actors/ovl_En_Bigokuta/z_en_bigokuta.h | 2 + src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c | 13 ++--- src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h | 4 +- .../actors/ovl_En_Daiku2/z_en_daiku2.c | 18 +++---- .../actors/ovl_En_Daiku2/z_en_daiku2.h | 10 +--- src/overlays/actors/ovl_En_Door/z_en_door.c | 2 +- src/overlays/actors/ovl_En_Door/z_en_door.h | 2 +- .../actors/ovl_En_Door_Etc/z_en_door_etc.c | 4 +- .../actors/ovl_En_Door_Etc/z_en_door_etc.h | 2 +- src/overlays/actors/ovl_En_Egol/z_en_egol.c | 2 +- src/overlays/actors/ovl_En_Egol/z_en_egol.h | 2 +- .../actors/ovl_En_Elfbub/z_en_elfbub.c | 4 +- .../actors/ovl_En_Elfbub/z_en_elfbub.h | 2 +- .../actors/ovl_En_Elfgrp/z_en_elfgrp.c | 4 +- .../actors/ovl_En_Elfgrp/z_en_elfgrp.h | 2 +- .../actors/ovl_En_Elforg/z_en_elforg.c | 10 ++-- .../actors/ovl_En_Elforg/z_en_elforg.h | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 4 +- src/overlays/actors/ovl_En_Fr/z_en_fr.h | 2 +- src/overlays/actors/ovl_En_Gb2/z_en_gb2.c | 10 ++-- src/overlays/actors/ovl_En_Gb2/z_en_gb2.h | 2 +- src/overlays/actors/ovl_En_Gk/z_en_gk.c | 8 +-- src/overlays/actors/ovl_En_Gk/z_en_gk.h | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 10 ++-- src/overlays/actors/ovl_En_Gs/z_en_gs.h | 4 +- .../ovl_En_Hidden_Nuts/z_en_hidden_nuts.c | 2 +- .../ovl_En_Hidden_Nuts/z_en_hidden_nuts.h | 2 +- .../actors/ovl_En_Hit_Tag/z_en_hit_tag.c | 2 +- .../actors/ovl_En_Hit_Tag/z_en_hit_tag.h | 2 +- .../z_en_invisible_ruppe.c | 12 ++--- .../z_en_invisible_ruppe.h | 4 +- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 6 +-- src/overlays/actors/ovl_En_Ishi/z_en_ishi.h | 2 +- .../actors/ovl_En_Kaizoku/z_en_kaizoku.c | 2 +- .../actors/ovl_En_Kaizoku/z_en_kaizoku.h | 2 +- src/overlays/actors/ovl_En_Kgy/z_en_kgy.c | 8 +-- src/overlays/actors/ovl_En_Kgy/z_en_kgy.h | 2 +- src/overlays/actors/ovl_En_Light/z_en_light.c | 6 +-- src/overlays/actors/ovl_En_Light/z_en_light.h | 2 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 24 ++++----- .../ovl_En_Okarina_Tag/z_en_okarina_tag.h | 4 +- src/overlays/actors/ovl_En_Osn/z_en_osn.c | 8 +-- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 4 +- src/overlays/actors/ovl_En_Owl/z_en_owl.h | 2 +- .../actors/ovl_En_Rail_Skb/z_en_rail_skb.c | 4 +- .../actors/ovl_En_Rail_Skb/z_en_rail_skb.h | 2 +- .../actors/ovl_En_Recepgirl/z_en_recepgirl.c | 16 +++--- .../actors/ovl_En_Recepgirl/z_en_recepgirl.h | 2 + .../actors/ovl_En_S_Goro/z_en_s_goro.c | 2 +- .../actors/ovl_En_S_Goro/z_en_s_goro.h | 2 +- src/overlays/actors/ovl_En_St/z_en_st.c | 6 +-- src/overlays/actors/ovl_En_St/z_en_st.h | 3 +- .../ovl_En_Talk_Gibud/z_en_talk_gibud.c | 2 +- .../ovl_En_Talk_Gibud/z_en_talk_gibud.h | 2 +- .../actors/ovl_En_Time_Tag/z_en_time_tag.c | 2 +- .../actors/ovl_En_Time_Tag/z_en_time_tag.h | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 6 +-- src/overlays/actors/ovl_En_Tk/z_en_tk.h | 4 +- src/overlays/actors/ovl_En_Toto/z_en_toto.c | 16 +++--- src/overlays/actors/ovl_En_Toto/z_en_toto.h | 4 ++ .../ovl_En_Water_Effect/z_en_water_effect.c | 3 +- src/overlays/actors/ovl_En_Wiz/z_en_wiz.c | 2 +- src/overlays/actors/ovl_En_Wiz/z_en_wiz.h | 2 +- src/overlays/actors/ovl_En_Zot/z_en_zot.c | 6 +-- src/overlays/actors/ovl_En_Zot/z_en_zot.h | 1 + src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.c | 4 +- src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.h | 2 +- .../actors/ovl_Obj_Armos/z_obj_armos.c | 4 +- .../actors/ovl_Obj_Armos/z_obj_armos.h | 2 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 34 ++++++------ src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h | 4 +- .../ovl_Obj_Bigicicle/z_obj_bigicicle.c | 6 +-- .../ovl_Obj_Bigicicle/z_obj_bigicicle.h | 2 + .../ovl_Obj_Blockstop/z_obj_blockstop.c | 4 +- .../ovl_Obj_Blockstop/z_obj_blockstop.h | 2 + .../actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c | 4 +- .../actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h | 2 +- src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c | 6 +-- src/overlays/actors/ovl_Obj_Chan/z_obj_chan.h | 2 + src/overlays/actors/ovl_Obj_Demo/z_obj_demo.c | 11 ++-- src/overlays/actors/ovl_Obj_Demo/z_obj_demo.h | 5 +- .../actors/ovl_Obj_Dhouse/z_obj_dhouse.c | 4 +- .../actors/ovl_Obj_Dhouse/z_obj_dhouse.h | 2 +- .../ovl_Obj_Fireshield/z_obj_fireshield.c | 22 ++++---- .../ovl_Obj_Fireshield/z_obj_fireshield.h | 4 +- .../actors/ovl_Obj_Hakaisi/z_obj_hakaisi.c | 2 +- .../actors/ovl_Obj_Hakaisi/z_obj_hakaisi.h | 2 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.c | 4 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.h | 2 +- .../actors/ovl_Obj_HsStump/z_obj_hsstump.c | 4 +- .../actors/ovl_Obj_HsStump/z_obj_hsstump.h | 2 +- .../actors/ovl_Obj_Hsblock/z_obj_hsblock.c | 4 +- .../actors/ovl_Obj_Hsblock/z_obj_hsblock.h | 2 +- .../ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c | 10 ++-- .../ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.h | 2 +- .../actors/ovl_Obj_Hunsui/z_obj_hunsui.c | 47 +++++++++-------- .../actors/ovl_Obj_Hunsui/z_obj_hunsui.h | 4 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 10 ++-- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h | 6 +-- .../actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c | 2 +- .../actors/ovl_Obj_Kzsaku/z_obj_kzsaku.h | 2 +- src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c | 4 +- src/overlays/actors/ovl_Obj_Lift/z_obj_lift.h | 2 +- .../ovl_Obj_Lightblock/z_obj_lightblock.c | 4 +- .../ovl_Obj_Lightblock/z_obj_lightblock.h | 2 +- .../ovl_Obj_Lightswitch/z_obj_lightswitch.c | 8 +-- .../ovl_Obj_Lightswitch/z_obj_lightswitch.h | 2 +- .../ovl_Obj_Makekinsuta/z_obj_makekinsuta.c | 6 +-- .../ovl_Obj_Makekinsuta/z_obj_makekinsuta.h | 2 +- .../ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c | 8 +-- .../ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.h | 4 +- .../actors/ovl_Obj_Mure3/z_obj_mure3.c | 4 +- .../actors/ovl_Obj_Mure3/z_obj_mure3.h | 2 +- .../actors/ovl_Obj_Nozoki/z_obj_nozoki.c | 20 +++---- .../actors/ovl_Obj_Nozoki/z_obj_nozoki.h | 4 +- .../actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c | 20 ++++--- .../actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h | 2 +- .../actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c | 4 +- .../actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h | 2 +- .../actors/ovl_Obj_Raillift/z_obj_raillift.c | 6 +-- .../actors/ovl_Obj_Raillift/z_obj_raillift.h | 2 +- .../ovl_Obj_Roomtimer/z_obj_roomtimer.c | 2 +- .../ovl_Obj_Roomtimer/z_obj_roomtimer.h | 2 +- .../actors/ovl_Obj_Snowball/z_obj_snowball.c | 6 +-- .../actors/ovl_Obj_Snowball/z_obj_snowball.h | 2 +- .../ovl_Obj_Spidertent/z_obj_spidertent.c | 4 +- .../ovl_Obj_Spidertent/z_obj_spidertent.h | 2 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 8 +-- src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c | 4 +- src/overlays/actors/ovl_Obj_Taru/z_obj_taru.h | 2 +- .../actors/ovl_Obj_Wturn/z_obj_wturn.c | 6 +-- .../actors/ovl_Obj_Wturn/z_obj_wturn.h | 2 + .../ovl_Obj_Y2shutter/z_obj_y2shutter.c | 10 ++-- .../ovl_Obj_Y2shutter/z_obj_y2shutter.h | 2 +- 203 files changed, 616 insertions(+), 581 deletions(-) diff --git a/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.c b/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.c index 0391925ae..da688a81b 100644 --- a/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.c @@ -103,7 +103,7 @@ void BgAstrBombwall_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); DynaPolyActor_LoadMesh(play, &this->dyna, &object_astr_obj_Colheader_002498); Collider_InitTris(play, &this->collider); - if (Flags_GetSwitch(play, BGASTRBOMBWALL_GET_SWITCHFLAG(thisx))) { + if (Flags_GetSwitch(play, BGASTRBOMBWALL_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->dyna.actor); return; } @@ -163,7 +163,7 @@ void func_80C0A378(BgAstrBombwall* this) { void func_80C0A38C(BgAstrBombwall* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - Flags_SetSwitch(play, BGASTRBOMBWALL_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGASTRBOMBWALL_GET_SWITCH_FLAG(&this->dyna.actor)); func_80C0A400(this, play); } else { CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); diff --git a/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.h b/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.h index 224d94d7a..698ccfda1 100644 --- a/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.h +++ b/src/overlays/actors/ovl_Bg_Astr_Bombwall/z_bg_astr_bombwall.h @@ -5,7 +5,7 @@ struct BgAstrBombwall; -#define BGASTRBOMBWALL_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define BGASTRBOMBWALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef void (*BgAstrBombwallActionFunc)(struct BgAstrBombwall*, PlayState*); typedef struct BgAstrBombwall { diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index dae692c89..45a29260f 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -191,8 +191,8 @@ s32 func_808B74D8(BgBreakwall* this, PlayState* play) { s32 func_808B751C(BgBreakwall* this, PlayState* play) { Actor_SetScale(&this->dyna.actor, 0.1f); - if ((BGBREAKWALL_SWITCHFLAG(&this->dyna.actor) != 0x7F) && - !Flags_GetSwitch(play, BGBREAKWALL_SWITCHFLAG(&this->dyna.actor))) { + if ((BGBREAKWALL_SWITCH_FLAG(&this->dyna.actor) != 0x7F) && + !Flags_GetSwitch(play, BGBREAKWALL_SWITCH_FLAG(&this->dyna.actor))) { return false; } @@ -220,7 +220,7 @@ void BgBreakwall_Init(Actor* thisx, PlayState* play) { } BgBreakwall_SetupAction(this, func_808B76CC); - this->switchFlag = BGBREAKWALL_SWITCHFLAG(&this->dyna.actor); + this->switchFlag = BGBREAKWALL_SWITCH_FLAG(&this->dyna.actor); } void BgBreakwall_Destroy(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h index c332fe82c..5baa97232 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.h @@ -10,7 +10,7 @@ typedef s32 (*BgBreakwallUnkFunc)(struct BgBreakwall*, PlayState*); typedef void (*BgBreakwallUnkFunc2)(struct BgBreakwall*, PlayState*); #define BGBREAKWALL_GET_F(thisx) ((thisx)-> params & 0xF) -#define BGBREAKWALL_SWITCHFLAG(thisx) (((thisx)-> params & 0xFE00) >> 9) +#define BGBREAKWALL_SWITCH_FLAG(thisx) (((thisx)-> params & 0xFE00) >> 9) typedef enum { /* 7 */ BGBREAKWALL_F_7 = 7, diff --git a/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.c b/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.c index 5d0ac3bc5..52c0f046f 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.c +++ b/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.c @@ -198,7 +198,7 @@ void func_80B8264C(BgDblueBalance* this) { f32 temp_f0; s16 phi_s2; - if (this->unk_170 != 0) { + if (this->isSwitchFlagSet) { if (this->unk_183 < 8) { this->unk_183 = 0; } else { @@ -247,7 +247,7 @@ void func_80B8264C(BgDblueBalance* this) { } void func_80B828E4(BgDblueBalance* this, PlayState* play) { - if (Flags_GetSwitch(play, BGDBLUEBALANCE_GET_7F(&this->dyna.actor)) && (this->unk_17D <= 0)) { + if (Flags_GetSwitch(play, BGDBLUEBALANCE_GET_SWITCH_FLAG(&this->dyna.actor)) && (this->unk_17D <= 0)) { if (this->unk_183 >= 252) { this->unk_183 = 255; } else { @@ -306,7 +306,7 @@ void BgDblueBalance_Init(Actor* thisx, PlayState* play) { BgDblueBalance* this = THIS; s32 sp2C = BGDBLUEBALANCE_GET_300(&this->dyna.actor); s32 pad2; - s32 sp24 = Flags_GetSwitch(play, BGDBLUEBALANCE_GET_7F(&this->dyna.actor)); + s32 isSwitchFlagSet = Flags_GetSwitch(play, BGDBLUEBALANCE_GET_SWITCH_FLAG(&this->dyna.actor)); Actor_ProcessInitChain(&this->dyna.actor, sInitChain); @@ -326,7 +326,7 @@ void BgDblueBalance_Init(Actor* thisx, PlayState* play) { } if (sp2C == 0) { - if (sp24 != 0) { + if (isSwitchFlagSet) { this->dyna.actor.shape.rot.z = -0x1C72; this->unk_174 = -0x1C72; } else { @@ -337,9 +337,9 @@ void BgDblueBalance_Init(Actor* thisx, PlayState* play) { func_80B8259C(this, play); func_80B82DC4(this); } else if (sp2C == 3) { - this->unk_16C = sp24; - this->unk_170 = sp24; - if (sp24 != 0) { + this->isSwitchFlagSet2 = isSwitchFlagSet; + this->isSwitchFlagSet = isSwitchFlagSet; + if (isSwitchFlagSet) { func_80B83344(this); } else { this->unk_178 = 0x1F4; @@ -396,7 +396,7 @@ void func_80B82DE0(BgDblueBalance* this, PlayState* play) { BgDblueBalance* sp3C; Vec3f sp30; - if (Flags_GetSwitch(play, BGDBLUEBALANCE_GET_7F(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGDBLUEBALANCE_GET_SWITCH_FLAG(&this->dyna.actor))) { if (this->unk_17D > 0) { this->unk_17D--; } else { @@ -555,7 +555,7 @@ void func_80B83344(BgDblueBalance* this) { } void func_80B8335C(BgDblueBalance* this, PlayState* play) { - if (!Flags_GetSwitch(play, BGDBLUEBALANCE_GET_7F(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, BGDBLUEBALANCE_GET_SWITCH_FLAG(&this->dyna.actor))) { this->unk_178 = -0x14; func_80B833A8(this); } @@ -573,8 +573,8 @@ void func_80B833C4(BgDblueBalance* this, PlayState* play) { s16 sp26; s16 sp24; - if (this->unk_170 != 0) { - if ((this->unk_16C == 0) && (this->unk_17F == 0)) { + if (this->isSwitchFlagSet) { + if (!this->isSwitchFlagSet2 && (this->unk_17F == 0)) { this->unk_17F = 1; } @@ -590,9 +590,11 @@ void func_80B833C4(BgDblueBalance* this, PlayState* play) { sp26 = this->dyna.actor.shape.rot.x; this->dyna.actor.shape.rot.x += this->unk_178; sp24 = this->dyna.actor.shape.rot.x; + + //! FAKE: if (sp24) {} - if (this->unk_170 != 0) { + if (this->isSwitchFlagSet) { if (this->unk_186 != 0) { if (func_80B82B00(sp26, sp24, this->unk_184)) { sp28 = true; @@ -619,7 +621,7 @@ void func_80B833C4(BgDblueBalance* this, PlayState* play) { void func_80B83518(Actor* thisx, PlayState* play) { BgDblueBalance* this = THIS; - this->unk_170 = Flags_GetSwitch(play, BGDBLUEBALANCE_GET_7F(&this->dyna.actor)); + this->isSwitchFlagSet = Flags_GetSwitch(play, BGDBLUEBALANCE_GET_SWITCH_FLAG(&this->dyna.actor)); this->actionFunc(this, play); @@ -638,7 +640,7 @@ void func_80B83518(Actor* thisx, PlayState* play) { CutsceneManager_Queue(this->dyna.actor.csId); } } - this->unk_16C = this->unk_170; + this->isSwitchFlagSet2 = this->isSwitchFlagSet; } void BgDblueBalance_Draw(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.h b/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.h index 5d72ea3db..4c16a1cb8 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.h +++ b/src/overlays/actors/ovl_Bg_Dblue_Balance/z_bg_dblue_balance.h @@ -7,7 +7,7 @@ struct BgDblueBalance; typedef void (*BgDblueBalanceActionFunc)(struct BgDblueBalance*, PlayState*); -#define BGDBLUEBALANCE_GET_7F(thisx) ((thisx)->params & 0x7F) +#define BGDBLUEBALANCE_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define BGDBLUEBALANCE_GET_300(thisx) (((thisx)->params >> 8) & 3) typedef struct { @@ -23,8 +23,8 @@ typedef struct BgDblueBalance { /* 0x160 */ struct BgDblueBalance* unk_160; /* 0x164 */ struct BgDblueBalance* unk_164; /* 0x168 */ BgDblueBalanceActionFunc actionFunc; - /* 0x16C */ s32 unk_16C; - /* 0x170 */ s32 unk_170; + /* 0x16C */ s32 isSwitchFlagSet2; + /* 0x170 */ s32 isSwitchFlagSet; /* 0x174 */ s16 unk_174; /* 0x176 */ s16 unk_176; /* 0x178 */ s16 unk_178; diff --git a/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c b/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c index 6562c4738..be3623f2d 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c +++ b/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c @@ -108,22 +108,22 @@ static InitChainEntry sInitChain[] = { Vec3f D_80A2B988 = { 1785.0f, 0.0f, 220.0f }; -s32 func_80A29A80(PlayState* play, s32 arg1, s32 arg2) { +s32 func_80A29A80(PlayState* play, s32 switchFlagBase, s32 arg2) { s32 sp2C = 1; - s32 val; + s32 switchFlagOffset; s32 val2; if (arg2 < 14) { - val = D_80A2B870[arg2][0]; + switchFlagOffset = D_80A2B870[arg2][0]; val2 = D_80A2B870[arg2][1]; - while (val--) { - if ((1 << val) & val2) { - if (!Flags_GetSwitch(play, arg1 + val)) { + while (switchFlagOffset--) { + if ((1 << switchFlagOffset) & val2) { + if (!Flags_GetSwitch(play, switchFlagBase + switchFlagOffset)) { sp2C = 0; break; } - } else if (Flags_GetSwitch(play, arg1 + val)) { + } else if (Flags_GetSwitch(play, switchFlagBase + switchFlagOffset)) { sp2C = 0; break; } @@ -132,20 +132,20 @@ s32 func_80A29A80(PlayState* play, s32 arg1, s32 arg2) { sp2C = 0; switch (arg2) { case 14: - if (!Flags_GetSwitch(play, arg1)) { + if (!Flags_GetSwitch(play, switchFlagBase)) { sp2C = 1; } - if (Flags_GetSwitch(play, arg1 + 1) && Flags_GetSwitch(play, arg1 + 2) && - Flags_GetSwitch(play, arg1 + 3)) { + if (Flags_GetSwitch(play, switchFlagBase + 1) && Flags_GetSwitch(play, switchFlagBase + 2) && + Flags_GetSwitch(play, switchFlagBase + 3)) { sp2C += 2; } break; case 15: - if (!Flags_GetSwitch(play, arg1) || - (Flags_GetSwitch(play, arg1 + 1) && Flags_GetSwitch(play, arg1 + 2) && - Flags_GetSwitch(play, arg1 + 3))) { + if (!Flags_GetSwitch(play, switchFlagBase) || + (Flags_GetSwitch(play, switchFlagBase + 1) && Flags_GetSwitch(play, switchFlagBase + 2) && + Flags_GetSwitch(play, switchFlagBase + 3))) { sp2C = 1; } break; @@ -162,7 +162,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); this->unk_160 = BGDBLUEMOVEBG_GET_F(thisx); this->unk_1BC = BGDBLUEMOVEBG_GET_F000(thisx); - this->unk_1C0 = BGDBLUEMOVEBG_GET_FF0(thisx); + this->switchFlag = BGDBLUEMOVEBG_GET_SWITCH_FLAG(thisx); DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); if ((this->unk_160 == 9) || (this->unk_160 == 8)) { @@ -214,7 +214,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) { } this->unk_17E = 0; this->unk_184 = 0.0f; - if (Flags_GetSwitch(play, this->unk_1C0)) { + if (Flags_GetSwitch(play, this->switchFlag)) { this->unk_18C = 0x384; } else { this->unk_18C = 0; @@ -224,7 +224,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) { break; case 6: - this->unk_178 = func_80A29A80(play, this->unk_1C0, this->unk_1BC); + this->unk_178 = func_80A29A80(play, this->switchFlag, this->unk_1BC); this->unk_1CC = D_80A2B96C[this->unk_178]; this->unk_1CE = this->unk_1CC; this->actionFunc = func_80A2A1E0; @@ -237,7 +237,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) { this->dyna.actor.shape.rot.x = 0; this->dyna.actor.world.rot.z = 0; this->dyna.actor.shape.rot.z = 0; - if (Flags_GetSwitch(play, this->unk_1C0)) { + if (Flags_GetSwitch(play, this->switchFlag)) { Actor_Kill(&this->dyna.actor); break; } @@ -257,7 +257,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) { for (i = 0; i < ARRAY_COUNT(sCsIdList); i++) { sCsIdList[i] = this->csIdList[i]; } - this->unk_178 = func_80A29A80(play, this->unk_1C0, this->unk_1BC); + this->unk_178 = func_80A29A80(play, this->switchFlag, this->unk_1BC); this->unk_1CC = D_80A2B96C[this->unk_178]; this->unk_1CE = this->unk_1CC; Matrix_RotateYS(this->dyna.actor.shape.rot.y, MTXMODE_NEW); @@ -275,7 +275,7 @@ void BgDblueMovebg_Init(Actor* thisx, PlayState* play) { break; case 11: - this->unk_1CC = D_80A2B96C[func_80A29A80(play, this->unk_1C0, this->unk_1BC)]; + this->unk_1CC = D_80A2B96C[func_80A29A80(play, this->switchFlag, this->unk_1BC)]; D_80A2BBF0 = this; this->dyna.actor.flags |= ACTOR_FLAG_20; this->dyna.actor.update = Actor_Noop; @@ -314,7 +314,7 @@ void func_80A2A128(BgDblueMovebg* this, PlayState* play) { } void func_80A2A1E0(BgDblueMovebg* this, PlayState* play) { - s32 temp_v0 = func_80A29A80(play, this->unk_1C0, this->unk_1BC); + s32 temp_v0 = func_80A29A80(play, this->switchFlag, this->unk_1BC); if (temp_v0 != this->unk_178) { switch (temp_v0) { @@ -422,7 +422,7 @@ void func_80A2A444(BgDblueMovebg* this, PlayState* play) { if (sp20) { player->stateFlags2 &= ~PLAYER_STATE2_10; this->dyna.pushForce = 0.0f; - Flags_SetSwitch(play, this->unk_1C0); + Flags_SetSwitch(play, this->switchFlag); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP); if (func_80A29A80(play, this->unk_1C8, this->unk_1C4)) { @@ -510,9 +510,9 @@ void func_80A2A7F8(BgDblueMovebg* this, PlayState* play) { temp = (this->unk_18C + sp26 + 3600) % 3600; if ((temp == 900) || (temp == 2700)) { - Flags_SetSwitch(play, this->unk_1C0); + Flags_SetSwitch(play, this->switchFlag); } else { - Flags_UnsetSwitch(play, this->unk_1C0); + Flags_UnsetSwitch(play, this->switchFlag); } player->stateFlags1 |= PLAYER_STATE1_20; @@ -637,7 +637,7 @@ void func_80A2AED0(BgDblueMovebg* this, PlayState* play) { } } - temp_v0_3 = func_80A29A80(play, this->unk_1C0, this->unk_1BC); + temp_v0_3 = func_80A29A80(play, this->switchFlag, this->unk_1BC); if (temp_v0_3 != this->unk_178) { switch (temp_v0_3) { case 1: @@ -704,7 +704,7 @@ void func_80A2AED0(BgDblueMovebg* this, PlayState* play) { } void func_80A2B1A0(BgDblueMovebg* this, PlayState* play) { - switch (func_80A29A80(play, this->unk_1C0, this->unk_1BC)) { + switch (func_80A29A80(play, this->switchFlag, this->unk_1BC)) { case 1: this->dyna.actor.shape.rot.z = this->dyna.actor.home.rot.z; break; @@ -736,7 +736,7 @@ void func_80A2B274(Actor* thisx, PlayState* play) { return; } - temp_v1 = D_80A2B96C[func_80A29A80(play, this->unk_1C0, this->unk_1BC)]; + temp_v1 = D_80A2B96C[func_80A29A80(play, this->switchFlag, this->unk_1BC)]; if (temp_v1 != 0) { if (temp_v1 > 0) { Audio_PlaySfx_WaterWheel(&this->dyna.actor.projectedPos, NA_SE_EV_DUMMY_WATER_WHEEL_RR - SFX_FLAG); diff --git a/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h b/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h index 6e81c24c1..c9a4e2f7e 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h +++ b/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.h @@ -8,7 +8,7 @@ struct BgDblueMovebg; typedef void (*BgDblueMovebgActionFunc)(struct BgDblueMovebg*, PlayState*); #define BGDBLUEMOVEBG_GET_F(thisx) ((thisx)->params & 0xF) -#define BGDBLUEMOVEBG_GET_FF0(thisx) (((thisx)->params >> 4) & 0xFF) +#define BGDBLUEMOVEBG_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 4) & 0xFF) #define BGDBLUEMOVEBG_GET_F000(thisx) (((thisx)->params >> 0xC) & 0xF) #define BGDBLUEMOVEBG_F_8 8 @@ -39,7 +39,7 @@ typedef struct BgDblueMovebg { /* 0x1B4 */ UNK_TYPE1 unk1B4[2]; /* 0x1B6 */ s16 csIdList[2]; /* 0x1BC */ s32 unk_1BC; - /* 0x1C0 */ s32 unk_1C0; + /* 0x1C0 */ s32 switchFlag; /* 0x1C4 */ s32 unk_1C4; /* 0x1C8 */ s32 unk_1C8; /* 0x1CC */ s16 unk_1CC; diff --git a/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c b/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c index 44acf9343..211aac6fd 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c +++ b/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c @@ -80,7 +80,7 @@ s32 func_80B83D04(BgDblueWaterfall* this, PlayState* play) { s32 phi_v1; s32 sp18 = BGDBLUEWATERFALL_GET_100(&this->actor); - if (Flags_GetSwitch(play, BGDBLUEWATERFALL_GET_7F(&this->actor))) { + if (Flags_GetSwitch(play, BGDBLUEWATERFALL_GET_SWITCH_FLAG(&this->actor))) { phi_v1 = true; } else { phi_v1 = false; @@ -91,7 +91,7 @@ s32 func_80B83D04(BgDblueWaterfall* this, PlayState* play) { s32 func_80B83D58(Actor* thisx, PlayState* play) { BgDblueWaterfall* this = THIS; - if (Flags_GetSwitch(play, BGDBLUEWATERFALL_GET_7F(&this->actor))) { + if (Flags_GetSwitch(play, BGDBLUEWATERFALL_GET_SWITCH_FLAG(&this->actor))) { return false; } return true; @@ -99,11 +99,11 @@ s32 func_80B83D58(Actor* thisx, PlayState* play) { void func_80B83D94(BgDblueWaterfall* this, PlayState* play) { s32 pad; - s32 sp20 = BGDBLUEWATERFALL_GET_7F(&this->actor); + s32 switchFlag = BGDBLUEWATERFALL_GET_SWITCH_FLAG(&this->actor); s32 sp1C = BGDBLUEWATERFALL_GET_100(&this->actor); s32 phi_v0; - if (Flags_GetSwitch(play, sp20)) { + if (Flags_GetSwitch(play, switchFlag)) { phi_v0 = true; } else { phi_v0 = false; @@ -111,20 +111,20 @@ void func_80B83D94(BgDblueWaterfall* this, PlayState* play) { if (phi_v0 != sp1C) { if (phi_v0) { - Flags_UnsetSwitch(play, sp20); + Flags_UnsetSwitch(play, switchFlag); } else { - Flags_SetSwitch(play, sp20); + Flags_SetSwitch(play, switchFlag); } } } void func_80B83E1C(BgDblueWaterfall* this, PlayState* play) { s32 pad; - s32 sp20 = BGDBLUEWATERFALL_GET_7F(&this->actor); + s32 switchFlag = BGDBLUEWATERFALL_GET_SWITCH_FLAG(&this->actor); s32 sp1C = BGDBLUEWATERFALL_GET_100(&this->actor); s32 phi_v0; - if (Flags_GetSwitch(play, sp20)) { + if (Flags_GetSwitch(play, switchFlag)) { phi_v0 = true; } else { phi_v0 = false; @@ -132,9 +132,9 @@ void func_80B83E1C(BgDblueWaterfall* this, PlayState* play) { if (phi_v0 == sp1C) { if (phi_v0) { - Flags_UnsetSwitch(play, sp20); + Flags_UnsetSwitch(play, switchFlag); } else { - Flags_SetSwitch(play, sp20); + Flags_SetSwitch(play, switchFlag); } } } diff --git a/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.h b/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.h index fae5cca6a..6e373084e 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.h +++ b/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.h @@ -7,7 +7,7 @@ struct BgDblueWaterfall; typedef void (*BgDblueWaterfallActionFunc)(struct BgDblueWaterfall*, PlayState*); -#define BGDBLUEWATERFALL_GET_7F(thisx) ((thisx)->params & 0x7F) +#define BGDBLUEWATERFALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define BGDBLUEWATERFALL_GET_100(thisx) (((thisx)->params >> 8) & 1) typedef struct BgDblueWaterfall { diff --git a/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c b/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c index 344fcce84..7f0312f0c 100644 --- a/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c +++ b/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.c @@ -120,15 +120,16 @@ void BgDkjailIvy_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, BG_DKJAIL_GET_SWITCH(thisx))) { + if (Flags_GetSwitch(play, BG_DKJAIL_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->dyna.actor); - } else { - DynaPolyActor_LoadMesh(play, &this->dyna, &gDkjailCol); - Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); - Collider_UpdateCylinder(&this->dyna.actor, &this->collider); - this->alpha = 255; - BgDkjailIvy_SetupWaitForCut(this); + return; } + + DynaPolyActor_LoadMesh(play, &this->dyna, &gDkjailCol); + Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); + Collider_UpdateCylinder(&this->dyna.actor, &this->collider); + this->alpha = 255; + BgDkjailIvy_SetupWaitForCut(this); } void BgDkjailIvy_Destroy(Actor* thisx, PlayState* play) { @@ -162,7 +163,7 @@ void BgDkjailIvy_BeginCutscene(BgDkjailIvy* this, PlayState* play) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); this->fadeOutTimer = 50; DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); - Flags_SetSwitch(play, BG_DKJAIL_GET_SWITCH(&this->dyna.actor)); + Flags_SetSwitch(play, BG_DKJAIL_GET_SWITCH_FLAG(&this->dyna.actor)); BgDkjailIvy_IvyCutEffects(this, play); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_GRASS_WALL_BROKEN); BgDkjailIvy_SetupFadeOut(this); diff --git a/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.h b/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.h index 4835b7a0b..e7ce39a64 100644 --- a/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.h +++ b/src/overlays/actors/ovl_Bg_Dkjail_Ivy/z_bg_dkjail_ivy.h @@ -3,7 +3,7 @@ #include "global.h" -#define BG_DKJAIL_GET_SWITCH(thisx) ((thisx)->params & 0x7F) +#define BG_DKJAIL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) struct BgDkjailIvy; diff --git a/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.c b/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.c index 6a4c44b65..db4a1105a 100644 --- a/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.c +++ b/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.c @@ -238,7 +238,7 @@ void BgF40Block_Init(Actor* thisx, PlayState* play) { } if (this->path != NULL) { - if (Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { this->actionFunc = func_80BC4530; this->dyna.actor.speed = 40.0f; func_80BC3A2C(this, play); @@ -261,7 +261,7 @@ void BgF40Block_Destroy(Actor* thisx, PlayState* play) { void func_80BC41AC(BgF40Block* this, PlayState* play) { if (func_80BC3D08(this, play, 1)) { - if (!Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCHFLAG(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { func_80BC4038(this); this->actionFunc = func_80BC44F4; } @@ -314,14 +314,14 @@ void func_80BC4344(BgF40Block* this, PlayState* play) { } void func_80BC4380(BgF40Block* this, PlayState* play) { - if (Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { this->actionFunc = func_80BC4344; } } void func_80BC43CC(BgF40Block* this, PlayState* play) { if (func_80BC3D08(this, play, 1)) { - if (Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { func_80BC4038(this); this->actionFunc = func_80BC4344; } @@ -356,7 +356,7 @@ void func_80BC44F4(BgF40Block* this, PlayState* play) { } void func_80BC4530(BgF40Block* this, PlayState* play) { - if (!Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCHFLAG(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, BGF40BLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { this->actionFunc = func_80BC44F4; } } diff --git a/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.h b/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.h index 228fb6bfd..f74dc754a 100644 --- a/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.h +++ b/src/overlays/actors/ovl_Bg_F40_Block/z_bg_f40_block.h @@ -8,7 +8,7 @@ struct BgF40Block; typedef void (*BgF40BlockActionFunc)(struct BgF40Block*, PlayState*); #define BGF40BLOCK_GET_PATH_INDEX(thisx) (((thisx)->params & 0x1FC) >> 2) -#define BGF40BLOCK_GET_SWITCHFLAG(thisx) (((thisx)->params & 0xFE00) >> 9) +#define BGF40BLOCK_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) #define BGF40BLOCK_PATH_INDEX_NONE 0x3F diff --git a/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c b/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c index be3c9cb47..9e4f9a590 100644 --- a/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c +++ b/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.c @@ -73,7 +73,7 @@ void BgF40Switch_CheckAll(BgF40Switch* this, PlayState* play) { actorAsSwitch->isPressed = isPressed; } if (actorAsSwitch->isPressed) { - switchFlag = BGF40SWITCH_GET_SWITCHFLAG(&actorAsSwitch->dyna.actor); + switchFlag = BGF40SWITCH_GET_SWITCH_FLAG(&actorAsSwitch->dyna.actor); if ((switchFlag >= 0) && (switchFlag < 0x80)) { pressedSwitchFlags[(switchFlag & ~0x1F) >> 5] |= 1 << (switchFlag & 0x1F); if (!actorAsSwitch->wasPressed && (actorAsSwitch->actionFunc == BgF40Switch_IdleUnpressed) && @@ -87,7 +87,7 @@ void BgF40Switch_CheckAll(BgF40Switch* this, PlayState* play) { for (actor = play->actorCtx.actorLists[ACTORCAT_SWITCH].first; actor != NULL; actor = actor->next) { if ((actor->id == ACTOR_BG_F40_SWITCH) && (actor->room == this->dyna.actor.room) && (actor->update != NULL)) { - switchFlag = BGF40SWITCH_GET_SWITCHFLAG(actor); + switchFlag = BGF40SWITCH_GET_SWITCH_FLAG(actor); if ((switchFlag >= 0) && (switchFlag < 0x80) && Flags_GetSwitch(play, switchFlag) && !(pressedSwitchFlags[(switchFlag & ~0x1F) >> 5] & (1 << (switchFlag & 0x1F)))) { Flags_UnsetSwitch(play, switchFlag); @@ -160,13 +160,13 @@ void BgF40Switch_WaitToPress(BgF40Switch* this, PlayState* play) { if (!this->isInitiator || (this->dyna.actor.csId == CS_ID_NONE)) { this->actionFunc = BgF40Switch_Press; if (this->isInitiator) { - Flags_SetSwitch(play, BGF40SWITCH_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGF40SWITCH_GET_SWITCH_FLAG(&this->dyna.actor)); } } else if (CutsceneManager_IsNext(this->dyna.actor.csId)) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); this->actionFunc = BgF40Switch_Press; if (this->isInitiator) { - Flags_SetSwitch(play, BGF40SWITCH_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGF40SWITCH_GET_SWITCH_FLAG(&this->dyna.actor)); } } else { CutsceneManager_Queue(this->dyna.actor.csId); diff --git a/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.h b/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.h index cfa8c5462..2d9fc589b 100644 --- a/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.h +++ b/src/overlays/actors/ovl_Bg_F40_Switch/z_bg_f40_switch.h @@ -5,7 +5,7 @@ struct BgF40Switch; -#define BGF40SWITCH_GET_SWITCHFLAG(thisx) (((thisx)->params & 0xFE00) >> 9) +#define BGF40SWITCH_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) typedef void (*BgF40SwitchActionFunc)(struct BgF40Switch*, PlayState*); diff --git a/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.c b/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.c index 039d20f3c..9b210c1b8 100644 --- a/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.c +++ b/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.c @@ -51,7 +51,7 @@ void BgF40Swlift_Init(Actor* thisx, PlayState* play) { } sHeights[index] = this->dyna.actor.world.pos.y; - sSwitchFlags[index] = BG_F40_SWLIFT_GET_SWITCHFLAG(thisx); + sSwitchFlags[index] = BG_F40_SWLIFT_GET_SWITCH_FLAG(thisx); if (index != 0) { Actor_Kill(&this->dyna.actor); return; diff --git a/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.h b/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.h index e377b73e0..e2931698e 100644 --- a/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.h +++ b/src/overlays/actors/ovl_Bg_F40_Swlift/z_bg_f40_swlift.h @@ -1,7 +1,7 @@ #ifndef Z_BG_F40_SWLIFT_H #define Z_BG_F40_SWLIFT_H -#define BG_F40_SWLIFT_GET_SWITCHFLAG(thisx) ((thisx)->params & 0xFF) +#define BG_F40_SWLIFT_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0xFF) #define BG_F40_SWLIFT_GET_INDEX(thisx) (((thisx)->params >> 8) & 0xFF) #include "global.h" diff --git a/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c b/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c index fc209773b..a9e70027c 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c @@ -160,14 +160,15 @@ void BgHakaBombwall_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); DynaPolyActor_Init(&this->dyna, 0); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, BGHAKABOMBWALL_GET_7F(thisx))) { + if (Flags_GetSwitch(play, BGHAKABOMBWALL_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->dyna.actor); - } else { - DynaPolyActor_LoadMesh(play, &this->dyna, &object_haka_obj_Colheader_000148); - Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); - Collider_UpdateCylinder(&this->dyna.actor, &this->collider); - func_80BD6260(this); + return; } + + DynaPolyActor_LoadMesh(play, &this->dyna, &object_haka_obj_Colheader_000148); + Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); + Collider_UpdateCylinder(&this->dyna.actor, &this->collider); + func_80BD6260(this); } void BgHakaBombwall_Destroy(Actor* thisx, PlayState* play) { @@ -200,7 +201,7 @@ void BgHakaBombwall_PlayCutscene(BgHakaBombwall* this, PlayState* play) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); func_80BD5E6C(this, play); this->dyna.actor.draw = NULL; - Flags_SetSwitch(play, BGHAKABOMBWALL_GET_7F(&this->dyna.actor)); + Flags_SetSwitch(play, BGHAKABOMBWALL_GET_SWITCH_FLAG(&this->dyna.actor)); SoundSource_PlaySfxAtFixedWorldPos(play, &this->dyna.actor.world.pos, 0x3C, NA_SE_EV_WALL_BROKEN); DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); BgHakaBombwall_SetupEndCutscene(this); diff --git a/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.h b/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.h index 9e5bd1c43..cb2ce7d02 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.h +++ b/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.h @@ -3,7 +3,7 @@ #include "global.h" -#define BGHAKABOMBWALL_GET_7F(thisx) ((thisx)->params & 0x7F) +#define BGHAKABOMBWALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) struct BgHakaBombwall; diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c b/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c index a1d1ebd48..3f043bcc2 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c @@ -316,7 +316,7 @@ void BgHakuginBombwall_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, BGHAKUGIN_BOMBWALL_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGHAKUGIN_BOMBWALL_SWITCH_FLAG(&this->dyna.actor))) { Actor_Kill(&this->dyna.actor); return; } @@ -400,7 +400,7 @@ void func_80ABCD98(BgHakuginBombwall* this, PlayState* play) { ptr->unk_24(this, play); this->dyna.actor.draw = NULL; this->unk_1AC = 20; - Flags_SetSwitch(play, BGHAKUGIN_BOMBWALL_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGHAKUGIN_BOMBWALL_SWITCH_FLAG(&this->dyna.actor)); DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); this->actionFunc = func_80ABCE60; } else { diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.h b/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.h index 24b04139e..78b7bf9a8 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.h +++ b/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.h @@ -9,7 +9,7 @@ typedef void (*BgHakuginBombwallActionFunc)(struct BgHakuginBombwall*, PlayState typedef s32 (*BgHakuginBombwallUnkFunc)(struct BgHakuginBombwall*, PlayState*); typedef void (*BgHakuginBombwallUnkFunc2)(struct BgHakuginBombwall*, PlayState*); -#define BGHAKUGIN_BOMBWALL_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define BGHAKUGIN_BOMBWALL_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define BGHAKUGIN_BOMBWALL_100(thisx) (((thisx)->params >> 8) & 1) typedef struct BgHakuginBombwall { diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.c b/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.c index b4c653b99..35e03c438 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.c +++ b/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.c @@ -42,8 +42,8 @@ void BgHakuginElvpole_Init(Actor* thisx, PlayState* play) { this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); this->unk_15C = 0; this->unk_160 = false; - if ((BGHAKUGINELVPOLE_GET_SWITCHFLAG(&this->dyna.actor) != 0x7F) && - Flags_GetSwitch(play, BGHAKUGINELVPOLE_GET_SWITCHFLAG(&this->dyna.actor))) { + if ((BGHAKUGINELVPOLE_GET_SWITCH_FLAG(&this->dyna.actor) != 0x7F) && + Flags_GetSwitch(play, BGHAKUGINELVPOLE_GET_SWITCH_FLAG(&this->dyna.actor))) { this->unk_15E = 0x64; } else { this->unk_15E = -1; @@ -81,12 +81,12 @@ void func_80ABD92C(BgHakuginElvpole* this, PlayState* play) { sp28 = true; } else { this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 320.0f; - Flags_UnsetSwitch(play, BGHAKUGINELVPOLE_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_UnsetSwitch(play, BGHAKUGINELVPOLE_GET_SWITCH_FLAG(&this->dyna.actor)); this->unk_15E = -1; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP); } - } else if ((BGHAKUGINELVPOLE_GET_SWITCHFLAG(&this->dyna.actor) != 0x7F) && - Flags_GetSwitch(play, BGHAKUGINELVPOLE_GET_SWITCHFLAG(&this->dyna.actor))) { + } else if ((BGHAKUGINELVPOLE_GET_SWITCH_FLAG(&this->dyna.actor) != 0x7F) && + Flags_GetSwitch(play, BGHAKUGINELVPOLE_GET_SWITCH_FLAG(&this->dyna.actor))) { this->unk_15E = 0x64; this->unk_160 = true; } diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.h b/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.h index ace71e7b3..575a0d8cb 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.h +++ b/src/overlays/actors/ovl_Bg_Hakugin_Elvpole/z_bg_hakugin_elvpole.h @@ -5,7 +5,7 @@ struct BgHakuginElvpole; -#define BGHAKUGINELVPOLE_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define BGHAKUGINELVPOLE_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef void (*BgHakuginElvpoleActionFunc)(struct BgHakuginElvpole*, PlayState*); diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.c b/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.c index 2a79bfd08..dc20a1fd3 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.c +++ b/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.c @@ -155,9 +155,9 @@ void func_80A9AFB4(BgHakuginPost* this, PlayState* play, BgHakuginPostUnkStruct* unkStruct->unk_0000[i].unk_00 = BGHAKUGINPOST_GET_7(&this->dyna.actor); Math_Vec3f_Copy(&unkStruct->unk_0000[i].unk_08, &this->dyna.actor.world.pos); Math_Vec3f_Copy(&unkStruct->unk_0000[i].unk_14, &this->dyna.actor.world.pos); - unkStruct->unk_0000[i].unk_2E = BGHAKUGINPOST_GET_7F00(&this->dyna.actor); + unkStruct->unk_0000[i].switchFlag = BGHAKUGINPOST_GET_SWITCH_FLAG(&this->dyna.actor); if (D_80A9D880[unkStruct->unk_0000[i].unk_00].unk_04) { - if (Flags_GetSwitch(play, unkStruct->unk_0000[i].unk_2E)) { + if (Flags_GetSwitch(play, unkStruct->unk_0000[i].switchFlag)) { unkStruct->unk_0000[i].unk_34 = 5; } else { unkStruct->unk_0000[i].unk_34 = 1; @@ -184,7 +184,7 @@ void func_80A9B160(BgHakuginPostUnkStruct* unkStruct, PlayState* play) { unkStruct->unk_0000[i].unk_24 = 0.0f; unkStruct->unk_0000[i].unk_34 = 1; if (D_80A9D880[unkStruct->unk_0000[i].unk_00].unk_04 != 0) { - Flags_UnsetSwitch(play, unkStruct->unk_0000[i].unk_2E); + Flags_UnsetSwitch(play, unkStruct->unk_0000[i].switchFlag); } } } @@ -240,25 +240,25 @@ void func_80A9B384(Vec3f* arg0) { void func_80A9B3BC(BgHakuginPost* this, PlayState* play) { s32 pad; - s32 sp28 = BGHAKUGINPOST_GET_7F00(&this->dyna.actor); - s32 sp24 = BGHAKUGINPOST_GET_7F00(&this->dyna.actor) + 1; + s32 switchFlag1 = BGHAKUGINPOST_GET_SWITCH_FLAG(&this->dyna.actor); + s32 switchFlag2 = BGHAKUGINPOST_GET_SWITCH_FLAG(&this->dyna.actor) + 1; s32 sp20; s32 sp1C; - if (Flags_GetSwitch(play, sp28)) { + if (Flags_GetSwitch(play, switchFlag1)) { sp20 = true; } else { sp20 = false; } - if (Flags_GetSwitch(play, sp24)) { + if (Flags_GetSwitch(play, switchFlag2)) { sp1C = true; } else { sp1C = false; } if (!(sp20 | sp1C)) { - Flags_SetSwitch(play, sp28); + Flags_SetSwitch(play, switchFlag1); this->unk_170 = true; } else { this->unk_170 = sp20; @@ -269,27 +269,27 @@ void func_80A9B3BC(BgHakuginPost* this, PlayState* play) { void func_80A9B46C(BgHakuginPost* this, PlayState* play) { s32 pad; - s32 sp30 = BGHAKUGINPOST_GET_7F00(&this->dyna.actor); - s32 sp2C = BGHAKUGINPOST_GET_7F00(&this->dyna.actor) + 1; + s32 switchFlag1 = BGHAKUGINPOST_GET_SWITCH_FLAG(&this->dyna.actor); + s32 switchFlag2 = BGHAKUGINPOST_GET_SWITCH_FLAG(&this->dyna.actor) + 1; s32 sp28; s32 sp24; - if (Flags_GetSwitch(play, sp30)) { + if (Flags_GetSwitch(play, switchFlag1)) { sp28 = true; } else { sp28 = false; } - if (Flags_GetSwitch(play, sp2C)) { + if (Flags_GetSwitch(play, switchFlag2)) { sp24 = true; } else { sp24 = false; } if (!this->unk_170 && (sp28 == 1)) { - Flags_UnsetSwitch(play, sp2C); + Flags_UnsetSwitch(play, switchFlag2); } else if (!this->unk_174 && (sp24 == 1)) { - Flags_UnsetSwitch(play, sp30); + Flags_UnsetSwitch(play, switchFlag1); } this->unk_170 = sp28; @@ -668,7 +668,7 @@ void func_80A9C854(BgHakuginPost* this, PlayState* play) { for (i = 0; i < D_80A9E028.count; i++) { ColliderCylinder* collider = D_80A9E028.unk_0000[i].collider; - if ((collider != NULL) && Flags_GetSwitch(play, D_80A9E028.unk_0000[i].unk_2E)) { + if ((collider != NULL) && Flags_GetSwitch(play, D_80A9E028.unk_0000[i].switchFlag)) { sp28 = false; break; } @@ -681,9 +681,9 @@ void func_80A9C854(BgHakuginPost* this, PlayState* play) { } if (sp38) { - Flags_SetSwitch(play, this->dyna.actor.home.rot.x & 0x7F); + Flags_SetSwitch(play, BGHAKUGINPOST_GET_SWITCH_FLAG_2(&this->dyna.actor)); } else { - Flags_UnsetSwitch(play, this->dyna.actor.home.rot.x & 0x7F); + Flags_UnsetSwitch(play, BGHAKUGINPOST_GET_SWITCH_FLAG_2(&this->dyna.actor)); } } @@ -841,7 +841,7 @@ void func_80A9CE1C(BgHakuginPost* this, PlayState* play) { D_80A9E028.unk_0000[i].unk_34 = 2; Player_PlaySfx(player, NA_SE_IT_HAMMER_HIT); Audio_PlaySfx_2(NA_SE_EV_SLIDE_DOOR_OPEN); - Flags_SetSwitch(play, D_80A9E028.unk_0000[i].unk_2E); + Flags_SetSwitch(play, D_80A9E028.unk_0000[i].switchFlag); this->unk_178 = 20; func_80A9D2C4(this, func_80A9CE00, D_80A9E028.unk_0000[i].unk_14.y + 50.0f, D_80A9E028.unk_0000[i].csId, D_80A9E028.unk_0000[i].additionalCsId); diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.h b/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.h index 4797a684a..897228bb9 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.h +++ b/src/overlays/actors/ovl_Bg_Hakugin_Post/z_bg_hakugin_post.h @@ -9,7 +9,8 @@ typedef void (*BgHakuginPostActionFunc)(struct BgHakuginPost*, PlayState*); typedef void (*BgHakuginPostFunc)(struct BgHakuginPost*); #define BGHAKUGINPOST_GET_7(thisx) ((thisx)->params & 7) -#define BGHAKUGINPOST_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F) +#define BGHAKUGINPOST_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define BGHAKUGINPOST_GET_SWITCH_FLAG_2(thisx) (((thisx)->home.rot.x) & 0x7F) typedef struct { /* 0x00 */ s32 unk_00; @@ -21,7 +22,7 @@ typedef struct { /* 0x28 */ s16 unk_28; /* 0x2A */ s16 csId; /* 0x2C */ s16 additionalCsId; - /* 0x2E */ u8 unk_2E; + /* 0x2E */ u8 switchFlag; /* 0x2F */ u8 unk_2F; /* 0x30 */ s8 unk_30; /* 0x34 */ s32 unk_34; diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.c b/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.c index 583384c7d..4ecce9c3a 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.c +++ b/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.c @@ -121,7 +121,7 @@ void BgHakuginSwitch_Init(Actor* thisx, PlayState* play) { s32 pad2; s32 sp28; - if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor))) { sp30 = true; } else { sp30 = false; @@ -228,7 +228,7 @@ void func_80B15B74(BgHakuginSwitch* this, PlayState* play) { s32 sp24; s32 sp20; - if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor))) { sp2C = 1; } else { sp2C = 0; @@ -274,9 +274,9 @@ void func_80B15B74(BgHakuginSwitch* this, PlayState* play) { if (sp24) { if (sp20 == 1) { - Flags_SetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor)); } else if (sp20 == 0) { - Flags_UnsetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_UnsetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor)); } D_80B16AF0 = play->gameplayFrames; @@ -329,7 +329,7 @@ void func_80B15F88(BgHakuginSwitch* this, PlayState* play) { BgHakuginSwitchStruct* sp18 = &D_80B1688C[BGHAKUGINSWITCH_GET_7(&this->dyna.actor)]; s32 phi_v1; - if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor))) { phi_a0 = true; } else { phi_a0 = false; @@ -384,9 +384,9 @@ void func_80B161A0(BgHakuginSwitch* this, PlayState* play) { if (CutsceneManager_IsNext(this->curCsId)) { CutsceneManager_StartWithPlayerCs(this->curCsId, &this->dyna.actor); if (this->unk_1BE != 0) { - Flags_SetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor)); } else { - Flags_UnsetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_UnsetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor)); } this->unk_1BF = 50; this->unk_1B4(this, play); @@ -421,7 +421,7 @@ void func_80B162AC(BgHakuginSwitch* this, PlayState* play) { } if (sp30 == 1) { - if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor))) { sp24 = true; } } @@ -465,7 +465,7 @@ void func_80B16494(BgHakuginSwitch* this, PlayState* play) { } void func_80B16520(BgHakuginSwitch* this, PlayState* play) { - if (!Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCHFLAG(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, BGHAKUGINSWITCH_GET_SWITCH_FLAG(&this->dyna.actor))) { if (BGHAKUGINSWITCH_GET_7(&this->dyna.actor) == BGHAKUGINSWITCH_GET_7_1) { func_80B16180(this, func_80B165A0, 0, this->additionalCsId); } else { diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.h b/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.h index caf3c2f65..f8a27429d 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.h +++ b/src/overlays/actors/ovl_Bg_Hakugin_Switch/z_bg_hakugin_switch.h @@ -10,7 +10,7 @@ typedef void (*BgHakuginSwitchUnkFunc)(struct BgHakuginSwitch*, PlayState*); #define BGHAKUGINSWITCH_GET_7(thisx) ((thisx)->params & 7) #define BGHAKUGINSWITCH_GET_10(thisx) (((thisx)->params >> 4) & 1) -#define BGHAKUGINSWITCH_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define BGHAKUGINSWITCH_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define BGHAKUGINSWITCH_GET_7_1 1 diff --git a/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c b/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c index edcda4b37..e06b788c4 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c @@ -242,7 +242,7 @@ void BgIkanaBombwall_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, BGIKANABOMBWALL_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGIKANABOMBWALL_GET_SWITCH_FLAG(&this->dyna.actor))) { Actor_Kill(&this->dyna.actor); return; } @@ -333,7 +333,7 @@ void func_80BD503C(BgIkanaBombwall* this, PlayState* play) { } this->dyna.actor.draw = NULL; SoundSource_PlaySfxAtFixedWorldPos(play, &this->dyna.actor.world.pos, 60, NA_SE_EV_WALL_BROKEN); - Flags_SetSwitch(play, BGIKANABOMBWALL_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGIKANABOMBWALL_GET_SWITCH_FLAG(&this->dyna.actor)); if (!BGIKANABOMBWALL_GET_100(&this->dyna.actor)) { DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); } diff --git a/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.h b/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.h index e9ff850ad..393e1d9e6 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.h +++ b/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.h @@ -7,7 +7,7 @@ struct BgIkanaBombwall; typedef void (*BgIkanaBombwallActionFunc)(struct BgIkanaBombwall*, PlayState*); -#define BGIKANABOMBWALL_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define BGIKANABOMBWALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define BGIKANABOMBWALL_GET_100(thisx) (((thisx)->params >> 8) & 1) typedef struct BgIkanaBombwall { diff --git a/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.c b/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.c index 4646b8d45..a0062a62b 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.c +++ b/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.c @@ -153,7 +153,7 @@ void BgIkanaDharma_WaitForHit(BgIkanaDharma* this, PlayState* play) { if (wasHit && (sFirstHitBgIkanaDharma == NULL)) { sFirstHitBgIkanaDharma = this2; - Flags_SetSwitch(play, BGIKANADHARMA_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BGIKANADHARMA_GET_SWITCH_FLAG(&this->dyna.actor)); tempAngle1 = BINANG_ADD(this->dyna.actor.yawTowardsPlayer, 0x8000); tempAngle2 = (BINANG_SUB(player->actor.shape.rot.y, tempAngle1) >> 1); this->dyna.actor.world.rot.y = tempAngle1 + tempAngle2 + 0xF000; diff --git a/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.h b/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.h index ac1bcadf0..a8c08e364 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.h +++ b/src/overlays/actors/ovl_Bg_Ikana_Dharma/z_bg_ikana_dharma.h @@ -3,7 +3,7 @@ #include "global.h" -#define BGIKANADHARMA_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define BGIKANADHARMA_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define BGIKANADHARMA_IS_CHILD(thisx) (((thisx)->params >> 5) & 1) #define BGIKANADHARMA_NUM_SEGMENTS(thisx) ((thisx)->params & 0xF) #define BGIKANADHARMA_PARAMS(switchFlag, isChild, numSegments) (((switchFlag & 0x7F) << 8) | ((isChild & 1) << 5) | (numSegments & 0xF)) diff --git a/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.c b/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.c index 23e707d7b..8850d8852 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.c +++ b/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.c @@ -169,7 +169,7 @@ void func_80B80440(BgIkanaRotaryroom* this, PlayState* play) { Matrix_Push(); Matrix_SetTranslateRotateYXZ(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, &this->dyna.actor.shape.rot); - if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_7F00(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_2(&this->dyna.actor))) { Matrix_Translate(D_80B82178.x, D_80B82178.y, D_80B82178.z, MTXMODE_APPLY); } else { Matrix_Translate(D_80B8216C.x, D_80B8216C.y, D_80B8216C.z, MTXMODE_APPLY); @@ -195,7 +195,7 @@ void func_80B80550(BgIkanaRotaryroom* this, PlayState* play) { MtxF sp68; Vec3s sp60; - if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_FE(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_1(&this->dyna.actor))) { spC4 = 1; } else { spC4 = 0; @@ -494,10 +494,10 @@ s32 func_80B80F08(BgIkanaRotaryroom* this, PlayState* play) { Matrix_Pop(); if (Math3D_Vec3fDistSq(&sp34, &sp28) < 3.0f) { - if (!Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_7F00(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_2(&this->dyna.actor))) { sp24 = true; } - Flags_SetSwitch(play, BGIKANAROTARYROOM_GET_7F00(&this->dyna.actor)); + Flags_SetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_2(&this->dyna.actor)); } } return sp24; @@ -708,7 +708,7 @@ void BgIkanaRotaryroom_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); - if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_FE(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_1(&this->dyna.actor))) { this->dyna.actor.shape.rot.x = -0x8000; } else { this->dyna.actor.shape.rot.x = 0; @@ -753,15 +753,15 @@ void func_80B818B4(BgIkanaRotaryroom* this) { void func_80B818C8(Actor* thisx, PlayState* play) { BgIkanaRotaryroom* this = THIS; - s32 sp20; + s32 switchFlag; if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - sp20 = BGIKANAROTARYROOM_GET_FE(&this->dyna.actor); - if (Flags_GetSwitch(play, sp20)) { - Flags_UnsetSwitch(play, sp20); + switchFlag = BGIKANAROTARYROOM_GET_SWITCH_FLAG_1(&this->dyna.actor); + if (Flags_GetSwitch(play, switchFlag)) { + Flags_UnsetSwitch(play, switchFlag); } else { - Flags_SetSwitch(play, sp20); + Flags_SetSwitch(play, switchFlag); } func_80B81978(this); } else { @@ -866,7 +866,7 @@ void func_80B81BA0(Actor* thisx, PlayState* play) { Quake_SetDuration(quakeIndex, 15); } - if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_FE(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_1(&this->dyna.actor))) { if (this->dyna.actor.shape.rot.x < 0) { this->dyna.actor.shape.rot.x = -0x8000; sp30 = 1; diff --git a/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.h b/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.h index 4184220e0..e2737e0c2 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.h +++ b/src/overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.h @@ -10,8 +10,8 @@ typedef void (*BgIkanaRotaryroomUnkFunc)(Actor*, PlayState*); typedef void (*BgIkanaRotaryroomUnkFunc2)(struct BgIkanaRotaryroom*, PlayState*); #define BGIKANAROTARYROOM_GET_1(thisx) ((thisx)->params & 1) -#define BGIKANAROTARYROOM_GET_FE(thisx) (((thisx)->params >> 1) & 0x7F) -#define BGIKANAROTARYROOM_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F) +#define BGIKANAROTARYROOM_GET_SWITCH_FLAG_1(thisx) (((thisx)->params >> 1) & 0x7F) +#define BGIKANAROTARYROOM_GET_SWITCH_FLAG_2(thisx) (((thisx)->params >> 8) & 0x7F) typedef struct { /* 0x00 */ Actor* unk_00; diff --git a/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c b/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c index 4a0abb472..6891956db 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c +++ b/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.c @@ -56,10 +56,10 @@ static InitChainEntry sInitChain[] = { }; s32 BgIkanaShutter_AllSwitchesPressed(BgIkanaShutter* this, PlayState* play) { - return Flags_GetSwitch(play, this->dyna.actor.params & 0x7F) && - Flags_GetSwitch(play, (this->dyna.actor.params & 0x7F) + 1) && - Flags_GetSwitch(play, (this->dyna.actor.params & 0x7F) + 2) && - Flags_GetSwitch(play, (this->dyna.actor.params & 0x7F) + 3); + return Flags_GetSwitch(play, BGIKANASHUTTER_GET_SWITCH_FLAG(&this->dyna.actor)) && + Flags_GetSwitch(play, BGIKANASHUTTER_GET_SWITCH_FLAG(&this->dyna.actor) + 1) && + Flags_GetSwitch(play, BGIKANASHUTTER_GET_SWITCH_FLAG(&this->dyna.actor) + 2) && + Flags_GetSwitch(play, BGIKANASHUTTER_GET_SWITCH_FLAG(&this->dyna.actor) + 3); } void BgIkanaShutter_Init(Actor* thisx, PlayState* play) { @@ -68,7 +68,7 @@ void BgIkanaShutter_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); DynaPolyActor_Init(&this->dyna, 0); DynaPolyActor_LoadMesh(play, &this->dyna, &object_ikana_obj_Colheader_000F28); - if (!((this->dyna.actor.params >> 8) & 1)) { + if (!BGIKANASHUTTER_GET_100(&this->dyna.actor)) { if (BgIkanaShutter_AllSwitchesPressed(this, play)) { func_80BD599C(this); return; diff --git a/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.h b/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.h index 094334600..c1ad76b7d 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.h +++ b/src/overlays/actors/ovl_Bg_Ikana_Shutter/z_bg_ikana_shutter.h @@ -7,6 +7,9 @@ struct BgIkanaShutter; typedef void (*BgIkanaShutterActionFunc)(struct BgIkanaShutter*, PlayState*); +#define BGIKANASHUTTER_GET_SWITCH_FLAG(thisx) (((thisx)->params) & 0x7F) +#define BGIKANASHUTTER_GET_100(thisx) (((thisx)->params >> 8) & 1) + typedef struct BgIkanaShutter { /* 0x000 */ DynaPolyActor dyna; /* 0x15C */ BgIkanaShutterActionFunc actionFunc; diff --git a/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c b/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c index 18d670830..f7c0e5710 100644 --- a/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c +++ b/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c @@ -159,7 +159,7 @@ void func_80C0ABA8(BgIkninSusceil* this, PlayState* play) { this->dyna.actor.world.pos.y += this->dyna.actor.velocity.y; if (this->dyna.actor.world.pos.y <= this->dyna.actor.home.pos.y) { BgIkninSusceil_RequestQuakeAndRumble(this, play, 4, 14, 1); - Flags_UnsetSwitch(play, SUSCEIL_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_UnsetSwitch(play, SUSCEIL_GET_SWITCH_FLAG(&this->dyna.actor)); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BIGWALL_BOUND); func_80C0AC74(this); } else { @@ -173,7 +173,7 @@ void func_80C0AC74(BgIkninSusceil* this) { } void func_80C0AC90(BgIkninSusceil* this, PlayState* play) { - if (Flags_GetSwitch(play, SUSCEIL_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, SUSCEIL_GET_SWITCH_FLAG(&this->dyna.actor))) { func_80C0ACD4(this); } } diff --git a/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.h b/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.h index 2fa153ac0..faf29a022 100644 --- a/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.h +++ b/src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.h @@ -3,7 +3,7 @@ #include "global.h" -#define SUSCEIL_GET_SWITCHFLAG(thisx) (((thisx)->params) & 0x7F) +#define SUSCEIL_GET_SWITCH_FLAG(thisx) (((thisx)->params) & 0x7F) struct BgIkninSusceil; diff --git a/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c b/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c index 07968e801..ecf34c2ae 100644 --- a/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c +++ b/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c @@ -64,7 +64,7 @@ void BgIkninside_Init(Actor* thisx, PlayState* play) { this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); Collider_InitAndSetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); Collider_UpdateCylinder(&this->dyna.actor, &this->collider); - if (Flags_GetSwitch(play, DMIKNINSIDE_GET_SWITCH(thisx))) { + if (Flags_GetSwitch(play, DMIKNINSIDE_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->dyna.actor); } } @@ -118,7 +118,7 @@ void func_80C072D0(BgIkninside* this, PlayState* play) { EffectSsHahen_Spawn(play, &pos, &velocity, &D_80C076D4, 0, 30, OBJECT_IKNINSIDE_OBJ, 25, D_80C076A0[i & 1]); } - Flags_SetSwitch(play, DMIKNINSIDE_GET_SWITCH(&this->dyna.actor)); + Flags_SetSwitch(play, DMIKNINSIDE_GET_SWITCH_FLAG(&this->dyna.actor)); this->actionFunc = func_80C07230; this->dyna.actor.draw = NULL; DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); diff --git a/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.h b/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.h index 84a66a88d..6cddba2f0 100644 --- a/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.h +++ b/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.h @@ -5,7 +5,7 @@ struct BgIkninside; -#define DMIKNINSIDE_GET_SWITCH(thisx) (((thisx)->params & 0xFE00) >> 9) +#define DMIKNINSIDE_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) typedef void (*BgIkninsideActionFunc)(struct BgIkninside*, PlayState*); diff --git a/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.c b/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.c index ff0227f70..6cc7f7684 100644 --- a/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.c +++ b/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.c @@ -40,7 +40,7 @@ void BgKeikokuSaku_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); CollisionHeader_GetVirtual(&object_keikoku_obj_Colheader_002300, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); - this->switchFlag = BGKEIKOKUSAKU_GET_SWITCHFLAG(thisx); + this->switchFlag = BGKEIKOKUSAKU_GET_SWITCH_FLAG(thisx); if (Flags_GetSwitch(play, this->switchFlag)) { this->dyna.actor.world.pos.z = 2659.0f; } else { diff --git a/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.h b/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.h index 6a3bad9c8..6db094693 100644 --- a/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.h +++ b/src/overlays/actors/ovl_Bg_Keikoku_Saku/z_bg_keikoku_saku.h @@ -3,7 +3,7 @@ #include "global.h" -#define BGKEIKOKUSAKU_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define BGKEIKOKUSAKU_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) struct BgKeikokuSaku; diff --git a/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.c b/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.c index a868b355c..5a8192bc4 100644 --- a/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.c @@ -145,7 +145,7 @@ void BgKin2Bombwall_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); bombwallCollider = &this->collider; Collider_InitCylinder(play, bombwallCollider); - if (Flags_GetSwitch(play, BG_KIN2_BOMBWALL_SWITCH_FLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BG_KIN2_BOMBWALL_GET_SWITCH_FLAG(&this->dyna.actor))) { Actor_Kill(&this->dyna.actor); return; } @@ -185,7 +185,7 @@ void BgKin2Bombwall_SetupPlayCutscene(BgKin2Bombwall* this) { void BgKin2Bombwall_PlayCutscene(BgKin2Bombwall* this, PlayState* play) { if (CutsceneManager_IsNext(this->dyna.actor.csId)) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); - Flags_SetSwitch(play, BG_KIN2_BOMBWALL_SWITCH_FLAG(&this->dyna.actor)); + Flags_SetSwitch(play, BG_KIN2_BOMBWALL_GET_SWITCH_FLAG(&this->dyna.actor)); SoundSource_PlaySfxAtFixedWorldPos(play, &this->dyna.actor.world.pos, 60, NA_SE_EV_WALL_BROKEN); DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); this->dyna.actor.draw = NULL; diff --git a/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.h b/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.h index 17370427a..553cd05b9 100644 --- a/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.h +++ b/src/overlays/actors/ovl_Bg_Kin2_Bombwall/z_bg_kin2_bombwall.h @@ -1,7 +1,7 @@ #ifndef Z_BG_KIN2_BOMBWALL_H #define Z_BG_KIN2_BOMBWALL_H -#define BG_KIN2_BOMBWALL_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) +#define BG_KIN2_BOMBWALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #include "global.h" diff --git a/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.c b/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.c index 37ac6c2ac..3f68cad8d 100644 --- a/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.c +++ b/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.c @@ -161,7 +161,7 @@ void BgKin2Fence_Init(Actor* thisx, PlayState* play) { Collider_UpdateSpheres(i, &this->collider); } - if (Flags_GetSwitch(play, this->dyna.actor.params & 0x7F)) { + if (Flags_GetSwitch(play, BG_KIN2_FENCE_GET_SWITCH_FLAG(&this->dyna.actor))) { BgKin2Fence_SetupDoNothing(this); return; } @@ -219,7 +219,7 @@ void BgKin2Fence_SetupPlayOpenCutscene(BgKin2Fence* this) { void BgKin2Fence_PlayOpenCutscene(BgKin2Fence* this, PlayState* play) { if (CutsceneManager_IsNext(this->dyna.actor.csId)) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); - Flags_SetSwitch(play, this->dyna.actor.params & 0x7F); + Flags_SetSwitch(play, BG_KIN2_FENCE_GET_SWITCH_FLAG(&this->dyna.actor)); BgKin2Fence_SetupWaitBeforeOpen(this); return; } diff --git a/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.h b/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.h index 98bb51243..7c864d3ae 100644 --- a/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.h +++ b/src/overlays/actors/ovl_Bg_Kin2_Fence/z_bg_kin2_fence.h @@ -7,6 +7,8 @@ struct BgKin2Fence; typedef void (*BgKin2FenceActionFunc)(struct BgKin2Fence*, PlayState*); +#define BG_KIN2_FENCE_GET_SWITCH_FLAG(thisx) (((thisx)->params) & 0x7F) + typedef struct BgKin2Fence { /* 0x000 */ DynaPolyActor dyna; /* 0x15C */ ColliderJntSph collider; diff --git a/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c b/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c index 63e7b5974..12cd5d334 100644 --- a/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c +++ b/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.c @@ -49,7 +49,7 @@ void BgLadder_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); - this->switchFlag = BGLADDER_GET_SWITCHFLAG(thisx); + this->switchFlag = BGLADDER_GET_SWITCH_FLAG(thisx); thisx->params = BGLADDER_GET_SIZE(thisx); DynaPolyActor_Init(&this->dyna, 0); size = thisx->params; diff --git a/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.h b/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.h index f920c18eb..4b06a32e8 100644 --- a/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.h +++ b/src/overlays/actors/ovl_Bg_Ladder/z_bg_ladder.h @@ -4,7 +4,7 @@ #include "global.h" #define BGLADDER_GET_SIZE(thisx) ((thisx)->params & 0xFF) -#define BGLADDER_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0xFF) +#define BGLADDER_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0xFF) struct BgLadder; diff --git a/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.c b/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.c index a09c0fb02..b74fdbd6d 100644 --- a/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.c +++ b/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.c @@ -152,7 +152,7 @@ void BgLastBwall_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); DynaPolyActor_LoadMesh(play, &this->dyna, D_80C18A48[this->type].colHeader); Collider_InitTris(play, &this->colliderTris); - if (Flags_GetSwitch(play, BGLASTBWALL_GET_SWITCHFLAGS(&this->dyna.actor))) { + if (Flags_GetSwitch(play, BGLASTBWALL_GET_SWITCH_FLAG(&this->dyna.actor))) { Actor_Kill(&this->dyna.actor); return; } @@ -227,7 +227,7 @@ void func_80C187E4(BgLastBwall* this) { void func_80C187F8(BgLastBwall* this, PlayState* play) { if (this->colliderTris.base.acFlags & AC_HIT) { this->colliderTris.base.acFlags &= ~AC_HIT; - Flags_SetSwitch(play, BGLASTBWALL_GET_SWITCHFLAGS(&this->dyna.actor)); + Flags_SetSwitch(play, BGLASTBWALL_GET_SWITCH_FLAG(&this->dyna.actor)); func_80C1886C(this, play); } else { CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderTris.base); diff --git a/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.h b/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.h index cae36be27..0e6568611 100644 --- a/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.h +++ b/src/overlays/actors/ovl_Bg_Last_Bwall/z_bg_last_bwall.h @@ -8,7 +8,7 @@ struct BgLastBwall; typedef void (*BgLastBwallActionFunc)(struct BgLastBwall*, PlayState*); -#define BGLASTBWALL_GET_SWITCHFLAGS(thisx) ((thisx)->params & 0x7F) +#define BGLASTBWALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define BGLASTBWALL_GET_TYPE(thisx) (((thisx)->params >> 0xC) & 0xF) typedef enum { diff --git a/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c b/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c index 9f5a9c42d..ec3961fd7 100644 --- a/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c +++ b/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c @@ -148,7 +148,7 @@ void BgSpdweb_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); this->unk_161 = 0; - this->switchFlag = BGSPDWEB_GET_SWITCHFLAG(&this->dyna.actor); + this->switchFlag = BGSPDWEB_GET_SWITCH_FLAG(&this->dyna.actor); thisx->params &= 0xFF; DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); diff --git a/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.h b/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.h index c57353ce0..7737fc684 100644 --- a/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.h +++ b/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.h @@ -7,7 +7,7 @@ struct BgSpdweb; typedef void (*BgSpdwebActionFunc)(struct BgSpdweb*, PlayState*); -#define BGSPDWEB_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define BGSPDWEB_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define BGSPDWEB_FF_0 0 #define BGSPDWEB_FF_1 1 diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index b9b53a081..5d49a16e7 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -181,7 +181,7 @@ s32 DoorShutter_SetupDoor(DoorShutter* this, PlayState* play) { return true; } } else if ((doorType == 2) || (doorType == 7)) { - if (!Flags_GetSwitch(play, DOORSHUTTER_GET_7F(&this->slidingDoor.dyna.actor))) { + if (!Flags_GetSwitch(play, DOORSHUTTER_GET_SWITCH_FLAG(&this->slidingDoor.dyna.actor))) { DoorShutter_SetupAction(this, func_808A1548); this->unk_168 = 1.0f; return true; @@ -243,7 +243,7 @@ void DoorShutter_Init(Actor* thisx, PlayState* play2) { this->unk_163 = sp24; if ((this->doorType == 4) || (this->doorType == 5)) { - if (!Flags_GetSwitch(play, DOORSHUTTER_GET_7F(&this->slidingDoor.dyna.actor))) { + if (!Flags_GetSwitch(play, DOORSHUTTER_GET_SWITCH_FLAG(&this->slidingDoor.dyna.actor))) { this->unk_166 = 10; } } @@ -346,7 +346,7 @@ void func_808A1090(DoorShutter* this, PlayState* play) { DoorShutter_SetupAction(this, func_808A1684); this->slidingDoor.dyna.actor.velocity.y = 0.0f; if (this->unk_166 != 0) { - Flags_SetSwitch(play, DOORSHUTTER_GET_7F(&this->slidingDoor.dyna.actor)); + Flags_SetSwitch(play, DOORSHUTTER_GET_SWITCH_FLAG(&this->slidingDoor.dyna.actor)); if (this->doorType != 5) { DUNGEON_KEY_COUNT(gSaveContext.mapIndex) = DUNGEON_KEY_COUNT(gSaveContext.mapIndex) - 1; Actor_PlaySfx(&this->slidingDoor.dyna.actor, NA_SE_EV_CHAIN_KEY_UNLOCK); @@ -474,7 +474,7 @@ s32 func_808A1478(DoorShutter* this, PlayState* play, f32 arg2) { void func_808A1548(DoorShutter* this, PlayState* play) { if (func_808A1478(this, play, 1.0f)) { - if (Flags_GetSwitch(play, DOORSHUTTER_GET_7F(&this->slidingDoor.dyna.actor))) { + if (Flags_GetSwitch(play, DOORSHUTTER_GET_SWITCH_FLAG(&this->slidingDoor.dyna.actor))) { this->csId = this->slidingDoor.dyna.actor.csId; if (CutsceneManager_IsNext(this->csId)) { CutsceneManager_StartWithPlayerCs(this->csId, &this->slidingDoor.dyna.actor); @@ -495,7 +495,8 @@ void func_808A1548(DoorShutter* this, PlayState* play) { } void func_808A1618(DoorShutter* this, PlayState* play) { - if ((this->slidingDoor.unk_15C == 0) && !Flags_GetSwitch(play, DOORSHUTTER_GET_7F(&this->slidingDoor.dyna.actor))) { + if ((this->slidingDoor.unk_15C == 0) && + !Flags_GetSwitch(play, DOORSHUTTER_GET_SWITCH_FLAG(&this->slidingDoor.dyna.actor))) { DoorShutter_SetupAction(this, func_808A1548); } else { func_808A1090(this, play); diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h index abdf0ce84..5b42db50a 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.h @@ -9,7 +9,7 @@ struct DoorShutter; typedef void (*DoorShutterActionFunc)(struct DoorShutter*, PlayState*); #define DOORSHUTTER_GET_1F(thisx) ((thisx)->params & 0x1F) -#define DOORSHUTTER_GET_7F(thisx) ((thisx)->params & 0x7F) +#define DOORSHUTTER_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define DOORSHUTTER_GET_380(thisx) (((thisx)->params >> 7) & 7) typedef struct DoorShutter { diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c index c88835373..f2089ca03 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c @@ -43,25 +43,25 @@ s32 func_8092DF9C(ElfMsg* this, PlayState* play) { if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) && (Flags_GetSwitch(play, this->actor.home.rot.y - 1))) { (void)"共倒れ"; // "Collapse together" - if (ELFMSG_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } if (this->actor.home.rot.y == 0x81) { if (Flags_GetClear(play, this->actor.room)) { - if (ELFMSG_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } } - if (ELFMSG_GET_SWITCHFLAG(&this->actor) == 0x7F) { + if (ELFMSG_GET_SWITCH_FLAG(&this->actor) == 0x7F) { return false; } - if (Flags_GetSwitch(play, ELFMSG_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ELFMSG_GET_SWITCH_FLAG(&this->actor))) { (void)"共倒れ"; // "Collapse together" Actor_Kill(&this->actor); return true; @@ -136,8 +136,8 @@ void ElfMsg_Update(Actor* thisx, PlayState* play) { if (func_8092DF9C(this, play) == 0) { if (Actor_ProcessTalkRequest(&this->actor, &play->state)) { - if (ELFMSG_GET_SWITCHFLAG(thisx) != 0x7F) { - Flags_SetSwitch(play, ELFMSG_GET_SWITCHFLAG(thisx)); + if (ELFMSG_GET_SWITCH_FLAG(thisx) != 0x7F) { + Flags_SetSwitch(play, ELFMSG_GET_SWITCH_FLAG(thisx)); } Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.h b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.h index 51a3ddda3..b512af2de 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.h +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.h @@ -4,7 +4,7 @@ #include "global.h" #define ELFMSG_GET_FF(thisx) ((thisx)->params & 0xFF) -#define ELFMSG_GET_SWITCHFLAG(thisx) (((thisx)->params & 0x7F00) >> 8) +#define ELFMSG_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F00) >> 8) #define ELFMSG_GET_8000(thisx) ((thisx)->params & 0x8000) struct ElfMsg; diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index ea443472f..552478ace 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -43,8 +43,8 @@ s32 func_8096EC4C(ElfMsg2* this, PlayState* play) { if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) && (Flags_GetSwitch(play, this->actor.home.rot.y - 1))) { (void)"共倒れ"; // "Collapse together" - if (ELFMSG2_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG2_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG2_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG2_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; @@ -53,17 +53,17 @@ s32 func_8096EC4C(ElfMsg2* this, PlayState* play) { if (Flags_GetClear(play, this->actor.room)) { (void)"共倒れ2"; // "Collapse 2" - if (ELFMSG2_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG2_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG2_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG2_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } } - if (ELFMSG2_GET_SWITCHFLAG(&this->actor) == 0x7F) { + if (ELFMSG2_GET_SWITCH_FLAG(&this->actor) == 0x7F) { return false; } - if (Flags_GetSwitch(play, ELFMSG2_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ELFMSG2_GET_SWITCH_FLAG(&this->actor))) { (void)"共倒れ"; // "Collapse together" Actor_Kill(&this->actor); return true; @@ -108,8 +108,8 @@ void func_8096EE64(ElfMsg2* this, PlayState* play) { if (this->actor.home.rot.z != 1) { Actor_Kill(&this->actor); - if (ELFMSG2_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG2_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG2_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG2_GET_SWITCH_FLAG(&this->actor)); } return; } diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.h b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.h index 4d9583d20..aa717800b 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.h +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.h @@ -3,7 +3,7 @@ #include "global.h" -#define ELFMSG2_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define ELFMSG2_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define ELFMSG2_GET_FF(thisx) ((thisx)->params & 0xFF) struct ElfMsg2; diff --git a/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.c b/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.c index e3e8b7bc5..b7b349dfe 100644 --- a/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.c +++ b/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.c @@ -42,25 +42,25 @@ s32 func_80A2CD1C(ElfMsg3* this, PlayState* play) { if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) && (Flags_GetSwitch(play, this->actor.home.rot.y - 1))) { (void)"共倒れ"; // "Collapse together" - if (ELFMSG3_GET_SWITCH(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG3_GET_SWITCH(&this->actor)); + if (ELFMSG3_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG3_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } if (this->actor.home.rot.y == 0x81) { if (Flags_GetClear(play, this->actor.room)) { - if (ELFMSG3_GET_SWITCH(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG3_GET_SWITCH(&this->actor)); + if (ELFMSG3_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG3_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } } - if (ELFMSG3_GET_SWITCH(&this->actor) == 0x7F) { + if (ELFMSG3_GET_SWITCH_FLAG(&this->actor) == 0x7F) { return false; } - if (Flags_GetSwitch(play, ELFMSG3_GET_SWITCH(&this->actor))) { + if (Flags_GetSwitch(play, ELFMSG3_GET_SWITCH_FLAG(&this->actor))) { (void)"共倒れ"; // "Collapse together" Actor_Kill(&this->actor); return true; @@ -134,8 +134,8 @@ void ElfMsg3_Update(Actor* thisx, PlayState* play) { if (!func_80A2CD1C(this, play)) { if (Actor_ProcessTalkRequest(&this->actor, &play->state)) { - if (ELFMSG3_GET_SWITCH(thisx) != 0x7F) { - Flags_SetSwitch(play, ELFMSG3_GET_SWITCH(thisx)); + if (ELFMSG3_GET_SWITCH_FLAG(thisx) != 0x7F) { + Flags_SetSwitch(play, ELFMSG3_GET_SWITCH_FLAG(thisx)); } Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.h b/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.h index 615cde1eb..6b1c24671 100644 --- a/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.h +++ b/src/overlays/actors/ovl_Elf_Msg3/z_elf_msg3.h @@ -3,7 +3,7 @@ #include "global.h" -#define ELFMSG3_GET_SWITCH(thisx) (((thisx)->params & 0x7F00) >> 8) +#define ELFMSG3_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F00) >> 8) #define ELFMSG3_GET_FF(thisx) ((thisx)->params & 0xFF) #define ELFMSG3_GET_8000(thisx) ((thisx)->params & 0x8000) diff --git a/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.c b/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.c index c85db8ef0..423f8c351 100644 --- a/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.c +++ b/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.c @@ -43,25 +43,25 @@ s32 func_80AFD380(ElfMsg4* this, PlayState* play) { if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) && (Flags_GetSwitch(play, this->actor.home.rot.y - 1))) { (void)"共倒れ"; // "Collapse together" - if (ELFMSG4_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG4_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG4_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG4_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } if (this->actor.home.rot.y == 0x81) { if (Flags_GetClear(play, this->actor.room)) { - if (ELFMSG4_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG4_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG4_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG4_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } } - if (ELFMSG4_GET_SWITCHFLAG(&this->actor) == 0x7F) { + if (ELFMSG4_GET_SWITCH_FLAG(&this->actor) == 0x7F) { return false; } - if (Flags_GetSwitch(play, ELFMSG4_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ELFMSG4_GET_SWITCH_FLAG(&this->actor))) { (void)"共倒れ"; // "Collapse together" Actor_Kill(&this->actor); return true; @@ -161,8 +161,8 @@ void ElfMsg4_Update(Actor* thisx, PlayState* play) { } if ((bgActor != NULL) && Actor_ProcessTalkRequest(bgActor, &play->state)) { - if (ELFMSG4_GET_SWITCHFLAG(thisx) != 0x7F) { - Flags_SetSwitch(play, ELFMSG4_GET_SWITCHFLAG(thisx)); + if (ELFMSG4_GET_SWITCH_FLAG(thisx) != 0x7F) { + Flags_SetSwitch(play, ELFMSG4_GET_SWITCH_FLAG(thisx)); } Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.h b/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.h index e9ccbc906..1e4b78f29 100644 --- a/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.h +++ b/src/overlays/actors/ovl_Elf_Msg4/z_elf_msg4.h @@ -3,7 +3,7 @@ #include "global.h" -#define ELFMSG4_GET_SWITCHFLAG(thisx) (((thisx)->params & 0x7F00) >> 8) +#define ELFMSG4_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F00) >> 8) #define ELFMSG4_GET_8000(thisx) ((thisx)->params & 0x8000) #define ELFMSG4_GET_TEXT(thisx) ((thisx)->params & 0xFF) diff --git a/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.c b/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.c index db97a0f74..c44ab8e0a 100644 --- a/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.c +++ b/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.c @@ -38,8 +38,8 @@ s32 func_80AFD990(ElfMsg5* this, PlayState* play) { if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) && (Flags_GetSwitch(play, this->actor.home.rot.y - 1))) { (void)"共倒れ"; // Collapse together - if (ELFMSG5_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG5_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG5_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG5_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; @@ -47,17 +47,17 @@ s32 func_80AFD990(ElfMsg5* this, PlayState* play) { if (this->actor.home.rot.y == 0x81) { if (Flags_GetClear(play, this->actor.room)) { (void)"共倒れ2"; // Collapse 2 - if (ELFMSG5_GET_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG5_GET_SWITCHFLAG(&this->actor)); + if (ELFMSG5_GET_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG5_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return true; } } - if (ELFMSG5_GET_SWITCHFLAG(&this->actor) == 0x7F) { + if (ELFMSG5_GET_SWITCH_FLAG(&this->actor) == 0x7F) { return false; } - if (Flags_GetSwitch(play, ELFMSG5_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ELFMSG5_GET_SWITCH_FLAG(&this->actor))) { (void)"共倒れ"; // Collapse together Actor_Kill(&this->actor); return true; diff --git a/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.h b/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.h index 36daecca1..e1e54ca64 100644 --- a/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.h +++ b/src/overlays/actors/ovl_Elf_Msg5/z_elf_msg5.h @@ -3,7 +3,7 @@ #include "global.h" -#define ELFMSG5_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define ELFMSG5_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define ELFMSG5_GET_FF(thisx) ((thisx)->params & 0xFF) struct ElfMsg5; diff --git a/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.c b/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.c index 6b2b37a41..4c565fdf8 100644 --- a/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.c +++ b/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.c @@ -154,8 +154,8 @@ void ElfMsg6_Init(Actor* thisx, PlayState* play) { case 1: this->actionFunc = func_80BA1F80; - if ((this->actor.csId == CS_ID_NONE) || ((ELFMSG6_SWITCHFLAG(&this->actor) != 0x7F) && - Flags_GetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor)))) { + if ((this->actor.csId == CS_ID_NONE) || ((ELFMSG6_SWITCH_FLAG(&this->actor) != 0x7F) && + Flags_GetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor)))) { Actor_Kill(&this->actor); return; } @@ -200,8 +200,8 @@ void ElfMsg6_Init(Actor* thisx, PlayState* play) { break; case 3: - if (((ELFMSG6_SWITCHFLAG(&this->actor) != 0x7F) && - Flags_GetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor))) || + if (((ELFMSG6_SWITCH_FLAG(&this->actor) != 0x7F) && + Flags_GetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor))) || CHECK_WEEKEVENTREG(WEEKEVENTREG_88_10) || CHECK_WEEKEVENTREG(WEEKEVENTREG_91_01) || (INV_CONTENT(ITEM_MASK_ZORA) == ITEM_MASK_ZORA)) { Actor_Kill(&this->actor); @@ -338,7 +338,7 @@ void func_80BA1F80(ElfMsg6* this, PlayState* play) { if (func_80BA1C00(this)) { if (CutsceneManager_IsNext(this->actor.csId)) { CutsceneManager_StartWithPlayerCs(this->actor.csId, NULL); - Flags_SetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor)); + Flags_SetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor)); Actor_Kill(&this->actor); return; } @@ -355,14 +355,14 @@ void func_80BA2048(ElfMsg6* this, PlayState* play) { EnElf* sp20 = (EnElf*)GET_PLAYER(play)->tatlActor; sp20->unk_264 |= 0x20; - if (ELFMSG6_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor)); + if (ELFMSG6_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return; } - if (((ELFMSG6_SWITCHFLAG(&this->actor) != 0x7F) && Flags_GetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor))) || + if (((ELFMSG6_SWITCH_FLAG(&this->actor) != 0x7F) && Flags_GetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor))) || CHECK_WEEKEVENTREG(WEEKEVENTREG_88_10) || CHECK_WEEKEVENTREG(WEEKEVENTREG_91_01) || (INV_CONTENT(ITEM_MASK_ZORA) == ITEM_MASK_ZORA)) { Actor_Kill(&this->actor); @@ -390,14 +390,14 @@ void func_80BA21C4(ElfMsg6* this, PlayState* play) { EnElf* sp20 = (EnElf*)GET_PLAYER(play)->tatlActor; sp20->unk_264 |= 0x20; - if (ELFMSG6_SWITCHFLAG(&this->actor) != 0x7F) { - Flags_SetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor)); + if (ELFMSG6_SWITCH_FLAG(&this->actor) != 0x7F) { + Flags_SetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); return; } - if (((ELFMSG6_SWITCHFLAG(&this->actor) != 0x7F) && Flags_GetSwitch(play, ELFMSG6_SWITCHFLAG(&this->actor))) || + if (((ELFMSG6_SWITCH_FLAG(&this->actor) != 0x7F) && Flags_GetSwitch(play, ELFMSG6_SWITCH_FLAG(&this->actor))) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) { Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.h b/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.h index 8e9a5d0ed..640c35987 100644 --- a/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.h +++ b/src/overlays/actors/ovl_Elf_Msg6/z_elf_msg6.h @@ -9,7 +9,7 @@ typedef void (*ElfMsg6ActionFunc)(struct ElfMsg6*, PlayState*); #define ELFMSG6_GET_F(thisx) ((thisx)->params & 0xF) #define ELFMSG6_GET_F0(thisx) (((thisx)->params & 0xF0) >> 4) -#define ELFMSG6_SWITCHFLAG(thisx) (((thisx)->params & 0xFE00) >> 9) +#define ELFMSG6_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) typedef struct ElfMsg6 { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_En_Bat/z_en_bat.c b/src/overlays/actors/ovl_En_Bat/z_en_bat.c index d1de1bb0d..e57ec81cc 100644 --- a/src/overlays/actors/ovl_En_Bat/z_en_bat.c +++ b/src/overlays/actors/ovl_En_Bat/z_en_bat.c @@ -136,7 +136,7 @@ void EnBat_Init(Actor* thisx, PlayState* play) { this->animationFrame = Rand_ZeroOne() * 9.0f; this->paramFlags = BAD_BAT_GET_PARAMFLAGS(thisx); - this->switchFlag = BAD_BAT_GET_SWITCHFLAG(thisx); + this->switchFlag = BAD_BAT_GET_SWITCH_FLAG(thisx); thisx->params = BAD_BAT_GET_TYPE(thisx); thisx->depthInWater = BGCHECK_Y_MIN; diff --git a/src/overlays/actors/ovl_En_Bat/z_en_bat.h b/src/overlays/actors/ovl_En_Bat/z_en_bat.h index 927dfbef8..5b552d2c1 100644 --- a/src/overlays/actors/ovl_En_Bat/z_en_bat.h +++ b/src/overlays/actors/ovl_En_Bat/z_en_bat.h @@ -5,7 +5,7 @@ #define BAD_BAT_GET_TYPE(thisx) (((thisx)->params >> 0) & 0x1F) #define BAD_BAT_GET_PARAMFLAGS(thisx) (((thisx)->params >> 5) & 7) -#define BAD_BAT_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0xFF) +#define BAD_BAT_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0xFF) #define BAD_BAT_PARAMS(switchFlag, paramflags, type) ((type) | ((paramflags) << 5) | ((switchFlag) << 8)) //! PARAMFLAGS diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index c7c3e0fad..0f505820d 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -104,7 +104,8 @@ void EnBigokuta_Init(Actor* thisx, PlayState* play) { this->csId = CutsceneManager_GetAdditionalCsId(this->picto.actor.csId); if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_WOODFALL_TEMPLE) || - ((this->picto.actor.params != 0xFF) && Flags_GetSwitch(play, this->picto.actor.params))) { + ((EN_BIGOKUTA_GET_SWITCH_FLAG(&this->picto.actor) != 0xFF) && + Flags_GetSwitch(play, EN_BIGOKUTA_GET_SWITCH_FLAG(&this->picto.actor)))) { Actor_Kill(&this->picto.actor); } else { this->picto.actor.world.pos.y -= 99.0f; @@ -445,8 +446,8 @@ void EnBigokuta_PlayDeathEffects(EnBigokuta* this, PlayState* play) { &D_80AC45B8, Rand_S16Offset(150, 50), 25, false); } - if (this->picto.actor.params != 0xFF) { - Flags_SetSwitch(play, this->picto.actor.params); + if (EN_BIGOKUTA_GET_SWITCH_FLAG(&this->picto.actor) != 0xFF) { + Flags_SetSwitch(play, EN_BIGOKUTA_GET_SWITCH_FLAG(&this->picto.actor)); } CutsceneManager_Stop(this->csId); diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.h b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.h index 1fdad749b..5e30eab95 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.h +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.h @@ -9,6 +9,8 @@ struct EnBigokuta; typedef void (*EnBigokutaActionFunc)(struct EnBigokuta*, PlayState*); +#define EN_BIGOKUTA_GET_SWITCH_FLAG(thisx) ((thisx)->params) + typedef enum BigokutaBodyPart { /* 0 */ BIGOKUTA_BODYPART_0, /* 1 */ BIGOKUTA_BODYPART_1, diff --git a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c index cced08a09..900aed401 100644 --- a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c +++ b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c @@ -188,10 +188,10 @@ void EnBigpo_Init(Actor* thisx, PlayState* play2) { Actor_ProcessInitChain(&this->actor, sInitChain); - this->switchFlags = BIG_POE_GET_SWITCHFLAGS(thisx); + this->switchFlag = BIG_POE_GET_SWITCH_FLAG(thisx); thisx->params &= 0xFF; if (thisx->params == BIG_POE_TYPE_POSSIBLE_FIRE) { - if (Flags_GetSwitch(play, this->switchFlags)) { + if (Flags_GetSwitch(play, this->switchFlag)) { Actor_Kill(&this->actor); return; } @@ -222,7 +222,7 @@ void EnBigpo_Init(Actor* thisx, PlayState* play2) { this->mainColor.b = 210; this->mainColor.a = 0; // fully invisible - if ((this->switchFlags != 0xFF) && (Flags_GetSwitch(play, this->switchFlags))) { + if ((this->switchFlag != 0xFF) && (Flags_GetSwitch(play, this->switchFlag))) { Actor_Kill(&this->actor); } @@ -756,8 +756,8 @@ void EnBigpo_SetupLanternDrop(EnBigpo* this, PlayState* play) { void EnBigpo_LanternFalling(EnBigpo* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND || this->actor.floorHeight == BGCHECK_Y_MIN) { - if (this->switchFlags != 0xFF) { - Flags_SetSwitch(play, this->switchFlags); + if (this->switchFlag != 0xFF) { + Flags_SetSwitch(play, this->switchFlag); } EffectSsHahen_SpawnBurst(play, &this->actor.world.pos, 6.0f, 0, 1, 1, 15, OBJECT_BIGPO, 10, @@ -1051,7 +1051,8 @@ void EnBigpo_FlameCircleCutscene(EnBigpo* this, PlayState* play) { this->idleTimer--; if (this->idleTimer == 0) { EnBigpo* parentPoh = (EnBigpo*)this->actor.parent; - Flags_SetSwitch(play, this->switchFlags); + + Flags_SetSwitch(play, this->switchFlag); Math_Vec3f_Copy(&parentPoh->fires[this->unk20C].pos, &this->actor.world.pos); Actor_Kill(&this->actor); if (this->unk20C == 0) { diff --git a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h index 12b230614..d5bdaf1e8 100644 --- a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h +++ b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h @@ -47,7 +47,7 @@ typedef struct EnBigpo { /* 0x20A */ s16 rotVelocity; /* 0x20C */ s16 unk20C; // is this counting the number of frames the player is ztargeting them? /* 0x20E */ s16 subCamId; - /* 0x210 */ s16 switchFlags; + /* 0x210 */ s16 switchFlag; /* 0x212 */ s16 hoverHeightCycleTimer; // sin wave up and down bobbing /* 0x214 */ f32 fireRadius; // distance from center during conjunction cutscene /* 0x218 */ f32 savedHeight; // actual height while flying moves as part of bobbing @@ -75,6 +75,6 @@ typedef enum EnBigpoType { /* 5 */ BIG_POE_TYPE_UNK5 } EnBigpoType; -#define BIG_POE_GET_SWITCHFLAGS(thisx) (u8)((thisx)->params >> 0x8) +#define BIG_POE_GET_SWITCH_FLAG(thisx) (u8)((thisx)->params >> 0x8) #endif // Z_EN_BIGPO_H diff --git a/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c b/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c index 31e904bcf..01b701ce1 100644 --- a/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c +++ b/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.c @@ -86,7 +86,7 @@ void EnDaiku2_Init(Actor* thisx, PlayState* play) { this->morphTable, OBJECT_DAIKU_LIMB_MAX); this->actor.targetMode = TARGET_MODE_0; Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); - this->unk_278 = ENDAIKU2_GET_7F(&this->actor); + this->switchFlag = ENDAIKU2_GET_SWITCH_FLAG(&this->actor); this->pathIndex = ENDAIKU2_GET_PATH_INDEX(&this->actor); this->path = SubS_GetPathByIndex(play, this->pathIndex, ENDAIKU2_PATH_INDEX_NONE); this->unk_280 = ENDAIKU2_GET_8000(&this->actor); @@ -97,9 +97,9 @@ void EnDaiku2_Init(Actor* thisx, PlayState* play) { return; } - if (this->unk_278 == ENDAIKU2_GET_7F_127) { - this->unk_278 = ENDAIKU2_GET_7F_MINUS1; - } else if (Flags_GetSwitch(play, this->unk_278)) { + if (this->switchFlag == 0x7F) { + this->switchFlag = -1; + } else if (Flags_GetSwitch(play, this->switchFlag)) { this->unk_25C = this->path->count - 1; func_80BE61D0(this); Math_Vec3f_Copy(&this->actor.world.pos, &this->unk_268); @@ -185,7 +185,7 @@ s32 func_80BE64C0(EnDaiku2* this, PlayState* play) { Math_Vec3f_Copy(&this->actor.world.pos, &this->actor.home.pos); bomb = (EnBom*)Actor_FindNearby(play, &this->actor, -1, ACTORCAT_EXPLOSIVES, BREG(7) + 240.0f); Math_Vec3f_Copy(&this->actor.world.pos, &sp30); - if ((this->unk_278 >= ENDAIKU2_GET_7F_0) && !Flags_GetSwitch(play, this->unk_278) && (bomb != NULL) && + if ((this->switchFlag >= 0) && !Flags_GetSwitch(play, this->switchFlag) && (bomb != NULL) && (bomb->actor.id == ACTOR_EN_BOM)) { if (!bomb->isPowderKeg) { this->actor.textId = 0x32D3; @@ -228,7 +228,7 @@ void func_80BE65B4(EnDaiku2* this, PlayState* play) { } this->unk_264 = 1.0f; - if ((this->unk_278 >= ENDAIKU2_GET_7F_0) && Flags_GetSwitch(play, this->unk_278)) { + if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { this->unk_28A = 5; if (this->animIndex != ENDAIKU2_ANIM_10) { EnDaiku2_ChangeAnim(this, ENDAIKU2_ANIM_10); @@ -251,7 +251,7 @@ void func_80BE66E4(EnDaiku2* this, PlayState* play) { Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.home.rot.y, 1, 0xBB8, 0x0); if (sp98 != 2) { - if ((this->unk_278 >= ENDAIKU2_GET_7F_0) && Flags_GetSwitch(play, this->unk_278)) { + if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { this->unk_28A = 5; if (this->animIndex != ENDAIKU2_ANIM_10) { EnDaiku2_ChangeAnim(this, ENDAIKU2_ANIM_10); @@ -323,7 +323,7 @@ void func_80BE6B40(EnDaiku2* this, PlayState* play) { s32 day = gSaveContext.save.day; this->unk_288 = 1; - if ((day != 3) && Flags_GetSwitch(play, this->unk_278)) { + if ((day != 3) && Flags_GetSwitch(play, this->switchFlag)) { this->actionFunc = func_80BE6BC0; } else { EnDaiku2_ChangeAnim(this, ENDAIKU2_ANIM_5); @@ -433,7 +433,7 @@ void func_80BE6EF0(EnDaiku2* this, PlayState* play) { EnDaiku2_ChangeAnim(this, ENDAIKU2_ANIM_3); } - if ((this->unk_278 >= ENDAIKU2_GET_7F_0) && Flags_GetSwitch(play, this->unk_278)) { + if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { this->unk_28A = 5; if (this->animIndex != ENDAIKU2_ANIM_10) { EnDaiku2_ChangeAnim(this, ENDAIKU2_ANIM_10); diff --git a/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.h b/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.h index 51cd23124..c047b6577 100644 --- a/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.h +++ b/src/overlays/actors/ovl_En_Daiku2/z_en_daiku2.h @@ -8,18 +8,12 @@ struct EnDaiku2; typedef void (*EnDaiku2ActionFunc)(struct EnDaiku2*, PlayState*); -#define ENDAIKU2_GET_7F(thisx) ((thisx)->params & 0x7F) +#define ENDAIKU2_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define ENDAIKU2_GET_PATH_INDEX(thisx) (((thisx)->params >> 7) & 0x3F) #define ENDAIKU2_GET_8000(thisx) (((thisx)->params >> 15) & 0x1) #define ENDAIKU2_PATH_INDEX_NONE 0x3F -typedef enum { - /* -1 */ ENDAIKU2_GET_7F_MINUS1 = -1, - /* 0 */ ENDAIKU2_GET_7F_0, - /* 127 */ ENDAIKU2_GET_7F_127 = 127 -} EnDaiku2Param; - typedef struct EnDaiku2Effect { /* 0x00 */ u8 isEnabled; /* 0x04 */ Vec3f unk_04; @@ -45,7 +39,7 @@ typedef struct EnDaiku2 { /* 0x268 */ Vec3f unk_268; /* 0x274 */ s16 unk_274; /* 0x276 */ s16 animIndex; - /* 0x278 */ s16 unk_278; + /* 0x278 */ s16 switchFlag; /* 0x27A */ s16 pathIndex; /* 0x27C */ UNK_TYPE1 unk_27C[0x4]; /* 0x280 */ s32 unk_280; diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index a63766b70..124dee6f7 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -425,7 +425,7 @@ void EnDoor_Init(Actor* thisx, PlayState* play2) { this->doorType = ENDOOR_GET_TYPE(thisx); - this->switchFlag = ENDOOR_GET_PARAM_7F(thisx); + this->switchFlag = ENDOOR_GET_SWITCH_FLAG(thisx); if ((this->doorType == ENDOOR_TYPE_7) && (this->switchFlag == 0)) { DynaPolyActor_Init(&this->knobDoor.dyna, 0); DynaPolyActor_LoadMesh(play, &this->knobDoor.dyna, &gDoorCol); diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.h b/src/overlays/actors/ovl_En_Door/z_en_door.h index 03dc31ab6..5ea0b7df3 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.h +++ b/src/overlays/actors/ovl_En_Door/z_en_door.h @@ -10,7 +10,7 @@ struct EnDoor; typedef void (*EnDoorActionFunc)(struct EnDoor*, PlayState*); #define ENDOOR_GET_TYPE(thisx) (((thisx)->params >> 7) & 7) -#define ENDOOR_GET_PARAM_7F(thisx) (((thisx)->params) & 0x7F) +#define ENDOOR_GET_SWITCH_FLAG(thisx) (((thisx)->params) & 0x7F) typedef enum EnDoorType { /* 0 */ ENDOOR_TYPE_0, diff --git a/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c b/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c index fe09aa1fe..b771d09fe 100644 --- a/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c +++ b/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.c @@ -193,8 +193,8 @@ void func_80AC21A0(EnDoorEtc* this, PlayState* play) { } } if ((this->knobDoor.dyna.actor.textId == 0x239B) && - Flags_GetSwitch(play, ENDOORETC_GET_SWITCHFLAG(&this->knobDoor.dyna.actor))) { - Flags_UnsetSwitch(play, ENDOORETC_GET_SWITCHFLAG(&this->knobDoor.dyna.actor)); + Flags_GetSwitch(play, ENDOORETC_GET_SWITCH_FLAG(&this->knobDoor.dyna.actor))) { + Flags_UnsetSwitch(play, ENDOORETC_GET_SWITCH_FLAG(&this->knobDoor.dyna.actor)); this->actionFunc = func_80AC2154; this->knobDoor.dyna.actor.textId = 0x1800; // "It won't budge!" this->unk_1F4 |= 1; diff --git a/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.h b/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.h index 9cd63248f..c0bbdf98b 100644 --- a/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.h +++ b/src/overlays/actors/ovl_En_Door_Etc/z_en_door_etc.h @@ -6,7 +6,7 @@ struct EnDoorEtc; -#define ENDOORETC_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define ENDOORETC_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef void (*EnDoorEtcActionFunc)(struct EnDoorEtc*, PlayState*); diff --git a/src/overlays/actors/ovl_En_Egol/z_en_egol.c b/src/overlays/actors/ovl_En_Egol/z_en_egol.c index 89ee2e5fd..775a14eb5 100644 --- a/src/overlays/actors/ovl_En_Egol/z_en_egol.c +++ b/src/overlays/actors/ovl_En_Egol/z_en_egol.c @@ -481,7 +481,7 @@ void EnEgol_Init(Actor* thisx, PlayState* play) { EYEGORE_SET_SPH_DIM(this->bodyCollider.elements[4], 300, 200, 0, 25, 1.0f); EYEGORE_SET_SPH_DIM(this->bodyCollider.elements[5], 2100, -300, 0, 37, 1.0f); - this->switchFlag = EYEGORE_GET_SWITCH(&this->actor); + this->switchFlag = EYEGORE_GET_SWITCH_FLAG(&this->actor); if (this->switchFlag == 0x7F) { this->switchFlag = -1; } diff --git a/src/overlays/actors/ovl_En_Egol/z_en_egol.h b/src/overlays/actors/ovl_En_Egol/z_en_egol.h index 35d232d51..0861ce580 100644 --- a/src/overlays/actors/ovl_En_Egol/z_en_egol.h +++ b/src/overlays/actors/ovl_En_Egol/z_en_egol.h @@ -9,7 +9,7 @@ struct EnEgol; typedef void (*EnEgolActionFunc)(struct EnEgol*, PlayState*); #define EYEGORE_GET_PATH_INDEX(thisx) ((thisx)->params & 0x3F) -#define EYEGORE_GET_SWITCH(thisx) (((thisx)->params >> 6) & 0x7F) +#define EYEGORE_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 6) & 0x7F) #define EYEGORE_PATH_INDEX_NONE 0x3F diff --git a/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c b/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c index 9b34bf410..c9d86e4f6 100644 --- a/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c +++ b/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c @@ -56,7 +56,7 @@ void EnElfbub_Init(Actor* thisx, PlayState* play) { EnElfbub* this = THIS; Actor* childActor; - if (Flags_GetSwitch(play, ENELFBUB_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ENELFBUB_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -76,7 +76,7 @@ void EnElfbub_Init(Actor* thisx, PlayState* play) { childActor = Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELFORG, this->actor.world.pos.x, this->actor.world.pos.y + 12.0f, this->actor.world.pos.z, this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, - STRAY_FAIRY_PARAMS(ENELFBUB_GET_SWITCHFLAG(&this->actor), + STRAY_FAIRY_PARAMS(ENELFBUB_GET_SWITCH_FLAG(&this->actor), STRAY_FAIRY_AREA_CLOCK_TOWN, STRAY_FAIRY_TYPE_BUBBLE)); if (childActor != NULL) { childActor->parent = &this->actor; diff --git a/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.h b/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.h index 50c6bd672..d115ab91c 100644 --- a/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.h +++ b/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.h @@ -3,7 +3,7 @@ #include "global.h" -#define ENELFBUB_GET_SWITCHFLAG(thisx) ((((thisx)->params) & 0xFE00) >> 9) +#define ENELFBUB_GET_SWITCH_FLAG(thisx) ((((thisx)->params) & 0xFE00) >> 9) struct EnElfbub; diff --git a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c index 937c6bc8c..3eb2e357b 100644 --- a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c +++ b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c @@ -480,7 +480,7 @@ void func_80A3A398(EnElfgrp* this, PlayState* play) { if (CutsceneManager_IsNext(this->actor.csId)) { CutsceneManager_StartWithPlayerCs(this->actor.csId, &this->actor); this->actionFunc = func_80A3A274; - Flags_UnsetSwitch(play, ENELFGRP_GET_SWITCHFLAG_PARAMS(&this->actor)); + Flags_UnsetSwitch(play, ENELFGRP_GET_SWITCH_FLAG_PARAMS(&this->actor)); if (this->stateFlags & ELFGRP_STATE_1) { Item_Give(play, ITEM_MASK_GREAT_FAIRY); @@ -524,7 +524,7 @@ void func_80A3A520(EnElfgrp* this, PlayState* play) { } else if (CutsceneManager_IsNext(this->actor.csId)) { CutsceneManager_StartWithPlayerCs(this->actor.csId, &this->actor); this->actionFunc = func_80A3A4AC; - Flags_SetSwitch(play, ENELFGRP_GET_SWITCHFLAG_PARAMS(&this->actor)); + Flags_SetSwitch(play, ENELFGRP_GET_SWITCH_FLAG_PARAMS(&this->actor)); if (this->stateFlags & ELFGRP_STATE_1) { Item_Give(play, ITEM_MASK_GREAT_FAIRY); diff --git a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.h b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.h index d9767fb2f..90f73a8a6 100644 --- a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.h +++ b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.h @@ -9,7 +9,7 @@ struct EnElfgrp; typedef void (*EnElfgrpActionFunc)(struct EnElfgrp*, PlayState*); #define ENELFGRP_GET_TYPE(thisx) ((thisx)->params & 0xF) //!< Same type as Great Fairies -#define ENELFGRP_GET_SWITCHFLAG_PARAMS(thisx) (((thisx)->params & 0xFE00) >> 9) +#define ENELFGRP_GET_SWITCH_FLAG_PARAMS(thisx) (((thisx)->params & 0xFE00) >> 9) #define ENELFGRP_GET_SWITCHFLAG_ROT(thisx) ((thisx)->home.rot.z) typedef enum ElfgrpType { diff --git a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c index 27dc844e7..3dc3cd7bc 100644 --- a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c +++ b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c @@ -87,7 +87,7 @@ void EnElforg_Init(Actor* thisx, PlayState* play) { break; case STRAY_FAIRY_TYPE_COLLECTIBLE: - if (Flags_GetCollectible(play, STRAY_FAIRY_FLAG(thisx))) { + if (Flags_GetCollectible(play, STRAY_FAIRY_GET_FLAG(thisx))) { Actor_Kill(thisx); return; } @@ -100,7 +100,7 @@ void EnElforg_Init(Actor* thisx, PlayState* play) { break; default: - if (Flags_GetSwitch(play, STRAY_FAIRY_FLAG(thisx))) { + if (Flags_GetSwitch(play, STRAY_FAIRY_GET_FLAG(thisx))) { Actor_Kill(thisx); return; } @@ -475,15 +475,15 @@ void EnElforg_FreeFloating(EnElforg* this, PlayState* play) { switch (STRAY_FAIRY_TYPE(&this->actor)) { case STRAY_FAIRY_TYPE_COLLECTIBLE: - Flags_SetCollectible(play, STRAY_FAIRY_FLAG(&this->actor)); + Flags_SetCollectible(play, STRAY_FAIRY_GET_FLAG(&this->actor)); break; case STRAY_FAIRY_TYPE_CHEST: - Flags_SetTreasure(play, STRAY_FAIRY_FLAG(&this->actor)); + Flags_SetTreasure(play, STRAY_FAIRY_GET_FLAG(&this->actor)); break; default: - Flags_SetSwitch(play, STRAY_FAIRY_FLAG(&this->actor)); + Flags_SetSwitch(play, STRAY_FAIRY_GET_FLAG(&this->actor)); break; } diff --git a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.h b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.h index 7bb8672b1..f4da3cd5e 100644 --- a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.h +++ b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.h @@ -7,7 +7,7 @@ #define STRAY_FAIRY_TYPE(thisx) ((thisx)->params & 0xF) #define STRAY_FAIRY_GET_NON_DUNGEON_AREA(thisx) (((thisx)->params & 0x1C0) >> 6) -#define STRAY_FAIRY_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) +#define STRAY_FAIRY_GET_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) #define STRAY_FAIRY_SPARKLE_COUNT(thisx) ((thisx)->home.rot.x) //! @note `nonDungeonArea` does not always use the enum diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 0b645b302..07e4d60b9 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -29,7 +29,7 @@ ActorInit En_Fr_InitVars = { void EnFr_Init(Actor* thisx, PlayState* play) { EnFr* this = THIS; - if (Flags_GetSwitch(play, ENFR_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ENFR_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -43,7 +43,7 @@ void EnFr_Destroy(Actor* thisx, PlayState* play) { void EnFr_Update(Actor* thisx, PlayState* play) { EnFr* this = THIS; - if (Flags_GetSwitch(play, ENFR_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ENFR_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.h b/src/overlays/actors/ovl_En_Fr/z_en_fr.h index 27682ce40..0227608fb 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.h +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.h @@ -5,7 +5,7 @@ struct EnFr; -#define ENFR_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define ENFR_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define ENFR_GET_TARGETMODE(thisx) (((thisx)->params >> 7) & 0xF) typedef struct EnFr { diff --git a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c index b9ef1fe88..272915c71 100644 --- a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c +++ b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c @@ -681,7 +681,7 @@ void func_80B10A48(EnGb2* this, PlayState* play) { case ENGB2_7_2: CutsceneManager_Stop(this->csIdList[this->csIdIndex]); if (this->unk_26E == 0x14FB) { - Flags_SetSwitch(play, ENGB2_GET_7F8(&this->actor)); + Flags_SetSwitch(play, ENGB2_GET_SWITCH_FLAG(&this->actor)); Actor_Kill(&this->actor); return; } @@ -752,7 +752,7 @@ void func_80B10DAC(EnGb2* this, PlayState* play) { if (this->csIdIndex != 2) { this->actionFunc = func_80B10E98; } else { - Flags_SetSwitch(play, ENGB2_GET_7F8(&this->actor)); + Flags_SetSwitch(play, ENGB2_GET_SWITCH_FLAG(&this->actor)); this->actionFunc = func_80B10868; } } else { @@ -776,7 +776,7 @@ void func_80B10E98(EnGb2* this, PlayState* play) { if ((this->unk_26E != 0x14E8) && (this->unk_26E != 0x14EA)) { CutsceneManager_Stop(this->csIdList[this->csIdIndex]); this->actionFunc = func_80B10B5C; - } else if (Flags_GetSwitch(play, ENGB2_GET_7F8(&this->actor))) { + } else if (Flags_GetSwitch(play, ENGB2_GET_SWITCH_FLAG(&this->actor))) { this->actionFunc = func_80B10A48; } else { CutsceneManager_Stop(this->csIdList[this->csIdIndex]); @@ -936,7 +936,7 @@ void EnGb2_Init(Actor* thisx, PlayState* play) { return; } - if (Flags_GetSwitch(play, ENGB2_GET_7F8(thisx))) { + if (Flags_GetSwitch(play, ENGB2_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->actor); return; } @@ -950,7 +950,7 @@ void EnGb2_Init(Actor* thisx, PlayState* play) { case ENGB2_7_2: this->csIdIndex = 0; this->csIdList[0] = this->actor.csId; - if (Flags_GetSwitch(play, ENGB2_GET_7F8(thisx))) { + if (Flags_GetSwitch(play, ENGB2_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.h b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.h index fa500f15c..e59eecee0 100644 --- a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.h +++ b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.h @@ -9,7 +9,7 @@ struct EnGb2; typedef void (*EnGb2ActionFunc)(struct EnGb2*, PlayState*); #define ENGB2_GET_7(thisx) ((thisx)->params & 7) -#define ENGB2_GET_7F8(thisx) (((thisx)->params & 0x7F8) >> 3) +#define ENGB2_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F8) >> 3) typedef enum { /* 0 */ ENGB2_7_0, diff --git a/src/overlays/actors/ovl_En_Gk/z_en_gk.c b/src/overlays/actors/ovl_En_Gk/z_en_gk.c index 900664e4c..c631b24e3 100644 --- a/src/overlays/actors/ovl_En_Gk/z_en_gk.c +++ b/src/overlays/actors/ovl_En_Gk/z_en_gk.c @@ -296,7 +296,7 @@ s32 func_80B50854(EnGk* this, PlayState* play) { if ((player->transformation == PLAYER_FORM_GORON) && (play->msgCtx.ocarinaMode == OCARINA_MODE_EVENT) && (play->msgCtx.lastPlayedSong == OCARINA_SONG_GORON_LULLABY)) { - Flags_SetSwitch(play, ENGK_GET_3F00(&this->actor)); + Flags_SetSwitch(play, ENGK_GET_SWITCH_FLAG(&this->actor)); this->animIndex = ENGK_ANIM_3; Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENGK_ANIM_3); this->actionFunc = func_80B521E8; @@ -612,7 +612,7 @@ void func_80B51510(EnGk* this, PlayState* play) { break; case 7: - Flags_SetSwitch(play, ENGK_GET_3F00(&this->actor)); + Flags_SetSwitch(play, ENGK_GET_SWITCH_FLAG(&this->actor)); break; default: @@ -673,7 +673,7 @@ void func_80B51760(EnGk* this, PlayState* play) { Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, this->animIndex); } } else { - if (Flags_GetSwitch(play, ENGK_GET_3F00(&this->actor))) { + if (Flags_GetSwitch(play, ENGK_GET_SWITCH_FLAG(&this->actor))) { SET_WEEKEVENTREG(WEEKEVENTREG_40_40); this->actionFunc = func_80B51D9C; return; @@ -1070,7 +1070,7 @@ void EnGk_Init(Actor* thisx, PlayState* play) { this->animIndex = ENGK_ANIM_5; Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, ENGK_ANIM_5); if (play->sceneId == SCENE_17SETUGEN2) { - if (Flags_GetSwitch(play, ENGK_GET_3F00(&this->actor))) { + if (Flags_GetSwitch(play, ENGK_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_En_Gk/z_en_gk.h b/src/overlays/actors/ovl_En_Gk/z_en_gk.h index 6bd28ad94..b9d237cd5 100644 --- a/src/overlays/actors/ovl_En_Gk/z_en_gk.h +++ b/src/overlays/actors/ovl_En_Gk/z_en_gk.h @@ -10,7 +10,7 @@ typedef void (*EnGkActionFunc)(struct EnGk*, PlayState*); #define ENGK_GET_F(thisx) ((thisx)->params & 0xF) #define ENGK_GET_PATH_INDEX(thisx) (((thisx)->params & 0xF0) >> 4) -#define ENGK_GET_3F00(thisx) (((thisx)->params & 0x3F00) >> 8) +#define ENGK_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x3F00) >> 8) #define ENGK_PATH_INDEX_NONE 0xF diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 6cc8af5a5..88798dd2f 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -143,7 +143,7 @@ void EnGs_Init(Actor* thisx, PlayState* play) { this->unk_204 = 1; this->unk_198 = this->actor.world.rot.z; this->unk_195 = ENGS_GET_1F(thisx); - this->unk_196 = ENGS_GET_FE0(thisx); + this->switchFlag = ENGS_GET_SWITCH_FLAG(thisx); this->actor.params = ENGS_GET_F000(thisx); this->actor.world.rot.z = 0; Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); @@ -287,22 +287,22 @@ void func_8099807C(EnGs* this, PlayState* play) { switch (play->msgCtx.lastPlayedSong) { case OCARINA_SONG_HEALING: case OCARINA_SONG_EPONAS: - if (!Flags_GetSwitch(play, this->unk_196)) { + if (!Flags_GetSwitch(play, this->switchFlag)) { Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y + 40.0f, this->actor.world.pos.z, 0, 0, 0, FAIRY_PARAMS(FAIRY_TYPE_2, false, 0)); Actor_PlaySfx(&this->actor, NA_SE_EV_BUTTERFRY_TO_FAIRY); - Flags_SetSwitch(play, this->unk_196); + Flags_SetSwitch(play, this->switchFlag); } break; case OCARINA_SONG_STORMS: - if (!Flags_GetSwitch(play, this->unk_196)) { + if (!Flags_GetSwitch(play, this->switchFlag)) { Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ELF, this->actor.world.pos.x, this->actor.world.pos.y + 40.0f, this->actor.world.pos.z, 0, 0, 0, FAIRY_PARAMS(FAIRY_TYPE_7, false, 0)); Actor_PlaySfx(&this->actor, NA_SE_EV_BUTTERFRY_TO_FAIRY); - Flags_SetSwitch(play, this->unk_196); + Flags_SetSwitch(play, this->switchFlag); } break; diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.h b/src/overlays/actors/ovl_En_Gs/z_en_gs.h index b7af0c582..ffeb3083e 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.h +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.h @@ -8,7 +8,7 @@ struct EnGs; typedef void (*EnGsActionFunc)(struct EnGs*, PlayState*); #define ENGS_GET_1F(thisx) ((thisx)->params & 0x1F) -#define ENGS_GET_FE0(thisx) (((thisx)->params >> 5) & 0x7F) +#define ENGS_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 5) & 0x7F) #define ENGS_GET_F000(thisx) (((thisx)->params >> 0xC) & 0xF) typedef enum { @@ -24,7 +24,7 @@ typedef struct EnGs { /* 0x190 */ EnGsActionFunc actionFunc; /* 0x194 */ s8 unk_194; /* 0x195 */ u8 unk_195; - /* 0x196 */ u8 unk_196; + /* 0x196 */ u8 switchFlag; /* 0x197 */ s8 unk_197; /* 0x198 */ s16 unk_198; /* 0x19A */ s16 unk_19A; diff --git a/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.c b/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.c index b10793a56..48f75aa68 100644 --- a/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.c +++ b/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.c @@ -113,7 +113,7 @@ void EnHiddenNuts_Init(Actor* thisx, PlayState* play) { Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->pathIndex = ENHIDDENNUTS_GET_PATH_INDEX(&this->actor); - this->switchFlag = ENHIDDENNUTS_GET_SWITCHFLAG(&this->actor); + this->switchFlag = ENHIDDENNUTS_GET_SWITCH_FLAG(&this->actor); if (this->switchFlag == 0x7F) { this->switchFlag = -1; diff --git a/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.h b/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.h index df8275aa4..7df4b5f01 100644 --- a/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.h +++ b/src/overlays/actors/ovl_En_Hidden_Nuts/z_en_hidden_nuts.h @@ -8,7 +8,7 @@ struct EnHiddenNuts; typedef void (*EnHiddenNutsActionFunc)(struct EnHiddenNuts*, PlayState*); -#define ENHIDDENNUTS_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define ENHIDDENNUTS_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define ENHIDDENNUTS_GET_PATH_INDEX(thisx) (((thisx)->params >> 7) & 0x1F) #define ENHIDDENNUTS_PATH_INDEX_NONE 0x1F diff --git a/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.c b/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.c index 95cc793ac..208708c58 100644 --- a/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.c +++ b/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.c @@ -56,7 +56,7 @@ void EnHitTag_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnHitTag_WaitForHit; Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Collider_UpdateCylinder(&this->actor, &this->collider); - if (Flags_GetSwitch(play, ENHITTAG_GET_SWITCHFLAG(thisx))) { + if (Flags_GetSwitch(play, ENHITTAG_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.h b/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.h index e2effa078..645c95465 100644 --- a/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.h +++ b/src/overlays/actors/ovl_En_Hit_Tag/z_en_hit_tag.h @@ -7,7 +7,7 @@ struct EnHitTag; typedef void (*EnHitTagActionFunc)(struct EnHitTag*, PlayState*); -#define ENHITTAG_GET_SWITCHFLAG(thisx) (((thisx)->params & 0xFE00) >> 9) +#define ENHITTAG_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) typedef struct EnHitTag { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.c b/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.c index 3a6c54983..dcecdac43 100644 --- a/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.c +++ b/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.c @@ -80,8 +80,8 @@ void func_80C2590C(EnInvisibleRuppe* this, PlayState* play) { break; } - if (this->unk_190 >= 0) { - Flags_SetSwitch(play, this->unk_190); + if (this->switchFlag >= 0) { + Flags_SetSwitch(play, this->switchFlag); } this->actionFunc = func_80C259E8; @@ -96,13 +96,13 @@ void EnInvisibleRuppe_Init(Actor* thisx, PlayState* play) { s32 pad; EnInvisibleRuppe* this = THIS; - this->unk_190 = INVISIBLERUPPE_GET_1FC(&this->actor); + this->switchFlag = INVISIBLERUPPE_GET_SWITCH_FLAG(&this->actor); - if (this->unk_190 == 0x7F) { - this->unk_190 = -1; + if (this->switchFlag == 0x7F) { + this->switchFlag = -1; } - if ((this->unk_190 >= 0) && Flags_GetSwitch(play, this->unk_190)) { + if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.h b/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.h index d703a3511..2257a649a 100644 --- a/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.h +++ b/src/overlays/actors/ovl_En_Invisible_Ruppe/z_en_invisible_ruppe.h @@ -8,12 +8,12 @@ struct EnInvisibleRuppe; typedef void (*EnInvisibleRuppeActionFunc)(struct EnInvisibleRuppe*, PlayState*); #define INVISIBLERUPPE_GET_3(thisx) ((thisx)->params & 3) -#define INVISIBLERUPPE_GET_1FC(thisx) (((thisx)->params & 0x1FC) >> 2) +#define INVISIBLERUPPE_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x1FC) >> 2) typedef struct EnInvisibleRuppe { /* 0x000 */ Actor actor; /* 0x144 */ ColliderCylinder collider; - /* 0x190 */ s16 unk_190; + /* 0x190 */ s16 switchFlag; /* 0x192 */ s16 unk_192; /* 0x194 */ EnInvisibleRuppeActionFunc actionFunc; } EnInvisibleRuppe; // size = 0x198 diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index 10dc7bcdf..2e3e2fc39 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -310,7 +310,7 @@ void func_8095DFF0(EnIshi* this, PlayState* play) { s16 temp_v1_2; if (temp >= 0) { - sp3C = Item_DropCollectible(play, &this->actor.world.pos, temp | (ENISHI_GET_FE00(&this->actor) << 8)); + sp3C = Item_DropCollectible(play, &this->actor.world.pos, temp | (ENISHI_GET_FLAG(&this->actor) << 8)); if (sp3C != NULL) { Matrix_Push(); Matrix_RotateYS(this->actor.shape.rot.y, MTXMODE_NEW); @@ -399,7 +399,7 @@ void EnIshi_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, D_8095F6B8[sp34]); func_8095D6E0(&this->actor, play); - if ((sp34 == 1) && Flags_GetSwitch(play, ENISHI_GET_FE00(&this->actor))) { + if ((sp34 == 1) && Flags_GetSwitch(play, ENISHI_GET_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -537,7 +537,7 @@ void func_8095E95C(EnIshi* this, PlayState* play) { if (Actor_HasNoParent(&this->actor, play)) { this->actor.room = play->roomCtx.curRoom.num; if (ENISHI_GET_1(&this->actor) == 1) { - Flags_SetSwitch(play, ENISHI_GET_FE00(&this->actor)); + Flags_SetSwitch(play, ENISHI_GET_FLAG(&this->actor)); } func_8095EA70(this); func_8095E14C(this); diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h index 65381f638..81fc78368 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.h @@ -16,7 +16,7 @@ typedef void (*EnIshiUnkFunc2)(Actor*, PlayState*); #define ENISHI_GET_70(thisx) (((thisx)->params >> 4) & 7) #define ENISHI_GET_F0(thisx) (((thisx)->params >> 4) & 0xF) #define ENISHI_GET_100(thisx) (((thisx)->params >> 8) & 1) -#define ENISHI_GET_FE00(thisx) (((thisx)->params >> 9) & 0x7F) +#define ENISHI_GET_FLAG(thisx) (((thisx)->params >> 9) & 0x7F) typedef struct EnIshi { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c b/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c index d629c57b9..abba3efac 100644 --- a/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c +++ b/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c @@ -259,7 +259,7 @@ void EnKaizoku_Init(Actor* thisx, PlayState* play) { this->unk_2CA = this->picto.actor.world.rot.z; this->picto.actor.colChkInfo.health = 8; this->exitIndex = KAIZOKU_GET_EXIT_INDEX(&this->picto.actor); - this->switchFlag = KAIZOKU_GET_SWITCHFLAG(&this->picto.actor); + this->switchFlag = KAIZOKU_GET_SWITCH_FLAG(&this->picto.actor); if (this->unk_2CA >= 2) { this->unk_2CA = 0; diff --git a/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.h b/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.h index a119777a9..423819eb3 100644 --- a/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.h +++ b/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.h @@ -6,7 +6,7 @@ #include "objects/object_kz/object_kz.h" #define KAIZOKU_GET_EXIT_INDEX(thisx) ((thisx)->params & 0x3F) -#define KAIZOKU_GET_SWITCHFLAG(thisx) (((thisx)->params >> 6) & 0x7F) +#define KAIZOKU_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 6) & 0x7F) struct EnKaizoku; diff --git a/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c b/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c index 62d4a1f62..5f180a285 100644 --- a/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c +++ b/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c @@ -71,10 +71,10 @@ void EnKgy_Init(Actor* thisx, PlayState* play) { this->animIndex2 = ENKGY_ANIM_NONE; this->zubora = EnKgy_FindZubora(play); this->iceBlock = EnKgy_FindIceBlock(play); - Flags_UnsetSwitch(play, ENKGY_GET_FE00(&this->actor) + 1); - if (Flags_GetSwitch(play, ENKGY_GET_FE00(&this->actor)) || + Flags_UnsetSwitch(play, ENKGY_GET_SWITCH_FLAG(&this->actor) + 1); + if (Flags_GetSwitch(play, ENKGY_GET_SWITCH_FLAG(&this->actor)) || CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_SNOWHEAD_TEMPLE)) { - Flags_SetSwitch(play, ENKGY_GET_FE00(&this->actor) + 1); + Flags_SetSwitch(play, ENKGY_GET_SWITCH_FLAG(&this->actor) + 1); play->envCtx.lightSettingOverride = 1; SET_WEEKEVENTREG(WEEKEVENTREG_21_01); if (!func_80B40D64(play)) { @@ -1111,7 +1111,7 @@ void func_80B42D28(EnKgy* this, PlayState* play) { func_80B411DC(this, play, 0); func_80B40E18(this, this->actor.textId); } else { - if (Flags_GetSwitch(play, ENKGY_GET_FE00(&this->actor))) { + if (Flags_GetSwitch(play, ENKGY_GET_SWITCH_FLAG(&this->actor))) { this->actor.textId = 0xC30; this->actionFunc = func_80B4296C; SET_WEEKEVENTREG(WEEKEVENTREG_21_01); diff --git a/src/overlays/actors/ovl_En_Kgy/z_en_kgy.h b/src/overlays/actors/ovl_En_Kgy/z_en_kgy.h index 9a037ba9e..9cd6f6848 100644 --- a/src/overlays/actors/ovl_En_Kgy/z_en_kgy.h +++ b/src/overlays/actors/ovl_En_Kgy/z_en_kgy.h @@ -11,7 +11,7 @@ struct EnKgy; typedef void (*EnKgyActionFunc)(struct EnKgy*, PlayState*); #define ENKGY_GET_1F(thisx) ((thisx)->params & 0x1F) -#define ENKGY_GET_FE00(thisx) (((thisx)->params & 0xFE00) >> 9) +#define ENKGY_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) typedef struct EnKgy { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_En_Light/z_en_light.c b/src/overlays/actors/ovl_En_Light/z_en_light.c index f3c3f4705..065a58cf5 100644 --- a/src/overlays/actors/ovl_En_Light/z_en_light.c +++ b/src/overlays/actors/ovl_En_Light/z_en_light.c @@ -70,7 +70,7 @@ void EnLight_Init(Actor* thisx, PlayState* play) { if (ENLIGHT_GET_800(&this->actor)) { this->actor.update = func_80865F38; - if (ENLIGHT_GET_1000(&this->actor) && Flags_GetSwitch(play, ENLIGHT_SWITCHFLAG(&this->actor))) { + if (ENLIGHT_GET_1000(&this->actor) && Flags_GetSwitch(play, ENLIGHT_SWITCH_FLAG(&this->actor))) { Actor_SetScale(&this->actor, 0.0f); } } else if (ENLIGHT_GET_2000(&this->actor)) { @@ -124,7 +124,7 @@ void func_80865F38(Actor* thisx, PlayState* play) { s32 sp2C = false; if (ENLIGHT_GET_1000(&this->actor)) { - if (Flags_GetSwitch(play, ENLIGHT_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, ENLIGHT_SWITCH_FLAG(&this->actor))) { Math_StepToF(&sp30, 1.0f, 0.05f); sp2C = true; } else { @@ -134,7 +134,7 @@ void func_80865F38(Actor* thisx, PlayState* play) { } Math_StepToF(&sp30, 0.0f, 0.05f); } - } else if (Flags_GetSwitch(play, ENLIGHT_SWITCHFLAG(&this->actor))) { + } else if (Flags_GetSwitch(play, ENLIGHT_SWITCH_FLAG(&this->actor))) { if (sp30 < 0.1f) { Actor_SetScale(&this->actor, 0.0f); sp30 = 0.0f; diff --git a/src/overlays/actors/ovl_En_Light/z_en_light.h b/src/overlays/actors/ovl_En_Light/z_en_light.h index 17762d7fa..25e1b5851 100644 --- a/src/overlays/actors/ovl_En_Light/z_en_light.h +++ b/src/overlays/actors/ovl_En_Light/z_en_light.h @@ -8,7 +8,7 @@ struct EnLight; #define ENLIGHT_GET_1(thisx) ((thisx)->params & 1) #define ENLIGHT_GET_F(thisx) ((thisx)->params & 0xF) #define ENLIGHT_GET_800(thisx) ((thisx)->params & 0x800) -#define ENLIGHT_SWITCHFLAG(thisx) (((thisx)->params & 0x7F0) >> 4) +#define ENLIGHT_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F0) >> 4) #define ENLIGHT_GET_1000(thisx) ((thisx)->params & 0x1000) #define ENLIGHT_GET_2000(thisx) ((thisx)->params & 0x2000) #define ENLIGHT_GET_4000(thisx) ((thisx)->params & 0x4000) diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index b07a5d58c..9119e0609 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -40,7 +40,7 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) { this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; this->unk148 = ENOKARINATAG_GET_F800(thisx); this->unk14A = ENOKARINATAG_GET_780(thisx); - this->switchFlags = ENOKARINATAG_GET_SWITCHFLAGS(thisx); + this->switchFlag = ENOKARINATAG_GET_SWITCH_FLAG(thisx); if (this->actor.world.rot.z > 0) { zRot = this->actor.world.rot.z; while (zRot > 10.0f) { @@ -50,8 +50,8 @@ void EnOkarinaTag_Init(Actor* thisx, PlayState* play) { } this->unk154 = zRot * 50.0f; this->unk158 = i * 50.0f; - if (this->switchFlags == 0x7F) { - this->switchFlags = -1; + if (this->switchFlag == 0x7F) { + this->switchFlag = -1; } if (this->unk14A == 0xF) { this->unk14A = -1; @@ -66,14 +66,14 @@ void func_8093E518(EnOkarinaTag* this, PlayState* play) { s16 yDiff; u16 var_v1; - if (this->switchFlags >= 0) { + if (this->switchFlag >= 0) { if (this->unk148 == 0) { - if (Flags_GetSwitch(play, this->switchFlags)) { + if (Flags_GetSwitch(play, this->switchFlag)) { return; } } if (this->unk148 == 1) { - if (!Flags_GetSwitch(play, this->switchFlags)) { + if (!Flags_GetSwitch(play, this->switchFlag)) { return; } } @@ -122,19 +122,19 @@ void func_8093E68C(EnOkarinaTag* this, PlayState* play) { (play->msgCtx.ocarinaMode == OCARINA_MODE_PLAYED_SUNS) || (play->msgCtx.ocarinaMode == OCARINA_MODE_PLAYED_STORMS) || (play->msgCtx.ocarinaMode == OCARINA_MODE_F)))) { - if (this->switchFlags >= 0) { + if (this->switchFlag >= 0) { switch (this->unk148) { case 0: - Flags_SetSwitch(play, this->switchFlags); + Flags_SetSwitch(play, this->switchFlag); break; case 1: - Flags_UnsetSwitch(play, this->switchFlags); + Flags_UnsetSwitch(play, this->switchFlag); break; case 2: - if (Flags_GetSwitch(play, this->switchFlags)) { - Flags_UnsetSwitch(play, this->switchFlags); + if (Flags_GetSwitch(play, this->switchFlag)) { + Flags_UnsetSwitch(play, this->switchFlag); } else { - Flags_SetSwitch(play, this->switchFlags); + Flags_SetSwitch(play, this->switchFlag); } break; } diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h index 0dd15c1c9..4c968b362 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.h @@ -7,7 +7,7 @@ struct EnOkarinaTag; typedef void (*EnOkarinaTagActionFunc)(struct EnOkarinaTag*, PlayState*); -#define ENOKARINATAG_GET_SWITCHFLAGS(thisx) (((thisx)->params & 0x7F)) +#define ENOKARINATAG_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F)) #define ENOKARINATAG_GET_780(thisx) (((thisx)->params >> 0x7) & 0xF) #define ENOKARINATAG_GET_F800(thisx) (((thisx)->params >> 0xB) & 0x1F) @@ -16,7 +16,7 @@ typedef struct EnOkarinaTag { /* 0x144 */ EnOkarinaTagActionFunc actionFunc; /* 0x148 */ s16 unk148; /* 0x14A */ s16 unk14A; - /* 0x14C */ s32 switchFlags; + /* 0x14C */ s32 switchFlag; /* 0x150 */ s8 unk150; /* 0x154 */ f32 unk154; /* 0x158 */ f32 unk158; diff --git a/src/overlays/actors/ovl_En_Osn/z_en_osn.c b/src/overlays/actors/ovl_En_Osn/z_en_osn.c index eb0936ef9..29361e80f 100644 --- a/src/overlays/actors/ovl_En_Osn/z_en_osn.c +++ b/src/overlays/actors/ovl_En_Osn/z_en_osn.c @@ -705,12 +705,12 @@ void EnOsn_InitCutscene(EnOsn* this) { } void EnOsn_ChooseAction(EnOsn* this, PlayState* play) { - u32 isFlagSet = Flags_GetSwitch(play, 0); + u32 isSwitchFlagSet = Flags_GetSwitch(play, 0); this->csId = this->actor.csId; Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, OSN_ANIM_IDLE); - if (!isFlagSet) { + if (!isSwitchFlagSet) { this->actionFunc = EnOsn_HandleCsAction; } else { this->actionFunc = EnOsn_Idle; @@ -968,14 +968,14 @@ void EnOsn_Destroy(Actor* thisx, PlayState* play) { void EnOsn_Update(Actor* thisx, PlayState* play) { s32 pad; EnOsn* this = THIS; - u32 isFlagSet = Flags_GetSwitch(play, 0); + u32 isSwitchFlagSet = Flags_GetSwitch(play, 0); this->actionFunc(this, play); Actor_MoveWithGravity(&this->actor); SkelAnime_Update(&this->skelAnime); if (ENOSN_GET_TYPE(&this->actor) == OSN_TYPE_CHOOSE) { - if (isFlagSet) { + if (isSwitchFlagSet) { this->actor.flags |= ACTOR_FLAG_TARGETABLE; EnOsn_UpdateCollider(this, play); this->actor.draw = EnOsn_Draw; diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index 011738668..db4d9386b 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -146,7 +146,7 @@ void EnOwl_Init(Actor* thisx, PlayState* play) { this->unk_40C = 4; this->csIdIndex = -1; owlType = ENOWL_GET_TYPE(&this->actor); - switchFlag = ENOWL_GET_SWITCHFLAG(&this->actor); + switchFlag = ENOWL_GET_SWITCH_FLAG(&this->actor); switch (owlType) { case ENOWL_GET_TYPE_1: @@ -258,7 +258,7 @@ void func_8095AA70(EnOwl* this) { } void func_8095AAD0(EnOwl* this, PlayState* play) { - s32 switchFlag = ENOWL_GET_SWITCHFLAG(&this->actor); + s32 switchFlag = ENOWL_GET_SWITCH_FLAG(&this->actor); if (switchFlag < 0x7F) { Flags_SetSwitch(play, switchFlag); diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.h b/src/overlays/actors/ovl_En_Owl/z_en_owl.h index 095434fa0..3dfadc7d7 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.h +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.h @@ -10,7 +10,7 @@ typedef void (*EnOwlFunc)(struct EnOwl*); #define ENOWL_GET_F000(thisx) (((thisx)->params & 0xF000) >> 0xC) #define ENOWL_GET_TYPE(thisx) (((thisx)->params & 0xF80) >> 7) -#define ENOWL_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define ENOWL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef enum { /* 0x001 */ ENOWL_GET_TYPE_1 = 1, diff --git a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c index e6d37cfe4..b6bd9a2d2 100644 --- a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c +++ b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c @@ -247,7 +247,7 @@ void func_80B70D24(EnRailSkb* this, PlayState* play) { while (actor != NULL) { if ((actor->id == ACTOR_OBJ_HAKAISI) && func_80B70B04(this, actor->world.pos)) { - if (Flags_GetSwitch(play, (actor->params & 0xFF00) >> 8)) { + if (Flags_GetSwitch(play, OBJHAKAISI_GET_SWITCH_FLAG(actor))) { Actor_Kill(&this->actor); return; } @@ -276,7 +276,7 @@ void EnRailSkb_Init(Actor* thisx, PlayState* play) { Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colliderElements); CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); - if (Flags_GetSwitch(play, ENRAILSKB_GET_FF(&this->actor))) { + if (Flags_GetSwitch(play, ENRAILSKB_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); } diff --git a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.h b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.h index 593279931..8feff7d5d 100644 --- a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.h +++ b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.h @@ -10,7 +10,7 @@ typedef void (*EnRailSkbActionFunc)(struct EnRailSkb*, PlayState*); typedef void (*EnRailSkbUnkFunc)(struct EnRailSkb*); #define ENRAILSKB_GET_FF00(thisx) (((thisx)->params >> 8) & 0xFF) -#define ENRAILSKB_GET_FF(thisx) ((thisx)->params & 0xFF) +#define ENRAILSKB_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0xFF) typedef enum EnRailSkbBodyPart { /* 0 */ ENRAILSKB_BODYPART_0, diff --git a/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.c b/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.c index 6ac728a31..b9ea1f142 100644 --- a/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.c +++ b/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.c @@ -61,7 +61,7 @@ void EnRecepgirl_Init(Actor* thisx, PlayState* play) { this->eyeTexIndex = 2; - if (Flags_GetSwitch(play, this->actor.params)) { + if (Flags_GetSwitch(play, ENRECEPGIRL_GET_SWITCH_FLAG(&this->actor))) { this->actor.textId = 0x2ADC; // hear directions again? } else { this->actor.textId = 0x2AD9; // "Welcome..." @@ -105,11 +105,11 @@ void EnRecepgirl_Wait(EnRecepgirl* this, PlayState* play) { } else if (Actor_IsFacingPlayer(&this->actor, 0x2000)) { Actor_OfferTalk(&this->actor, play, 60.0f); if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { - this->actor.textId = 0x2367; // "... doesn't Kafei want to break off his engagement ... ?" - } else if (Flags_GetSwitch(play, this->actor.params)) { + this->actor.textId = 0x2367; + } else if (Flags_GetSwitch(play, ENRECEPGIRL_GET_SWITCH_FLAG(&this->actor))) { this->actor.textId = 0x2ADC; // hear directions again? } else { - this->actor.textId = 0x2AD9; // "Welcome..." + this->actor.textId = 0x2AD9; } } } @@ -145,8 +145,8 @@ void EnRecepgirl_Talk(EnRecepgirl* this, PlayState* play) { this->actor.textId = 0x2ADC; // hear directions again? EnRecepgirl_SetupWait(this); } else if ((talkState == TEXT_STATE_5) && Message_ShouldAdvance(play)) { - if (this->actor.textId == 0x2AD9) { // "Welcome..." - Flags_SetSwitch(play, this->actor.params); + if (this->actor.textId == 0x2AD9) { + Flags_SetSwitch(play, ENRECEPGIRL_GET_SWITCH_FLAG(&this->actor)); Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 10.0f); if (CHECK_WEEKEVENTREG(WEEKEVENTREG_63_80)) { @@ -156,11 +156,11 @@ void EnRecepgirl_Talk(EnRecepgirl* this, PlayState* play) { } } else if (this->actor.textId == 0x2ADC) { // hear directions again? Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_00AD98, 10.0f); - this->actor.textId = 0x2ADD; // "So..." + this->actor.textId = 0x2ADD; } else { Animation_MorphToPlayOnce(&this->skelAnime, &object_bg_Anim_000968, 10.0f); - if (this->actor.textId == 0x2ADD) { // "So..." + if (this->actor.textId == 0x2ADD) { this->actor.textId = 0x2ADE; // Mayor's office is on the left, drawing room on the right } else if (this->actor.textId == 0x2ADA) { // Mayor's office is on the left (meeting ongoing) this->actor.textId = 0x2ADB; // drawing room on the right diff --git a/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.h b/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.h index a0fba9fdc..96ad7522a 100644 --- a/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.h +++ b/src/overlays/actors/ovl_En_Recepgirl/z_en_recepgirl.h @@ -7,6 +7,8 @@ struct EnRecepgirl; typedef void (*EnRecepgirlActionFunc)(struct EnRecepgirl*, PlayState*); +#define ENRECEPGIRL_GET_SWITCH_FLAG(thisx) ((thisx)->params) + typedef struct EnRecepgirl { /* 0x000 */ Actor actor; /* 0x144 */ SkelAnime skelAnime; diff --git a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c index 33f79d4f2..2f429b975 100644 --- a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c +++ b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c @@ -264,7 +264,7 @@ u16 EnSGoro_ShrineGoron_NextTextId(EnSGoro* this, PlayState* play) { } } else { // Scene flag - Checks whether the chandelier has been lit - if (!Flags_GetSwitch(play, EN_S_GORO_SCENEFLAG_INDEX(&this->actor))) { + if (!Flags_GetSwitch(play, EN_S_GORO_GET_SWITCH_FLAG(&this->actor))) { if (player->transformation == PLAYER_FORM_GORON) { if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_36_08)) { if (this->textId == 0xD02) { diff --git a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h index 5777af17b..9e0cd7792 100644 --- a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h +++ b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.h @@ -5,7 +5,7 @@ #include "objects/object_oF1d_map/object_oF1d_map.h" #define EN_S_GORO_GET_MAIN_TYPE(thisx) ((thisx)->params & 0xF) -#define EN_S_GORO_SCENEFLAG_INDEX(thisx) (((thisx)->params & 0x7F0) >> 4) +#define EN_S_GORO_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F0) >> 4) struct EnSGoro; diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index e4240de0a..2c2e20e6a 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -617,8 +617,8 @@ s32 func_808A6580(EnSt* this, PlayState* play) { break; } } else { - if (ENST_GET_3F(&this->actor) != ENST_3F_63) { - Flags_SetSwitch(play, ENST_GET_3F(&this->actor)); + if (ENST_GET_SWITCH_FLAG(&this->actor) != 0x3F) { + Flags_SetSwitch(play, ENST_GET_SWITCH_FLAG(&this->actor)); } SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EN_STALTU_DEAD); Enemy_StartFinishingBlow(play, &this->actor); @@ -843,7 +843,7 @@ void EnSt_Init(Actor* thisx, PlayState* play) { EnSt* this = THIS; this->unk_2C0 = Object_GetSlot(&play->objectCtx, GAMEPLAY_KEEP); - if (((ENST_GET_3F(&this->actor) != ENST_3F_63) && Flags_GetSwitch(play, ENST_GET_3F(&this->actor))) || + if (((ENST_GET_SWITCH_FLAG(&this->actor) != 0x3F) && Flags_GetSwitch(play, ENST_GET_SWITCH_FLAG(&this->actor))) || (this->unk_2C0 < 0)) { Actor_Kill(&this->actor); return; diff --git a/src/overlays/actors/ovl_En_St/z_en_st.h b/src/overlays/actors/ovl_En_St/z_en_st.h index 0dcfb3d00..aab1204aa 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.h +++ b/src/overlays/actors/ovl_En_St/z_en_st.h @@ -7,10 +7,9 @@ struct EnSt; typedef void (*EnStActionFunc)(struct EnSt*, PlayState*); -#define ENST_GET_3F(thisx) (((thisx)->params & 0x3F) & 0xFF) +#define ENST_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x3F) & 0xFF) #define ENST_GET_1C0(thisx) ((((thisx)->params & 0x1C0) >> 6) & 0xFF) -#define ENST_3F_63 63 #define ENST_1C0_1 1 typedef enum EnStBodyPart { diff --git a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c index 15b7507e1..34ebe1d80 100644 --- a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c +++ b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c @@ -248,7 +248,7 @@ void EnTalkGibud_Init(Actor* thisx, PlayState* play) { this->isTalking = false; this->type = EN_TALK_GIBUD_TYPE_GIBDO; this->requestedItemIndex = EN_TALK_GIBUD_REQUESTED_ITEM_INDEX(thisx); - this->switchFlag = EN_TALK_GIBUD_SWITCH_FLAG(thisx); + this->switchFlag = EN_TALK_GIBUD_GET_SWITCH_FLAG(thisx); this->drawDmgEffAlpha = 0.0f; this->drawDmgEffScale = 0.0f; diff --git a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.h b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.h index 0819cd893..06ccd3914 100644 --- a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.h +++ b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.h @@ -5,7 +5,7 @@ #include "objects/object_rd/object_rd.h" #define EN_TALK_GIBUD_REQUESTED_ITEM_INDEX(thisx) ((thisx)->params & 0xF) -#define EN_TALK_GIBUD_SWITCH_FLAG(thisx) (((thisx)->params & 0xFF0) >> 4) +#define EN_TALK_GIBUD_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFF0) >> 4) struct EnTalkGibud; diff --git a/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.c b/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.c index a76d9ed47..d99ee0bce 100644 --- a/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.c +++ b/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.c @@ -161,7 +161,7 @@ void EnTimeTag_SoaringEngraving_Wait(EnTimeTag* this, PlayState* play) { this->actionFunc = EnTimeTag_SoaringEngraving_SubsequentInteraction; } } else if ((this->actor.xzDistToPlayer < 100.0f) && Player_IsFacingActor(&this->actor, 0x3000, play) && - (Flags_GetSwitch(play, TIMETAG_SOARING_GET_SWITCHFLAG(&this->actor)) || + (Flags_GetSwitch(play, TIMETAG_SOARING_GET_SWITCH_FLAG(&this->actor)) || CHECK_QUEST_ITEM(QUEST_SONG_SOARING))) { this->actor.flags |= ACTOR_FLAG_TARGETABLE; Actor_OfferTalk(&this->actor, play, 110.0f); diff --git a/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.h b/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.h index c022ca122..33f6d414e 100644 --- a/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.h +++ b/src/overlays/actors/ovl_En_Time_Tag/z_en_time_tag.h @@ -14,7 +14,7 @@ typedef void (*EnTimeTagActionFunc)(struct EnTimeTag*, PlayState*); #define TIMETAG_KICKOUT_HOUR(thisx) ((thisx)->home.rot.x) #define TIMETAG_KICKOUT_MINUTE(thisx) ((thisx)->home.rot.y) -#define TIMETAG_SOARING_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define TIMETAG_SOARING_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define TIMETAG_DIARY_GET_TYPE(thisx) ((thisx)->params & 0x7F) #define TIMETAG_DIARY_TIMER(thisx) ((thisx)->home.rot.x) diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 8afe73e5e..64a62f84a 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -204,10 +204,10 @@ void EnTk_Init(Actor* thisx, PlayState* play) { EnTk* this = THIS; this->unk_2B0 = ENTK_GET_F(&this->actor); - this->unk_2B1 = ENTK_GET_7F0(&this->actor); + this->switchFlag = ENTK_GET_SWITCH_FLAG(&this->actor); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, this->unk_2B1)) { + if (Flags_GetSwitch(play, this->switchFlag)) { if (this->unk_2B0 == 0) { Actor_Kill(&this->actor); return; @@ -562,7 +562,7 @@ void func_80AED610(EnTk* this, PlayState* play) { Message_StartTextbox(play, 0x13FD, &this->actor); } else if (CURRENT_DAY != 2) { func_80AED544(this, play); - } else if (!Flags_GetSwitch(play, ENTK_GET_7F0(&this->actor))) { + } else if (!Flags_GetSwitch(play, ENTK_GET_SWITCH_FLAG(&this->actor))) { Message_StartTextbox(play, 0x1403, &this->actor); } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_60_02)) { func_80AED544(this, play); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.h b/src/overlays/actors/ovl_En_Tk/z_en_tk.h index aa15c6fc6..46e9b0b96 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.h +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.h @@ -9,7 +9,7 @@ typedef void (*EnTkActionFunc)(struct EnTk*, PlayState*); typedef void (*EnTkUnkFunc)(struct EnTk*, PlayState*); #define ENTK_GET_F(thisx) ((thisx)->params & 0xF) -#define ENTK_GET_7F0(thisx) (((thisx)->params >> 4) & 0x7F) +#define ENTK_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 4) & 0x7F) #define ENTK_GET_PATH_INDEX(thisx) (((thisx)->params >> 0xB) & 0x1F) typedef struct EnTk { @@ -20,7 +20,7 @@ typedef struct EnTk { /* 0x1D8 */ Vec3s jointTable[18]; /* 0x244 */ Vec3s morphTable[18]; /* 0x2B0 */ s8 unk_2B0; - /* 0x2B1 */ s8 unk_2B1; + /* 0x2B1 */ s8 switchFlag; /* 0x2B4 */ Vec3f unk_2B4; /* 0x2C0 */ s16 unk_2C0; /* 0x2C2 */ s16 unk_2C2; diff --git a/src/overlays/actors/ovl_En_Toto/z_en_toto.c b/src/overlays/actors/ovl_En_Toto/z_en_toto.c index ce02cd835..12aaa808f 100644 --- a/src/overlays/actors/ovl_En_Toto/z_en_toto.c +++ b/src/overlays/actors/ovl_En_Toto/z_en_toto.c @@ -248,9 +248,9 @@ void func_80BA39C8(EnToto* this, PlayState* play) { if (Actor_ProcessTalkRequest(&this->actor, &play->state)) { func_80BA36C0(this, play, 1); if (play->sceneId != SCENE_SONCHONOIE) { - Flags_SetSwitch(play, this->actor.params & 0x7F); + Flags_SetSwitch(play, ENTOTO_GET_SWITCH_FLAG_1(&this->actor)); } else if (player->transformation == PLAYER_FORM_DEKU) { - Flags_SetSwitch(play, this->actor.home.rot.x); + Flags_SetSwitch(play, ENTOTO_GET_SWITCH_FLAG_3(&this->actor)); } this->unk2B6 = 0; return; @@ -268,7 +268,7 @@ void func_80BA39C8(EnToto* this, PlayState* play) { Actor_OfferTalk(&this->actor, play, 50.0f); if (play->sceneId == SCENE_SONCHONOIE) { if (player->transformation == PLAYER_FORM_DEKU) { - if (!Flags_GetSwitch(play, this->actor.home.rot.x)) { + if (!Flags_GetSwitch(play, ENTOTO_GET_SWITCH_FLAG_3(&this->actor))) { this->text = D_80BA5068; } else { this->text = D_80BA5074; @@ -278,7 +278,7 @@ void func_80BA39C8(EnToto* this, PlayState* play) { } } else if (ENTOTO_WEEK_EVENT_FLAGS) { this->text = D_80BA502C; - } else if (!Flags_GetSwitch(play, this->actor.params & 0x7F)) { + } else if (!Flags_GetSwitch(play, ENTOTO_GET_SWITCH_FLAG_1(&this->actor))) { this->text = D_80BA5034; } else { this->text = D_80BA5038; @@ -646,15 +646,15 @@ s32 func_80BA4B24(EnToto* this, PlayState* play) { player = GET_PLAYER(play); Animation_MorphToPlayOnce(&this->skelAnime, &object_zm_Anim_0028B8, -4.0f); if (player->transformation == PLAYER_FORM_ZORA) { - if (!Flags_GetSwitch(play, this->actor.params & 0x7F)) { - Flags_SetSwitch(play, this->actor.params & 0x7F); + if (!Flags_GetSwitch(play, ENTOTO_GET_SWITCH_FLAG_1(&this->actor))) { + Flags_SetSwitch(play, ENTOTO_GET_SWITCH_FLAG_1(&this->actor)); return 1; } else { return 3; } } else { - if (!Flags_GetSwitch(play, (this->actor.params >> 7) & 0x7F)) { - Flags_SetSwitch(play, (this->actor.params >> 7) & 0x7F); + if (!Flags_GetSwitch(play, ENTOTO_GET_SWITCH_FLAG_2(&this->actor))) { + Flags_SetSwitch(play, ENTOTO_GET_SWITCH_FLAG_2(&this->actor)); return 4; } else { return 7; diff --git a/src/overlays/actors/ovl_En_Toto/z_en_toto.h b/src/overlays/actors/ovl_En_Toto/z_en_toto.h index dc2b0947e..7a742d84a 100644 --- a/src/overlays/actors/ovl_En_Toto/z_en_toto.h +++ b/src/overlays/actors/ovl_En_Toto/z_en_toto.h @@ -8,6 +8,10 @@ struct EnToto; typedef void (*EnTotoActionFunc)(struct EnToto*, PlayState*); typedef s32 (*EnTotoUnkFunc)(struct EnToto*, PlayState*); +#define ENTOTO_GET_SWITCH_FLAG_1(thisx) ((thisx)->params & 0x7F) +#define ENTOTO_GET_SWITCH_FLAG_2(thisx) (((thisx)->params >> 7) & 0x7F) +#define ENTOTO_GET_SWITCH_FLAG_3(thisx) ((thisx)->home.rot.x) + typedef struct EnTotoText { /* 0x0 */ u8 unk0; /* 0x1 */ u8 unk1; diff --git a/src/overlays/actors/ovl_En_Water_Effect/z_en_water_effect.c b/src/overlays/actors/ovl_En_Water_Effect/z_en_water_effect.c index 6901fbffd..bc960b96b 100644 --- a/src/overlays/actors/ovl_En_Water_Effect/z_en_water_effect.c +++ b/src/overlays/actors/ovl_En_Water_Effect/z_en_water_effect.c @@ -13,6 +13,7 @@ */ #include "z_en_water_effect.h" +#include "overlays/actors/ovl_Bg_Ikana_Rotaryroom/z_bg_ikana_rotaryroom.h" #include "objects/object_water_effect/object_water_effect.h" #include "objects/gameplay_keep/gameplay_keep.h" @@ -414,7 +415,7 @@ void func_80A59C04(Actor* thisx, PlayState* play2) { this->unk_DC6--; } - if ((rotaryRoom != NULL) && Flags_GetSwitch(play, (rotaryRoom->params >> 1) & 0x7F)) { + if ((rotaryRoom != NULL) && Flags_GetSwitch(play, BGIKANAROTARYROOM_GET_SWITCH_FLAG_1(rotaryRoom))) { this->unk_DC6 = Rand_ZeroFloat(150.0f) + 100.0f; } else if (!Play_InCsMode(play)) { this->unk_DC4++; diff --git a/src/overlays/actors/ovl_En_Wiz/z_en_wiz.c b/src/overlays/actors/ovl_En_Wiz/z_en_wiz.c index 226382f8d..8ae7b0de4 100644 --- a/src/overlays/actors/ovl_En_Wiz/z_en_wiz.c +++ b/src/overlays/actors/ovl_En_Wiz/z_en_wiz.c @@ -336,7 +336,7 @@ void EnWiz_Init(Actor* thisx, PlayState* play) { Collider_InitAndSetJntSph(play, &this->ghostColliders, &this->actor, &sJntSphInit, this->ghostColliderElements); Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->staffFlameScroll = Rand_S16Offset(0, 7); - this->switchFlag = EN_WIZ_GET_SWITCHFLAG(&this->actor); + this->switchFlag = EN_WIZ_GET_SWITCH_FLAG(&this->actor); this->type = EN_WIZ_GET_TYPE(&this->actor); if (this->switchFlag == 0x7F) { diff --git a/src/overlays/actors/ovl_En_Wiz/z_en_wiz.h b/src/overlays/actors/ovl_En_Wiz/z_en_wiz.h index c0f1c7cfb..fa7156fc5 100644 --- a/src/overlays/actors/ovl_En_Wiz/z_en_wiz.h +++ b/src/overlays/actors/ovl_En_Wiz/z_en_wiz.h @@ -4,7 +4,7 @@ #include "global.h" #include "objects/object_wiz/object_wiz.h" -#define EN_WIZ_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define EN_WIZ_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define EN_WIZ_GET_TYPE(thisx) (((thisx)->params >> 8) & 0xFF) typedef enum { diff --git a/src/overlays/actors/ovl_En_Zot/z_en_zot.c b/src/overlays/actors/ovl_En_Zot/z_en_zot.c index e17f6dc94..57689ebd8 100644 --- a/src/overlays/actors/ovl_En_Zot/z_en_zot.c +++ b/src/overlays/actors/ovl_En_Zot/z_en_zot.c @@ -864,7 +864,7 @@ void func_80B98178(EnZot* this, PlayState* play) { textId = 0x12A6; SET_WEEKEVENTREG(WEEKEVENTREG_39_04); } - } else if (Flags_GetSwitch(play, this->actor.home.rot.z & 0x7F)) { + } else if (Flags_GetSwitch(play, ENZOT_GET_SWITCH_FLAG(&this->actor))) { textId = 0x12A0; } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_39_02)) { textId = 0x12A5; @@ -1173,7 +1173,7 @@ void func_80B98E10(EnZot* this, PlayState* play) { u16 textId; if (GET_PLAYER_FORM == PLAYER_FORM_ZORA) { - if (Flags_GetSwitch(play, this->actor.home.rot.z & 0x7F)) { + if (Flags_GetSwitch(play, ENZOT_GET_SWITCH_FLAG(&this->actor))) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_40_04)) { textId = 0x12C5; } else { @@ -1187,7 +1187,7 @@ void func_80B98E10(EnZot* this, PlayState* play) { SET_WEEKEVENTREG(WEEKEVENTREG_40_02); } } else { - if (Flags_GetSwitch(play, this->actor.home.rot.z & 0x7F)) { + if (Flags_GetSwitch(play, ENZOT_GET_SWITCH_FLAG(&this->actor))) { if (this->unk_2F2 & 0x10) { textId = 0x12BF; } else { diff --git a/src/overlays/actors/ovl_En_Zot/z_en_zot.h b/src/overlays/actors/ovl_En_Zot/z_en_zot.h index e2c43baa3..b6b67abb4 100644 --- a/src/overlays/actors/ovl_En_Zot/z_en_zot.h +++ b/src/overlays/actors/ovl_En_Zot/z_en_zot.h @@ -9,6 +9,7 @@ typedef void (*EnZotActionFunc)(struct EnZot*, PlayState*); #define ENZOT_GET_1F(thisx) ((thisx)->params & 0x1F) #define ENZOT_GET_PATH_INDEX(thisx) (((thisx)->params & 0xFC00) >> 0xA) +#define ENZOT_GET_SWITCH_FLAG(thisx) (((thisx)->home.rot.z) & 0x7F) #define ENZOT_PATH_INDEX_NONE 0x3F diff --git a/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.c b/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.c index c4e861ff6..d475a263e 100644 --- a/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.c +++ b/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.c @@ -92,7 +92,7 @@ void MirRay2_Init(Actor* thisx, PlayState* play) { this->actor.shape.rot.x = 0; this->actor.world.rot.x = this->actor.shape.rot.x; if (MIRRAY2_GET_F(thisx) != 1) { - if ((MIRRAY2_GET_SWITCH_FLAGS(thisx) != 0x7F) && !Flags_GetSwitch(play, MIRRAY2_GET_SWITCH_FLAGS(thisx))) { + if ((MIRRAY2_GET_SWITCH_FLAG(thisx) != 0x7F) && !Flags_GetSwitch(play, MIRRAY2_GET_SWITCH_FLAG(thisx))) { this->unk1A4 |= 1; } } @@ -109,7 +109,7 @@ void MirRay2_Update(Actor* thisx, PlayState* play) { MirRay2* this = THIS; if (this->unk1A4 & 1) { - if (Flags_GetSwitch(play, MIRRAY2_GET_SWITCH_FLAGS(thisx))) { + if (Flags_GetSwitch(play, MIRRAY2_GET_SWITCH_FLAG(thisx))) { this->unk1A4 &= ~1; } } else { diff --git a/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.h b/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.h index 4bb40d40d..7325ba2cf 100644 --- a/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.h +++ b/src/overlays/actors/ovl_Mir_Ray2/z_mir_ray2.h @@ -6,7 +6,7 @@ struct MirRay2; #define MIRRAY2_GET_F(thisx) ((thisx)->params & 0xF) -#define MIRRAY2_GET_SWITCH_FLAGS(thisx) (((thisx)->params & 0xFE00) >> 9) +#define MIRRAY2_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFE00) >> 9) typedef struct MirRay2 { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c b/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c index cec65a32c..d713c9d04 100644 --- a/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c +++ b/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c @@ -198,7 +198,7 @@ void ObjArmos_Init(Actor* thisx, PlayState* play) { if (sp40 == 0) { func_809A57D8(this); - } else if (Flags_GetSwitch(play, OBJARMOS_GET_7F(&this->dyna.actor))) { + } else if (Flags_GetSwitch(play, OBJARMOS_GET_SWITCH_FLAG(&this->dyna.actor))) { if (sp44 == OBJARMOS_ROT_7_0) { this->dyna.actor.world.pos.x = this->dyna.actor.home.pos.x + (sp40 * 60); func_809A57D8(this); @@ -285,7 +285,7 @@ void func_809A562C(ObjArmos* this, PlayState* play) { } } else { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); - Flags_SetSwitch(play, OBJARMOS_GET_7F(&this->dyna.actor)); + Flags_SetSwitch(play, OBJARMOS_GET_SWITCH_FLAG(&this->dyna.actor)); sp20 = true; } diff --git a/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.h b/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.h index 4ac83cc9d..af3b31338 100644 --- a/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.h +++ b/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.h @@ -8,7 +8,7 @@ struct ObjArmos; typedef void (*ObjArmosActionFunc)(struct ObjArmos*, PlayState*); -#define OBJARMOS_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJARMOS_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJARMOS_GET_ROTZ_7(thisx) ((thisx)->home.rot.z & 7) #define OBJARMOS_GET_ROTX_F(thisx) ((thisx)->home.rot.x & 0xF) diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 0ad12d3f3..9e6531ef1 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -275,14 +275,14 @@ s32 func_80937468(ObjBean* this, PlayState* play) { ObjBean* func_809374F8(ObjBean* this, PlayState* play) { Actor* bgActor = play->actorCtx.actorLists[ACTORCAT_BG].first; - s32 params = OBJBEAN_GET_3F80(&this->dyna.actor, 0); + s32 switchFlag = OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 0); while (bgActor != NULL) { if (bgActor->id == ACTOR_OBJ_BEAN) { s32 params2 = OBJBEAN_GET_C000(bgActor); if (!params2 && (bgActor->room == this->dyna.actor.room) && !OBJBEAN_GET_80(bgActor) && - (params == OBJBEAN_GET_7F(bgActor, 0)) && + (switchFlag == OBJBEAN_GET_SWITCH_FLAG_1(bgActor, 0)) && (Math3D_Vec3fDistSq(&bgActor->world.pos, &this->dyna.actor.world.pos) < SQ(10.0f))) { break; } @@ -406,12 +406,14 @@ void ObjBean_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->dyna.actor.shape, 0.0f, ActorShadow_DrawCircle, 8.8f); func_80936CF0(this, play); - if (!OBJBEAN_GET_80(&this->dyna.actor) && Flags_GetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 0)) && - !Flags_GetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 1)) && func_800FE9B4(play)) { - Flags_SetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 1)); + if (!OBJBEAN_GET_80(&this->dyna.actor) && + Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 0)) && + !Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 1)) && func_800FE9B4(play)) { + Flags_SetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 1)); } - if (OBJBEAN_GET_80(&this->dyna.actor) || Flags_GetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 1))) { + if (OBJBEAN_GET_80(&this->dyna.actor) || + Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 1))) { func_80938804(this); } else { DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); @@ -504,12 +506,12 @@ void func_80937DEC(ObjBean* this, PlayState* play) { this->unk_1FF = false; } - if (this->unk_1FF && !Flags_GetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 1)) && - Flags_GetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 0)) && func_800FE9B4(play)) { - Flags_SetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 1)); + if (this->unk_1FF && !Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 1)) && + Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 0)) && func_800FE9B4(play)) { + Flags_SetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 1)); } - if (this->unk_1FF && Flags_GetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 1))) { + if (this->unk_1FF && Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 1))) { Actor_Kill(&this->dyna.actor); return; } @@ -520,7 +522,7 @@ void func_80937DEC(ObjBean* this, PlayState* play) { this->dyna.actor.draw = func_80938E00; } - if (this->unk_1FF && Flags_GetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 0))) { + if (this->unk_1FF && Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 0))) { this->unk_1FE |= 5; func_80937C30(this); } else { @@ -528,7 +530,7 @@ void func_80937DEC(ObjBean* this, PlayState* play) { func_80937C10(this); } - if (Flags_GetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 0))) { + if (Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 0))) { this->unk_1E4 = 5; } else { this->unk_1E4 = 0; @@ -548,10 +550,10 @@ void func_80937FC8(ObjBean* this, PlayState* play) { if (Actor_ProcessTalkRequest(&this->dyna.actor, &play->state)) { if (Player_GetExchangeItemAction(play) == PLAYER_IA_MAGIC_BEANS) { func_809383B4(this); - Flags_SetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 0)); + Flags_SetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 0)); } - if (Flags_GetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 0))) { + if (Flags_GetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 0))) { this->unk_1E4 = 5; } else { s32 pad; @@ -566,7 +568,7 @@ void func_80937FC8(ObjBean* this, PlayState* play) { ((this->unk_1FF != 0) && (this->unk_1FE & 4) && (this->dyna.actor.xzDistToPlayer < 300.0f) && func_800FE9B4(play))) { func_809375C8(this, play); - Flags_SetSwitch(play, OBJBEAN_GET_3F80(&this->dyna.actor, 1)); + Flags_SetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_2(&this->dyna.actor, 1)); this->unk_1E4 = 6; func_80938670(this); } else if (this->unk_1FF != 0) { @@ -614,7 +616,7 @@ void func_80938298(ObjBean* this, PlayState* play) { if (this->unk_1E0 >= 3) { this->unk_1E4 = 3; - Flags_SetSwitch(play, OBJBEAN_GET_7F(&this->dyna.actor, 0)); + Flags_SetSwitch(play, OBJBEAN_GET_SWITCH_FLAG_1(&this->dyna.actor, 0)); this->unk_1E4 = 5; func_8093833C(this); } else if (this->unk_1E4 == 4) { diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h index 1a22de390..f21610891 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.h @@ -8,10 +8,10 @@ struct ObjBean; typedef void (*ObjBeanActionFunc)(struct ObjBean*, PlayState*); typedef void (*ObjBeanUnkFunc)(struct ObjBean*); -#define OBJBEAN_GET_7F(thisx, x) (((thisx)->params + (x)) & 0x7F) +#define OBJBEAN_GET_SWITCH_FLAG_1(thisx, offset) (((thisx)->params + (offset)) & 0x7F) #define OBJBEAN_GET_80(thisx) (((thisx)->params >> 7) & 1) #define OBJBEAN_GET_3F00(thisx) (((thisx)->params >> 8) & 0x3F) -#define OBJBEAN_GET_3F80(thisx, x) ((((thisx)->params >> 7) + (x)) & 0x7F) +#define OBJBEAN_GET_SWITCH_FLAG_2(thisx, offset) ((((thisx)->params >> 7) + (offset)) & 0x7F) #define OBJBEAN_GET_C000(thisx) (((thisx)->params >> 0xE) & 3) #define OBJBEAN_GET_3(thisx) ((thisx)->home.rot.z & 3) diff --git a/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c b/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c index 61805fd49..afcf7aaa0 100644 --- a/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c +++ b/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c @@ -111,7 +111,7 @@ void ObjBigicicle_Init(Actor* thisx, PlayState* play) { } Actor_SetScale(&this->actor, sp28 * 0.001f); - this->actor.params &= 0xFF; + this->actor.params = OBJBIGICLE_GET_SWITCH_FLAG_MASK(&this->actor); this->actor.colChkInfo.mass = MASS_IMMOVABLE; sp30 = sp28 * (1.0f / 60.0f); @@ -125,7 +125,7 @@ void ObjBigicicle_Init(Actor* thisx, PlayState* play) { this->collider2.dim.height = this->collider2.dim.height * sp30; this->collider2.dim.yShift = this->collider2.dim.yShift * sp30; - if (Flags_GetSwitch(play, this->actor.params)) { + if (Flags_GetSwitch(play, OBJBIGICLE_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -248,7 +248,7 @@ void func_80AE9258(ObjBigicicle* this, PlayState* play) { temp_f0 = this->actor.world.pos.y - icePoly->actor.world.pos.y; if ((temp_f0 < icePoly->colliders1[0].dim.height) && (temp_f0 > 0.0f) && (Actor_WorldDistXZToActor(&this->actor, &icePoly->actor) < icePoly->colliders1[0].dim.radius)) { - Flags_SetSwitch(play, this->actor.params); + Flags_SetSwitch(play, OBJBIGICLE_GET_SWITCH_FLAG(&this->actor)); this->actionFunc = func_80AE939C; return; } diff --git a/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.h b/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.h index 2eb5a00bd..fc506e62b 100644 --- a/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.h +++ b/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.h @@ -7,6 +7,8 @@ struct ObjBigicicle; typedef void (*ObjBigicicleActionFunc)(struct ObjBigicicle*, PlayState*); +#define OBJBIGICLE_GET_SWITCH_FLAG_MASK(thisx) ((thisx)->params & 0xFF) +#define OBJBIGICLE_GET_SWITCH_FLAG(thisx) ((thisx)->params) #define OBJBIGICLE_GET_FF00(thisx) (((thisx)->params >> 8) & 0xFF) typedef struct ObjBigicicle { diff --git a/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c b/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c index a4f44973f..f21ebff2b 100644 --- a/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c +++ b/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c @@ -32,7 +32,7 @@ ActorInit Obj_Blockstop_InitVars = { void ObjBlockstop_Init(Actor* thisx, PlayState* play) { ObjBlockstop* this = THIS; - if (Flags_GetSwitch(play, this->actor.params)) { + if (Flags_GetSwitch(play, OBJBLOCKSTOP_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); } this->actionFunc = ObjBlockstop_CheckForBlock; @@ -58,7 +58,7 @@ void ObjBlockstop_CheckForBlock(ObjBlockstop* this, PlayState* play) { void ObjBlockstop_TryPlayCutscene(ObjBlockstop* this, PlayState* play) { if (CutsceneManager_IsNext(this->actor.csId)) { - Flags_SetSwitch(play, this->actor.params); + Flags_SetSwitch(play, OBJBLOCKSTOP_GET_SWITCH_FLAG(&this->actor)); if (CutsceneManager_GetLength(this->actor.csId) != -1) { CutsceneManager_StartWithPlayerCs(this->actor.csId, &this->actor); } diff --git a/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.h b/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.h index 15d45a90b..e6ad9f696 100644 --- a/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.h +++ b/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.h @@ -7,6 +7,8 @@ struct ObjBlockstop; typedef void (*ObjBlockstopActionFunc)(struct ObjBlockstop*, PlayState*); +#define OBJBLOCKSTOP_GET_SWITCH_FLAG(thisx) ((thisx)->params) + typedef struct ObjBlockstop { /* 0x000 */ Actor actor; /* 0x144 */ ObjBlockstopActionFunc actionFunc; diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c index a2ecc448e..95ff47db2 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c @@ -182,7 +182,7 @@ void ObjBombiwa_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, OBJBOMBIWA_GET_7F(&this->actor))) { + if (Flags_GetSwitch(play, OBJBOMBIWA_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -342,7 +342,7 @@ void func_80939EF4(ObjBombiwa* this, PlayState* play) { } if (sp28->unk_0C(&this->actor)) { - Flags_SetSwitch(play, OBJBOMBIWA_GET_7F(&this->actor)); + Flags_SetSwitch(play, OBJBOMBIWA_GET_SWITCH_FLAG(&this->actor)); SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 80, NA_SE_EV_WALL_BROKEN); if (OBJBOMBIWA_GET_8000(&this->actor)) { Audio_PlaySfx(NA_SE_SY_CORRECT_CHIME); diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h index b49a89323..911d804fc 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h @@ -7,7 +7,7 @@ struct ObjBombiwa; typedef void (*ObjBombiwaActionFunc)(struct ObjBombiwa*, PlayState*); -#define OBJBOMBIWA_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJBOMBIWA_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJBOMBIWA_GET_100(thisx) (((thisx)->params >> 8) & 1) #define OBJBOMBIWA_GET_8000(thisx) (((thisx)->params >> 0xF) & 1) diff --git a/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c b/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c index fde4fa4b3..8f326af48 100644 --- a/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c +++ b/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c @@ -191,7 +191,7 @@ void ObjChan_InitChandelier(ObjChan* this, PlayState* play) { } } - if (Flags_GetSwitch(play, thisx->params & 0x7F)) { + if (Flags_GetSwitch(play, OBJCHAN_GET_SWITCH_FLAG(thisx))) { this->stateFlags |= OBJCHAN_STATE_FIRE_DELAY; this->stateFlags |= OBJCHAN_STATE_ON_FIRE; @@ -261,9 +261,9 @@ void ObjChan_ChandelierAction(ObjChan* this, PlayState* play) { } } if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x800)) { - Flags_SetSwitch(play, thisx->params & 0x7F); + Flags_SetSwitch(play, OBJCHAN_GET_SWITCH_FLAG(thisx)); } - if (Flags_GetSwitch(play, thisx->params & 0x7F)) { + if (Flags_GetSwitch(play, OBJCHAN_GET_SWITCH_FLAG(thisx))) { if (!(this->stateFlags & OBJCHAN_STATE_FIRE_DELAY)) { this->rotationSpeed = 0; this->flameSize = 0.0f; diff --git a/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.h b/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.h index 0e6fbca86..f97ecccda 100644 --- a/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.h +++ b/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.h @@ -5,6 +5,8 @@ struct ObjChan; +#define OBJCHAN_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) + #define OBJCHAN_SUBTYPE(thisx) (((thisx)->params >> 12) & 0xF) #define OBJCHAN_SUBTYPE_CHANDELIER 0 #define OBJCHAN_SUBTYPE_POT 1 diff --git a/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.c b/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.c index ee76dd9d4..a809da57a 100644 --- a/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.c +++ b/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.c @@ -32,8 +32,8 @@ ActorInit Obj_Demo_InitVars = { void ObjDemo_Init(Actor* thisx, PlayState* play) { ObjDemo* this = THIS; - thisx->params = OBJDEMO_GET_FF(thisx); - if ((thisx->params != OBJDEMO_FF_FF) && (Flags_GetSwitch(play, thisx->params))) { + thisx->params = OBJDEMO_GET_SWITCH_FLAG_MASK(thisx); + if ((OBJDEMO_GET_SWITCH_FLAG(thisx) != 0xFF) && (Flags_GetSwitch(play, OBJDEMO_GET_SWITCH_FLAG(thisx)))) { Actor_Kill(&this->actor); return; } @@ -93,8 +93,8 @@ void func_80983704(ObjDemo* this, PlayState* play) { } this->actor.csId = CutsceneManager_GetAdditionalCsId(this->actor.csId); if (this->actor.csId == CS_ID_NONE) { - if (this->actor.params != 0xFF) { - Flags_SetSwitch(play, this->actor.params); + if (OBJDEMO_GET_SWITCH_FLAG(&this->actor) != 0xFF) { + Flags_SetSwitch(play, OBJDEMO_GET_SWITCH_FLAG(&this->actor)); } Actor_Kill(&this->actor); } @@ -108,7 +108,8 @@ void func_80983704(ObjDemo* this, PlayState* play) { void ObjDemo_Update(Actor* thisx, PlayState* play) { ObjDemo* this = THIS; - if ((this->actor.params != 0xFF) && Flags_GetSwitch(play, this->actor.params)) { + if ((OBJDEMO_GET_SWITCH_FLAG(&this->actor) != 0xFF) && + Flags_GetSwitch(play, OBJDEMO_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.h b/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.h index 065a21fe9..6b9d39db3 100644 --- a/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.h +++ b/src/overlays/actors/ovl_Obj_Demo/z_obj_demo.h @@ -3,12 +3,13 @@ #include "global.h" -#define OBJDEMO_GET_FF(thisx) ((thisx)->params & 0xFF) -#define OBJDEMO_FF_FF 0xFF struct ObjDemo; typedef void (*ObjDemoActionFunc)(struct ObjDemo*, PlayState*); +#define OBJDEMO_GET_SWITCH_FLAG_MASK(thisx) ((thisx)->params & 0xFF) +#define OBJDEMO_GET_SWITCH_FLAG(thisx) ((thisx)->params) + typedef struct ObjDemo { /* 0x000 */ Actor actor; /* 0x144 */ ObjDemoActionFunc actionFunc; diff --git a/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.c b/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.c index c1b46fce7..ac31cbc64 100644 --- a/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.c +++ b/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.c @@ -131,7 +131,7 @@ void ObjDhouse_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); - if (Flags_GetSwitch(play, OBJDHOUSE_GET_7F(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJDHOUSE_GET_SWITCH_FLAG(&this->dyna.actor))) { this->dyna.actor.draw = func_80B13E40; func_80B13908(this); } else { @@ -434,7 +434,7 @@ void func_80B13940(ObjDhouse* this, PlayState* play2) { PlayState* play = play2; s32 sp20 = false; - if (Flags_GetSwitch(play, OBJDHOUSE_GET_7F(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJDHOUSE_GET_SWITCH_FLAG(&this->dyna.actor))) { sp20 = true; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_EXPLSION_LONG); } diff --git a/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.h b/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.h index c03dbed7d..46f1af83b 100644 --- a/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.h +++ b/src/overlays/actors/ovl_Obj_Dhouse/z_obj_dhouse.h @@ -7,7 +7,7 @@ struct ObjDhouse; typedef void (*ObjDhouseActionFunc)(struct ObjDhouse*, PlayState*); -#define OBJDHOUSE_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJDHOUSE_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef struct { /* 0x00 */ Vec3f unk_00; diff --git a/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.c b/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.c index 771833c58..9933b36f2 100644 --- a/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.c +++ b/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.c @@ -88,7 +88,7 @@ void func_80A4CABC(ObjFireshield* this) { s32 pad; if (CutsceneManager_IsNext(this->actor.csId)) { - s32 sp18 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 sp18 = OBJFIRESHIELD_GET_FLAGS(&this->actor); s32 temp_a0 = (sp18 & ~0x1F) >> 5; CutsceneManager_StartWithPlayerCs(this->actor.csId, &this->actor); @@ -103,7 +103,7 @@ void func_80A4CABC(ObjFireshield* this) { void func_80A4CB7C(ObjFireshield* this) { s32 pad; - s32 sp18 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 sp18 = OBJFIRESHIELD_GET_FLAGS(&this->actor); if (this->unk_194 > 0) { if (this->unk_194 == 20) { @@ -119,7 +119,7 @@ void func_80A4CB7C(ObjFireshield* this) { } void func_80A4CC54(ObjFireshield* this) { - s32 temp_v0 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 temp_v0 = OBJFIRESHIELD_GET_FLAGS(&this->actor); s32 temp_v1 = 1 << (temp_v0 & 0x1F); this->actionFunc = func_80A4CCBC; @@ -128,7 +128,7 @@ void func_80A4CC54(ObjFireshield* this) { } void func_80A4CCBC(ObjFireshield* this) { - s32 temp_v0 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 temp_v0 = OBJFIRESHIELD_GET_FLAGS(&this->actor); this->actionFunc = func_80A4CD28; D_80A4D884[(temp_v0 & ~0x1F) >> 5] &= ~(1 << (temp_v0 & 0x1F)); @@ -141,7 +141,7 @@ void func_80A4CD28(ObjFireshield* this) { void func_80A4CD34(Actor* thisx, PlayState* play) { s32 pad; ObjFireshield* this = THIS; - s32 sp24 = Flags_GetSwitch(play, OBJFIRESHIELD_GET_7F(&this->actor)); + s32 isSwitchFlagSet = Flags_GetSwitch(play, OBJFIRESHIELD_GET_FLAGS(&this->actor)); s32 phi_v1; s32 phi_a0; @@ -154,13 +154,13 @@ void func_80A4CD34(Actor* thisx, PlayState* play) { phi_a0 = false; } } else { - phi_a0 = Flags_GetSwitch(play, OBJFIRESHIELD_GET_3F80(&this->actor)); + phi_a0 = Flags_GetSwitch(play, OBJFIRESHIELD_GET_SWITCH_FLAG(&this->actor)); phi_v1 = false; } if (phi_v1 || phi_a0) { this->unk_19C = 0; - } else if (sp24) { + } else if (isSwitchFlagSet) { this->unk_19C = 0; } else { this->unk_19C = 1; @@ -175,7 +175,7 @@ void func_80A4CD34(Actor* thisx, PlayState* play) { void func_80A4CE28(ObjFireshield* this, PlayState* play) { s32 pad; - s32 sp30 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 sp30 = OBJFIRESHIELD_GET_FLAGS(&this->actor); s32 pad2[2]; s32 sp24; s32 sp20; @@ -189,7 +189,7 @@ void func_80A4CE28(ObjFireshield* this, PlayState* play) { sp20 = false; } } else { - sp20 = Flags_GetSwitch(play, OBJFIRESHIELD_GET_3F80(&this->actor)); + sp20 = Flags_GetSwitch(play, OBJFIRESHIELD_GET_SWITCH_FLAG(&this->actor)); sp24 = false; } @@ -251,7 +251,7 @@ void func_80A4CE28(ObjFireshield* this, PlayState* play) { } void func_80A4D174(ObjFireshield* this) { - s32 temp_v0 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 temp_v0 = OBJFIRESHIELD_GET_FLAGS(&this->actor); s32 temp_v1 = 1 << (temp_v0 & 0x1F); if (!(D_80A4D864[(temp_v0 & ~0x1F) >> 5] & temp_v1)) { @@ -318,7 +318,7 @@ void ObjFireshield_Update(Actor* thisx, PlayState* play) { s32 pad; ObjFireshield* this = THIS; s32 sp44 = OBJFIRESHIELD_GET_ROTX(&this->actor); - s32 sp40 = OBJFIRESHIELD_GET_7F(&this->actor); + s32 sp40 = OBJFIRESHIELD_GET_FLAGS(&this->actor); s32 temp_a0; s32 temp_v1; diff --git a/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.h b/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.h index ffe1d7a35..772f839bb 100644 --- a/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.h +++ b/src/overlays/actors/ovl_Obj_Fireshield/z_obj_fireshield.h @@ -7,10 +7,10 @@ struct ObjFireshield; typedef void (*ObjFireshieldActionFunc)(struct ObjFireshield*); -#define OBJFIRESHIELD_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJFIRESHIELD_GET_FLAGS(thisx) ((thisx)->params & 0x7F) #define OBJFIRESHIELD_GET_1F00(thisx) (((thisx)->params >> 8) & 0x1F) #define OBJFIRESHIELD_GET_2000(thisx) (((thisx)->params >> 0xD) & 1) -#define OBJFIRESHIELD_GET_3F80(thisx) (((thisx)->params >> 7) & 0x7F) +#define OBJFIRESHIELD_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 7) & 0x7F) #define OBJFIRESHIELD_GET_C000(thisx) (((thisx)->params >> 0xE) & 3) #define OBJFIRESHIELD_GET_ROTX(thisx) ((thisx)->home.rot.x & 1) diff --git a/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.c b/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.c index 6db03e1ca..8802a257d 100644 --- a/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.c +++ b/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.c @@ -112,7 +112,7 @@ void ObjHakaisi_Init(Actor* thisx, PlayState* play) { this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp7C); this->unk_19A = 0; this->unk_198 = 0; - this->switchFlag = OBJHAKAISI_GET_SWITCHFLAG(thisx); + this->switchFlag = OBJHAKAISI_GET_SWITCH_FLAG(thisx); this->csId = this->dyna.actor.csId; if (this->switchFlag == 0xFF) { diff --git a/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.h b/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.h index 1454181dd..7ee84768a 100644 --- a/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.h +++ b/src/overlays/actors/ovl_Obj_Hakaisi/z_obj_hakaisi.h @@ -8,7 +8,7 @@ struct ObjHakaisi; typedef void (*ObjHakaisiActionFunc)(struct ObjHakaisi*, PlayState*); #define OBJHAKAISI_GET_FF(thisx) ((thisx)->params & 0xFF) -#define OBJHAKAISI_GET_SWITCHFLAG(thisx) (((thisx)->params & 0xFF00) >> 8) +#define OBJHAKAISI_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0xFF00) >> 8) typedef struct ObjHakaisi { /* 0x000 */ DynaPolyActor dyna; diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c index f9d1f0252..5ccbf3d50 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c @@ -180,7 +180,7 @@ void ObjHamishi_Init(Actor* thisx, PlayState* play) { func_809A13A0(this, play); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 2.3f); - if (Flags_GetSwitch(play, OBJHAMISHI_GET_SWITCHFLAG(&this->actor))) { + if (Flags_GetSwitch(play, OBJHAMISHI_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -232,7 +232,7 @@ void ObjHamishi_Update(Actor* thisx, PlayState* play) { } else { func_809A10F4(this, play); SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EV_WALL_BROKEN); - Flags_SetSwitch(play, OBJHAMISHI_GET_SWITCHFLAG(&this->actor)); + Flags_SetSwitch(play, OBJHAMISHI_GET_SWITCH_FLAG(&this->actor)); Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.h b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.h index 962a59612..48ea889d5 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.h +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.h @@ -5,7 +5,7 @@ struct ObjHamishi; -#define OBJHAMISHI_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define OBJHAMISHI_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef struct ObjHamishi { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.c b/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.c index 5c63e0561..3dde506b9 100644 --- a/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.c +++ b/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.c @@ -44,7 +44,7 @@ void ObjHsStump_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); this->isHidden = OBJHSSTUMP_GET_ISHIDDEN(thisx); - this->switchFlag = OBJHSSTUMP_GET_SWITCHFLAG(thisx); + this->switchFlag = OBJHSSTUMP_GET_SWITCH_FLAG(thisx); DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); DynaPolyActor_LoadMesh(play, &this->dyna, &object_hsstump_Colheader_0011B0); switch (this->isHidden) { @@ -71,7 +71,7 @@ void ObjHsStump_SetupIdle(ObjHsStump* this, PlayState* play) { } void ObjHsStump_Idle(ObjHsStump* this, PlayState* play) { - if (this->isHidden == true && Flags_GetSwitch(play, this->switchFlag)) { + if ((this->isHidden == true) && Flags_GetSwitch(play, this->switchFlag)) { ObjHsStump_SetupAppear(this, play); } } diff --git a/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.h b/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.h index 0f06fdfaf..479e17207 100644 --- a/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.h +++ b/src/overlays/actors/ovl_Obj_HsStump/z_obj_hsstump.h @@ -3,7 +3,7 @@ #include "global.h" -#define OBJHSSTUMP_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define OBJHSSTUMP_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJHSSTUMP_GET_ISHIDDEN(thisx) (((thisx)->params >> 12) & 0xF) struct ObjHsStump; diff --git a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c index 40e8b9323..5cced7f48 100644 --- a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c +++ b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c @@ -78,7 +78,7 @@ void ObjHsblock_Init(Actor* thisx, PlayState* play) { func_8093E03C(this); break; case 1: - if (Flags_GetSwitch(play, OBJHSBLOCK_GET_SWITCH(thisx))) { + if (Flags_GetSwitch(play, OBJHSBLOCK_GET_SWITCH_FLAG(thisx))) { func_8093E03C(this); } else { func_8093E05C(this); @@ -106,7 +106,7 @@ void func_8093E05C(ObjHsblock* this) { } void func_8093E0A0(ObjHsblock* this, PlayState* play) { - if (Flags_GetSwitch(play, OBJHSBLOCK_GET_SWITCH(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJHSBLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { func_8093E0E8(this); } } diff --git a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.h b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.h index f91926409..ca2d81c63 100644 --- a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.h +++ b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.h @@ -3,7 +3,7 @@ #include "global.h" -#define OBJHSBLOCK_GET_SWITCH(thisx) (((thisx)->params >> 8) & 0x7F) +#define OBJHSBLOCK_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define OBJHSBLOCK_GET_3(thisx) ((thisx)->params & 3) #define OBJHSBLOCK_GET_5(thisx) (((thisx)->params >> 5) & 1) #define OBJHSBLOCK_GET_6(thisx) (((thisx)->params >> 6) & 3) diff --git a/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c b/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c index b04dff8a0..a2b376a28 100644 --- a/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c +++ b/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c @@ -340,7 +340,7 @@ void ObjHugebombiwa_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, ENHUGEBOMBIWA_GET_7F(&this->actor))) { + if (Flags_GetSwitch(play, ENHUGEBOMBIWA_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } @@ -409,19 +409,19 @@ void func_80A54CEC(ObjHugebombiwa* this, PlayState* play) { if (CutsceneManager_IsNext(this->actor.csId)) { CutsceneManager_StartWithPlayerCs(this->actor.csId, &this->actor); - Flags_SetSwitch(play, ENHUGEBOMBIWA_GET_7F(&this->actor)); - if (!(ENHUGEBOMBIWA_GET_100(&this->actor)) && + Flags_SetSwitch(play, ENHUGEBOMBIWA_GET_SWITCH_FLAG(&this->actor)); + if (!ENHUGEBOMBIWA_GET_100(&this->actor) && ((play->sceneId == SCENE_17SETUGEN) || (play->sceneId == SCENE_17SETUGEN2))) { SET_WEEKEVENTREG(WEEKEVENTREG_19_02); } - if (!(ENHUGEBOMBIWA_GET_100(&this->actor))) { + if (!ENHUGEBOMBIWA_GET_100(&this->actor)) { SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 80, NA_SE_EV_WALL_BROKEN); } else { SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 80, NA_SE_EV_SNOWBALL_BROKEN); } - if (!(ENHUGEBOMBIWA_GET_100(&this->actor))) { + if (!ENHUGEBOMBIWA_GET_100(&this->actor)) { func_80A53BE0(play, &this->actor.world.pos); func_80A54E10(this); } else { diff --git a/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.h b/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.h index 932a61c3d..bb34c5013 100644 --- a/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.h +++ b/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.h @@ -7,7 +7,7 @@ struct ObjHugebombiwa; typedef void (*ObjHugebombiwaActionFunc)(struct ObjHugebombiwa*, PlayState*); -#define ENHUGEBOMBIWA_GET_7F(thisx) ((thisx)->params & 0x7F) +#define ENHUGEBOMBIWA_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define ENHUGEBOMBIWA_GET_100(thisx) (((thisx)->params >> 8) & 1) typedef struct { diff --git a/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.c b/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.c index f44033861..8ee8520ed 100644 --- a/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.c +++ b/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.c @@ -65,20 +65,20 @@ static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP), }; -s32 func_80B9C450(PlayState* play, s32 arg1, s32 arg2) { +s32 func_80B9C450(PlayState* play, s32 switchFlagBase, s32 arg2) { s32 sp2C = 1; if (arg2 < ARRAY_COUNT(D_80B9DC70)) { - s32 val = D_80B9DC70[arg2].unk_00; + s32 switchFlagOffset = D_80B9DC70[arg2].unk_00; s32 val3 = D_80B9DC70[arg2].unk_01; - while (val--) { - if ((1 << val) & val3) { - if (!Flags_GetSwitch(play, arg1 + val)) { + while (switchFlagOffset--) { + if ((1 << switchFlagOffset) & val3) { + if (!Flags_GetSwitch(play, switchFlagBase + switchFlagOffset)) { sp2C = 0; break; } - } else if (Flags_GetSwitch(play, arg1 + val)) { + } else if (Flags_GetSwitch(play, switchFlagBase + switchFlagOffset)) { sp2C = 0; break; } @@ -87,23 +87,26 @@ s32 func_80B9C450(PlayState* play, s32 arg1, s32 arg2) { sp2C = 0; switch (arg2) { case 14: - if (!Flags_GetSwitch(play, arg1)) { + if (!Flags_GetSwitch(play, switchFlagBase)) { sp2C = 1; } - if (Flags_GetSwitch(play, arg1 + 1) && Flags_GetSwitch(play, arg1 + 2) && - Flags_GetSwitch(play, arg1 + 3)) { + if (Flags_GetSwitch(play, switchFlagBase + 1) && Flags_GetSwitch(play, switchFlagBase + 2) && + Flags_GetSwitch(play, switchFlagBase + 3)) { sp2C += 2; } break; case 15: - if (!Flags_GetSwitch(play, arg1) || - (Flags_GetSwitch(play, arg1 + 1) && Flags_GetSwitch(play, arg1 + 2) && - Flags_GetSwitch(play, arg1 + 3))) { + if (!Flags_GetSwitch(play, switchFlagBase) || + (Flags_GetSwitch(play, switchFlagBase + 1) && Flags_GetSwitch(play, switchFlagBase + 2) && + Flags_GetSwitch(play, switchFlagBase + 3))) { sp2C = 1; } break; + + default: + break; } } return sp2C; @@ -204,7 +207,7 @@ void ObjHunsui_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); this->unk_160 = OBJHUNSUI_GET_F000(thisx); this->unk_164 = OBJHUNSUI_GET_F80(thisx); - this->unk_168 = OBJHUNSUI_GET_7F(thisx); + this->switchFlag = OBJHUNSUI_GET_SWITCH_FLAG(thisx); DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); if ((this->unk_160 != OBJHUNSUI_F000_5) && (this->unk_160 != OBJHUNSUI_F000_6)) { @@ -279,7 +282,7 @@ void ObjHunsui_Init(Actor* thisx, PlayState* play) { case OBJHUNSUI_F000_1: this->dyna.actor.draw = func_80B9DA60; - if ((this->unk_172 & 1) && func_80B9C450(play, this->unk_168, this->unk_164)) { + if ((this->unk_172 & 1) && func_80B9C450(play, this->switchFlag, this->unk_164)) { this->unk_174 = 240.0f; this->unk_172 |= 4; this->unk_184 = 0xFF0; @@ -289,7 +292,7 @@ void ObjHunsui_Init(Actor* thisx, PlayState* play) { this->unk_184 = 0; } this->unk_178 = this->unk_174; - this->unk_180 = func_80B9C450(play, this->unk_168, this->unk_164); + this->unk_180 = func_80B9C450(play, this->switchFlag, this->unk_164); this->actionFunc = func_80B9CE64; break; @@ -304,7 +307,7 @@ void ObjHunsui_Init(Actor* thisx, PlayState* play) { func_80B9D2BC(this, play); this->unk_178 = this->unk_174; } else { - if ((this->unk_172 & 1) || func_80B9C450(play, this->unk_168, this->unk_164)) { + if ((this->unk_172 & 1) || func_80B9C450(play, this->switchFlag, this->unk_164)) { func_80B9D4D0(this, play); } else { func_80B9D0FC(this, play); @@ -351,7 +354,7 @@ void func_80B9CE64(ObjHunsui* this, PlayState* play) { this->unk_18A += 0x71C; Math_SmoothStepToF(&this->unk_190, this->unk_194, 1.0f, 0.2f, 0.01f); - sp2C = func_80B9C450(play, this->unk_168, this->unk_164); + sp2C = func_80B9C450(play, this->switchFlag, this->unk_164); if (!(this->unk_172 & 1)) { if (sp2C != this->unk_180) { @@ -446,7 +449,7 @@ void func_80B9D120(ObjHunsui* this, PlayState* play) { this->unk_172 |= 2; } - if (func_80B9C450(play, this->unk_168, this->unk_164)) { + if (func_80B9C450(play, this->switchFlag, this->unk_164)) { this->csId = this->csIdList[0]; this->unk_172 |= 0x40; func_80B9D4D0(this, play); @@ -463,7 +466,7 @@ s32 func_80B9D288(PlayState* play, Actor* thisx, Actor* iter, void* verifyData) } void func_80B9D2BC(ObjHunsui* this, PlayState* play) { - if ((this->unk_172 & 1) || func_80B9C450(play, this->unk_168, this->unk_164)) { + if ((this->unk_172 & 1) || func_80B9C450(play, this->switchFlag, this->unk_164)) { func_80B9D4D0(this, play); } else { this->unk_172 |= 2; @@ -559,7 +562,7 @@ void func_80B9D508(ObjHunsui* this, PlayState* play) { this->unk_1B0 += -8.0f + (0.9f * (this->dyna.actor.world.pos.y - this->dyna.actor.prevPos.y)); } - if (!(this->unk_172 & 1) && !func_80B9C450(play, this->unk_168, this->unk_164)) { + if (!(this->unk_172 & 1) && !func_80B9C450(play, this->switchFlag, this->unk_164)) { this->csId = this->csIdList[0]; this->unk_172 |= 0x40; func_80B9D0FC(this, play); @@ -576,7 +579,7 @@ void func_80B9D714(ObjHunsui* this, PlayState* play) { (this->unk_16D != play->roomCtx.curRoom.num) && (this->unk_16D != play->roomCtx.prevRoom.num)) { Actor_Kill(&this->dyna.actor); } else { - if (Flags_GetSwitch(play, this->unk_168)) { + if (Flags_GetSwitch(play, this->switchFlag)) { this->unk_172 &= ~2; this->unk_172 |= 0x10; csId = this->dyna.actor.csId; @@ -600,7 +603,7 @@ void func_80B9D714(ObjHunsui* this, PlayState* play) { if (Math_SmoothStepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y + 800.0f, 0.1f, 8.0f, 1.0f) < 0.5f) { if (DECR(this->unk_16E) == 0) { - Flags_UnsetSwitch(play, this->unk_168); + Flags_UnsetSwitch(play, this->switchFlag); } } this->dyna.actor.velocity.y = this->dyna.actor.world.pos.y - this->dyna.actor.prevPos.y; diff --git a/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.h b/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.h index 1f0450b28..a0b42a648 100644 --- a/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.h +++ b/src/overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.h @@ -8,7 +8,7 @@ struct ObjHunsui; typedef void (*ObjHunsuiActionFunc)(struct ObjHunsui*, PlayState*); -#define OBJHUNSUI_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJHUNSUI_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJHUNSUI_GET_F80(thisx) (((thisx)->params >> 7) & 0x1F) #define OBJHUNSUI_GET_F000(thisx) (((thisx)->params >> 0xC) & 0xF) @@ -27,7 +27,7 @@ typedef struct ObjHunsui { /* 0x15C */ ObjHunsuiActionFunc actionFunc; /* 0x160 */ s16 unk_160; /* 0x164 */ s32 unk_164; - /* 0x168 */ s32 unk_168; + /* 0x168 */ s32 switchFlag; /* 0x16C */ s8 unk_16C; /* 0x16D */ s8 unk_16D; /* 0x16E */ s8 unk_16E; diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c index 9b3a08bda..8df527f37 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c @@ -81,7 +81,7 @@ void ObjIcePoly_Init(Actor* thisx, PlayState* play) { ObjIcePoly* this = THIS; s32 i; - this->unk_149 = OBJICEPOLY_GET_FF00(thisx); + this->switchFlag = OBJICEPOLY_GET_SWITCH_FLAG(thisx); thisx->params &= 0xFF; thisx->uncullZoneForward = 5600.0f; @@ -115,7 +115,7 @@ void ObjIcePoly_Init(Actor* thisx, PlayState* play) { thisx->shape.rot.x = 0x500; thisx->shape.rot.z = -0x500; - if (((this->unk_149 != OBJICEPOLY_FF_FF) && Flags_GetSwitch(play, this->unk_149)) || + if (((this->switchFlag != 0xFF) && Flags_GetSwitch(play, this->switchFlag)) || ((play->sceneId == SCENE_KAJIYA) && CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_SNOWHEAD_TEMPLE))) { Actor_Kill(thisx); return; @@ -219,7 +219,7 @@ void func_80931A38(ObjIcePoly* this, PlayState* play) { } } while (actor != NULL); } - } else if ((this->unk_149 != OBJICEPOLY_FF_FF) && Flags_GetSwitch(play, this->unk_149)) { + } else if ((this->switchFlag != 0xFF) && Flags_GetSwitch(play, this->switchFlag)) { CutsceneManager_Queue(this->actor.csId); this->unk_14A = 1; this->actionFunc = func_80931E58; @@ -328,8 +328,8 @@ void func_80931EEC(ObjIcePoly* this, PlayState* play) { if (this->unk_14A == 0) { CutsceneManager_Stop(this->actor.csId); - if (this->unk_149 != OBJICEPOLY_FF_FF) { - Flags_SetSwitch(play, this->unk_149); + if (this->switchFlag != 0xFF) { + Flags_SetSwitch(play, this->switchFlag); } Actor_Kill(&this->actor); } diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h index b081a7250..3e59cd92e 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h @@ -7,15 +7,13 @@ struct ObjIcePoly; typedef void (*ObjIcePolyActionFunc)(struct ObjIcePoly*, PlayState*); -#define OBJICEPOLY_GET_FF00(thisx) (((thisx)->params >> 8) & 0xFF) - -#define OBJICEPOLY_FF_FF 0xFF +#define OBJICEPOLY_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0xFF) typedef struct ObjIcePoly { /* 0x000 */ Actor actor; /* 0x144 */ ObjIcePolyActionFunc actionFunc; /* 0x148 */ u8 unk_148; - /* 0x149 */ u8 unk_149; + /* 0x149 */ u8 switchFlag; /* 0x14A */ s16 unk_14A; /* 0x14C */ ColliderCylinder colliders1[2]; /* 0x1E4 */ ColliderCylinder colliders2[2]; diff --git a/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c b/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c index 1ca298f79..00f5e9957 100644 --- a/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c +++ b/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.c @@ -46,7 +46,7 @@ void ObjKzsaku_Init(Actor* thisx, PlayState* play) { this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, col); - this->switchFlag = KZSAKU_GET_SWITCHFLAG(thisx); + this->switchFlag = KZSAKU_GET_SWITCH_FLAG(thisx); this->raisedAmount = 0.0f; if (Flags_GetSwitch(play, this->switchFlag)) { diff --git a/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.h b/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.h index 0a6f00187..2af2db8ab 100644 --- a/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.h +++ b/src/overlays/actors/ovl_Obj_Kzsaku/z_obj_kzsaku.h @@ -3,7 +3,7 @@ #include "global.h" -#define KZSAKU_GET_SWITCHFLAG(thisx) (((thisx)->params & 0x7F00) >> 8) +#define KZSAKU_GET_SWITCH_FLAG(thisx) (((thisx)->params & 0x7F00) >> 8) struct ObjKzsaku; diff --git a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c index 88d04b780..9e92dcb11 100644 --- a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c +++ b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c @@ -101,7 +101,7 @@ void ObjLift_Init(Actor* thisx, PlayState* play) { this->unk_178 = this->dyna.actor.home.rot.z; this->dyna.actor.home.rot.z = this->dyna.actor.world.rot.z = this->dyna.actor.shape.rot.z; DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); - if ((this->unk_178 <= 0) && (Flags_GetSwitch(play, OBJLIFT_GET_7F(&this->dyna.actor)))) { + if ((this->unk_178 <= 0) && (Flags_GetSwitch(play, OBJLIFT_GET_SWITCH_FLAG(&this->dyna.actor)))) { Actor_Kill(&this->dyna.actor); return; } @@ -196,7 +196,7 @@ void func_8093DA48(ObjLift* this, PlayState* play) { func_8093DB70(this); DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); } else { - Flags_SetSwitch(play, OBJLIFT_GET_7F(&this->dyna.actor)); + Flags_SetSwitch(play, OBJLIFT_GET_SWITCH_FLAG(&this->dyna.actor)); Actor_Kill(&this->dyna.actor); } } diff --git a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.h b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.h index b7f2af050..ae973ecbf 100644 --- a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.h +++ b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.h @@ -5,7 +5,7 @@ #define OBJLIFT_GET_1(thisx) ((thisx)->params & 1) #define OBJLIFT_GET_7(thisx) (((thisx)->params >> 8) & 7) -#define OBJLIFT_GET_7F(thisx) (((thisx)->params >> 1) & 0x7F) +#define OBJLIFT_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 1) & 0x7F) struct ObjLift; diff --git a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c index f8ee482df..90feb9634 100644 --- a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c +++ b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c @@ -93,7 +93,7 @@ void ObjLightblock_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->dyna.actor, typeVars->scale); DynaPolyActor_Init(&this->dyna, 0); Collider_InitCylinder(play, &this->collider); - if (Flags_GetSwitch(play, LIGHTBLOCK_DESTROYED(&this->dyna.actor))) { + if (Flags_GetSwitch(play, LIGHTBLOCK_GET_DESTROYED_SWITCH_FLAG(&this->dyna.actor))) { Actor_Kill(&this->dyna.actor); return; } @@ -152,7 +152,7 @@ void ObjLightblock_SetupPlayCutscene(ObjLightblock* this) { void ObjLightblock_PlayCutscene(ObjLightblock* this, PlayState* play) { if (CutsceneManager_IsNext(this->dyna.actor.csId)) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); - Flags_SetSwitch(play, LIGHTBLOCK_DESTROYED(&this->dyna.actor)); + Flags_SetSwitch(play, LIGHTBLOCK_GET_DESTROYED_SWITCH_FLAG(&this->dyna.actor)); ObjLightblock_SpawnEffect(this, play); ObjLightblock_SetupFadeAway(this); } else { diff --git a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.h b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.h index 63a106dac..c1c1bcbb7 100644 --- a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.h +++ b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.h @@ -4,7 +4,7 @@ #include "global.h" #define LIGHTBLOCK_TYPE(thisx) ((thisx)->params & 1) -#define LIGHTBLOCK_DESTROYED(thisx) (((thisx)->params >> 8) & 0x7F) +#define LIGHTBLOCK_GET_DESTROYED_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) struct ObjLightblock; diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index 39cb3abd2..1acb015ea 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -100,9 +100,9 @@ void ObjLightswitch_UpdateSwitchFlags(ObjLightswitch* this, PlayState* play, s32 if (this) {} if (set) { - Flags_SetSwitch(play, LIGHTSWITCH_GET_SWITCHFLAG(&this->actor)); + Flags_SetSwitch(play, LIGHTSWITCH_GET_SWITCH_FLAG(&this->actor)); } else { - Flags_UnsetSwitch(play, LIGHTSWITCH_GET_SWITCHFLAG(&this->actor)); + Flags_UnsetSwitch(play, LIGHTSWITCH_GET_SWITCH_FLAG(&this->actor)); } } @@ -150,7 +150,7 @@ void ObjLightswitch_Init(Actor* thisx, PlayState* play) { u32 isSwitchActivated; s32 isTriggered; - isSwitchActivated = Flags_GetSwitch(play, LIGHTSWITCH_GET_SWITCHFLAG(&this->actor)); + isSwitchActivated = Flags_GetSwitch(play, LIGHTSWITCH_GET_SWITCH_FLAG(&this->actor)); isTriggered = false; Actor_ProcessInitChain(&this->actor, sInitChain); Actor_SetFocus(&this->actor, 0.0f); @@ -264,7 +264,7 @@ void ObjLightSwitch_Enabled(ObjLightswitch* this, PlayState* play) { if (actorType == LIGHTSWITCH_TYPE_REGULAR) { // switch can be disabled outside of this actor by flag - if (!Flags_GetSwitch(play, LIGHTSWITCH_GET_SWITCHFLAG(&this->actor))) { + if (!Flags_GetSwitch(play, LIGHTSWITCH_GET_SWITCH_FLAG(&this->actor))) { ObjLightSwitch_SetupDisabled(this); } } else if (actorType == LIGHTSWITCH_TYPE_FLIP) { diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.h b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.h index c26dab262..c81a87057 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.h +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.h @@ -40,6 +40,6 @@ typedef struct ObjLightswitch { #define LIGHTSWITCH_GET_TYPE(thisx) (((thisx)->params >> 4) & 0x3) #define LIGHTSWITCH_GET_INVISIBLE(thisx) (((thisx)->params >> 3) & 1) -#define LIGHTSWITCH_GET_SWITCHFLAG(thisx) (((thisx)->params >> 8) & 0x7F) +#define LIGHTSWITCH_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #endif // Z_OBJ_LIGHTSWITCH_H diff --git a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c index da16d938f..c7605c825 100644 --- a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c +++ b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c @@ -53,7 +53,7 @@ void ObjMakekinsuta_Init(Actor* thisx, PlayState* play) { if (!func_8099FA40(this, play)) { this->unk144 = -1; } - if (Flags_GetSwitch(play, OBJMAKEKINSUTA_GET_SWITCH_FLAGS(thisx))) { + if (Flags_GetSwitch(play, OBJMAKEKINSUTA_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->actor); } } @@ -62,7 +62,7 @@ void ObjMakekinsuta_Destroy(Actor* thisx, PlayState* play) { ObjMakekinsuta* this = THIS; if (func_8099FA40(this, play)) { - Flags_UnsetSwitch(play, OBJMAKEKINSUTA_GET_SWITCH_FLAGS(thisx)); + Flags_UnsetSwitch(play, OBJMAKEKINSUTA_GET_SWITCH_FLAG(thisx)); } } @@ -107,7 +107,7 @@ void func_8099FB64(Actor* thisx, PlayState* play) { void ObjMakekinsuta_Update(Actor* thisx, PlayState* play) { ObjMakekinsuta* this = THIS; - if (Flags_GetSwitch(play, OBJMAKEKINSUTA_GET_SWITCH_FLAGS(thisx))) { + if (Flags_GetSwitch(play, OBJMAKEKINSUTA_GET_SWITCH_FLAG(thisx))) { this->actor.update = func_8099FD7C; CutsceneManager_Queue(this->actor.csId); } else { diff --git a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h index 17c9220e2..6afe50e1a 100644 --- a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h +++ b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h @@ -8,7 +8,7 @@ struct ObjMakekinsuta; #define OBJMAKEKINSUTA_GET_1F(thisx) (((thisx)->params >> 8) & 0x1F) #define OBJMAKEKINSUTA_GETS_3(params) ((params & 3) & 0xFF) #define OBJMAKEKINSUTA_GETS_3FC(params) (((params & 0x3FC) >> 2) & 0xFF) -#define OBJMAKEKINSUTA_GET_SWITCH_FLAGS(thisx) ((thisx)->params & 0x7F) +#define OBJMAKEKINSUTA_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) typedef struct ObjMakekinsuta { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c index bcef92843..76ccba1b1 100644 --- a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c +++ b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c @@ -27,8 +27,8 @@ ActorInit Obj_Makeoshihiki_InitVars = { s32 ObjMakeoshihiki_GetChildSpawnPointIndex(ObjMakeoshihiki* this, PlayState* play) { s32 pad; - s32 pathIndexOffset1 = Flags_GetSwitch(play, OBJMAKEOSHIHIKI_GET_SWITCHFLAG_1(&this->actor)) ? 1 : 0; - s32 pathIndexOffset2 = Flags_GetSwitch(play, OBJMAKEOSHIHIKI_GET_SWITCHFLAG_2(&this->actor)) ? 2 : 0; + s32 pathIndexOffset1 = Flags_GetSwitch(play, OBJMAKEOSHIHIKI_GET_SWITCH_FLAG_1(&this->actor)) ? 1 : 0; + s32 pathIndexOffset2 = Flags_GetSwitch(play, OBJMAKEOSHIHIKI_GET_SWITCH_FLAG_2(&this->actor)) ? 2 : 0; return pathIndexOffset1 + pathIndexOffset2; } @@ -39,8 +39,8 @@ void ObjMakeoshihiki_SetSwitchFlags(ObjMakeoshihiki* this, PlayState* play, s32 s32 switchFlag1; s32 switchFlag2; - switchFlag2 = OBJMAKEOSHIHIKI_GET_SWITCHFLAG_2(&this->actor); - switchFlag1 = OBJMAKEOSHIHIKI_GET_SWITCHFLAG_1(&this->actor); + switchFlag2 = OBJMAKEOSHIHIKI_GET_SWITCH_FLAG_2(&this->actor); + switchFlag1 = OBJMAKEOSHIHIKI_GET_SWITCH_FLAG_1(&this->actor); if (pathIndex & 2) { Flags_SetSwitch(play, switchFlag2); diff --git a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.h b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.h index fbe8c1283..c9ae90921 100644 --- a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.h +++ b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.h @@ -6,8 +6,8 @@ struct ObjMakeoshihiki; #define OBJMAKEOSHIHIKI_GET_PATH_INDEX(thisx) (((thisx)->params >> 7) & 0x7F) -#define OBJMAKEOSHIHIKI_GET_SWITCHFLAG_1(thisx) ((thisx)->home.rot.z & 0x7F) -#define OBJMAKEOSHIHIKI_GET_SWITCHFLAG_2(thisx) ((thisx)->params & 0x7F) +#define OBJMAKEOSHIHIKI_GET_SWITCH_FLAG_1(thisx) ((thisx)->home.rot.z & 0x7F) +#define OBJMAKEOSHIHIKI_GET_SWITCH_FLAG_2(thisx) ((thisx)->params & 0x7F) typedef struct ObjMakeoshihiki { /* 0x000 */ Actor actor; diff --git a/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c b/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c index 10f12c64a..d894c64a6 100644 --- a/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c +++ b/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c @@ -134,7 +134,7 @@ void func_8098F438(ObjMure3* this, PlayState* play) { if ((*collectible != NULL) && !((this->unk164 >> i) & 1)) { if ((*collectible)->unk1A4 != 0) { - Flags_SetSwitch(play, OBJMURE3_PARAM_7F(&this->actor)); + Flags_SetSwitch(play, OBJMURE3_GET_SWITCH_FLAG(&this->actor)); } if ((*collectible)->actor.update == NULL) { this->unk164 |= (1 << i); @@ -147,7 +147,7 @@ void func_8098F438(ObjMure3* this, PlayState* play) { void ObjMure3_Init(Actor* thisx, PlayState* play) { ObjMure3* this = THIS; - if (Flags_GetSwitch(play, OBJMURE3_PARAM_7F(&this->actor))) { + if (Flags_GetSwitch(play, OBJMURE3_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.h b/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.h index 336a092b4..fb79e3440 100644 --- a/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.h +++ b/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.h @@ -3,7 +3,7 @@ #include "global.h" -#define OBJMURE3_PARAM_7F(thisx) ((thisx)->params & 0x7F) +#define OBJMURE3_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJMURE3_PARAM_RUPEEINDEX(thisx) (((thisx)->params >> 13) & 7) struct ObjMure3; diff --git a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c index 770f2131d..fdedd55a1 100644 --- a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c +++ b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c @@ -174,7 +174,7 @@ void func_80BA27C4(ObjNozoki* this, PlayState* play) { play->actorCtx.flags |= ACTORCTX_FLAG_7; } - if (!Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { return; } } @@ -209,10 +209,10 @@ void func_80BA28DC(ObjNozoki* this, PlayState* play) { Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y + 200.0f, this->dyna.actor.velocity.y); if (OBJNOZOKI_GET_200(&this->dyna.actor)) { - if (!Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { return; } - } else if (Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + } else if (Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { s32 csId = this->dyna.actor.csId; if (csId == this->csId) { @@ -252,20 +252,20 @@ void func_80BA2AB4(ObjNozoki* this, PlayState* play) { if (!(play->actorCtx.flags & ACTORCTX_FLAG_5)) { if (!(OBJNOZOKI_GET_200(&this->dyna.actor)) && - Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { func_80BA2790(this); } } } -void func_80BA2B64(ObjNozoki* this, PlayState* play, s32 arg2, s32 arg3) { +void func_80BA2B64(ObjNozoki* this, PlayState* play, s32 arg2, s32 switchFlag) { this->unk_15D = arg2; this->unk_15E = 80; - Flags_UnsetSwitch(play, arg3); + Flags_UnsetSwitch(play, switchFlag); } void func_80BA2BA4(ObjNozoki* this, PlayState* play) { - if (!Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + if (!Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { this->dyna.actor.shape.rot.x = -0x1F40; this->unk_15E = 80; } else if (DECR(this->unk_15E) == 0) { @@ -331,7 +331,7 @@ void func_80BA2C94(ObjNozoki* this, PlayState* play) { Actor_Kill(&this->dyna.actor); } } else if (!(play->actorCtx.flags & ACTORCTX_FLAG_5) && (GET_PLAYER(play)->actor.id == ACTOR_PLAYER) && - Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG2(&this->dyna.actor)) && (sp38 < 20.0f)) { + Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG2(&this->dyna.actor)) && (sp38 < 20.0f)) { static Vec3f D_80BA34F0 = { 0.0f, 0.0f, 50.0f }; play->actorCtx.flags |= ACTORCTX_FLAG_6; @@ -374,7 +374,7 @@ void func_80BA3044(ObjNozoki* this, PlayState* play) { this->unk_15E = 20; Math_Vec3f_Copy(&this->dyna.actor.world.pos, sp1C); } else if (!(play->actorCtx.flags & ACTORCTX_FLAG_5) && - Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { sp1C = &this->dyna.actor.home.pos; } } else if (DECR(this->unk_15E) == 0) { @@ -386,7 +386,7 @@ void func_80BA3044(ObjNozoki* this, PlayState* play) { void func_80BA311C(ObjNozoki* this, PlayState* play) { if (this->unk_15D == 0) { - if (Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCHFLAG1(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJNOZOKI_GET_SWITCH_FLAG1(&this->dyna.actor))) { this->unk_15D = 1; this->unk_15E = 70; } diff --git a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.h b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.h index 8bfc9818e..33c97db69 100644 --- a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.h +++ b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.h @@ -7,11 +7,11 @@ struct ObjNozoki; typedef void (*ObjNozokiActionFunc)(struct ObjNozoki*, PlayState*); -#define OBJNOZOKI_GET_SWITCHFLAG1(thisx) ((thisx)->params & 0x7F) +#define OBJNOZOKI_GET_SWITCH_FLAG1(thisx) ((thisx)->params & 0x7F) #define OBJNOZOKI_GET_180(thisx) (((thisx)->params >> 7) & 3) #define OBJNOZOKI_GET_200(thisx) ((thisx)->params & 0x200) #define OBJNOZOKI_GET_400(thisx) ((thisx)->params & 0x400) -#define OBJNOZOKI_GET_SWITCHFLAG2(thisx) (((thisx)->params >> 9) & 0x7F) +#define OBJNOZOKI_GET_SWITCH_FLAG2(thisx) (((thisx)->params >> 9) & 0x7F) #define OBJNOZOKI_400 0x400 diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c index 736d80d10..9d49067fe 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c @@ -134,26 +134,26 @@ void ObjOshihiki_UpdateInitPos(ObjOshihiki* this) { } s32 ObjOshihiki_NoSwitchPress(ObjOshihiki* this, DynaPolyActor* dyna, PlayState* play) { - s16 dynaSwitchFlag; + s16 switchFlag; if (dyna == NULL) { return true; } if (dyna->actor.id == ACTOR_OBJ_SWITCH) { - dynaSwitchFlag = OBJSWITCH_GET_7F00(&dyna->actor); + switchFlag = OBJSWITCH_GET_7F00(&dyna->actor); switch (OBJSWITCH_GET_33(&dyna->actor)) { case OBJSWITCH_NORMAL_BLUE: - if ((dynaSwitchFlag == OBJOSHIHIKI_GET_7F00(&this->dyna.actor)) && - Flags_GetSwitch(play, dynaSwitchFlag)) { + if ((switchFlag == OBJOSHIHIKI_GET_SWITCH_FLAG(&this->dyna.actor)) && + Flags_GetSwitch(play, switchFlag)) { return false; } break; case OBJSWITCH_INVERSE_BLUE: - if ((dynaSwitchFlag == OBJOSHIHIKI_GET_7F00(&this->dyna.actor)) && - !Flags_GetSwitch(play, dynaSwitchFlag)) { + if ((switchFlag == OBJOSHIHIKI_GET_SWITCH_FLAG(&this->dyna.actor)) && + !Flags_GetSwitch(play, switchFlag)) { return false; } break; @@ -200,13 +200,16 @@ void ObjOshihiki_Init(Actor* thisx, PlayState* play) { if ((OBJOSHIHIKI_GET_FF00(&this->dyna.actor) >= OBJOSHIHIKI_FF00_0) && (OBJOSHIHIKI_GET_FF00(&this->dyna.actor) < OBJOSHIHIKI_FF00_80)) { - if (Flags_GetSwitch(play, OBJOSHIHIKI_GET_7F00(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJOSHIHIKI_GET_SWITCH_FLAG(&this->dyna.actor))) { switch (OBJOSHIHIKI_GET_F(&this->dyna.actor)) { case OBJOSHIHIKI_F_0: case OBJOSHIHIKI_F_1: case OBJOSHIHIKI_F_2: Actor_Kill(&this->dyna.actor); return; + + default: + break; } } else { switch (OBJOSHIHIKI_GET_F(&this->dyna.actor)) { @@ -215,6 +218,9 @@ void ObjOshihiki_Init(Actor* thisx, PlayState* play) { case OBJOSHIHIKI_F_5: Actor_Kill(&this->dyna.actor); return; + + default: + break; } } } diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h index 4740b907a..6a400f2dc 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h @@ -9,7 +9,7 @@ typedef void (*ObjOshihikiActionFunc)(struct ObjOshihiki*, PlayState*); #define OBJOSHIHIKI_GET_F(thisx) ((thisx)->params & 0xF) #define OBJOSHIHIKI_GET_F0(thisx) (((thisx)->params >> 4) & 0xF) -#define OBJOSHIHIKI_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F) +#define OBJOSHIHIKI_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) #define OBJOSHIHIKI_GET_FF00(thisx) (((thisx)->params >> 8) & 0xFF) typedef enum { diff --git a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c index 9a0c9d1c3..e89b6cd7f 100644 --- a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c +++ b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c @@ -211,7 +211,7 @@ void ObjPzlblock_Init(Actor* thisx, PlayState* play) { if (sp28 == 0) { func_809A3D1C(this); - } else if (Flags_GetSwitch(play, OBJPZLBLOCK_GET_7F(&this->dyna.actor))) { + } else if (Flags_GetSwitch(play, OBJPZLBLOCK_GET_SWITCH_FLAG(&this->dyna.actor))) { if (sp2C == 0) { this->dyna.actor.world.pos.x = this->dyna.actor.home.pos.x + (sp28 * 60); func_809A3D1C(this); @@ -295,7 +295,7 @@ void func_809A3BC0(ObjPzlblock* this, PlayState* play) { } } else { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); - Flags_SetSwitch(play, OBJPZLBLOCK_GET_7F(&this->dyna.actor)); + Flags_SetSwitch(play, OBJPZLBLOCK_GET_SWITCH_FLAG(&this->dyna.actor)); sp20 = 1; } diff --git a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h index 5cf67efcc..a6c205fb3 100644 --- a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h +++ b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.h @@ -7,7 +7,7 @@ struct ObjPzlblock; typedef void (*ObjPzlblockActionFunc)(struct ObjPzlblock*, PlayState*); -#define OBJPZLBLOCK_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJPZLBLOCK_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJPZLBLOCK_GET_700(thisx) (((thisx)->params >> 8) & 7) #define OBJPZLBLOCK_GET_1000(thisx) (((thisx)->params >> 0xC) & 1) #define OBJPZLBLOCK_GET_ROTZ(thisx) ((thisx)->home.rot.z & 7) diff --git a/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.c b/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.c index 93845b55e..dc5e9e315 100644 --- a/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.c +++ b/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.c @@ -92,7 +92,7 @@ void ObjRaillift_Init(Actor* thisx, PlayState* play) { this->direction = 1; this->points = Lib_SegmentedToVirtual(path->points); ObjRaillift_UpdatePosition(this, this->curPoint); - if (OBJRAILLIFT_HAS_FLAG(thisx) && !Flags_GetSwitch(play, OBJRAILLIFT_GET_FLAG(thisx))) { + if (OBJRAILLIFT_HAS_FLAG(thisx) && !Flags_GetSwitch(play, OBJRAILLIFT_GET_SWITCH_FLAG(thisx))) { this->actionFunc = ObjRaillift_Idle; } else { this->actionFunc = ObjRaillift_Move; @@ -120,7 +120,7 @@ void ObjRaillift_Move(ObjRaillift* this, PlayState* play) { Vec3s* endPoint; if (OBJRAILLIFT_HAS_FLAG(thisx)) { - if (!Flags_GetSwitch(play, OBJRAILLIFT_GET_FLAG(thisx))) { + if (!Flags_GetSwitch(play, OBJRAILLIFT_GET_SWITCH_FLAG(thisx))) { this->actionFunc = ObjRaillift_Idle; return; } @@ -196,7 +196,7 @@ void ObjRaillift_Wait(ObjRaillift* this, PlayState* play) { } void ObjRaillift_Idle(ObjRaillift* this, PlayState* play) { - if (Flags_GetSwitch(play, OBJRAILLIFT_GET_FLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJRAILLIFT_GET_SWITCH_FLAG(&this->dyna.actor))) { this->dyna.actor.speed = 0.0f; CutsceneManager_Queue(this->dyna.actor.csId); this->actionFunc = ObjRaillift_StartCutscene; diff --git a/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.h b/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.h index dc197432f..64aa01130 100644 --- a/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.h +++ b/src/overlays/actors/ovl_Obj_Raillift/z_obj_raillift.h @@ -9,7 +9,7 @@ typedef void (*ObjRailliftActionFunc)(struct ObjRaillift*, PlayState*); #define OBJRAILLIFT_GET_TYPE(thisx) (((thisx)->params >> 0xF) & 1) #define OBJRAILLIFT_HAS_FLAG(thisx) (((thisx)->params >> 0xD) & 1) -#define OBJRAILLIFT_GET_FLAG(thisx) ((thisx)->home.rot.x & 0x7F) +#define OBJRAILLIFT_GET_SWITCH_FLAG(thisx) ((thisx)->home.rot.x & 0x7F) #define OBJRAILLIFT_GET_PATH_INDEX(thisx) ((thisx)->params & 0x7F) #define OBJRAILLIFT_GET_STARTING_POINT(thisx) (((thisx)->params >> 7) & 0x1F) #define OBJRAILLIFT_GET_SPEED(thisx) ((thisx)->home.rot.z * 0.1f) diff --git a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c index 158d8f874..1fe208ba8 100644 --- a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c +++ b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c @@ -33,7 +33,7 @@ ActorInit Obj_Roomtimer_InitVars = { void ObjRoomtimer_Init(Actor* thisx, PlayState* play) { ObjRoomtimer* this = THIS; - this->switchFlag = ROOMTIMER_GET_SWITCHFLAG(thisx); + this->switchFlag = ROOMTIMER_GET_SWITCH_FLAG(thisx); this->actor.params &= 0x1FF; if (this->actor.params != 0x1FF) { diff --git a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.h b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.h index 5ce7d13d4..d976de5e3 100644 --- a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.h +++ b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.h @@ -3,7 +3,7 @@ #include "global.h" -#define ROOMTIMER_GET_SWITCHFLAG(thisx) (((thisx)->params >> 9) & 0x7F) +#define ROOMTIMER_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 9) & 0x7F) struct ObjRoomtimer; diff --git a/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c b/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c index edc780007..06de02581 100644 --- a/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c +++ b/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c @@ -110,7 +110,7 @@ void func_80B02CD0(ObjSnowball* this, PlayState* play) { } void func_80B02D58(ObjSnowball* this, PlayState* play) { - s32 temp_v0 = func_800A8150(OBJSNOWBALL_GET_3F(&this->actor)); + s32 temp_v0 = func_800A8150(OBJSNOWBALL_GET_SWITCH_FLAG(&this->actor)); if (temp_v0 >= 0) { Item_DropCollectible(play, &this->actor.home.pos, (OBJSNOWBALL_GET_7F00(&this->actor) << 8) | temp_v0); @@ -443,7 +443,7 @@ void func_80B03FF8(ObjSnowball* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_SNOWBALL_BROKEN); if (rotY == 5) { - Flags_SetSwitch(play, OBJSNOWBALL_GET_3F(&this->actor)); + Flags_SetSwitch(play, OBJSNOWBALL_GET_SWITCH_FLAG(&this->actor)); } } @@ -509,7 +509,7 @@ void ObjSnowball_Init(Actor* thisx, PlayState* play) { func_80B04338(this, play); - if ((sp40 == 5) && Flags_GetSwitch(play, OBJSNOWBALL_GET_3F(&this->actor))) { + if ((sp40 == 5) && Flags_GetSwitch(play, OBJSNOWBALL_GET_SWITCH_FLAG(&this->actor))) { Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.h b/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.h index 804c2596c..16ce58f91 100644 --- a/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.h +++ b/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.h @@ -7,7 +7,7 @@ struct ObjSnowball; typedef void (*ObjSnowballActionFunc)(struct ObjSnowball*, PlayState*); -#define OBJSNOWBALL_GET_3F(thisx) ((thisx)->params & 0x3F) +#define OBJSNOWBALL_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x3F) #define OBJSNOWBALL_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F) typedef struct { diff --git a/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.c b/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.c index ff308a478..785a3ea5a 100644 --- a/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.c +++ b/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.c @@ -564,7 +564,7 @@ void ObjSpidertent_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); Collider_InitTris(play, &this->collider); - if (Flags_GetSwitch(play, OBJSPIDERTENT_GET_7F00(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJSPIDERTENT_GET_SWITCH_FLAG(&this->dyna.actor))) { Actor_Kill(&this->dyna.actor); return; } @@ -681,7 +681,7 @@ void func_80B30A4C(ObjSpidertent* this, PlayState* play) { if (this->dyna.actor.csId >= 0) { func_800B7298(play, &this->dyna.actor, PLAYER_CSMODE_1); } - Flags_SetSwitch(play, OBJSPIDERTENT_GET_7F00(&this->dyna.actor)); + Flags_SetSwitch(play, OBJSPIDERTENT_GET_SWITCH_FLAG(&this->dyna.actor)); func_80B30AD4(this); } else { CutsceneManager_Queue(this->dyna.actor.csId); diff --git a/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.h b/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.h index 881a816a7..880921535 100644 --- a/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.h +++ b/src/overlays/actors/ovl_Obj_Spidertent/z_obj_spidertent.h @@ -8,7 +8,7 @@ struct ObjSpidertent; typedef void (*ObjSpidertentActionFunc)(struct ObjSpidertent*, PlayState*); #define OBJSPIDERTENT_GET_1(thisx) ((thisx)->params & 1) -#define OBJSPIDERTENT_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F) +#define OBJSPIDERTENT_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0x7F) typedef struct ObjSpidertent { /* 0x000 */ DynaPolyActor dyna; diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index 295181b8d..52652c8bb 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -250,13 +250,13 @@ Actor* ObjSwitch_SpawnIce(ObjSwitch* this, PlayState* play) { void ObjSwitch_SetSwitchFlagState(ObjSwitch* this, PlayState* play, s32 setFlag) { if (setFlag) { - s32 flag = OBJ_SWITCH_GET_SWITCH_FLAG(&this->dyna.actor); + s32 switchFlag = OBJ_SWITCH_GET_SWITCH_FLAG(&this->dyna.actor); - Flags_SetSwitch(play, flag); + Flags_SetSwitch(play, switchFlag); } else { - s32 flag = OBJ_SWITCH_GET_SWITCH_FLAG(&this->dyna.actor); + s32 switchFlag = OBJ_SWITCH_GET_SWITCH_FLAG(&this->dyna.actor); - Flags_UnsetSwitch(play, flag); + Flags_UnsetSwitch(play, switchFlag); } } diff --git a/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c b/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c index 6eac0ddbc..e8389e91f 100644 --- a/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c +++ b/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c @@ -203,7 +203,7 @@ void ObjTaru_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->dyna.actor, sInitChain); if (OBJ_TARU_GET_80(thisx)) { - if (Flags_GetSwitch(play, OBJ_TARU_GET_7F(thisx))) { + if (Flags_GetSwitch(play, OBJ_TARU_GET_SWITCH_FLAG(thisx))) { Actor_Kill(&this->dyna.actor); } else { DynaPolyActor_LoadMesh(play, &this->dyna, &object_taru_Colheader_001CB0); @@ -298,7 +298,7 @@ void func_80B9C174(ObjTaru* this, PlayState* play) { void func_80B9C1A0(ObjTaru* this, PlayState* play) { if (CutsceneManager_IsNext(this->dyna.actor.csId)) { CutsceneManager_StartWithPlayerCs(this->dyna.actor.csId, &this->dyna.actor); - Flags_SetSwitch(play, OBJ_TARU_GET_7F(&this->dyna.actor)); + Flags_SetSwitch(play, OBJ_TARU_GET_SWITCH_FLAG(&this->dyna.actor)); Actor_Kill(&this->dyna.actor); return; } diff --git a/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.h b/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.h index 629bc57a5..e7620f458 100644 --- a/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.h +++ b/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.h @@ -6,7 +6,7 @@ #define OBJ_TARU_GET_100(thisx) ((thisx)->params & 0x100) #define OBJ_TARU_GET_1F(thisx) ((thisx)->params & 0x1F) #define OBJ_TARU_GET_3F(thisx) ((thisx)->params & 0x3F) -#define OBJ_TARU_GET_7F(thisx) ((thisx)->params & 0x7F) +#define OBJ_TARU_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #define OBJ_TARU_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F) #define OBJ_TARU_GET_80(thisx) ((thisx)->params & 0x80) #define OBJ_TARU_GET_8000(thisx) (((thisx)->params >> 0xF) & 1) diff --git a/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.c b/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.c index 00b4e9acf..a44f2cbb1 100644 --- a/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.c +++ b/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.c @@ -41,13 +41,13 @@ void func_808A7954(ObjWturn* this) { void func_808A7968(ObjWturn* this, PlayState* play) { if ((play->msgCtx.ocarinaMode >= OCARINA_MODE_WARP_TO_GREAT_BAY_COAST) && (play->msgCtx.ocarinaMode <= OCARINA_MODE_WARP_TO_ENTRANCE)) { - Flags_UnsetSwitch(play, this->actor.params); + Flags_UnsetSwitch(play, OBJWTURN_GET_SWITCH_FLAG(&this->actor)); Actor_Kill(&this->actor); return; } - if ((Flags_GetSwitch(play, this->actor.params) && (play->sceneId == SCENE_F40)) || - (!Flags_GetSwitch(play, this->actor.params) && (play->sceneId == SCENE_F41))) { + if ((Flags_GetSwitch(play, OBJWTURN_GET_SWITCH_FLAG(&this->actor)) && (play->sceneId == SCENE_F40)) || + (!Flags_GetSwitch(play, OBJWTURN_GET_SWITCH_FLAG(&this->actor)) && (play->sceneId == SCENE_F41))) { func_808A7A24(this); } } diff --git a/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.h b/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.h index 2e2963d0e..9aee7e2ad 100644 --- a/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.h +++ b/src/overlays/actors/ovl_Obj_Wturn/z_obj_wturn.h @@ -7,6 +7,8 @@ struct ObjWturn; typedef void (*ObjWturnActionFunc)(struct ObjWturn*, PlayState*); +#define OBJWTURN_GET_SWITCH_FLAG(thisx) ((thisx)->params) + typedef struct ObjWturn { /* 0x000 */ Actor actor; /* 0x144 */ ObjWturnActionFunc actionFunc; diff --git a/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.c b/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.c index f2085694a..d1b39bb24 100644 --- a/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.c +++ b/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.c @@ -96,15 +96,15 @@ void ObjY2shutter_Update(Actor* thisx, PlayState* play) { DREG(87) = 0; } - if (Flags_GetSwitch(play, OBJY2SHUTTER_GET_SWITCHFLAG(&this->dyna.actor))) { - Flags_UnsetSwitch(play, OBJY2SHUTTER_GET_SWITCHFLAG(&this->dyna.actor)); + if (Flags_GetSwitch(play, OBJY2SHUTTER_GET_SWITCH_FLAG(&this->dyna.actor))) { + Flags_UnsetSwitch(play, OBJY2SHUTTER_GET_SWITCH_FLAG(&this->dyna.actor)); } else { - Flags_SetSwitch(play, OBJY2SHUTTER_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_SetSwitch(play, OBJY2SHUTTER_GET_SWITCH_FLAG(&this->dyna.actor)); } } if (this->settleTimer == 0) { - if (Flags_GetSwitch(play, OBJY2SHUTTER_GET_SWITCHFLAG(&this->dyna.actor))) { + if (Flags_GetSwitch(play, OBJY2SHUTTER_GET_SWITCH_FLAG(&this->dyna.actor))) { s16 csId = this->dyna.actor.csId; if (this->openTimer == 0) { @@ -125,7 +125,7 @@ void ObjY2shutter_Update(Actor* thisx, PlayState* play) { targetVelocityY = info->openVelocity; accelY = info->openAccel; if (this->openTimer < 2) { - Flags_UnsetSwitch(play, OBJY2SHUTTER_GET_SWITCHFLAG(&this->dyna.actor)); + Flags_UnsetSwitch(play, OBJY2SHUTTER_GET_SWITCH_FLAG(&this->dyna.actor)); } else { this->openTimer--; } diff --git a/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.h b/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.h index a1b32bbe9..8ff346f74 100644 --- a/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.h +++ b/src/overlays/actors/ovl_Obj_Y2shutter/z_obj_y2shutter.h @@ -18,6 +18,6 @@ typedef enum { } ShutterType; #define OBJY2SHUTTER_GET_TYPE(thisx) (((thisx)->params >> 7) & 1) -#define OBJY2SHUTTER_GET_SWITCHFLAG(thisx) ((thisx)->params & 0x7F) +#define OBJY2SHUTTER_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F) #endif // Z_OBJ_Y2SHUTTER_H From 03d1a794e1fe3995ae3f4ca99e244e4b14310092 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Wed, 4 Oct 2023 22:08:08 -0700 Subject: [PATCH 3/5] z_kankyo pt 1 (#1377) * z64environment.h * remove todo * Cleanup * data + bss + 2 functions * Bring over simple functions * Remove lerp comment * code functions csv * Remove docs changes * ZBufValToFixedPoint * Remove leading 0's * SEGMENT macros * eventDayCount * format * z64bombers_notebook.h * fix merge * Comments --------- Co-authored-by: angie --- include/functions.h | 85 +- include/gfx.h | 4 +- include/segment_symbols.h | 5 + include/variables.h | 67 -- include/z64.h | 67 +- include/z64environment.h | 327 ++++++ include/z64light.h | 22 +- include/z64save.h | 2 +- spec | 2 - src/code/graph.c | 1 + src/code/sys_cfb.c | 1 + src/code/z_common_data.c | 2 +- src/code/z_demo.c | 43 +- src/code/z_game_over.c | 8 +- src/code/z_kankyo.c | 955 ++++++++++++++++-- src/code/z_lib.c | 2 +- src/code/z_lights.c | 14 +- src/code/z_parameter.c | 2 +- src/code/z_play.c | 50 +- src/code/z_room.c | 8 +- src/code/z_scene.c | 10 +- src/code/z_sram_NES.c | 6 +- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.c | 12 +- src/overlays/actors/ovl_Boss_02/z_boss_02.c | 4 +- src/overlays/actors/ovl_Boss_06/z_boss_06.c | 20 +- .../actors/ovl_Demo_Effect/z_demo_effect.c | 8 +- .../actors/ovl_Demo_Kankyo/z_demo_kankyo.c | 22 +- .../actors/ovl_Demo_Syoten/z_demo_syoten.c | 4 +- src/overlays/actors/ovl_Dm_Hina/z_dm_hina.c | 11 +- src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c | 12 +- .../actors/ovl_Door_Warp1/z_door_warp1.c | 21 +- .../actors/ovl_Eff_Change/z_eff_change.c | 4 +- .../z_eff_kamejima_wave.c | 4 +- .../actors/ovl_En_Aob_01/z_en_aob_01.c | 2 +- src/overlays/actors/ovl_En_Az/z_en_az.c | 4 +- .../actors/ovl_En_Bigslime/z_en_bigslime.c | 8 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 32 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 32 +- .../actors/ovl_En_Dinofos/z_en_dinofos.c | 6 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 6 +- .../actors/ovl_En_Encount3/z_en_encount3.c | 8 +- .../actors/ovl_En_Fishing/z_en_fishing.c | 30 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 36 +- src/overlays/actors/ovl_En_Gb2/z_en_gb2.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Hata/z_en_hata.c | 6 +- src/overlays/actors/ovl_En_In/z_en_in.c | 4 +- .../z_en_invadepoh_demo.c | 2 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 2 +- .../actors/ovl_En_Mt_tag/z_en_mt_tag.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 2 +- .../z_en_okarina_effect.c | 18 +- src/overlays/actors/ovl_En_Ot/z_en_ot.c | 4 +- src/overlays/actors/ovl_En_Test3/z_en_test3.c | 2 +- src/overlays/actors/ovl_En_Test4/z_en_test4.c | 44 +- src/overlays/actors/ovl_En_Test6/z_en_test6.c | 30 +- src/overlays/actors/ovl_En_Test7/z_en_test7.c | 3 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- .../actors/ovl_En_Viewer/z_en_viewer.c | 10 +- .../ovl_En_Weather_Tag/z_en_weather_tag.c | 86 +- .../actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c | 77 +- .../actors/ovl_Obj_Etcetera/z_obj_etcetera.c | 2 +- .../ovl_Object_Kankyo/z_object_kankyo.c | 71 +- .../actors/ovl_Oceff_Spot/z_oceff_spot.c | 2 +- .../actors/ovl_player_actor/z_player.c | 47 +- .../z_eff_ss_lightning.c | 2 +- .../gamestates/ovl_daytelop/z_daytelop.c | 2 +- .../ovl_file_choose/z_file_choose_NES.c | 4 +- src/overlays/gamestates/ovl_select/z_select.c | 2 +- tools/disasm/functions.txt | 106 +- tools/disasm/variables.txt | 93 +- tools/namefixer.py | 77 +- tools/sizes/code_functions.csv | 104 +- 73 files changed, 1895 insertions(+), 884 deletions(-) create mode 100644 include/z64environment.h diff --git a/include/functions.h b/include/functions.h index 9f4aea656..634ce16d9 100644 --- a/include/functions.h +++ b/include/functions.h @@ -527,89 +527,6 @@ void Font_LoadChar(PlayState* play, u16 codePointIndex, s32 offset); void Font_LoadCharNES(PlayState* play, u8 codePointIndex, s32 offset); void Font_LoadMessageBoxEndIcon(Font* font, u16 icon); void Font_LoadOrderedFont(Font* font); -// void func_800F5090(void); -s32 Environment_ZBufValToFixedPoint(s32 zBufferVal); -void Environment_Init(PlayState* play, EnvironmentContext* envCtx, s32 arg2); -u32 func_800F5954(u8* param_1, u32 param_2, u32 param_3, u8 param_4, u8 param_5); -f32 Environment_LerpWeight(u16 max, u16 min, u16 val); -// void func_800F5B10(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); -void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx); -void func_800F6834(PlayState* play, s32 waterLightsIndex); -void func_800F694C(PlayState* play); -// void func_800F6A04(void); -// void func_800F6A40(void); -// void func_800F6AB8(void); -void func_800F6B44(PlayState* play, EnvironmentContext* envCtx, s32 iParm3, s32 iParm4, s16* param_5); -// void func_800F6CEC(void); -// void func_800F6EA4(void); -// UNK_TYPE4 Kankyo_IsSceneUpsideDown(PlayState* play); -void func_800F6FF8(PlayState* play, EnvironmentContext* envCtx, LightContext* lightCtx); -// void func_800F8554(void); -// void func_800F88C4(void); -// void func_800F8970(void); -// void func_800F8A9C(void); -void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContext* lightCtx, - PauseContext* pauseCtx, MessageContext* msgCtx, GameOverContext* gameOverCtx, - GraphicsContext* gfxCtx); -// void func_800F8D84(void); -void Environment_DrawSunLensFlare(PlayState* play, EnvironmentContext* envCtx, View* view, GraphicsContext* gfxCtx, Vec3f pos); -void func_800F9824(PlayState* play, EnvironmentContext* envCtx, View* view, GraphicsContext* gfxCtx, Vec3f vec, f32 arg5, f32 arg6, s8 arg7, s8 arg8); -// void func_800FA39C(void); -// void func_800FA3C4(void); -void Environment_DrawRain(PlayState* play, View* view, GraphicsContext* gfxCtx); -void func_800FAAB4(PlayState* play, u8 arg1); -// void func_800FAC20(void); -// void func_800FAF74(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5); -// void func_800FB010(void); -void Environment_AddLightningBolts(PlayState* play, u8 num); -// void func_800FB388(void); -void func_800FB758(PlayState* play); -// void func_800FB9B4(void); -void Environment_DrawCustomLensFlare(PlayState* play); -void Kankyo_InitGameOverLights(PlayState* play); -void Kankyo_FadeInGameOverLights(PlayState* play); -void Kankyo_FadeOutGameOverLights(PlayState* play); -// void func_800FC3DC(void); -void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, u8 alpha, u8 drawFlags); -void Environment_DrawSandstorm(PlayState* play, u8 sandstormState); -s32 func_800FD2B4(PlayState* play, f32 arg1, f32 arg2, f32 arg3, f32 arg4); -void func_800FD538(Color_RGB8* param_1, Color_RGB8* param_2, f32 param_3, Vec3s* param_4); -void Environment_LerpAmbientColor(PlayState* play, Color_RGB8* to, f32 lerp); -void Environment_LerpDiffuseColor(PlayState* play, Color_RGB8* to, f32 lerp); -void Environment_LerpFogColor(PlayState* play, Color_RGB8* to, f32 lerp); -void Environment_LerpFog(PlayState* play, s16 fogNearTarget, s16 zFarTarget, f32 lerp); -// u32 get_days_elapsed(void); -// void reset_days_elapsed(void); -// u32 get_current_day(void); -void func_800FD750(u16 seqId); -s32 func_800FD768(void); -void func_800FD78C(PlayState* play); -void func_800FD858(PlayState* play); -void func_800FD928(s32 param_1); -// void func_800FD980(void); -// void func_800FDAF8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); -// void func_800FDC94(void); -void func_800FE390(PlayState* play); -void func_800FE3E0(PlayState* play); -void Environment_StopTime(void); -void Environment_StartTime(void); -u8 Environment_IsTimeStopped(void); -u32 func_800FE4B8(PlayState* play); -s32 func_800FE590(PlayState* play); -// void func_800FE5D0(void); -// UNK_TYPE4 func_800FE610(void); -u32 func_800FE620(PlayState* play); -void func_800FE658(f32 arg0); -// UNK_TYPE4 func_800FE6F8(UNK_TYPE4 param_1, s16 param_2, s16 param_3); -// void func_800FE778(void); -// void func_800FE788(void); -// void func_800FE798(void); -void func_800FE7A8(Color_RGBA8* inColor, Color_RGBA8* outColor); -s32 func_800FE9B4(PlayState* play); -void func_800FEA50(PlayState* play); -void func_800FEAB0(void); -// void func_800FEAC0(void); -void func_800FEAF4(EnvironmentContext* envCtx); void* Lib_MemCpy(void* dest, void* src, size_t size); void* Lib_MemSet(void* buffer, s32 value, size_t size); @@ -620,7 +537,7 @@ void Lib_PlaySfx(u16 sfxId); void Lib_PlaySfx_2(u16 sfxId); void Lib_PlaySfx_AtPos(Vec3f* pos, u16 sfxId); void Lib_Vec3f_TranslateAndRotateY(Vec3f* translation, s16 rotAngle, Vec3f* src, Vec3f* dst); -void Lib_LerpRGB(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst); +void Color_RGB8_Lerp(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst); void Lib_Nop801004FC(void); void* Lib_SegmentedToVirtual(void* ptr); void* Lib_SegmentedToVirtualNull(void* ptr); diff --git a/include/gfx.h b/include/gfx.h index 790279368..63b3eadfc 100644 --- a/include/gfx.h +++ b/include/gfx.h @@ -146,8 +146,8 @@ typedef struct GraphicsContext { /* 0x2D8 */ char unk_2D8[0x2]; /* 0x2DA */ u8 updateViMode; /* 0x2DB */ u8 framebufferIndex; - /* 0x2DC */ void (*callback)(struct GraphicsContext*, u32); - /* 0x2E0 */ u32 callbackArg; + /* 0x2DC */ void (*callback)(struct GraphicsContext*, void*); + /* 0x2E0 */ void* callbackArg; /* 0x2E4 */ f32 xScale; /* 0x2E8 */ f32 yScale; /* 0x2EC */ GfxMasterList* masterList; diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 6bf163379..f2f40820a 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -32,6 +32,11 @@ #define SEGMENT_BSS_END(segment) (_ ## segment ## SegmentBssEnd) #define SEGMENT_BSS_SIZE(segment) ((uintptr_t)SEGMENT_BSS_END(segment) - (uintptr_t)SEGMENT_BSS_START(segment)) +#define ROM_FILE(name) \ + { (uintptr_t)SEGMENT_ROM_START(name), (uintptr_t)SEGMENT_ROM_END(name) } +#define ROM_FILE_UNSET \ + { 0 } + DECLARE_SEGMENT(boot) DECLARE_ROM_SEGMENT(boot) diff --git a/include/variables.h b/include/variables.h index 8a2e66960..df924135a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -99,36 +99,6 @@ extern BgSpecialSceneMaxObjects sCustomDynapolyMem[]; // extern UNK_TYPE4 D_801BDAF8; extern u8 kanfontOrdering[92]; -// extern UNK_TYPE4 D_801BDB90; -// extern UNK_TYPE4 D_801BDB94; -// extern UNK_TYPE4 D_801BDB98; -// extern UNK_TYPE2 D_801BDB9C; -// extern UNK_TYPE1 D_801BDBA0; -// extern UNK_TYPE1 D_801BDBA4; -// extern UNK_TYPE1 D_801BDBA8; -extern u8 gWeatherMode; -// extern UNK_TYPE1 D_801BDBB4; -// extern UNK_TYPE1 D_801BDBB8; -// extern UNK_TYPE1 D_801BDBBC; -// extern UNK_TYPE1 D_801BDBC0; -// extern UNK_TYPE1 D_801BDBC4; -extern u8 D_801BDBC8; -// extern UNK_TYPE1 D_801BDBCC; -// extern UNK_TYPE1 D_801BDCF4; -// extern UNK_TYPE1 D_801BE38E; -// extern UNK_TYPE1 D_801BE38F; -// extern UNK_TYPE1 D_801BE390; -// extern UNK_TYPE1 D_801BE4D4; -// extern UNK_TYPE1 D_801BE4F4; -// extern UNK_TYPE1 D_801BE534; -// extern UNK_TYPE1 D_801BE6D4; -// extern UNK_TYPE1 D_801BE874; -// extern UNK_TYPE4 D_801BE894; -// extern UNK_TYPE4 D_801BE8BC; -// extern UNK_TYPE4 D_801BE8E4; -// extern UNK_TYPE1 D_801BE90C; -// extern UNK_TYPE1 D_801BE92C; -// extern UNK_TYPE1 D_801BE944; // extern actor_init_var_func sInitChainHandlers[11]; // extern UNK_TYPE4 D_801BEAD4; // extern UNK_TYPE4 D_801BEAD8; @@ -1683,43 +1653,6 @@ extern TriNorm D_801EF638; extern SaveContext gSaveContext; // extern UNK_TYPE1 D_801F4E20; -extern u8 D_801F4E30; -// extern UNK_TYPE1 D_801F4E31; -extern s8 D_801F4E32; -extern Vec3f D_801F4E38; -extern f32 D_801F4E44; -extern f32 D_801F4E48; -extern s16 D_801F4E4C; -extern s8 D_801F4E4E; -extern Vec3f D_801F4E50; -extern f32 D_801F4E5C; -extern f32 D_801F4E60; -extern s16 D_801F4E64; -extern u8 D_801F4E68; -extern f32 D_801F4E70; -// extern UNK_TYPE1 D_801F4E74; -extern u16 D_801F4E78; -extern s16 D_801F4E7A; -// extern UNK_TYPE1 D_801F4E80; -// extern UNK_TYPE1 D_801F4EE0; -// extern UNK_TYPE1 D_801F4EE8; -// extern UNK_TYPE1 D_801F4EF8; -// extern UNK_TYPE1 D_801F4F00; -// extern UNK_TYPE1 D_801F4F10; -// extern UNK_TYPE1 D_801F4F14; -// extern UNK_TYPE1 D_801F4F18; -// extern UNK_TYPE1 D_801F4F1C; -// extern UNK_TYPE1 D_801F4F20; -// extern UNK_TYPE1 D_801F4F24; -// extern UNK_TYPE1 D_801F4F28; -// extern UNK_TYPE1 D_801F4F2C; -// extern UNK_TYPE1 D_801F4F2E; -// extern UNK_TYPE1 D_801F4F30; -// extern UNK_TYPE1 D_801F4F31; -// extern UNK_TYPE1 D_801F4F32; -// extern UNK_TYPE1 D_801F4F33; -// extern UNK_TYPE1 D_801F4F34; -// extern UNK_TYPE1 D_801F4F38; // extern UNK_TYPE1 sBeatingHeartsDDPrim; // extern UNK_TYPE1 sBeatingHeartsDDEnv; // extern UNK_TYPE1 sHeartsDDPrim; diff --git a/include/z64.h b/include/z64.h index 63aec32ef..57c25047e 100644 --- a/include/z64.h +++ b/include/z64.h @@ -40,6 +40,7 @@ #include "z64dma.h" #include "z64eff_footmark.h" #include "z64effect.h" +#include "z64environment.h" #include "z64frameadvance.h" #include "z64game_over.h" #include "z64game.h" @@ -60,11 +61,13 @@ #include "z64skybox.h" #include "z64sound_source.h" #include "z64subs.h" +#include "z64rumble.h" #include "z64transition.h" #include "z64view.h" #include "regs.h" -typedef struct { + +typedef struct PauseContext { /* 0x000 */ View view; /* 0x168 */ u8* iconItemSegment; /* 0x16C */ u8* iconItem24Segment; @@ -163,68 +166,6 @@ typedef enum { /* 0x02 */ KALEID_OVL_MAX } KaleidoMgrOverlayType; -typedef struct { - /* 0x00 */ u16 unk_0; - /* 0x02 */ u16 sceneTimeSpeed; - /* 0x04 */ Vec3f sunPos; - /* 0x10 */ u8 skybox1Index; - /* 0x11 */ u8 skybox2Index; - /* 0x12 */ u8 unk_12; - /* 0x13 */ u8 skyboxBlend; - /* 0x14 */ u8 unk_14; - /* 0x15 */ u8 skyboxDisabled; - /* 0x16 */ u8 sunMoonDisabled; - /* 0x17 */ u8 skyboxConfig; - /* 0x18 */ u8 changeSkyboxNextConfig; - /* 0x19 */ u8 changeSkyboxState; - /* 0x1A */ u16 changeSkyboxTimer; - /* 0x1C */ u16 unk_1C; - /* 0x1E */ u8 lightMode; - /* 0x1F */ u8 lightConfig; - /* 0x20 */ u8 changeLightNextConfig; - /* 0x21 */ u8 changeLightEnabled; - /* 0x22 */ u16 changeLightTimer; - /* 0x24 */ u16 changeDuration; - /* 0x26 */ u8 unk_26; - /* 0x28 */ LightInfo dirLight1; // sun 1 - /* 0x36 */ LightInfo unk_36; // sun 2 - /* 0x44 */ s8 skyboxDmaState; - /* 0x48 */ DmaRequest dmaRequest; - /* 0x68 */ OSMesgQueue loadQueue; - /* 0x80 */ OSMesg loadMsg; - /* 0x84 */ f32 glareAlpha; - /* 0x88 */ f32 lensFlareAlphaScale; - /* 0x8C */ EnvLightSettings lightSettings; - /* 0xA8 */ f32 unk_A8; - /* 0xAC */ Vec3s windDir; - /* 0xB4 */ f32 windSpeed; - /* 0xB8 */ u8 numLightSettings; - /* 0xBC */ LightSettings* lightSettingsList; - /* 0xC0 */ u8 lightBlendEnabled; - /* 0xC1 */ u8 lightSetting; - /* 0xC2 */ u8 prevLightSetting; - /* 0xC3 */ u8 lightSettingOverride; - /* 0xC4 */ LightSettings unk_C4; - /* 0xDA */ u16 lightBlendRateOverride; - /* 0xDC */ f32 lightBlend; - /* 0xE0 */ u8 unk_E0; - /* 0xE1 */ u8 unk_E1; - /* 0xE2 */ s8 unk_E2; - /* 0xE3 */ u8 unk_E3; // modified by unused func in EnWeatherTag - /* 0xE4 */ u8 unk_E4; - /* 0xE5 */ u8 fillScreen; - /* 0xE6 */ u8 screenFillColor[4]; - /* 0xEA */ u8 sandstormState; - /* 0xEB */ u8 sandstormPrimA; - /* 0xEC */ u8 sandstormEnvA; - /* 0xED */ u8 unk_ED; - /* 0xEE */ u8 unk_EE[4]; - /* 0xF2 */ u8 unk_F2[8]; // [3] is used by both DemoKankyo and ObjectKankyo effect count - /* 0xFA */ u8 unk_FA[4]; -} EnvironmentContext; // size = 0x100 - -struct PlayState; - typedef struct { /* 0x0 */ u8 seqId; /* 0x1 */ u8 ambienceId; diff --git a/include/z64environment.h b/include/z64environment.h new file mode 100644 index 000000000..18e1fbf70 --- /dev/null +++ b/include/z64environment.h @@ -0,0 +1,327 @@ +#ifndef Z64ENVIRONMENT_H +#define Z64ENVIRONMENT_H + +#include "PR/ultratypes.h" +#include "PR/os_message.h" +#include "z64math.h" +#include "z64dma.h" +#include "unk.h" + +struct GameOverContext; +struct GraphicsContext; +struct LightContext; +struct MessageContext; +struct PauseContext; +struct PlayState; +struct SkyboxContext; +struct View; + +#define FILL_SCREEN_OPA (1 << 0) +#define FILL_SCREEN_XLU (1 << 1) + +#define NEXT_TIME_NONE 0xFFFF +#define NEXT_TIME_DAY CLOCK_TIME(12, 0) +#define NEXT_TIME_NIGHT CLOCK_TIME(0, 0) +#define NEXT_TIME_DAY_SET 0xFFFE +#define NEXT_TIME_NIGHT_SET 0xFFFD + +#define LIGHT_SETTING_MAX 31 +#define LIGHT_SETTING_OVERRIDE_NONE 0xFF + +// This mode disables the updating of lights in both light modes. +// With this mode enabled, the only way lights can change is via the adjustment arrays. +// This mode is not used in the original game. +#define LIGHT_SETTING_OVERRIDE_FULL_CONTROL 0xFE + +#define LIGHT_BLENDRATE_OVERRIDE_NONE 0xFFFF +#define LIGHT_BLEND_OVERRIDE_NONE 0 +#define LIGHT_BLEND_OVERRIDE_ON 1 + +// This mode disables the light system's automatic blending between +// light settings for `LIGHT_MODE_SETTINGS` (or using a light setting override). +// This is a bit of a hack used only by bosses in the original game. +#define LIGHT_BLEND_OVERRIDE_FULL_CONTROL 2 + +typedef enum { + /* 0 */ LIGHT_MODE_TIME, // environment lights use `lightConfig` and change based on time of day + /* 1 */ LIGHT_MODE_SETTINGS // environment lights use `lightSetting` +} LightMode; + +typedef enum { + /* 0 */ LIGHTNING_OFF, // no lightning + /* 1 */ LIGHTNING_ON, // request ligtning strikes at random intervals + /* 2 */ LIGHTNING_LAST // request one lightning strike before turning off +} LightningState; + +typedef enum { + /* 0 */ LIGHTNING_STRIKE_WAIT, // wait between lightning strikes. request bolts when timer hits 0 + /* 1 */ LIGHTNING_STRIKE_START, // fade in the flash. note: bolts are requested in the previous state + /* 2 */ LIGHTNING_STRIKE_END // fade out the flash and go back to wait +} LightningStrikeState; + +typedef enum { + /* 0 */ WEATHER_MODE_CLEAR, + /* 1 */ WEATHER_MODE_1, // rain? + /* 2 */ WEATHER_MODE_2, + /* 3 */ WEATHER_MODE_SNOW +} WeatherMode; + +typedef enum { + /* 0 */ CHANGE_SKYBOX_INACTIVE, + /* 1 */ CHANGE_SKYBOX_REQUESTED, + /* 2 */ CHANGE_SKYBOX_WAIT, + /* 3 */ CHANGE_SKYBOX_ACTIVE +} ChangeSkyboxState; + +typedef enum { + /* 0 */ SKYBOX_DMA_INACTIVE, + /* 1 */ SKYBOX_DMA_TEXTURE1_START, + /* 11 */ SKYBOX_DMA_TEXTURE2_START = 11 +} SkyboxDmaState; + +//! @TODO: Verify from OoT (may not be the same) +typedef enum { + /* 0 */ PRECIP_RAIN_MAX, // max number of raindrops that can draw; uses this or SOS_MAX, whichever is larger + /* 1 */ PRECIP_RAIN_CUR, // current number of rain drops being drawn on screen + /* 2 */ PRECIP_SNOW_CUR, // current number of snowflakes being drawn on screen + /* 3 */ PRECIP_SNOW_MAX, // max number of snowflakes that can draw + /* 4 */ PRECIP_SOS_MAX, // max number of rain drops requested from song of storms specifically + /* 5 */ PRECIP_MAX +} PrecipitationData; + +typedef enum { + /* 0 */ STORM_REQUEST_NONE, + /* 1 */ STORM_REQUEST_START, + /* 2 */ STORM_REQUEST_STOP +} StormRequest; + +typedef enum { + /* 0 */ STORM_STATE_OFF, + /* 1 */ STORM_STATE_ON +} StormState; + +typedef enum { + /* 0x00 */ TIMESEQ_DAY_BGM, + /* 0x01 */ TIMESEQ_FADE_DAY_BGM, + /* 0x02 */ TIMESEQ_NIGHT_BEGIN_SFX, + /* 0x03 */ TIMESEQ_EARLY_NIGHT_CRITTERS, + /* 0x04 */ TIMESEQ_NIGHT_DELAY, + /* 0x05 */ TIMESEQ_NIGHT_CRITTERS, + /* 0x06 */ TIMESEQ_DAY_BEGIN_SFX, + /* 0x07 */ TIMESEQ_MORNING_CRITTERS, + /* 0x08 */ TIMESEQ_DAY_DELAY, + /* 0xFE */ TIMESEQ_REQUEST = 0xFE, + /* 0xFF */ TIMESEQ_DISABLED +} TimeBasedSeqState; + +#define SCENESEQ_DEFAULT 0 +#define SCENESEQ_MORNING 0xFE + +typedef enum { + /* 0x0 */ SANDSTORM_OFF, + /* 0x1 */ SANDSTORM_FILL, + /* 0x2 */ SANDSTORM_UNFILL, + /* 0x3 */ SANDSTORM_ACTIVE, + /* 0x4 */ SANDSTORM_DISSIPATE, + /* 0x5 */ SANDSTORM_5, + /* 0x6 */ SANDSTORM_6, + /* 0x7 */ SANDSTORM_7, + /* 0x8 */ SANDSTORM_8, + /* 0x9 */ SANDSTORM_9, + /* 0xA */ SANDSTORM_A, + /* 0xB */ SANDSTORM_B, + /* 0xC */ SANDSTORM_C, + /* 0xD */ SANDSTORM_D +} SandstormState; + +typedef struct LightningStrike { + /* 0x00 */ u8 state; + /* 0x01 */ u8 flashRed; + /* 0x02 */ u8 flashGreen; + /* 0x03 */ u8 flashBlue; + /* 0x04 */ u8 flashAlphaTarget; + /* 0x08 */ f32 delayTimer; +} LightningStrike; // size = 0xC + +typedef struct { + /* 0x0 */ u16 startTime; + /* 0x2 */ u16 endTime; + /* 0x4 */ u8 skybox1Index; + /* 0x5 */ u8 skybox2Index; + /* 0x6 */ u8 color1Index; + /* 0x7 */ u8 color2Index; +} TimeBasedSkyboxEntry; // size = 0x8 + +#define ENV_FOGNEAR_MAX 996 +#define ENV_ZFAR_MAX 15000 + +typedef struct { + /* 0x00 */ u8 ambientColor[3]; + /* 0x03 */ s8 light1Dir[3]; + /* 0x06 */ u8 light1Color[3]; + /* 0x09 */ s8 light2Dir[3]; + /* 0x0C */ u8 light2Color[3]; + /* 0x0F */ u8 fogColor[3]; + /* 0x12 */ s16 fogNear; // ranges from 0-1000 (0: starts immediately, 1000: no fog), but is clamped to ENV_FOGNEAR_MAX + /* 0x14 */ s16 zFar; // Max depth (render distance) of the view as a whole. fogFar will always match zFar +} CurrentEnvLightSettings; // size = 0x16 + +// `EnvLightSettings` is very similar to `CurrentEnvLightSettings` with one key difference. +// The light settings data in the scene packs blend rate information with the fog near value. +// The blendRate determines how fast the current light settings fade to the next one +// (under LIGHT_MODE_SETTINGS, otherwise unused). + +// Get blend rate from `EnvLightSettings.blendRateAndFogNear` in 0-255 range +#define ENV_LIGHT_SETTINGS_BLEND_RATE_U8(blendRateAndFogNear) (((blendRateAndFogNear) >> 10) * 4) +#define ENV_LIGHT_SETTINGS_FOG_NEAR(blendRateAndFogNear) ((blendRateAndFogNear) & 0x3FF) + +typedef struct { + /* 0x00 */ u8 ambientColor[3]; + /* 0x03 */ s8 light1Dir[3]; + /* 0x06 */ u8 light1Color[3]; + /* 0x09 */ s8 light2Dir[3]; + /* 0x0C */ u8 light2Color[3]; + /* 0x0F */ u8 fogColor[3]; + /* 0x12 */ s16 blendRateAndFogNear; + /* 0x14 */ s16 zFar; +} EnvLightSettings; // size = 0x16 + +// ZAPD compatibility typedefs +// TODO: Remove when ZAPD adds support for them +typedef CurrentEnvLightSettings LightSettings; + +typedef struct EnvironmentContext { + /* 0x00 */ u16 unk_0; + /* 0x02 */ u16 sceneTimeSpeed; + /* 0x04 */ Vec3f sunPos; + /* 0x10 */ u8 skybox1Index; + /* 0x11 */ u8 skybox2Index; + /* 0x12 */ u8 unk_12; + /* 0x13 */ u8 skyboxBlend; + /* 0x14 */ u8 unk_14; + /* 0x15 */ u8 skyboxDisabled; + /* 0x16 */ u8 sunDisabled; + /* 0x17 */ u8 skyboxConfig; + /* 0x18 */ u8 changeSkyboxNextConfig; + /* 0x19 */ u8 changeSkyboxState; + /* 0x1A */ u16 changeSkyboxTimer; + /* 0x1C */ u16 unk_1C; + /* 0x1E */ u8 lightMode; + /* 0x1F */ u8 lightConfig; + /* 0x20 */ u8 changeLightNextConfig; + /* 0x21 */ u8 changeLightEnabled; + /* 0x22 */ u16 changeLightTimer; + /* 0x24 */ u16 changeDuration; + /* 0x26 */ u8 unk_26; + /* 0x28 */ LightInfo dirLight1; // sun 1 + /* 0x36 */ LightInfo dirLight2; // sun 2 + /* 0x44 */ s8 skyboxDmaState; + /* 0x48 */ DmaRequest dmaRequest; + /* 0x68 */ OSMesgQueue loadQueue; + /* 0x80 */ OSMesg loadMsg[1]; + /* 0x84 */ f32 glareAlpha; + /* 0x88 */ f32 lensFlareAlphaScale; + /* 0x8C */ AdjLightSettings adjLightSettings; + /* 0xA8 */ f32 unk_A8; + /* 0xAC */ Vec3s windDirection; + /* 0xB4 */ f32 windSpeed; + /* 0xB8 */ u8 numLightSettings; + /* 0xBC */ EnvLightSettings* lightSettingsList; // list of light settings from the scene file + /* 0xC0 */ u8 lightBlendEnabled; // only used with `LIGHT_MODE_SETTINGS` or on override + /* 0xC1 */ u8 lightSetting; // only used with `LIGHT_MODE_SETTINGS` or on override + /* 0xC2 */ u8 prevLightSetting; + /* 0xC3 */ u8 lightSettingOverride; + /* 0xC4 */ CurrentEnvLightSettings lightSettings; // settings for the currently "live" lights + /* 0xDA */ u16 lightBlendRateOverride; + /* 0xDC */ f32 lightBlend; + /* 0xE0 */ u8 lightBlendOverride; + /* 0xE1 */ u8 stormRequest; + /* 0xE2 */ u8 stormState; + /* 0xE3 */ u8 lightningState; // modified by unused func in EnWeatherTag + /* 0xE4 */ u8 timeSeqState; + /* 0xE5 */ u8 fillScreen; + /* 0xE6 */ u8 screenFillColor[4]; + /* 0xEA */ u8 sandstormState; + /* 0xEB */ u8 sandstormPrimA; + /* 0xEC */ u8 sandstormEnvA; + /* 0xED */ u8 customSkyboxFilter; + /* 0xEE */ u8 skyboxFilterColor[4]; + /* 0xF2 */ u8 precipitation[PRECIP_MAX]; + /* 0xF7 */ UNK_TYPE1 unk_FA[9]; +} EnvironmentContext; // size = 0x100 + +s32 Environment_ZBufValToFixedPoint(s32 zBufferVal); +void Environment_Init(struct PlayState* play2, EnvironmentContext* envCtx, s32 arg2); +u8 Environment_SmoothStepToU8(u8* pvalue, u8 target, u8 scale, u8 step, u8 minStep); +f32 Environment_LerpWeight(u16 max, u16 min, u16 val); +f32 Environment_LerpWeightAccelDecel(u16 endFrame, u16 startFrame, u16 curFrame, u16 accelDuration, u16 decelDuration); +void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, struct SkyboxContext* skyboxCtx); +void Environment_EnableUnderwaterLights(struct PlayState* play, s32 waterLightsIndex); +void Environment_DisableUnderwaterLights(struct PlayState* play); +void Environment_Update(struct PlayState* play, EnvironmentContext* envCtx, struct LightContext* lightCtx, + struct PauseContext* pauseCtx, struct MessageContext* msgCtx, struct GameOverContext* gameOverCtx, + struct GraphicsContext* gfxCtx); +void Environment_DrawSunLensFlare(struct PlayState* play, EnvironmentContext* envCtx, struct View* view, struct GraphicsContext* gfxCtx, Vec3f vec); +void Environment_DrawLensFlare(struct PlayState* play, EnvironmentContext* envCtx, struct View* view, struct GraphicsContext* gfxCtx, Vec3f pos, f32 scale, f32 colorIntensity, s16 glareStrength, u8 isSun); +void Environment_DrawRain(struct PlayState* play, struct View* view, struct GraphicsContext* gfxCtx); +void Environment_ChangeLightSetting(struct PlayState* play, u8 lightSetting); +void Environment_AddLightningBolts(struct PlayState* play, u8 num); +void Environment_PlaySceneSequence(struct PlayState* play); +void Environment_DrawCustomLensFlare(struct PlayState* play); +void Environment_InitGameOverLights(struct PlayState* play); +void Environment_FadeInGameOverLights(struct PlayState* play); +void Environment_FadeOutGameOverLights(struct PlayState* play); +void Environment_FillScreen(struct GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, u8 alpha, u8 drawFlags); +void Environment_DrawSandstorm(struct PlayState* play, u8 sandstormState); +s32 Environment_AdjustLights(struct PlayState* play, f32 arg1, f32 arg2, f32 arg3, f32 arg4); +void Environment_LerpAmbientColor(struct PlayState* play, Color_RGB8* to, f32 lerp); +void Environment_LerpDiffuseColor(struct PlayState* play, Color_RGB8* to, f32 lerp); +void Environment_LerpFogColor(struct PlayState* play, Color_RGB8* to, f32 lerp); +void Environment_LerpFog(struct PlayState* play, s16 fogNearTarget, s16 fogFarTarget, f32 lerp); +void Environment_ForcePlaySequence(u16 seqId); +s32 Environment_IsForcedSequenceDisabled(void); +void Environment_PlayStormNatureAmbience(struct PlayState* play); +void Environment_StopStormNatureAmbience(struct PlayState* play); +void Environment_Draw(struct PlayState* play); +void Environment_DrawSkyboxStars(struct PlayState* play); +void Environment_StopTime(void); +void Environment_StartTime(void); +u8 Environment_IsTimeStopped(void); +u32 Environment_GetStormState(struct PlayState* play); +u8 Environment_IsFinalHours(struct PlayState* play); +u16 Environment_GetTimeSpeed(struct PlayState* play); +void Environment_SetTimeJump(f32 minutes); +u8 func_800FE6F8(struct PlayState* play, s16 timeAdvanceScaling, s16 nextTimeLimit); +void Environment_LerpSandstormColors(Color_RGBA8* colorSrc, Color_RGBA8* colorDst); +u8 func_800FE9B4(struct PlayState* play); +void func_800FEA50(struct PlayState* play); +void func_800FEAB0(void); +void func_800FEAF4(EnvironmentContext* envCtx); + +// Data +extern u8 gWeatherMode; +extern u8 gLightConfigAfterUnderwater; +extern u8 gInterruptSongOfStorms; +extern u8 gSceneSeqState; + +// Bss +extern u8 D_801F4E30; + +extern u8 gCustomLensFlare1On; +extern Vec3f gCustomLensFlare1Pos; +extern f32 D_801F4E44; +extern f32 D_801F4E48; +extern s16 D_801F4E4C; + +extern u8 gCustomLensFlare2On; +extern Vec3f gCustomLensFlare2Pos; +extern f32 D_801F4E5C; +extern f32 D_801F4E60; +extern s16 D_801F4E64; + +extern struct LightningStrike gLightningStrike; +extern f32 D_801F4E74; +extern u16 D_801F4E78; +extern u16 gSkyboxNumStars; + +#endif diff --git a/include/z64light.h b/include/z64light.h index 706df2f4d..21b1920c3 100644 --- a/include/z64light.h +++ b/include/z64light.h @@ -8,26 +8,14 @@ struct PlayState; - -typedef struct { - /* 0x00 */ u8 ambientColor[3]; - /* 0x03 */ s8 diffuseDir1[3]; - /* 0x06 */ u8 diffuseColor1[3]; - /* 0x09 */ s8 diffusePos2[3]; - /* 0x0C */ u8 diffuseColor[3]; - /* 0x0F */ u8 fogColor[3]; - /* 0x12 */ s16 fogNear; - /* 0x14 */ s16 zFar; -} LightSettings; // size = 0x16 - typedef struct { /* 0x00 */ s16 ambientColor[3]; - /* 0x06 */ s16 diffuseColor1[3]; - /* 0x0C */ s16 diffuseColor2[3]; + /* 0x06 */ s16 light1Color[3]; + /* 0x0C */ s16 light2Color[3]; /* 0x12 */ s16 fogColor[3]; /* 0x18 */ s16 fogNear; /* 0x1A */ s16 zFar; -} EnvLightSettings; // size = 0x1C +} AdjLightSettings; // size = 0x1C typedef struct { /* 0x0 */ s16 x; @@ -77,8 +65,8 @@ typedef struct LightsBuffer { typedef struct LightContext { /* 0x0 */ LightNode* listHead; - /* 0x4 */ Color_RGB8 ambient; - /* 0x7 */ Color_RGB8 fogColor; + /* 0x4 */ u8 ambientColor[3]; + /* 0x7 */ u8 fogColor[3]; /* 0xA */ s16 fogNear; // how close until fog starts taking effect. range 0 - 996 /* 0xC */ s16 zFar; // draw distance. range 0 - 12800 } LightContext; // size = 0x10 diff --git a/include/z64save.h b/include/z64save.h index e22b2c58f..333953a76 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -327,7 +327,7 @@ typedef struct Save { /* 0x10 */ s32 isNight; // "asahiru_fg" /* 0x14 */ s32 timeSpeedOffset; // "change_zelda_time" /* 0x18 */ s32 day; // "totalday" - /* 0x1C */ s32 daysElapsed; // "eventday" + /* 0x1C */ s32 eventDayCount; // "eventday" /* 0x20 */ u8 playerForm; // "player_character" /* 0x21 */ u8 snowheadCleared; // "spring_flag" /* 0x22 */ u8 hasTatl; // "bell_flag" diff --git a/spec b/spec index dcd055a6f..339a701c8 100644 --- a/spec +++ b/spec @@ -476,8 +476,6 @@ beginseg include "build/src/code/z_kaleido_setup.o" include "build/src/code/z_kanfont.o" include "build/src/code/z_kankyo.o" - include "build/data/code/z_kankyo.data.o" - include "build/data/code/z_kankyo.bss.o" include "build/src/code/z_lib.o" include "build/src/code/z_lifemeter.o" include "build/src/code/z_lights.o" diff --git a/src/code/graph.c b/src/code/graph.c index ad4ad0286..3a178d2b8 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "z64.h" #include "regs.h" #include "functions.h" diff --git a/src/code/sys_cfb.c b/src/code/sys_cfb.c index 383a35cc9..32600643a 100644 --- a/src/code/sys_cfb.c +++ b/src/code/sys_cfb.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "z64.h" #include "regs.h" #include "functions.h" diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 976b0fd4d..f0805c46b 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -12,7 +12,7 @@ void SaveContext_Init(void) { gSaveContext.nextCutsceneIndex = 0xFFEF; gSaveContext.cutsceneTrigger = 0; gSaveContext.chamberCutsceneNum = 0; - gSaveContext.nextDayTime = 0xFFFF; + gSaveContext.nextDayTime = NEXT_TIME_NONE; gSaveContext.skyboxTime = 0; gSaveContext.dogIsLost = true; gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 11d614fc1..300a3c20f 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -1,6 +1,4 @@ #include "PR/ultratypes.h" -#include "prevent_bss_reordering.h" -#include "prevent_bss_reordering2.h" // Variables are put before most headers as a hacky way to bypass bss reordering struct CutsceneCamera; @@ -13,6 +11,15 @@ static s16 sBssPad; u8 gDisablePlayerCsModeStartPos; s16 gDungeonBossWarpSceneId; +#include "prevent_bss_reordering.h" +#include "prevent_bss_reordering2.h" +// clang-format off +// Partial structs taken from "prevent_bss_reordering.h" +struct Dummy200 { int x; }; +struct Dummy201 { int x; }; +struct Dummy202 { int x; }; +// clang-format on + #include "global.h" #include "z64quake.h" #include "z64rumble.h" @@ -154,8 +161,8 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { switch (cmd->type) { case CS_MISC_RAIN: if (isFirstFrame) { - func_800FD78C(play); - play->envCtx.unk_F2[0] = 60; + Environment_PlayStormNatureAmbience(play); + play->envCtx.precipitation[PRECIP_RAIN_MAX] = 60; } break; @@ -163,19 +170,19 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { if (isFirstFrame) { Audio_SetAmbienceChannelIO(AMBIENCE_CHANNEL_LIGHTNING, CHANNEL_IO_PORT_0, 0); Environment_AddLightningBolts(play, 3); - D_801F4E68 = 1; + gLightningStrike.state = LIGHTNING_STRIKE_START; } break; case CS_MISC_LIFT_FOG: - if (play->envCtx.lightSettings.zFar < 12800) { - play->envCtx.lightSettings.zFar += 35; + if (play->envCtx.adjLightSettings.zFar < 12800) { + play->envCtx.adjLightSettings.zFar += 35; } break; case CS_MISC_CLOUDY_SKY: if (isFirstFrame) { - play->envCtx.changeSkyboxState = 1; + play->envCtx.changeSkyboxState = CHANGE_SKYBOX_REQUESTED; play->envCtx.skyboxConfig = 1; play->envCtx.changeSkyboxNextConfig = 0; play->envCtx.changeSkyboxTimer = 60; @@ -238,16 +245,16 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { case CS_MISC_RED_PULSATING_LIGHTS: if (play->state.frames & 8) { - if (play->envCtx.lightSettings.ambientColor[0] < 40) { - play->envCtx.lightSettings.ambientColor[0] += 2; - play->envCtx.lightSettings.diffuseColor1[1] -= 3; - play->envCtx.lightSettings.diffuseColor1[2] -= 3; + if (play->envCtx.adjLightSettings.ambientColor[0] < 40) { + play->envCtx.adjLightSettings.ambientColor[0] += 2; + play->envCtx.adjLightSettings.light1Color[1] -= 3; + play->envCtx.adjLightSettings.light1Color[2] -= 3; } } else { - if (play->envCtx.lightSettings.ambientColor[0] > 2) { - play->envCtx.lightSettings.ambientColor[0] -= 2; - play->envCtx.lightSettings.diffuseColor1[1] += 3; - play->envCtx.lightSettings.diffuseColor1[2] += 3; + if (play->envCtx.adjLightSettings.ambientColor[0] > 2) { + play->envCtx.adjLightSettings.ambientColor[0] -= 2; + play->envCtx.adjLightSettings.light1Color[1] += 3; + play->envCtx.adjLightSettings.light1Color[2] += 3; } } break; @@ -262,7 +269,7 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { case CS_MISC_SANDSTORM_FILL: if (isFirstFrame) { - play->envCtx.sandstormState = 1; + play->envCtx.sandstormState = SANDSTORM_FILL; } Audio_PlaySfx_2(NA_SE_EV_SAND_STORM - SFX_FLAG); break; @@ -409,7 +416,7 @@ void CutsceneCmd_SetLightSetting(PlayState* play, CutsceneContext* csCtx, CsCmdL play->envCtx.lightSettingOverride = cmd->settingPlusOne - 1; play->envCtx.lightBlend = 1.0f; } else { - play->envCtx.lightSettingOverride = 0xFF; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } } } diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c index c3c6819be..003f5dd7b 100644 --- a/src/code/z_game_over.c +++ b/src/code/z_game_over.c @@ -15,7 +15,7 @@ void GameOver_FadeLights(PlayState* play) { if ((gameOverCtx->state >= GAMEOVER_DEATH_WAIT_GROUND && gameOverCtx->state < GAMEOVER_REVIVE_START) || (gameOverCtx->state >= GAMEOVER_REVIVE_RUMBLE && gameOverCtx->state < GAMEOVER_REVIVE_FADE_OUT)) { - Kankyo_FadeInGameOverLights(play); + Environment_FadeInGameOverLights(play); } } @@ -66,7 +66,7 @@ void GameOver_Update(PlayState* play) { gSaveContext.nextHudVisibility = HUD_VISIBILITY_IDLE; gSaveContext.hudVisibility = HUD_VISIBILITY_IDLE; gSaveContext.hudVisibilityTimer = 0; - Kankyo_InitGameOverLights(play); + Environment_InitGameOverLights(play); sGameOverTimer = 20; Rumble_Request(0.0f, 126, 124, 63); gameOverCtx->state = GAMEOVER_DEATH_WAIT_GROUND; @@ -92,7 +92,7 @@ void GameOver_Update(PlayState* play) { case GAMEOVER_REVIVE_START: gameOverCtx->state++; // GAMEOVER_REVIVE_RUMBLE sGameOverTimer = 0; - Kankyo_InitGameOverLights(play); + Environment_InitGameOverLights(play); ShrinkWindow_Letterbox_SetSizeTarget(32); break; @@ -119,7 +119,7 @@ void GameOver_Update(PlayState* play) { break; case GAMEOVER_REVIVE_FADE_OUT: - Kankyo_FadeOutGameOverLights(play); + Environment_FadeOutGameOverLights(play); sGameOverTimer--; if (sGameOverTimer == 0) { gameOverCtx->state = GAMEOVER_INACTIVE; diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 9346af59a..30ea04e16 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -1,156 +1,980 @@ +#include "ultra64.h" +#include "z64light.h" +#include "z64math.h" + +typedef struct { + /* 0x00 */ u8 state; + /* 0x04 */ Vec3f offset; + /* 0x10 */ Vec3f pos; + /* 0x1C */ s8 pitch; + /* 0x1D */ s8 roll; + /* 0x1E */ u8 textureIndex; + /* 0x1F */ u8 delayTimer; +} LightningBolt; // size = 0x20 + +// Variables are put before most headers as a hacky way to bypass bss reordering +struct LightningStrike; + +u8 D_801F4E30; +u8 D_801F4E31; +u8 gCustomLensFlare1On; +Vec3f gCustomLensFlare1Pos; +f32 D_801F4E44; +f32 D_801F4E48; +s16 D_801F4E4C; +u8 gCustomLensFlare2On; +Vec3f gCustomLensFlare2Pos; +f32 D_801F4E5C; +f32 D_801F4E60; +s16 D_801F4E64; +struct LightningStrike gLightningStrike; +f32 D_801F4E74; +u16 D_801F4E78; +u16 gSkyboxNumStars; +LightningBolt sLightningBolts[3]; +LightNode* sNGameOverLightNode; +LightInfo sNGameOverLightInfo; +LightNode* sSGameOverLightNode; +LightInfo sSGameOverLightInfo; +f32 sSunEnvAlpha; +f32 sSunColor; +f32 sSunScale; +f32 sSunPrimAlpha; +s32 sSunDepthTestX; +s32 sSunDepthTestY; +f32 D_801F4F28; +s16 sLightningFlashAlpha; +u16 sSandstormScroll; +u8 D_801F4F30; +u8 D_801F4F31; +u8 sEnvIsTimeStopped; +u8 D_801F4F33; +u8 sGameOverLightsIntensity; +Gfx* sSkyboxStarsDList; + +#include "z64environment.h" #include "global.h" +#include "sys_cfb.h" +#include "objects/gameplay_keep/gameplay_keep.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F5090.s") +// Data +f32 sSandstormLerpScale = 0.0f; +s32 sSunScreenDepth = GPACK_ZDZ(G_MAXFBZ, 0); +s32 sEnvSkyboxNumStars = 0; +u16 sTimeJump = 0; +u8 sSandstormColorIndex = 0; +u8 sNextSandstormColorIndex = 0; +u8 D_801BDBA8 = 0; +u8 D_801BDBAC = 0; +u8 gWeatherMode = WEATHER_MODE_CLEAR; +u8 gLightConfigAfterUnderwater = 0; +u8 gInterruptSongOfStorms = false; +u8 sSkyboxIsChanging = false; +u8 D_801BDBC0 = 0; +u8 D_801BDBC4 = 0; +u8 gSceneSeqState = SCENESEQ_DEFAULT; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_ZBufValToFixedPoint.s") +typedef struct { + /* 0x0 */ u16 startTime; + /* 0x2 */ u16 endTime; + /* 0x4 */ u8 lightSetting; + /* 0x5 */ u8 nextLightSetting; +} TimeBasedLightEntry; // size = 0x6 + +TimeBasedLightEntry sTimeBasedLightConfigs[][7] = { + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 3, 3 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 3, 12 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 1 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 2 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 2, 3 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 3, 3 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 7, 7 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 7, 8 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 4, 5 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 5, 5 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 5, 6 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 6, 7 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 7, 7 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 11, 11 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 11, 8 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 8, 9 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 9, 9 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 9, 10 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 10, 11 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 11, 11 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 15, 15 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 15, 16 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 12, 13 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 13, 13 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 13, 14 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 14, 15 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 15, 15 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 19, 19 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 19, 16 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 16, 17 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 17, 17 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 17, 18 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 18, 19 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 19, 19 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 23, 23 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 23, 20 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 20, 21 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 21, 21 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 21, 22 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 22, 23 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 23, 23 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 27, 27 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(6, 0), 27, 24 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 24, 25 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 25, 25 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 25, 26 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(19, 0), 26, 27 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 27, 27 }, + }, +}; + +TimeBasedSkyboxEntry sTimeBasedSkyboxConfigs[][9] = { + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 3, 3 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 3, 4 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 4, 4 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 0, 0, 1 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 0, 1, 2 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 2, 2 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 2, 3 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 3, 3 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 7, 7 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 7, 8 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 8, 8 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 0, 4, 5 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 5, 5 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 1, 5, 6 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 6, 6 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 6, 7 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 7, 7 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 11, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 8, 9 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 9, 9 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 9, 10 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 10, 10 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 10, 11 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 11, 11 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 15, 15 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 15, 16 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 16, 16 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 0, 12, 13 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 13, 13 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 0, 13, 14 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 14, 14 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 14, 15 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 15, 15 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 19, 19 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 19, 20 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 20, 20 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 0, 16, 17 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 17, 17 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 1, 17, 18 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 18, 18 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 0, 18, 19 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 19, 19 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 23, 23 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 23, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 20, 21 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 21, 21 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 21, 22 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 22, 22 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 22, 23 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 23, 23 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 27, 27 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 27, 28 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 28, 28 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 0, 24, 25 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 25, 25 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 0, 25, 26 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 26, 26 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 26, 27 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 27, 27 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 31, 31 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 31, 32 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 32, 32 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 0, 28, 29 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 29, 29 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 1, 29, 30 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 30, 30 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 0, 30, 31 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 31, 31 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 35, 35 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 35, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 32, 33 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 33, 33 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 33, 34 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 34, 34 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 34, 35 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 35, 35 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 39, 39 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 39, 40 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 40, 40 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 0, 36, 37 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 37, 37 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 0, 37, 38 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 38, 38 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 38, 39 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 39, 39 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 43, 43 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 43, 44 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 44, 44 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 0, 40, 41 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 41, 41 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 1, 41, 42 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 42, 42 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 0, 42, 43 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 43, 43 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 47, 47 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 47, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 44, 45 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 45, 45 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 45, 46 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 46, 46 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 46, 47 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 47, 47 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 51, 51 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 51, 48 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 48, 49 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 49, 49 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 49, 49 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 49, 50 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 50, 50 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 50, 51 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 51, 51 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 55, 55 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 55, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 52, 53 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 53, 53 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 53, 54 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 54, 54 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 54, 54 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 55, 55 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 59, 59 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 59, 56 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 56, 56 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 56, 57 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 57, 57 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 57, 58 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 58, 58 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 58, 58 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 59, 59 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 63, 63 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 63, 60 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 60, 60 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 60, 61 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 61, 61 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 61, 62 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 62, 62 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 62, 62 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 63, 63 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 67, 67 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 67, 64 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 64, 64 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 64, 65 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 65, 65 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 65, 66 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 66, 66 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 66, 66 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 67, 67 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 1, 1 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 1, 1 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 71, 71 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 71, 72 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 72, 72 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 68, 69 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 69, 69 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 69, 70 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 70, 70 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 70, 71 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 71, 71 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 75, 75 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 75, 76 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 76, 76 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 72, 73 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 73, 73 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 73, 74 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 74, 74 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 74, 75 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 75, 75 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 79, 79 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 79, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 76, 77 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 77, 77 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 77, 78 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 78, 78 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 78, 79 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 79, 79 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 83, 83 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 83, 84 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 84, 84 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 80, 81 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 81, 81 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 81, 82 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 82, 82 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 82, 83 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 83, 83 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 87, 87 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 87, 88 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 88, 88 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 84, 85 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 85, 85 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 85, 86 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 86, 86 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 86, 87 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 87, 87 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 91, 91 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 91, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 88, 89 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 89, 89 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 89, 90 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 90, 90 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 90, 91 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 91, 91 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 11, 11 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 11, 11 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 95, 95 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 95, 96 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 96, 96 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 92, 93 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 93, 93 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 93, 94 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 94, 94 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 94, 95 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 95, 95 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 1, 1, 99, 99 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 1, 1, 99, 100 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 100, 100 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 96, 97 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 97, 97 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 1, 97, 98 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 1, 1, 98, 98 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 1, 1, 98, 99 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 1, 1, 99, 99 }, + }, + { + { CLOCK_TIME(0, 0), CLOCK_TIME(4, 0), 0, 0, 103, 103 }, + { CLOCK_TIME(4, 0), CLOCK_TIME(5, 0), 0, 1, 103, 52 }, + { CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), 1, 1, 52, 52 }, + { CLOCK_TIME(6, 0), CLOCK_TIME(8, 0), 1, 1, 100, 101 }, + { CLOCK_TIME(8, 0), CLOCK_TIME(16, 0), 1, 1, 101, 101 }, + { CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), 1, 0, 101, 102 }, + { CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), 0, 0, 102, 102 }, + { CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), 0, 0, 102, 103 }, + { CLOCK_TIME(19, 0), CLOCK_TIME(24, 0) - 1, 0, 0, 103, 103 }, + }, +}; + +typedef struct { + /* 0x0 */ RomFile file; + /* 0x8 */ RomFile palette; +} SkyboxFile; // size = 0x10 + +SkyboxFile sNormalSkyFiles[] = { + { + ROM_FILE(d2_fine_static), + ROM_FILE_UNSET, + }, + { + ROM_FILE(d2_cloud_static), + ROM_FILE_UNSET, + }, +}; + +void Environment_GraphCallback(GraphicsContext* gfxCtx, void* arg) { + PlayState* play = (PlayState*)arg; + + sSunScreenDepth = SysCfb_GetZBufferPixel(sSunDepthTestX, sSunDepthTestY); + Lights_GlowCheck(play); +} + +typedef struct { + /* 0x0 */ s32 mantissaShift; // shift applied to the mantissa of the z buffer value + /* 0x4 */ s32 base; // 15.3 fixed-point base value for the exponent +} ZBufValConversionEntry; // size = 0x8 + +ZBufValConversionEntry sZBufValConversionTable[1 << 3] = { + { 6, 0x00000 }, { 5, 0x20000 }, { 4, 0x30000 }, { 3, 0x38000 }, + { 2, 0x3C000 }, { 1, 0x3E000 }, { 0, 0x3F000 }, { 0, 0x3F800 }, +}; + +#define ZBUFVAL_EXPONENT(v) (((v) >> 15) & 7) +#define ZBUFVAL_MANTISSA(v) (((v) >> 4) & 0x7FF) + +/** + * Convert an 18-bits Z buffer value to a fixed point 15.3 value + * + * zBufferVal is 18 bits: + * 3: Exponent of z value + * 11: Mantissa of z value + * 4: dz value (unused) + */ +s32 Environment_ZBufValToFixedPoint(s32 zBufferVal) { + // base[exp] + mantissa << shift[exp] + s32 ret = (ZBUFVAL_MANTISSA(zBufferVal) << sZBufValConversionTable[ZBUFVAL_EXPONENT(zBufferVal)].mantissaShift) + + sZBufValConversionTable[ZBUFVAL_EXPONENT(zBufferVal)].base; + + return ret; +} #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F5954.s") +u8 Environment_SmoothStepToU8(u8* pvalue, u8 target, u8 scale, u8 step, u8 minStep) { + s16 stepSize = 0; + s16 diff = target - *pvalue; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpWeight.s") + if (target != *pvalue) { + stepSize = diff / scale; + if ((stepSize >= (s16)minStep) || ((s16)-minStep >= stepSize)) { + if ((s16)step < stepSize) { + stepSize = step; + } + if ((s16)-step > stepSize) { + stepSize = -step; + } + *pvalue += (u8)stepSize; + } else { + if (stepSize < (s16)minStep) { + stepSize = minStep; + *pvalue += (u8)stepSize; + if (target < *pvalue) { + *pvalue = target; + } + } + if ((s16)-minStep < stepSize) { + stepSize = -minStep; + *pvalue += (u8)stepSize; + if (*pvalue < target) { + *pvalue = target; + } + } + } + } + return diff; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F5B10.s") +f32 Environment_LerpWeight(u16 max, u16 min, u16 val) { + f32 diff = max - min; + + if (diff != 0.0f) { + f32 ret = 1.0f - (max - val) / diff; + + if (!(ret >= 1.0f)) { + return ret; + } + } + + return 1.0f; +} + +f32 Environment_LerpWeightAccelDecel(u16 endFrame, u16 startFrame, u16 curFrame, u16 accelDuration, u16 decelDuration) { + f32 endFrameF; + f32 startFrameF; + f32 curFrameF; + f32 accelDurationF; + f32 decelDurationF; + f32 totalFrames; + f32 temp; + f32 framesElapsed; + f32 ret; + + if (curFrame <= startFrame) { + return 0.0f; + } + + if (curFrame >= endFrame) { + return 1.0f; + } + + endFrameF = (s32)endFrame; + startFrameF = (s32)startFrame; + curFrameF = (s32)curFrame; + totalFrames = endFrameF - startFrameF; + framesElapsed = curFrameF - startFrameF; + accelDurationF = (s32)accelDuration; + decelDurationF = (s32)decelDuration; + + if ((startFrameF >= endFrameF) || (accelDurationF + decelDurationF > totalFrames)) { + return 0.0f; + } + + temp = 1.0f / ((totalFrames * 2.0f) - accelDurationF - decelDurationF); + + if (accelDurationF != 0.0f) { + if (framesElapsed <= accelDurationF) { + return temp * framesElapsed * framesElapsed / accelDurationF; + } + ret = temp * accelDurationF; + } else { + ret = 0.0f; + } + + if (framesElapsed <= totalFrames - decelDurationF) { + ret += 2.0f * temp * (framesElapsed - accelDurationF); + return ret; + } + + ret += 2.0f * temp * (totalFrames - accelDurationF - decelDurationF); + + if (decelDurationF != 0.0f) { + ret += temp * decelDurationF; + if (framesElapsed < totalFrames) { + ret -= temp * (totalFrames - framesElapsed) * (totalFrames - framesElapsed) / decelDurationF; + } + } + + return ret; +} + +Color_RGBA8 sSkyboxPrimColors[] = { + { 181, 100, 72, 0 }, { 255, 255, 255, 0 }, { 255, 164, 63, 0 }, { 70, 90, 100, 0 }, { 180, 110, 70, 0 }, + { 140, 120, 90, 0 }, { 186, 107, 70, 0 }, { 50, 90, 120, 0 }, { 160, 104, 125, 0 }, { 225, 234, 150, 0 }, + { 243, 84, 33, 0 }, { 112, 37, 55, 0 }, { 181, 100, 27, 0 }, { 255, 255, 255, 0 }, { 186, 107, 69, 0 }, + { 10, 40, 90, 0 }, { 180, 120, 100, 0 }, { 140, 120, 110, 0 }, { 186, 107, 70, 0 }, { 0, 50, 60, 0 }, + { 160, 104, 215, 0 }, { 225, 234, 150, 0 }, { 243, 84, 33, 0 }, { 100, 25, 45, 0 }, { 181, 100, 27, 0 }, + { 255, 255, 255, 0 }, { 186, 107, 69, 0 }, { 10, 10, 50, 0 }, { 165, 110, 63, 0 }, { 150, 120, 90, 0 }, + { 166, 112, 65, 0 }, { 10, 40, 60, 0 }, { 160, 104, 215, 0 }, { 225, 234, 150, 0 }, { 243, 84, 33, 0 }, + { 100, 20, 40, 0 }, { 181, 100, 27, 0 }, { 255, 255, 255, 0 }, { 186, 107, 69, 0 }, { 0, 50, 70, 0 }, + { 180, 126, 70, 0 }, { 150, 140, 120, 0 }, { 225, 164, 63, 0 }, { 0, 70, 80, 0 }, { 160, 104, 215, 0 }, + { 225, 234, 150, 0 }, { 243, 84, 33, 0 }, { 100, 40, 65, 0 }, { 105, 72, 57, 0 }, { 150, 120, 90, 0 }, + { 80, 56, 21, 0 }, { 60, 46, 40, 0 }, { 210, 120, 180, 0 }, { 210, 120, 180, 0 }, { 210, 120, 180, 0 }, + { 210, 120, 180, 0 }, { 100, 90, 110, 0 }, { 100, 90, 110, 0 }, { 100, 90, 110, 0 }, { 100, 90, 110, 0 }, + { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 25, 53, 235, 0 }, + { 25, 53, 235, 0 }, { 25, 53, 235, 0 }, { 25, 53, 235, 0 }, { 198, 121, 88, 0 }, { 255, 255, 255, 0 }, + { 255, 164, 70, 0 }, { 55, 53, 91, 0 }, { 199, 126, 78, 0 }, { 159, 125, 103, 0 }, { 186, 107, 59, 0 }, + { 50, 90, 120, 0 }, { 171, 113, 131, 0 }, { 225, 234, 180, 0 }, { 237, 84, 37, 0 }, { 133, 48, 75, 0 }, + { 198, 121, 88, 0 }, { 255, 255, 255, 0 }, { 255, 164, 70, 0 }, { 55, 53, 91, 0 }, { 209, 135, 100, 0 }, + { 180, 177, 158, 0 }, { 196, 127, 79, 0 }, { 50, 90, 120, 0 }, { 171, 113, 131, 0 }, { 225, 234, 180, 0 }, + { 237, 84, 37, 0 }, { 133, 48, 75, 0 }, { 198, 121, 88, 0 }, { 235, 250, 235, 0 }, { 255, 164, 70, 0 }, + { 55, 53, 91, 0 }, { 205, 140, 110, 0 }, { 159, 125, 103, 0 }, { 186, 107, 59, 0 }, { 50, 90, 120, 0 }, + { 171, 113, 131, 0 }, { 225, 234, 180, 0 }, { 237, 84, 37, 0 }, { 133, 48, 75, 0 }, +}; + +Color_RGBA8 sSkyboxEnvColors[] = { + { 102, 135, 99, 0 }, { 0, 15, 69, 0 }, { 110, 55, 110, 0 }, { 0, 0, 100, 0 }, { 70, 10, 10, 0 }, + { 40, 0, 10, 0 }, { 40, 40, 40, 0 }, { 20, 20, 30, 0 }, { 60, 0, 10, 0 }, { 65, 45, 0, 0 }, + { 20, 25, 90, 0 }, { 0, 5, 25, 0 }, { 102, 135, 99, 0 }, { 0, 4, 199, 0 }, { 60, 65, 89, 0 }, + { 0, 0, 0, 0 }, { 70, 10, 10, 0 }, { 20, 0, 30, 0 }, { 40, 40, 40, 0 }, { 0, 0, 20, 0 }, + { 60, 0, 10, 0 }, { 65, 45, 0, 0 }, { 20, 25, 90, 0 }, { 0, 0, 30, 0 }, { 102, 135, 99, 0 }, + { 0, 4, 199, 0 }, { 60, 65, 89, 0 }, { 0, 0, 20, 0 }, { 66, 10, 10, 0 }, { 46, 5, 2, 0 }, + { 66, 10, 10, 0 }, { 0, 20, 50, 0 }, { 60, 0, 10, 0 }, { 65, 45, 0, 0 }, { 20, 25, 90, 0 }, + { 0, 0, 20, 0 }, { 102, 135, 99, 0 }, { 0, 4, 199, 0 }, { 60, 65, 89, 0 }, { 0, 0, 40, 0 }, + { 90, 90, 100, 0 }, { 60, 20, 30, 0 }, { 110, 55, 110, 0 }, { 0, 0, 50, 0 }, { 60, 0, 10, 0 }, + { 65, 45, 0, 0 }, { 20, 25, 90, 0 }, { 0, 0, 25, 0 }, { 10, 0, 0, 0 }, { 46, 5, 2, 0 }, + { 34, 14, 10, 0 }, { 21, 5, 13, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, { 50, 20, 10, 0 }, { 50, 20, 10, 0 }, { 50, 20, 10, 0 }, { 50, 20, 10, 0 }, + { 30, 15, 250, 0 }, { 30, 15, 250, 0 }, { 30, 15, 250, 0 }, { 30, 15, 250, 0 }, { 177, 82, 93, 0 }, + { 177, 82, 93, 0 }, { 177, 82, 93, 0 }, { 177, 82, 93, 0 }, { 90, 82, 102, 0 }, { 0, 4, 199, 0 }, + { 101, 24, 131, 0 }, { 26, 7, 0, 0 }, { 70, 9, 6, 0 }, { 49, 6, 1, 0 }, { 40, 15, 59, 0 }, + { 0, 2, 28, 0 }, { 60, 0, 10, 0 }, { 75, 45, 0, 0 }, { 20, 20, 89, 0 }, { 0, 7, 17, 0 }, + { 90, 82, 102, 0 }, { 0, 4, 199, 0 }, { 101, 24, 131, 0 }, { 26, 7, 0, 0 }, { 70, 12, 16, 0 }, + { 51, 10, 15, 0 }, { 50, 15, 58, 0 }, { 0, 2, 28, 0 }, { 60, 0, 10, 0 }, { 75, 45, 0, 0 }, + { 20, 20, 89, 0 }, { 0, 7, 17, 0 }, { 90, 82, 102, 0 }, { 0, 4, 199, 0 }, { 101, 24, 131, 0 }, + { 26, 7, 0, 0 }, { 70, 20, 45, 0 }, { 49, 6, 1, 0 }, { 40, 15, 59, 0 }, { 0, 2, 28, 0 }, + { 60, 0, 10, 0 }, { 75, 45, 0, 0 }, { 20, 20, 89, 0 }, { 0, 7, 17, 0 }, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6834.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_EnableUnderwaterLights.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F694C.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DisableUnderwaterLights.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6A04.s") +void Environment_WipeRumbleRequests(void) { + if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (gSaveContext.gameMode != GAMEMODE_END_CREDITS)) { + Rumble_StateWipeRequests(); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6A40.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateSkyboxRotY.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6AB8.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateNextDayTime.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6B44.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateTime.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6CEC.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6EA4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_IsSceneUpsideDown.s") +s32 Environment_IsSceneUpsideDown(PlayState* play) { + s32 ret = false; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F6FF8.s") + if ((play->sceneId == SCENE_F41) || (play->sceneId == SCENE_INISIE_R)) { + ret = true; + } + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F8554.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateLights.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateSun.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F88C4.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F8970.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F8A9C.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdatePostmanEvents.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_Update.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F8D84.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSun.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSunLensFlare.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F9824.s") +typedef enum { + /* 0 */ LENS_FLARE_CIRCLE0, + /* 1 */ LENS_FLARE_CIRCLE1, + /* 2 */ LENS_FLARE_RING +} LensFlareType; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FA39C.s") +static Color_RGB8 sLensFlareColors[] = { + { 155, 205, 255 }, // blue + { 255, 255, 205 }, // yellow + { 255, 255, 205 }, // yellow + { 255, 255, 205 }, // yellow + { 155, 255, 205 }, // green + { 205, 255, 255 }, // light blue + { 155, 155, 255 }, // dark blue + { 205, 175, 255 }, // purple + { 175, 255, 205 }, // light green + { 255, 155, 235 }, // pink +}; +static f32 sLensFlareScales[] = { + 23.0f, 12.0f, 7.0f, 5.0f, 3.0f, 10.0f, 6.0f, 2.0f, 3.0f, 1.0f, +}; +static u32 sLensFlareAlphas[] = { + 50, 10, 25, 40, 70, 30, 50, 70, 50, 40, +}; +static u32 sLensFlareTypes[] = { + LENS_FLARE_RING, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, + LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FA3C4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_RandCentered.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawRainImpl.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawRain.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FAAB4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_ChangeLightSetting.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FAC20.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxFilters.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FAF74.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawLightningFlash.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FB010.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateLightningStrike.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_AddLightningBolts.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FB388.s") +static TexturePtr sLightningTextures[] = { + gEffLightning1Tex, gEffLightning2Tex, gEffLightning3Tex, gEffLightning4Tex, + gEffLightning5Tex, gEffLightning6Tex, gEffLightning7Tex, gEffLightning8Tex, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FB758.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawLightning.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FB9B4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_PlaySceneSequence.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateTimeBasedSequence.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawCustomLensFlare.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_InitGameOverLights.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_FadeInGameOverLights.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_FadeOutGameOverLights.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FC3DC.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateRain.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_FillScreen.s") +u8 sSandstormPrimColors[] = { + 255, 255, 255, // + 255, 255, 255, // + 255, 255, 255, // + 255, 255, 255, // + 210, 156, 85, // + 255, 200, 100, // + 225, 160, 50, // + 105, 90, 40, // +}; + +u8 sSandstormEnvColors[] = { + 100, 100, 100, // + 100, 100, 100, // + 100, 100, 100, // + 100, 100, 100, // + 155, 106, 35, // + 200, 150, 50, // + 170, 110, 0, // + 50, 40, 0, // +}; + #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSandstorm.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD2B4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_AdjustLights.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD538.s") +void Environment_LerpRGB8(u8* from, Color_RGB8* to, f32 lerp, s16* dst) { + Color_RGB8 result; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpAmbientColor.s") + Color_RGB8_Lerp((Color_RGB8*)from, to, lerp, &result); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpDiffuseColor.s") + dst[0] = result.r - from[0]; + dst[1] = result.g - from[1]; + dst[2] = result.b - from[2]; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpFogColor.s") +void Environment_LerpAmbientColor(PlayState* play, Color_RGB8* to, f32 lerp) { + Environment_LerpRGB8(play->envCtx.lightSettings.ambientColor, to, lerp, play->envCtx.adjLightSettings.ambientColor); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpFog.s") +void Environment_LerpDiffuseColor(PlayState* play, Color_RGB8* to, f32 lerp) { + Environment_LerpRGB8(play->envCtx.lightSettings.light1Color, to, lerp, play->envCtx.adjLightSettings.light1Color); + Environment_LerpRGB8(play->envCtx.lightSettings.light2Color, to, lerp, play->envCtx.adjLightSettings.light2Color); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/get_days_elapsed.s") +void Environment_LerpFogColor(PlayState* play, Color_RGB8* to, f32 lerp) { + Environment_LerpRGB8(play->envCtx.lightSettings.fogColor, to, lerp, play->envCtx.adjLightSettings.fogColor); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/reset_days_elapsed.s") +void Environment_LerpFog(PlayState* play, s16 fogNearTarget, s16 fogFarTarget, f32 lerp) { + play->envCtx.adjLightSettings.fogNear = (fogNearTarget - play->envCtx.lightSettings.fogNear) * lerp; + play->envCtx.adjLightSettings.zFar = (fogFarTarget - play->envCtx.lightSettings.zFar) * lerp; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/get_current_day.s") +// Repurposed from OoT to be more general +u32 Environment_GetEventDayCount(void) { + return gSaveContext.save.eventDayCount; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD750.s") +// Repurposed from OoT to be more general +void Environment_ClearEventDayCount(void) { + gSaveContext.save.eventDayCount = 0; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD768.s") +// Repurposed from OoT to be more general +u32 Environment_GetTotalDays(void) { + return gSaveContext.save.day; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD78C.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_ForcePlaySequence.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD858.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_IsForcedSequenceDisabled.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD928.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_PlayStormNatureAmbience.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD980.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_StopStormNatureAmbience.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FDAF8.s") +void Environment_WarpSongLeave(PlayState* play) { + gWeatherMode = WEATHER_MODE_CLEAR; + gSaveContext.save.cutsceneIndex = 0; + gSaveContext.respawnFlag = -3; + play->nextEntrance = gSaveContext.respawn[RESPAWN_MODE_RETURN].entrance; + play->transitionTrigger = TRANS_TRIGGER_START; + play->transitionType = TRANS_TYPE_FADE_WHITE; + gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FDC94.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_SetupSkyboxStars.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE390.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxStar.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE3E0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxStarsImpl.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_StopTime.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_Draw.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_StartTime.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxStars.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_IsTimeStopped.s") +void Environment_StopTime(void) { + sEnvIsTimeStopped = true; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE4B8.s") +void Environment_StartTime(void) { + sEnvIsTimeStopped = false; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE590.s") +u8 Environment_IsTimeStopped(void) { + return sEnvIsTimeStopped; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE5D0.s") +u32 Environment_GetStormState(PlayState* play) { + u32 stormState = play->envCtx.stormState; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE610.s") + if ((play->sceneId == SCENE_OMOYA) && (play->roomCtx.curRoom.num == 0)) { + stormState = ((gSaveContext.save.day >= 2) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_DEFENDED_AGAINST_THEM)) + ? STORM_STATE_ON + : STORM_STATE_OFF; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE620.s") + switch (play->sceneId) { + case SCENE_13HUBUKINOMITI: + case SCENE_11GORONNOSATO: + case SCENE_10YUKIYAMANOMURA: + case SCENE_14YUKIDAMANOMITI: + case SCENE_12HAKUGINMAE: + case SCENE_17SETUGEN: + case SCENE_GORONRACE: + if (gSaveContext.sceneLayer == 0) { + stormState = STORM_STATE_OFF; + } + break; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE658.s") + case SCENE_10YUKIYAMANOMURA2: + if (gSaveContext.sceneLayer == 1) { + stormState = STORM_STATE_OFF; + } + break; + + default: + break; + } + + return stormState; +} + +u8 Environment_IsFinalHours(PlayState* play) { + u8 ret = false; + + if ((gSaveContext.save.day == 3) && (gSaveContext.save.time < CLOCK_TIME(6, 0))) { + ret = true; + } + + return ret; +} + +u8 func_800FE5D0(PlayState* play) { + u8 ret = false; + + if (Entrance_GetSceneId(((void)0, gSaveContext.save.entrance)) < 0) { + ret = true; + } + + return ret; +} + +u32 func_800FE610(PlayState* play) { + return 0; +} + +u16 Environment_GetTimeSpeed(PlayState* play) { + u16 timeSpeed = 0; + + if (R_TIME_SPEED != 0) { + timeSpeed = R_TIME_SPEED + (u16)((void)0, gSaveContext.save.timeSpeedOffset); + } + + return timeSpeed; +} + +void Environment_SetTimeJump(f32 minutes) { + sTimeJump = CLOCK_TIME_F(0, minutes); +} #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE6F8.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE778.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_GetSandstormColorIndex.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE788.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_GetNextSandstormColorIndex.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE798.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_GetSandstormLerpScale.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE7A8.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpSandstormColors.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FE9B4.s") @@ -158,6 +982,11 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FEAB0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FEAC0.s") +void Environment_JumpForwardInTime(void) { + if (sTimeJump != 0) { + gSaveContext.save.time = ((void)0, gSaveContext.save.time) + sTimeJump; + sTimeJump = 0; + } +} #pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FEAF4.s") diff --git a/src/code/z_lib.c b/src/code/z_lib.c index 634f0a47f..a68d7c882 100644 --- a/src/code/z_lib.c +++ b/src/code/z_lib.c @@ -663,7 +663,7 @@ void Lib_Vec3f_TranslateAndRotateY(Vec3f* translation, s16 rotAngle, Vec3f* src, dst->z = translation->z + (src->z * cos - src->x * sin); } -void Lib_LerpRGB(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst) { +void Color_RGB8_Lerp(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst) { f32 aF; aF = a->r; diff --git a/src/code/z_lights.c b/src/code/z_lights.c index ef1af66f5..e5b34f387 100644 --- a/src/code/z_lights.c +++ b/src/code/z_lights.c @@ -257,15 +257,15 @@ void LightContext_Init(PlayState* play, LightContext* lightCtx) { } void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b) { - lightCtx->ambient.r = r; - lightCtx->ambient.g = g; - lightCtx->ambient.b = b; + lightCtx->ambientColor[0] = r; + lightCtx->ambientColor[1] = g; + lightCtx->ambientColor[2] = b; } void LightContext_SetFog(LightContext* lightCtx, u8 r, u8 g, u8 b, s16 near, s16 far) { - lightCtx->fogColor.r = r; - lightCtx->fogColor.g = g; - lightCtx->fogColor.b = b; + lightCtx->fogColor[0] = r; + lightCtx->fogColor[1] = g; + lightCtx->fogColor[2] = b; lightCtx->fogNear = near; lightCtx->zFar = far; } @@ -274,7 +274,7 @@ void LightContext_SetFog(LightContext* lightCtx, u8 r, u8 g, u8 b, s16 near, s16 * Allocate a new Lights group and initilize the ambient color with that provided by LightContext */ Lights* LightContext_NewLights(LightContext* lightCtx, GraphicsContext* gfxCtx) { - return Lights_New(gfxCtx, lightCtx->ambient.r, lightCtx->ambient.g, lightCtx->ambient.b); + return Lights_New(gfxCtx, lightCtx->ambientColor[0], lightCtx->ambientColor[1], lightCtx->ambientColor[2]); } void LightContext_InitList(PlayState* play, LightContext* lightCtx) { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 956bda896..cbfcd0481 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -5432,7 +5432,7 @@ void Interface_StartMoonCrash(PlayState* play) { } gSaveContext.save.day = 4; - gSaveContext.save.daysElapsed = 4; + gSaveContext.save.eventDayCount = 4; gSaveContext.save.time = CLOCK_TIME(6, 0) + 10; play->nextEntrance = ENTRANCE(TERMINA_FIELD, 12); gSaveContext.nextCutsceneIndex = 0; diff --git a/src/code/z_play.c b/src/code/z_play.c index f71cf0c0d..5d9b2c048 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "z64.h" #include "regs.h" #include "functions.h" @@ -360,8 +361,8 @@ void Play_ClearTransition(PlayState* this) { Gfx* Play_SetFog(PlayState* this, Gfx* gfx) { s32 fogFar = this->lightCtx.zFar * (5.0f / 64.0f); - return Gfx_SetFogWithSync(gfx, this->lightCtx.fogColor.r, this->lightCtx.fogColor.g, this->lightCtx.fogColor.b, 0, - this->lightCtx.fogNear, ((fogFar <= 1000) ? 1000 : fogFar)); + return Gfx_SetFogWithSync(gfx, this->lightCtx.fogColor[0], this->lightCtx.fogColor[1], this->lightCtx.fogColor[2], + 0, this->lightCtx.fogNear, ((fogFar <= 1000) ? 1000 : fogFar)); } void Play_Destroy(GameState* thisx) { @@ -524,7 +525,7 @@ void Play_UpdateWaterCamera(PlayState* this, Camera* camera) { } func_801A3EC0(0x20); - func_800F6834(this, lightIndex); + Environment_EnableUnderwaterLights(this, lightIndex); if ((sQuakeIndex == -1) || (Quake_GetTimeLeft(sQuakeIndex) == 10)) { s16 quakeIndex = Quake_Request(camera, QUAKE_TYPE_5); @@ -553,7 +554,7 @@ void Play_UpdateWaterCamera(PlayState* this, Camera* camera) { if (sQuakeIndex != 0) { Quake_RemoveRequest(sQuakeIndex); } - func_800F694C(this); + Environment_DisableUnderwaterLights(this); func_801A3EC0(0); } } @@ -585,20 +586,20 @@ void Play_UpdateTransition(PlayState* this) { !CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE)) || ((this->nextEntrance == ENTRANCE(ROAD_TO_IKANA, 1)) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE))) && - (!func_800FE590(this) || (Entrance_GetSceneId(this->nextEntrance + sceneLayer) < 0) || + (!Environment_IsFinalHours(this) || (Entrance_GetSceneId(this->nextEntrance + sceneLayer) < 0) || (AudioSeq_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) != NA_BGM_FINAL_HOURS))) { func_801A4058(20); gSaveContext.seqId = (u8)NA_BGM_DISABLED; gSaveContext.ambienceId = AMBIENCE_ID_DISABLED; } - if (func_800FD768()) { + if (Environment_IsForcedSequenceDisabled()) { func_801A4058(20); gSaveContext.seqId = (u8)NA_BGM_DISABLED; gSaveContext.ambienceId = AMBIENCE_ID_DISABLED; } - if (func_800FE590(this) && (Entrance_GetSceneId(this->nextEntrance + sceneLayer) >= 0) && + if (Environment_IsFinalHours(this) && (Entrance_GetSceneId(this->nextEntrance + sceneLayer) >= 0) && (AudioSeq_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) == NA_BGM_FINAL_HOURS)) { func_801A41C8(20); } @@ -824,10 +825,10 @@ void Play_UpdateTransition(PlayState* this) { case TRANS_MODE_SANDSTORM_INIT: if (this->transitionTrigger != TRANS_TRIGGER_END) { - this->envCtx.sandstormState = 1; + this->envCtx.sandstormState = SANDSTORM_FILL; this->transitionMode = TRANS_MODE_SANDSTORM; } else { - this->envCtx.sandstormState = 2; + this->envCtx.sandstormState = SANDSTORM_UNFILL; this->envCtx.sandstormPrimA = 255; this->envCtx.sandstormEnvA = 255; this->transitionMode = TRANS_MODE_SANDSTORM; @@ -856,7 +857,7 @@ void Play_UpdateTransition(PlayState* this) { case TRANS_MODE_SANDSTORM_END_INIT: if (this->transitionTrigger == TRANS_TRIGGER_END) { - this->envCtx.sandstormState = 4; + this->envCtx.sandstormState = SANDSTORM_DISSIPATE; this->envCtx.sandstormPrimA = 255; this->envCtx.sandstormEnvA = 255; @@ -1144,8 +1145,8 @@ void Play_DrawMain(PlayState* this) { if (this->skyboxCtx.skyboxShouldDraw || (this->roomCtx.curRoom.roomShape->base.type == ROOM_SHAPE_TYPE_IMAGE)) { func_8012CF0C(gfxCtx, false, true, 0, 0, 0); } else { - func_8012CF0C(gfxCtx, true, true, this->lightCtx.fogColor.r, this->lightCtx.fogColor.g, - this->lightCtx.fogColor.b); + func_8012CF0C(gfxCtx, true, true, this->lightCtx.fogColor[0], this->lightCtx.fogColor[1], + this->lightCtx.fogColor[2]); } } else { func_8012CF0C(gfxCtx, false, false, 0, 0, 0); @@ -1292,7 +1293,7 @@ void Play_DrawMain(PlayState* this) { } } - func_800FE390(this); + Environment_Draw(this); } sp268 = LightContext_NewLights(&this->lightCtx, gfxCtx); @@ -1324,8 +1325,7 @@ void Play_DrawMain(PlayState* this) { } } - // envCtx.precipitation[PRECIP_RAIN_CUR] - if (this->envCtx.unk_F2[1] != 0) { + if (this->envCtx.precipitation[PRECIP_RAIN_CUR] != 0) { Environment_DrawRain(this, &this->view, gfxCtx); } } @@ -1339,7 +1339,7 @@ void Play_DrawMain(PlayState* this) { } if (1) { - if (!this->envCtx.sunMoonDisabled) { + if (!this->envCtx.sunDisabled) { sp25C.x = this->view.eye.x + this->envCtx.sunPos.x; sp25C.y = this->view.eye.y + this->envCtx.sunPos.y; sp25C.z = this->view.eye.z + this->envCtx.sunPos.z; @@ -1367,7 +1367,7 @@ void Play_DrawMain(PlayState* this) { } if (1) { - if (this->envCtx.sandstormState != 0) { + if (this->envCtx.sandstormState != SANDSTORM_OFF) { Environment_DrawSandstorm(this, this->envCtx.sandstormState); } } @@ -1440,7 +1440,7 @@ SkipPostWorldDraw: } if (!sp25B) { - func_800FE3E0(this); + Environment_DrawSkyboxStars(this); } CLOSE_DISPS(gfxCtx); @@ -2217,7 +2217,7 @@ void Play_Init(GameState* thisx) { gSaveContext.save.cutsceneIndex = 0; } - if (gSaveContext.nextDayTime != 0xFFFF) { + if (gSaveContext.nextDayTime != NEXT_TIME_NONE) { gSaveContext.save.time = gSaveContext.nextDayTime; gSaveContext.skyboxTime = gSaveContext.nextDayTime; } @@ -2250,14 +2250,14 @@ void Play_Init(GameState* thisx) { KaleidoScopeCall_Init(this); Interface_Init(this); - if (gSaveContext.nextDayTime != 0xFFFF) { - if (gSaveContext.nextDayTime == 0x8000) { + if (gSaveContext.nextDayTime != NEXT_TIME_NONE) { + if (gSaveContext.nextDayTime == NEXT_TIME_DAY) { gSaveContext.save.day++; - gSaveContext.save.daysElapsed++; + gSaveContext.save.eventDayCount++; gSaveContext.dogIsLost = true; - gSaveContext.nextDayTime = -2; + gSaveContext.nextDayTime = NEXT_TIME_DAY_SET; } else { - gSaveContext.nextDayTime = -3; + gSaveContext.nextDayTime = NEXT_TIME_NIGHT_SET; } } @@ -2348,7 +2348,7 @@ void Play_Init(GameState* thisx) { CutsceneManager_StoreCamera(&this->mainCamera); Interface_SetSceneRestrictions(this); - func_800FB758(this); + Environment_PlaySceneSequence(this); gSaveContext.seqId = this->sequenceCtx.seqId; gSaveContext.ambienceId = this->sequenceCtx.ambienceId; AnimationContext_Update(this, &this->animationCtx); diff --git a/src/code/z_room.c b/src/code/z_room.c index d06739d87..428dd5c13 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -581,12 +581,12 @@ s32 Room_HandleLoadCallbacks(PlayState* play, RoomContext* roomCtx) { Actor_SpawnTransitionActors(play, &play->actorCtx); if (((play->sceneId != SCENE_IKANA) || (roomCtx->curRoom.num != 1)) && (play->sceneId != SCENE_IKNINSIDE)) { - play->envCtx.lightSettingOverride = 0xFF; - play->envCtx.unk_E0 = 0; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; + play->envCtx.lightBlendOverride = LIGHT_BLEND_OVERRIDE_NONE; } func_800FEAB0(); - if (!func_800FE4B8(play)) { - func_800FD858(play); + if (Environment_GetStormState(play) == STORM_STATE_OFF) { + Environment_StopStormNatureAmbience(play); } } else { return 0; diff --git a/src/code/z_scene.c b/src/code/z_scene.c index d26156d58..483db001e 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -255,7 +255,7 @@ void Scene_CommandRoomBehavior(PlayState* play, SceneCmd* cmd) { play->roomCtx.curRoom.lensMode = (cmd->roomBehavior.gpFlag2 >> 8) & 1; play->msgCtx.unk12044 = (cmd->roomBehavior.gpFlag2 >> 0xA) & 1; play->roomCtx.curRoom.enablePosLights = (cmd->roomBehavior.gpFlag2 >> 0xB) & 1; - play->envCtx.unk_E2 = (cmd->roomBehavior.gpFlag2 >> 0xC) & 1; + play->envCtx.stormState = (cmd->roomBehavior.gpFlag2 >> 0xC) & 1; } // SceneTableEntry Header Command 0x0A: Mesh Header @@ -386,7 +386,7 @@ void Scene_CommandSkyboxSettings(PlayState* play, SceneCmd* cmd) { // SceneTableEntry Header Command 0x12: Skybox Disables void Scene_CommandSkyboxDisables(PlayState* play, SceneCmd* cmd) { play->envCtx.skyboxDisabled = cmd->skyboxDisables.unk4; - play->envCtx.sunMoonDisabled = cmd->skyboxDisables.unk5; + play->envCtx.sunDisabled = cmd->skyboxDisables.unk5; } // SceneTableEntry Header Command 0x10: Time Settings @@ -436,9 +436,9 @@ void Scene_CommandWindSettings(PlayState* play, SceneCmd* cmd) { s8 temp2 = cmd->windSettings.vertical; s8 temp3 = cmd->windSettings.south; - play->envCtx.windDir.x = temp1; - play->envCtx.windDir.y = temp2; - play->envCtx.windDir.z = temp3; + play->envCtx.windDirection.x = temp1; + play->envCtx.windDirection.y = temp2; + play->envCtx.windDirection.z = temp3; play->envCtx.windSpeed = cmd->windSettings.clothIntensity; } diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c index 059596909..01a493cc0 100644 --- a/src/code/z_sram_NES.c +++ b/src/code/z_sram_NES.c @@ -430,7 +430,7 @@ void Sram_SaveEndOfCycle(PlayState* play) { u8 item; gSaveContext.save.timeSpeedOffset = 0; - gSaveContext.save.daysElapsed = 0; + gSaveContext.save.eventDayCount = 0; gSaveContext.save.day = 0; gSaveContext.save.time = CLOCK_TIME(6, 0) - 1; @@ -650,7 +650,7 @@ void Sram_SaveEndOfCycle(PlayState* play) { void Sram_IncrementDay(void) { if (CURRENT_DAY <= 3) { gSaveContext.save.day++; - gSaveContext.save.daysElapsed++; + gSaveContext.save.eventDayCount++; } gSaveContext.save.saveInfo.bombersCaughtNum = 0; @@ -918,7 +918,7 @@ u16 sSaveDefaultChecksum = 0; */ void Sram_InitNewSave(void) { gSaveContext.save.playerForm = PLAYER_FORM_HUMAN; - gSaveContext.save.daysElapsed = 0; + gSaveContext.save.eventDayCount = 0; gSaveContext.save.day = 0; gSaveContext.save.time = CLOCK_TIME(6, 0) - 1; Sram_ResetSave(); diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index 45a29260f..01a74402c 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -338,8 +338,8 @@ void func_808B7A90(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx); - func_800FE7A8(D_808B82F0, &sp2C); - func_800FE7A8(D_808B8300, &sp28); + Environment_LerpSandstormColors(D_808B82F0, &sp2C); + Environment_LerpSandstormColors(D_808B8300, &sp28); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, sp2C.r, sp2C.g, sp2C.b, 255); gDPSetEnvColor(POLY_XLU_DISP++, sp28.r, sp28.g, sp28.b, 255); @@ -358,15 +358,15 @@ void func_808B7B54(Actor* thisx, PlayState* play) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - func_800FE7A8(D_808B8310, &sp50); - func_800FE7A8(D_808B8330, &sp4C); + Environment_LerpSandstormColors(D_808B8310, &sp50); + Environment_LerpSandstormColors(D_808B8330, &sp4C); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, sp50.r, sp50.g, sp50.b, 255); gDPSetEnvColor(POLY_XLU_DISP++, sp4C.r, sp4C.g, sp4C.b, 255); gSPDisplayList(POLY_XLU_DISP++, object_posthouse_obj_DL_000A50); - func_800FE7A8(D_808B8320, &sp50); - func_800FE7A8(D_808B8340, &sp4C); + Environment_LerpSandstormColors(D_808B8320, &sp50); + Environment_LerpSandstormColors(D_808B8340, &sp4C); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, sp50.r, sp50.g, sp50.b, 255); gDPSetEnvColor(POLY_XLU_DISP++, sp4C.r, sp4C.g, sp4C.b, 255); 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 bf3aa576d..f96c2864f 100644 --- a/src/overlays/actors/ovl_Boss_02/z_boss_02.c +++ b/src/overlays/actors/ovl_Boss_02/z_boss_02.c @@ -1320,7 +1320,7 @@ void Boss02_Static_Update(Actor* thisx, PlayState* play) { Boss02* this = THIS; this->giantModeScaleFactor = sGiantModeScaleFactor; - play->envCtx.sandstormState = 0xD; + play->envCtx.sandstormState = SANDSTORM_D; if (sBlueWarp != NULL) { this->fogNear = KREG(23) + -15.0f; @@ -1828,7 +1828,7 @@ void Boss02_HandleGiantsMaskCutscene(Boss02* this, PlayState* play) { Actor_SetScale(&player->actor, this->playerScale); } - play->envCtx.lightSettings.fogNear = this->fogNear; + play->envCtx.adjLightSettings.fogNear = this->fogNear; // Switches from the "normal" variation of the arena to the "giant" variation (or vice versa) // at the appropriate point in the Giant's Mask cutscene. diff --git a/src/overlays/actors/ovl_Boss_06/z_boss_06.c b/src/overlays/actors/ovl_Boss_06/z_boss_06.c index 38ca4f799..6dc94e0e3 100644 --- a/src/overlays/actors/ovl_Boss_06/z_boss_06.c +++ b/src/overlays/actors/ovl_Boss_06/z_boss_06.c @@ -431,26 +431,26 @@ void Boss06_Update(Actor* thisx, PlayState* play) { if (this->unk_1E4 > 0.0f) { if (ENBOSS06_GET_PARAMS(&this->actor) == 0) { - D_801F4E32 = 1; - D_801F4E38.x = this->actor.world.pos.x + this->unk_1B0; - D_801F4E38.y = this->actor.world.pos.y + 80.0f + this->unk_1B4 + this->unk_1AC; - D_801F4E38.z = this->actor.world.pos.z; + gCustomLensFlare1On = true; + gCustomLensFlare1Pos.x = this->actor.world.pos.x + this->unk_1B0; + gCustomLensFlare1Pos.y = this->actor.world.pos.y + 80.0f + this->unk_1B4 + this->unk_1AC; + gCustomLensFlare1Pos.z = this->actor.world.pos.z; D_801F4E44 = this->unk_1E4; D_801F4E48 = 10.0f; D_801F4E4C = 0; } else { - D_801F4E4E = 1; - D_801F4E50.x = this->actor.world.pos.x + this->unk_1B0; - D_801F4E50.y = this->actor.world.pos.y + 80.0f + this->unk_1B4 + this->unk_1AC; - D_801F4E50.z = this->actor.world.pos.z; + gCustomLensFlare2On = true; + gCustomLensFlare2Pos.x = this->actor.world.pos.x + this->unk_1B0; + gCustomLensFlare2Pos.y = this->actor.world.pos.y + 80.0f + this->unk_1B4 + this->unk_1AC; + gCustomLensFlare2Pos.z = this->actor.world.pos.z; D_801F4E5C = this->unk_1E4; D_801F4E60 = 10.0f; D_801F4E64 = 0; } } else if (ENBOSS06_GET_PARAMS(&this->actor) == 0) { - D_801F4E32 = 0; + gCustomLensFlare1On = false; } else { - D_801F4E4E = 0; + gCustomLensFlare2On = false; } if ((this->unk_1C8 != 0) && (this->unk_1C8 != 0)) { diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 8f3b401da..2b0669f39 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -335,10 +335,10 @@ void DemoEffect_DrawLight(Actor* thisx, PlayState* play2) { CLOSE_DISPS(play->state.gfxCtx); - D_801F4E32 = 1; - D_801F4E38.x = thisx->world.pos.x; - D_801F4E38.y = thisx->world.pos.y; - D_801F4E38.z = thisx->world.pos.z; + gCustomLensFlare1On = true; + gCustomLensFlare1Pos.x = thisx->world.pos.x; + gCustomLensFlare1Pos.y = thisx->world.pos.y; + gCustomLensFlare1Pos.z = thisx->world.pos.z; D_801F4E44 = thisx->scale.x * 60.0f; D_801F4E48 = thisx->scale.x * 50.0f; diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index badd4bc12..945e09fee 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -56,21 +56,21 @@ void DemoKakyo_LostWoodsSparkleActionFunc(DemoKankyo* this, PlayState* play) { Player* player = GET_PLAYER(play); if (play->roomCtx.unk7A[1] != 0) { - if (play->envCtx.unk_F2[3] != 0) { - play->envCtx.unk_F2[3]--; + if (play->envCtx.precipitation[PRECIP_SNOW_MAX] != 0) { + play->envCtx.precipitation[PRECIP_SNOW_MAX]--; } else { Actor_Kill(&this->actor); } - } else if (play->envCtx.unk_F2[3] < DEMOKANKYO_EFFECT_COUNT) { - play->envCtx.unk_F2[3] += 16; + } else if (play->envCtx.precipitation[PRECIP_SNOW_MAX] < DEMOKANKYO_EFFECT_COUNT) { + play->envCtx.precipitation[PRECIP_SNOW_MAX] += 16; } // note: DemoKankyo can crash if placed in an area that snows (ObjectKankyo) - // because they both use unk_F2 as an effect counter, + // because they both use PRECIP_SNOW_MAX precipitation as an effect counter, // causing DemoKankyo to write beyond its efffect array boundry // this crash can occur if the two actors are in different scenes connected by an exit // e.g. if you add DemoKankyo to GoronShrine, you will crash entering/leaving through door - for (i = 0; i < play->envCtx.unk_F2[3]; i++) { + for (i = 0; i < play->envCtx.precipitation[PRECIP_SNOW_MAX]; i++) { repositionLimit = 130.0f; eyeToAt.x = play->view.at.x - play->view.eye.x; @@ -304,8 +304,8 @@ void DemoKakyo_MoonSparklesActionFunc(DemoKankyo* this, PlayState* play) { s32 pad1; Vec3f worldPos; - if (play->envCtx.unk_F2[3] < DEMOKANKYO_EFFECT_COUNT) { - play->envCtx.unk_F2[3] += 16; + if (play->envCtx.precipitation[PRECIP_SNOW_MAX] < DEMOKANKYO_EFFECT_COUNT) { + play->envCtx.precipitation[PRECIP_SNOW_MAX] += 16; } eyeToAt.x = play->view.at.x - play->view.eye.x; @@ -318,7 +318,7 @@ void DemoKakyo_MoonSparklesActionFunc(DemoKankyo* this, PlayState* play) { halfScreenHeight = SCREEN_HEIGHT / 2; - for (i = 0; i < play->envCtx.unk_F2[3]; i++) { + for (i = 0; i < play->envCtx.precipitation[PRECIP_SNOW_MAX]; i++) { switch (this->effects[i].state) { case DEMO_KANKYO_STATE_INIT: this->effects[i].posBase.x = play->view.eye.x + (eyeToAtNormX * halfScreenHeight); @@ -511,7 +511,7 @@ void DemoKakyo_DrawLostWoodsSparkle(Actor* thisx, PlayState* play2) { gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(gSun1Tex)); gSPDisplayList(POLY_XLU_DISP++, gSunSparkleMaterialDL); - for (i = 0; i < play->envCtx.unk_F2[3]; i++) { + for (i = 0; i < play->envCtx.precipitation[PRECIP_SNOW_MAX]; i++) { worldPos.x = this->effects[i].posBase.x + this->effects[i].posOffset.x; worldPos.y = this->effects[i].posBase.y + this->effects[i].posOffset.y; worldPos.z = this->effects[i].posBase.z + this->effects[i].posOffset.z; @@ -601,7 +601,7 @@ void DemoKankyo_DrawMoonAndGiant(Actor* thisx, PlayState* play2) { Gfx_SetupDL25_Xlu(gfxCtx); - for (i = 0; i < play->envCtx.unk_F2[3]; i++) { + for (i = 0; i < play->envCtx.precipitation[PRECIP_SNOW_MAX]; i++) { worldPos.x = this->effects[i].posBase.x + this->effects[i].posOffset.x; worldPos.y = this->effects[i].posBase.y + this->effects[i].posOffset.y; worldPos.z = this->effects[i].posBase.z + this->effects[i].posOffset.z; diff --git a/src/overlays/actors/ovl_Demo_Syoten/z_demo_syoten.c b/src/overlays/actors/ovl_Demo_Syoten/z_demo_syoten.c index 2341b3a64..09f4fe1c1 100644 --- a/src/overlays/actors/ovl_Demo_Syoten/z_demo_syoten.c +++ b/src/overlays/actors/ovl_Demo_Syoten/z_demo_syoten.c @@ -499,8 +499,8 @@ void func_80C17468(PlayState* play) { OPEN_DISPS(play->state.gfxCtx); - func_800FE7A8(D_80C17824, &sp2C); - func_800FE7A8(D_80C17834, &sp28); + Environment_LerpSandstormColors(D_80C17824, &sp2C); + Environment_LerpSandstormColors(D_80C17834, &sp28); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, sp2C.r, sp2C.g, sp2C.b, 255); gDPSetEnvColor(POLY_XLU_DISP++, sp28.r, sp28.g, sp28.b, 255); diff --git a/src/overlays/actors/ovl_Dm_Hina/z_dm_hina.c b/src/overlays/actors/ovl_Dm_Hina/z_dm_hina.c index 22bc9544b..b28a44d1b 100644 --- a/src/overlays/actors/ovl_Dm_Hina/z_dm_hina.c +++ b/src/overlays/actors/ovl_Dm_Hina/z_dm_hina.c @@ -110,12 +110,13 @@ void func_80A1F75C(DmHina* this, PlayState* play) { Math_SmoothStepToF(&this->unk14C, 1.0f, 0.4f, 0.05f, 0.001f); this->unk17F = this->unk14C * 255.0f; this->unk150 = Math_SinS(play->state.frames * 0x1F40); - for (i = 0; i < 3; i++) { - play->envCtx.lightSettings.ambientColor[i] = play->envCtx.lightSettings.fogColor[i] = - play->envCtx.lightSettings.diffuseColor1[i] = -255.0f * this->unk14C; + for (i = 0; i < ARRAY_COUNT(play->envCtx.adjLightSettings.light1Color); i++) { + play->envCtx.adjLightSettings.ambientColor[i] = play->envCtx.adjLightSettings.fogColor[i] = + play->envCtx.adjLightSettings.light1Color[i] = -255.0f * this->unk14C; } - play->envCtx.lightSettings.fogNear = -500.0f * this->unk14C; - if (play->envCtx.lightSettings.fogNear < -300) { + + play->envCtx.adjLightSettings.fogNear = -500.0f * this->unk14C; + if (play->envCtx.adjLightSettings.fogNear < -300) { play->roomCtx.curRoom.segment = NULL; } break; diff --git a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c index cf8ed15e1..c9aaa48cb 100644 --- a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c +++ b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c @@ -1073,9 +1073,9 @@ void DmStk_Init(Actor* thisx, PlayState* play) { this->deflectCount = 0; this->maskType = SK_MASK_TYPE_NORMAL; this->animIndex = SK_ANIM_IDLE; - this->fogR = play->lightCtx.fogColor.r; - this->fogG = play->lightCtx.fogColor.g; - this->fogB = play->lightCtx.fogColor.b; + this->fogR = play->lightCtx.fogColor[0]; + this->fogG = play->lightCtx.fogColor[1]; + this->fogB = play->lightCtx.fogColor[2]; if ((play->sceneId == SCENE_LOST_WOODS) && (gSaveContext.sceneLayer == 1)) { this->alpha = 0; @@ -1643,9 +1643,9 @@ void DmStk_HandleCutscene(DmStk* this, PlayState* play) { this->fadeInState++; } - this->fogR = play->lightCtx.fogColor.r * this->fogScale; - this->fogG = play->lightCtx.fogColor.g * this->fogScale; - this->fogB = play->lightCtx.fogColor.b * this->fogScale; + this->fogR = play->lightCtx.fogColor[0] * this->fogScale; + this->fogG = play->lightCtx.fogColor[1] * this->fogScale; + this->fogB = play->lightCtx.fogColor[2] * this->fogScale; } else if (this->fadeInState == SK_FADE_IN_STATE_INCREASE_FOG) { if (this->fogN < 996) { this->fogN += 10; diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index 32a7ba7f0..ec1480a67 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -178,10 +178,9 @@ void DoorWarp1_Destroy(Actor* thisx, PlayState* play) { LightContext_RemoveLight(play, &play->lightCtx, this->unk_1DC); LightContext_RemoveLight(play, &play->lightCtx, this->unk_1F0); - for (i = 0; i < ARRAY_COUNT(play->envCtx.lightSettings.diffuseColor1); i++) { - play->envCtx.lightSettings.diffuseColor1[i] = 0; - play->envCtx.lightSettings.fogColor[i] = play->envCtx.lightSettings.diffuseColor1[i]; - play->envCtx.lightSettings.ambientColor[i] = play->envCtx.lightSettings.diffuseColor1[i]; + for (i = 0; i < ARRAY_COUNT(play->envCtx.adjLightSettings.light1Color); i++) { + play->envCtx.adjLightSettings.ambientColor[i] = play->envCtx.adjLightSettings.fogColor[i] = + play->envCtx.adjLightSettings.light1Color[i] = 0; } if (this->unk_1D3 != 0) { @@ -781,7 +780,6 @@ void func_808BA550(DoorWarp1* this, PlayState* play) { Player* player2 = GET_PLAYER(play); Player* player = GET_PLAYER(play); s16 i; - s32 temp_f16; f32 temp_f0; f32 temp_f2; s32 temp; @@ -869,16 +867,13 @@ void func_808BA550(DoorWarp1* this, PlayState* play) { if (1) {} temp_f0 = 1.0f - ((f32)(D_808BC000 - this->unk_1D0) / ((D_808BC000 - tempS) + 100)); if (temp_f0 > 0.0f) { - temp_f16 = -255.0f * temp_f0; - - for (i = 0; i < 3; i++) { - play->envCtx.lightSettings.diffuseColor1[i] = temp_f16; - play->envCtx.lightSettings.fogColor[i] = temp_f16; - play->envCtx.lightSettings.ambientColor[i] = temp_f16; + for (i = 0; i < ARRAY_COUNT(play->envCtx.adjLightSettings.light1Color); i++) { + play->envCtx.adjLightSettings.ambientColor[i] = play->envCtx.adjLightSettings.fogColor[i] = + play->envCtx.adjLightSettings.light1Color[i] = -255.0f * temp_f0; } - play->envCtx.lightSettings.fogNear = -500.0f * temp_f0; - if (play->envCtx.lightSettings.fogNear < -300) { + play->envCtx.adjLightSettings.fogNear = -500.0f * temp_f0; + if (play->envCtx.adjLightSettings.fogNear < -300) { play->roomCtx.curRoom.segment = NULL; } } diff --git a/src/overlays/actors/ovl_Eff_Change/z_eff_change.c b/src/overlays/actors/ovl_Eff_Change/z_eff_change.c index bc95d4312..470f9b89d 100644 --- a/src/overlays/actors/ovl_Eff_Change/z_eff_change.c +++ b/src/overlays/actors/ovl_Eff_Change/z_eff_change.c @@ -81,7 +81,7 @@ void func_80A4C5CC(EffChange* this, PlayState* play) { if (func_80183DE0(&this->skeletonInfo)) { Actor_Kill(&this->actor); CutsceneManager_Stop(CS_ID_GLOBAL_ELEGY); - func_800FD2B4(play, 0.0f, 850.0f, 0.2f, 0.0f); + Environment_AdjustLights(play, 0.0f, 850.0f, 0.2f, 0.0f); return; } @@ -108,7 +108,7 @@ void func_80A4C5CC(EffChange* this, PlayState* play) { } else if (phi_fv0 < 0.0f) { phi_fv0 = 0.0f; } - func_800FD2B4(play, phi_fv0, 850.0f, 0.2f, 0.0f); + Environment_AdjustLights(play, phi_fv0, 850.0f, 0.2f, 0.0f); if (CutsceneManager_GetCurrentCsId() != CS_ID_GLOBAL_ELEGY) { if (CutsceneManager_IsNext(CS_ID_GLOBAL_ELEGY)) { CutsceneManager_Start(CS_ID_GLOBAL_ELEGY, &this->actor); diff --git a/src/overlays/actors/ovl_Eff_Kamejima_Wave/z_eff_kamejima_wave.c b/src/overlays/actors/ovl_Eff_Kamejima_Wave/z_eff_kamejima_wave.c index 9b5290907..ee493fe24 100644 --- a/src/overlays/actors/ovl_Eff_Kamejima_Wave/z_eff_kamejima_wave.c +++ b/src/overlays/actors/ovl_Eff_Kamejima_Wave/z_eff_kamejima_wave.c @@ -153,8 +153,8 @@ void EffKamejimaWave_Draw(Actor* thisx, PlayState* play) { Color_RGBA8 primColor; Color_RGBA8 envColor; - func_800FE7A8(sPrimColors, &primColor); - func_800FE7A8(sEnvColors, &envColor); + Environment_LerpSandstormColors(sPrimColors, &primColor); + Environment_LerpSandstormColors(sEnvColors, &envColor); EffKamejimaWave_SetVtxAlpha(sVtxAlpha); OPEN_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c b/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c index eea47caa5..783f157b1 100644 --- a/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c +++ b/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c @@ -475,7 +475,7 @@ void EnAob01_BeforeRace_StartRace(EnAob01* this, PlayState* play) { SET_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_WAIT); CLEAR_WEEKEVENTREG(WEEKEVENTREG_KICKOUT_TIME_PASSED); this->stateFlags |= ENAOB01_FLAG_STARTED_RACE; - func_800FD750(NA_BGM_HORSE); + Environment_ForcePlaySequence(NA_BGM_HORSE); play->nextEntrance = ENTRANCE(DOGGY_RACETRACK, 1); play->transitionType = TRANS_TYPE_64; gSaveContext.nextTransitionType = TRANS_TYPE_64; diff --git a/src/overlays/actors/ovl_En_Az/z_en_az.c b/src/overlays/actors/ovl_En_Az/z_en_az.c index 17c9dbc50..218de2cb5 100644 --- a/src/overlays/actors/ovl_En_Az/z_en_az.c +++ b/src/overlays/actors/ovl_En_Az/z_en_az.c @@ -1526,7 +1526,7 @@ void func_80A97AB4(EnAz* this, PlayState* play) { if (play->msgCtx.choiceIndex == 0) { Audio_PlaySfx_MessageDecide(); play->msgCtx.msgMode = MSGMODE_PAUSED; - func_800FD750(NA_BGM_TIMED_MINI_GAME); + Environment_ForcePlaySequence(NA_BGM_TIMED_MINI_GAME); func_80A94AB8(this, play, 1); func_80A979DC(this, play); } else { @@ -1571,7 +1571,7 @@ void func_80A97C4C(EnAz* this, PlayState* play) { func_80A97410(this, play); if ((this->unk_2FA == 1) || (this->unk_2FA == 3) || (this->unk_2FA == 6) || (this->unk_2FA == 8)) { CLEAR_WEEKEVENTREG(WEEKEVENTREG_24_01); - func_800FD750(NA_BGM_TIMED_MINI_GAME); + Environment_ForcePlaySequence(NA_BGM_TIMED_MINI_GAME); play->nextEntrance = Entrance_CreateFromSpawn(1); gSaveContext.nextCutsceneIndex = 0; play->transitionTrigger = TRANS_TRIGGER_START; diff --git a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c index a7287b67e..e8ce29da2 100644 --- a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c +++ b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c @@ -1009,7 +1009,7 @@ void EnBigslime_CallMinislime(EnBigslime* this, PlayState* play) { EnBigslime_UpdateCameraIntroCs(this, play, 25); Audio_PlayBgm_StorePrevBgm(NA_BGM_MINI_BOSS); EnBigslime_InitFallMinislime(this); - play->envCtx.lightSettingOverride = 0xFF; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; this->callTimer = 35; func_800B7298(play, &this->actor, PLAYER_CSMODE_4); } @@ -1989,7 +1989,7 @@ void EnBigslime_Melt(EnBigslime* this, PlayState* play) { if (this->meltCounter == 100) { EnBigslime_SetTargetVtxFromPreFrozen(this); } else if (this->meltCounter == 50) { - play->envCtx.lightSettingOverride = 0xFF; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } } @@ -2777,7 +2777,7 @@ void EnBigslime_UpdateBigslime(Actor* thisx, PlayState* play) { Vec3f vtxMin; if (play->envCtx.lightSettingOverride == 3) { - play->envCtx.lightSettingOverride = 0xFF; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } Audio_SetSfxUnderwaterReverb(true); @@ -2822,7 +2822,7 @@ void EnBigslime_UpdateGekko(Actor* thisx, PlayState* play) { s32 pad; if (play->envCtx.lightSettingOverride == 3) { - play->envCtx.lightSettingOverride = 0xFF; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } Audio_SetSfxUnderwaterReverb(false); diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c index c55c5bb3a..2f76201c5 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -356,28 +356,28 @@ void EnBom_Explode(EnBom* this, PlayState* play) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider2.base); } - if (play->envCtx.lightSettings.diffuseColor1[0] != 0) { - play->envCtx.lightSettings.diffuseColor1[0] -= 25; + if (play->envCtx.adjLightSettings.light1Color[0] != 0) { + play->envCtx.adjLightSettings.light1Color[0] -= 25; } - if (play->envCtx.lightSettings.diffuseColor1[1] != 0) { - play->envCtx.lightSettings.diffuseColor1[1] -= 25; + if (play->envCtx.adjLightSettings.light1Color[1] != 0) { + play->envCtx.adjLightSettings.light1Color[1] -= 25; } - if (play->envCtx.lightSettings.diffuseColor1[2] != 0) { - play->envCtx.lightSettings.diffuseColor1[2] -= 25; + if (play->envCtx.adjLightSettings.light1Color[2] != 0) { + play->envCtx.adjLightSettings.light1Color[2] -= 25; } - if (play->envCtx.lightSettings.ambientColor[0] != 0) { - play->envCtx.lightSettings.ambientColor[0] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[0] != 0) { + play->envCtx.adjLightSettings.ambientColor[0] -= 25; } - if (play->envCtx.lightSettings.ambientColor[1] != 0) { - play->envCtx.lightSettings.ambientColor[1] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[1] != 0) { + play->envCtx.adjLightSettings.ambientColor[1] -= 25; } - if (play->envCtx.lightSettings.ambientColor[2] != 0) { - play->envCtx.lightSettings.ambientColor[2] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[2] != 0) { + play->envCtx.adjLightSettings.ambientColor[2] -= 25; } if (this->timer == 0) { @@ -550,10 +550,10 @@ void EnBom_Update(Actor* thisx, PlayState* play) { CLEAR_TAG_PARAMS(this->isPowderKeg)); Actor_RequestQuakeAndRumble(thisx, play, sQuakeY[this->isPowderKeg], sQuakeDurations[this->isPowderKeg]); - play->envCtx.lightSettings.diffuseColor1[0] = play->envCtx.lightSettings.diffuseColor1[1] = - play->envCtx.lightSettings.diffuseColor1[2] = 250; - play->envCtx.lightSettings.ambientColor[0] = play->envCtx.lightSettings.ambientColor[1] = - play->envCtx.lightSettings.ambientColor[2] = 250; + play->envCtx.adjLightSettings.light1Color[0] = play->envCtx.adjLightSettings.light1Color[1] = + play->envCtx.adjLightSettings.light1Color[2] = 250; + play->envCtx.adjLightSettings.ambientColor[0] = play->envCtx.adjLightSettings.ambientColor[1] = + play->envCtx.adjLightSettings.ambientColor[2] = 250; Camera_AddQuake(&play->mainCamera, 2, 11, 8); thisx->params = BOMB_TYPE_EXPLOSION; this->timer = 10; diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index bf9ba05a9..92dfe8418 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -273,28 +273,28 @@ void func_808AEFD4(EnBombf* this, PlayState* play) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderJntSph.base); } - if (play->envCtx.lightSettings.diffuseColor1[0] != 0) { - play->envCtx.lightSettings.diffuseColor1[0] -= 25; + if (play->envCtx.adjLightSettings.light1Color[0] != 0) { + play->envCtx.adjLightSettings.light1Color[0] -= 25; } - if (play->envCtx.lightSettings.diffuseColor1[1] != 0) { - play->envCtx.lightSettings.diffuseColor1[1] -= 25; + if (play->envCtx.adjLightSettings.light1Color[1] != 0) { + play->envCtx.adjLightSettings.light1Color[1] -= 25; } - if (play->envCtx.lightSettings.diffuseColor1[2] != 0) { - play->envCtx.lightSettings.diffuseColor1[2] -= 25; + if (play->envCtx.adjLightSettings.light1Color[2] != 0) { + play->envCtx.adjLightSettings.light1Color[2] -= 25; } - if (play->envCtx.lightSettings.ambientColor[0] != 0) { - play->envCtx.lightSettings.ambientColor[0] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[0] != 0) { + play->envCtx.adjLightSettings.ambientColor[0] -= 25; } - if (play->envCtx.lightSettings.ambientColor[1] != 0) { - play->envCtx.lightSettings.ambientColor[1] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[1] != 0) { + play->envCtx.adjLightSettings.ambientColor[1] -= 25; } - if (play->envCtx.lightSettings.ambientColor[2] != 0) { - play->envCtx.lightSettings.ambientColor[2] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[2] != 0) { + play->envCtx.adjLightSettings.ambientColor[2] -= 25; } if (this->timer == 0) { @@ -414,10 +414,10 @@ void EnBombf_Update(Actor* thisx, PlayState* play) { CLEAR_TAG_PARAMS(CLEAR_TAG_SMALL_EXPLOSION)); Actor_PlaySfx(&this->actor, NA_SE_IT_BOMB_EXPLOSION); - play->envCtx.lightSettings.diffuseColor1[0] = play->envCtx.lightSettings.diffuseColor1[1] = - play->envCtx.lightSettings.diffuseColor1[2] = 250; - play->envCtx.lightSettings.ambientColor[0] = play->envCtx.lightSettings.ambientColor[1] = - play->envCtx.lightSettings.ambientColor[2] = 250; + play->envCtx.adjLightSettings.light1Color[0] = play->envCtx.adjLightSettings.light1Color[1] = + play->envCtx.adjLightSettings.light1Color[2] = 250; + play->envCtx.adjLightSettings.ambientColor[0] = play->envCtx.adjLightSettings.ambientColor[1] = + play->envCtx.adjLightSettings.ambientColor[2] = 250; Camera_AddQuake(&play->mainCamera, 2, 11, 8); diff --git a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c index a66b176c3..22c247c1f 100644 --- a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c +++ b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c @@ -563,7 +563,7 @@ void func_8089B580(EnDinofos* this, PlayState* play) { } if ((play->sceneId == SCENE_MITURIN) && Animation_OnFrame(&this->skelAnime, 55.0f)) { - play->envCtx.lightSettingOverride = 0xFF; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } if (SkelAnime_Update(&this->skelAnime)) { @@ -1118,7 +1118,7 @@ void func_8089CF00(EnDinofos* this, PlayState* play) { Animation_PlayOnce(&this->skelAnime, &gDinolfosFireEndAnim); this->colliderJntSph.base.atFlags &= ~AT_ON; if (play->sceneId == SCENE_MITURIN) { - play->envCtx.lightSettingOverride = 255; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } this->actionFunc = func_8089CF70; } @@ -1289,7 +1289,7 @@ s32 func_8089D60C(EnDinofos* this, PlayState* play) { func_8089ACEC(this, play); func_8089AD70(this); if (play->sceneId == SCENE_MITURIN) { - play->envCtx.lightSettingOverride = 255; + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; } this->colliderQuad.base.atFlags &= ~(AT_ON | AT_BOUNCED); diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index f1526d66b..53864ab9c 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -1323,7 +1323,7 @@ void func_8088FC34(EnElf* this, PlayState* play) { } else { Math_StepToF(&this->unk_240, 1.0f, 0.05f); } - func_800FD2B4(play, SQ(this->unk_240), player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f); + Environment_AdjustLights(play, SQ(this->unk_240), player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f); } } @@ -1521,8 +1521,8 @@ void func_8089010C(Actor* thisx, PlayState* play) { this->elfMsg = NULL; this->timer++; - if ((this->unk_240 >= 0.0f) && - func_800FD2B4(play, SQ(this->unk_240) * this->unk_240, player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f)) { + if ((this->unk_240 >= 0.0f) && Environment_AdjustLights(play, SQ(this->unk_240) * this->unk_240, + player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f)) { Math_StepToF(&this->unk_240, -0.05f, 0.05f); } diff --git a/src/overlays/actors/ovl_En_Encount3/z_en_encount3.c b/src/overlays/actors/ovl_En_Encount3/z_en_encount3.c index 15d495e49..931e8c6d4 100644 --- a/src/overlays/actors/ovl_En_Encount3/z_en_encount3.c +++ b/src/overlays/actors/ovl_En_Encount3/z_en_encount3.c @@ -169,10 +169,10 @@ void EnEncount3_Update(Actor* thisx, PlayState* play2) { this->unk164 = this->unk160 / 60.0f; if (this->unk164 != 0.0f) { - play->envCtx.lightSettings.fogNear = (960 - play->envCtx.unk_C4.fogNear) * this->unk164; - play->envCtx.lightSettings.fogColor[0] = (40.0f - play->envCtx.unk_C4.fogColor[0]) * this->unk164; - play->envCtx.lightSettings.fogColor[1] = (10.0f - play->envCtx.unk_C4.fogColor[1]) * this->unk164; - play->envCtx.lightSettings.fogColor[2] = (0.0f - play->envCtx.unk_C4.fogColor[2]) * this->unk164; + play->envCtx.adjLightSettings.fogNear = (960 - play->envCtx.lightSettings.fogNear) * this->unk164; + play->envCtx.adjLightSettings.fogColor[0] = (40.0f - play->envCtx.lightSettings.fogColor[0]) * this->unk164; + play->envCtx.adjLightSettings.fogColor[1] = (10.0f - play->envCtx.lightSettings.fogColor[1]) * this->unk164; + play->envCtx.adjLightSettings.fogColor[2] = (0.0f - play->envCtx.lightSettings.fogColor[2]) * this->unk164; } } diff --git a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c index b2a9b75d8..9e442b637 100644 --- a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c +++ b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c @@ -5314,8 +5314,8 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { Cutscene_StopManual(play, &play->csCtx); D_8090CD4C = 0; sSubCamId = SUB_CAM_ID_DONE; - func_800F6834(play, 0); - play->envCtx.lightSettings.fogNear = 0; + Environment_EnableUnderwaterLights(play, 0); + play->envCtx.adjLightSettings.fogNear = 0; player->unk_B28 = -5; D_80917200 = 5; break; @@ -5356,8 +5356,8 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { D_8090CD4C = 0; sSubCamId = SUB_CAM_ID_DONE; D_8090CD50 = 30; - func_800F6834(play, 0); - play->envCtx.lightSettings.fogNear = 0; + Environment_EnableUnderwaterLights(play, 0); + play->envCtx.adjLightSettings.fogNear = 0; } break; @@ -5460,8 +5460,8 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { D_80917200 = 5; D_8090CD54 = 0; D_809171F6 = 20; - func_800F6834(play, 0); - play->envCtx.lightSettings.fogNear = 0; + Environment_EnableUnderwaterLights(play, 0); + play->envCtx.adjLightSettings.fogNear = 0; } } } @@ -5476,15 +5476,15 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { Math_ApproachF(&sSubCamVelFactor, 1.0f, 1.0f, 0.02f); if (sSubCamEye.y <= (WATER_SURFACE_Y(play) + 1.0f)) { - func_800F6834(play, 1); + Environment_EnableUnderwaterLights(play, 1); if (D_809171CA != 0) { - play->envCtx.lightSettings.fogNear = -0xB2; + play->envCtx.adjLightSettings.fogNear = -178; } else { - play->envCtx.lightSettings.fogNear = -0x2E; + play->envCtx.adjLightSettings.fogNear = -46; } } else { - func_800F6834(play, 0); - play->envCtx.lightSettings.fogNear = 0; + Environment_EnableUnderwaterLights(play, 0); + play->envCtx.adjLightSettings.fogNear = 0; } } @@ -5534,10 +5534,10 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { if (Rand_ZeroOne() < 0.5f) { D_8090CCD4 = Rand_ZeroFloat(10.0f) + 5.0f; - play->envCtx.unk_E1 = 1; + play->envCtx.stormRequest = STORM_REQUEST_START; } else { D_8090CCD4 = 0; - play->envCtx.unk_E1 = 2; + play->envCtx.stormRequest = STORM_REQUEST_STOP; } } @@ -5568,8 +5568,8 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) { Math_ApproachZeroF(&D_8090CCD8, 1.0f, 2.0f); } - play->envCtx.lightSettings.diffuseColor1[0] = play->envCtx.lightSettings.diffuseColor1[1] = - play->envCtx.lightSettings.diffuseColor1[2] = D_8090CCD8; + play->envCtx.adjLightSettings.light1Color[0] = play->envCtx.adjLightSettings.light1Color[1] = + play->envCtx.adjLightSettings.light1Color[2] = D_8090CCD8; if ((u8)D_8090CCD0 > 0) { s32 pad; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index b0a5200e2..6a68f283a 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -996,46 +996,46 @@ s32 func_80963810(PlayState* play, Vec3f pos) { s32 func_809638F8(PlayState* play) { s32 ret = true; - if (play->envCtx.lightSettings.diffuseColor1[0] > 25) { - play->envCtx.lightSettings.diffuseColor1[0] -= 25; + if (play->envCtx.adjLightSettings.light1Color[0] > 25) { + play->envCtx.adjLightSettings.light1Color[0] -= 25; ret = false; } else { - play->envCtx.lightSettings.diffuseColor1[0] = 0; + play->envCtx.adjLightSettings.light1Color[0] = 0; } - if (play->envCtx.lightSettings.diffuseColor1[1] > 25) { - play->envCtx.lightSettings.diffuseColor1[1] -= 25; + if (play->envCtx.adjLightSettings.light1Color[1] > 25) { + play->envCtx.adjLightSettings.light1Color[1] -= 25; ret = false; } else { - play->envCtx.lightSettings.diffuseColor1[1] = 0; + play->envCtx.adjLightSettings.light1Color[1] = 0; } - if (play->envCtx.lightSettings.diffuseColor1[2] > 25) { - play->envCtx.lightSettings.diffuseColor1[2] -= 25; + if (play->envCtx.adjLightSettings.light1Color[2] > 25) { + play->envCtx.adjLightSettings.light1Color[2] -= 25; ret = false; } else { - play->envCtx.lightSettings.diffuseColor1[2] = 0; + play->envCtx.adjLightSettings.light1Color[2] = 0; } - if (play->envCtx.lightSettings.ambientColor[0] > 25) { - play->envCtx.lightSettings.ambientColor[0] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[0] > 25) { + play->envCtx.adjLightSettings.ambientColor[0] -= 25; ret = false; } else { - play->envCtx.lightSettings.ambientColor[0] = 0; + play->envCtx.adjLightSettings.ambientColor[0] = 0; } - if (play->envCtx.lightSettings.ambientColor[1] > 25) { - play->envCtx.lightSettings.ambientColor[1] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[1] > 25) { + play->envCtx.adjLightSettings.ambientColor[1] -= 25; ret = false; } else { - play->envCtx.lightSettings.ambientColor[1] = 0; + play->envCtx.adjLightSettings.ambientColor[1] = 0; } - if (play->envCtx.lightSettings.ambientColor[2] > 25) { - play->envCtx.lightSettings.ambientColor[2] -= 25; + if (play->envCtx.adjLightSettings.ambientColor[2] > 25) { + play->envCtx.adjLightSettings.ambientColor[2] -= 25; ret = false; } else { - play->envCtx.lightSettings.ambientColor[2] = 0; + play->envCtx.adjLightSettings.ambientColor[2] = 0; } return ret; } diff --git a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c index 272915c71..e7d8e9032 100644 --- a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c +++ b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c @@ -364,7 +364,7 @@ void func_80B0FD8C(EnGb2* this, PlayState* play) { } void func_80B0FE18(PlayState* play) { - func_800FD750(NA_BGM_MINI_BOSS); + Environment_ForcePlaySequence(NA_BGM_MINI_BOSS); play->nextEntrance = ENTRANCE(GHOST_HUT, 1); play->transitionType = TRANS_TYPE_64; gSaveContext.nextTransitionType = TRANS_TYPE_64; diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index 88798dd2f..17f8cbb1d 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -1066,7 +1066,7 @@ void EnGs_Update(Actor* thisx, PlayState* play) { Math_StepToF(&this->unk_200, 1.0f, 0.02f); } func_80997AFC(this->unk_194, &this->unk_1F7); - Lib_LerpRGB(&this->unk_1F4, &this->unk_1F7, this->unk_200, &this->unk_1FA); + Color_RGB8_Lerp(&this->unk_1F4, &this->unk_1F7, this->unk_200, &this->unk_1FA); if (this->unk_200 >= 1.0f) { this->unk_1F4 = this->unk_1FA; } diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c index e9cfb258e..b22949cb0 100644 --- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c +++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c @@ -62,10 +62,10 @@ void EnHata_Update(Actor* thisx, PlayState* play2) { this->skelAnime.playSpeed = 2.75f * phi_fv0; this->skelAnime.playSpeed += 1.0f + Rand_ZeroFloat(1.25f); - sp34.x = play->envCtx.windDir.x; - sp34.y = play->envCtx.windDir.y + ((1.0f - phi_fv0) * 240.0f); + sp34.x = play->envCtx.windDirection.x; + sp34.y = play->envCtx.windDirection.y + ((1.0f - phi_fv0) * 240.0f); sp34.y = CLAMP(sp34.y, -118.0f, 118.0f); - sp34.z = play->envCtx.windDir.z; + sp34.z = play->envCtx.windDirection.z; phi_fv0 = CLAMP(phi_fv0, 0.1f, 0.4f); Math_ApproachF(&this->unk_2A4.x, sp34.x, phi_fv0, 1000.0f); diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 19fbd436e..54b21b7ba 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -879,7 +879,7 @@ s32 func_808F4414(PlayState* play, EnIn* this, s32 arg2) { case 0x3475: SET_WEEKEVENTREG_HORSE_RACE_STATE(WEEKEVENTREG_HORSE_RACE_STATE_START); - func_800FD750(NA_BGM_HORSE); + Environment_ForcePlaySequence(NA_BGM_HORSE); play->nextEntrance = ENTRANCE(GORMAN_TRACK, 5); play->transitionType = TRANS_TYPE_FADE_WHITE_FAST; play->transitionTrigger = TRANS_TRIGGER_START; @@ -1176,7 +1176,7 @@ s32 func_808F4414(PlayState* play, EnIn* this, s32 arg2) { case 0x3475: SET_WEEKEVENTREG_HORSE_RACE_STATE(WEEKEVENTREG_HORSE_RACE_STATE_START); - func_800FD750(NA_BGM_HORSE); + Environment_ForcePlaySequence(NA_BGM_HORSE); play->nextEntrance = ENTRANCE(GORMAN_TRACK, 5); play->transitionType = TRANS_TYPE_FADE_WHITE_FAST; play->transitionTrigger = TRANS_TRIGGER_START; diff --git a/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c b/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c index 801ad428c..77b4ce909 100644 --- a/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c +++ b/src/overlays/actors/ovl_En_Invadepoh_Demo/z_en_invadepoh_demo.c @@ -750,7 +750,7 @@ void EnInvadepohDemo_Ufo_Draw(EnInvadepohDemo* this, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx); if (EnInvadepohDemo_Ufo_ShouldDrawLensFlare(play, &flashPos)) { - func_800F9824(play, &play->envCtx, &play->view, play->state.gfxCtx, flashPos, 20.0f, 9.0f, 0, 0); + Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, flashPos, 20.0f, 9.0f, 0, 0); } } diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index b09f8f54d..89b9fcfff 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -203,7 +203,7 @@ void EnMThunder_Destroy(Actor* thisx, PlayState* play) { } void EnMThunder_AdjustLights(PlayState* play, f32 arg1) { - func_800FD2B4(play, arg1, 850.0f, 0.2f, 0.0f); + Environment_AdjustLights(play, arg1, 850.0f, 0.2f, 0.0f); } void EnMThunder_Spin_AttackNoMagic(EnMThunder* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c b/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c index 49d10a518..016f779e9 100644 --- a/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c +++ b/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c @@ -318,7 +318,7 @@ void EnMttag_RaceStart(EnMttag* this, PlayState* play) { Interface_StartTimer(TIMER_ID_MINIGAME_2, 0); play->interfaceCtx.minigameState = MINIGAME_STATE_COUNTDOWN_SETUP_3; SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, NA_BGM_GORON_RACE | SEQ_FLAG_ASYNC); - play->envCtx.unk_E4 = 0xFE; + play->envCtx.timeSeqState = TIMESEQ_REQUEST; player->stateFlags1 &= ~PLAYER_STATE1_20; } else if ((this->timer < 60) && (play->interfaceCtx.minigameState == MINIGAME_STATE_COUNTDOWN_GO)) { this->timer = 0; diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index 1720954a2..7ac6a3b58 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -366,7 +366,7 @@ s32 func_80BC01DC(Actor* thisx, PlayState* play) { gSaveContext.save.time = CLOCK_TIME(8, 0); Sram_IncrementDay(); } else { - func_800FE658(120.0f); + Environment_SetTimeJump(120.0f); } this->behaviour++; diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c index df778f1a7..780e3b300 100644 --- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c +++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c @@ -41,7 +41,7 @@ void EnOkarinaEffect_Destroy(Actor* thisx, PlayState* play) { void EnOkarinaEffect_Init(Actor* thisx, PlayState* play) { EnOkarinaEffect* this = THIS; - if (play->envCtx.unk_F2[1]) { + if (play->envCtx.precipitation[PRECIP_RAIN_CUR] != 0) { Actor_Kill(&this->actor); } EnOkarinaEffect_SetupAction(this, func_8096B104); @@ -49,10 +49,10 @@ void EnOkarinaEffect_Init(Actor* thisx, PlayState* play) { void func_8096B104(EnOkarinaEffect* this, PlayState* play) { this->unk144 = 0x50; - play->envCtx.unk_F2[4] = 0x3C; - D_801F4E70 = 501.0f; - play->envCtx.unk_E3 = 2; - func_800FD78C(play); + play->envCtx.precipitation[PRECIP_SOS_MAX] = 60; + gLightningStrike.delayTimer = 501.0f; + play->envCtx.lightningState = LIGHTNING_LAST; + Environment_PlayStormNatureAmbience(play); EnOkarinaEffect_SetupAction(this, func_8096B174); } @@ -65,11 +65,11 @@ void func_8096B174(EnOkarinaEffect* this, PlayState* play) { } void func_8096B1FC(EnOkarinaEffect* this, PlayState* play) { - if (play->envCtx.unk_F2[4]) { + if (play->envCtx.precipitation[PRECIP_SOS_MAX] != 0) { if ((play->state.frames & 3) == 0) { - play->envCtx.unk_F2[4]--; - if (play->envCtx.unk_F2[4] == 8) { - func_800FD858(play); + play->envCtx.precipitation[PRECIP_SOS_MAX]--; + if (play->envCtx.precipitation[PRECIP_SOS_MAX] == 8) { + Environment_StopStormNatureAmbience(play); } } } else { diff --git a/src/overlays/actors/ovl_En_Ot/z_en_ot.c b/src/overlays/actors/ovl_En_Ot/z_en_ot.c index b8967e329..fa7e72acc 100644 --- a/src/overlays/actors/ovl_En_Ot/z_en_ot.c +++ b/src/overlays/actors/ovl_En_Ot/z_en_ot.c @@ -459,8 +459,8 @@ void func_80B5C3D8(EnOt* this, PlayState* play) { this->unk_360->actor.shape.rot.y = BINANG_ROT180(temp); if (this->unk_740 < 1.0f) { - Lib_LerpRGB(&D_80B5E408, &D_80B5E40C, this->unk_740, &this->unk_744); - Lib_LerpRGB(&D_80B5E408, &D_80B5E40C, this->unk_740, &this->unk_360->unk_744); + Color_RGB8_Lerp(&D_80B5E408, &D_80B5E40C, this->unk_740, &this->unk_744); + Color_RGB8_Lerp(&D_80B5E408, &D_80B5E40C, this->unk_740, &this->unk_360->unk_744); Math_StepToF(&this->unk_740, 1.0f, 0.05f); } diff --git a/src/overlays/actors/ovl_En_Test3/z_en_test3.c b/src/overlays/actors/ovl_En_Test3/z_en_test3.c index 062f76230..90ea18d05 100644 --- a/src/overlays/actors/ovl_En_Test3/z_en_test3.c +++ b/src/overlays/actors/ovl_En_Test3/z_en_test3.c @@ -782,7 +782,7 @@ s32 func_80A3FBE8(EnTest3* this, PlayState* play) { CutsceneManager_SetReturnCamera(CAM_ID_MAIN); Environment_StartTime(); if (((void)0, gSaveContext.save.time) > CLOCK_TIME(6, 0)) { - func_800FE658(TIME_TO_MINUTES_ALT_F(fabsf((s16) - ((void)0, gSaveContext.save.time)))); + Environment_SetTimeJump(TIME_TO_MINUTES_ALT_F(fabsf((s16) - ((void)0, gSaveContext.save.time)))); } if (play->actorCtx.flags & ACTORCTX_FLAG_6) { SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); diff --git a/src/overlays/actors/ovl_En_Test4/z_en_test4.c b/src/overlays/actors/ovl_En_Test4/z_en_test4.c index e726408a5..8816ceb64 100644 --- a/src/overlays/actors/ovl_En_Test4/z_en_test4.c +++ b/src/overlays/actors/ovl_En_Test4/z_en_test4.c @@ -60,8 +60,8 @@ void func_80A41D70(EnTest4* this, PlayState* play) { } Interface_NewDay(play, CURRENT_DAY); - D_801BDBC8 = 0xFE; - func_800FB758(play); + gSceneSeqState = SCENESEQ_MORNING; + Environment_PlaySceneSequence(play); func_800FEAF4(&play->envCtx); this->actionFunc = func_80A42AB8; } @@ -97,8 +97,8 @@ void func_80A41FA4(EnTest4* this, PlayState* play) { gSaveContext.save.time = CLOCK_TIME(6, 0); Interface_NewDay(play, CURRENT_DAY); Message_DisplaySceneTitleCard(play, sDayMessages2[CURRENT_DAY - 1]); - D_801BDBC8 = 0xFE; - func_800FB758(play); + gSceneSeqState = SCENESEQ_MORNING; + Environment_PlaySceneSequence(play); func_800FEAF4(&play->envCtx); this->actionFunc = func_80A42AB8; } @@ -324,7 +324,7 @@ void EnTest4_Init(Actor* thisx, PlayState* play) { } else { gSaveContext.save.day = 1; dayTemp = gSaveContext.save.day; - gSaveContext.save.daysElapsed = dayTemp; + gSaveContext.save.eventDayCount = dayTemp; this->csIdIndex = 1; this->unk_146 = gSaveContext.save.time; this->actionFunc = func_80A42AB8; @@ -517,38 +517,38 @@ void func_80A42F20(EnTest4* this, PlayState* play) { void func_80A430C8(EnTest4* this, PlayState* play) { if ((CURRENT_DAY == 2) && (gSaveContext.save.time >= CLOCK_TIME(7, 0)) && - (gSaveContext.save.time < CLOCK_TIME(17, 30)) && (play->envCtx.unk_F2[2] == 0)) { + (gSaveContext.save.time < CLOCK_TIME(17, 30)) && (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0)) { // rain? - gWeatherMode = 1; - func_800FD78C(play); - play->envCtx.unk_E3 = 1; - play->envCtx.unk_F2[0] = 0x3C; + gWeatherMode = WEATHER_MODE_1; + Environment_PlayStormNatureAmbience(play); + play->envCtx.lightningState = LIGHTNING_ON; + play->envCtx.precipitation[PRECIP_RAIN_MAX] = 60; } else { - if (play->envCtx.unk_F2[0] != 0) { + if (play->envCtx.precipitation[PRECIP_RAIN_MAX] != 0) { if ((play->state.frames % 4) == 0) { - play->envCtx.unk_F2[0]--; - if ((play->envCtx.unk_F2[0]) == 8) { - func_800FD858(play); + play->envCtx.precipitation[PRECIP_RAIN_MAX]--; + if ((play->envCtx.precipitation[PRECIP_RAIN_MAX]) == 8) { + Environment_StopStormNatureAmbience(play); } } } } - if (gWeatherMode == 1) { + if (gWeatherMode == WEATHER_MODE_1) { this->state = TEST4_STATE_1; } } void func_80A431C8(EnTest4* this, PlayState* play) { if (((gSaveContext.save.time >= CLOCK_TIME(17, 30)) && (gSaveContext.save.time < CLOCK_TIME(23, 0)) && - (play->envCtx.unk_F2[0] != 0)) || - (play->envCtx.unk_F2[2] != 0)) { - gWeatherMode = 0; - play->envCtx.unk_E3 = 2; + (play->envCtx.precipitation[PRECIP_RAIN_MAX] != 0)) || + (play->envCtx.precipitation[PRECIP_SNOW_CUR] != 0)) { + gWeatherMode = WEATHER_MODE_CLEAR; + play->envCtx.lightningState = LIGHTNING_LAST; } - if (gWeatherMode == 0) { + if (gWeatherMode == WEATHER_MODE_CLEAR) { this->state = TEST4_STATE_0; } } @@ -557,7 +557,7 @@ void func_80A4323C(EnTest4* this, PlayState* play) { s32 temp_v0 = (this->actor.params >> 0xA) * 0x64; if (temp_v0 > 0) { - D_801F4E7A = temp_v0; + gSkyboxNumStars = temp_v0; } } @@ -568,7 +568,7 @@ void EnTest4_Update(Actor* thisx, PlayState* play) { if (!(player->stateFlags1 & PLAYER_STATE1_2)) { this->actionFunc(this, play); - if (func_800FE4B8(play) != 0) { + if (Environment_GetStormState(play) != STORM_STATE_OFF) { switch (this->state) { case TEST4_STATE_0: func_80A430C8(this, play); diff --git a/src/overlays/actors/ovl_En_Test6/z_en_test6.c b/src/overlays/actors/ovl_En_Test6/z_en_test6.c index bee7c94e7..9657f1b1e 100644 --- a/src/overlays/actors/ovl_En_Test6/z_en_test6.c +++ b/src/overlays/actors/ovl_En_Test6/z_en_test6.c @@ -375,24 +375,24 @@ void EnTest6_Destroy(Actor* thisx, PlayState* play2) { EnTest6* this = THIS; s32 i; - play->envCtx.lightSettings.ambientColor[0] = 0; - play->envCtx.lightSettings.ambientColor[1] = 0; - play->envCtx.lightSettings.ambientColor[2] = 0; + play->envCtx.adjLightSettings.ambientColor[0] = 0; + play->envCtx.adjLightSettings.ambientColor[1] = 0; + play->envCtx.adjLightSettings.ambientColor[2] = 0; - play->envCtx.lightSettings.diffuseColor1[0] = 0; - play->envCtx.lightSettings.diffuseColor1[1] = 0; - play->envCtx.lightSettings.diffuseColor1[2] = 0; + play->envCtx.adjLightSettings.light1Color[0] = 0; + play->envCtx.adjLightSettings.light1Color[1] = 0; + play->envCtx.adjLightSettings.light1Color[2] = 0; - play->envCtx.lightSettings.diffuseColor2[0] = 0; - play->envCtx.lightSettings.diffuseColor2[1] = 0; - play->envCtx.lightSettings.diffuseColor2[2] = 0; + play->envCtx.adjLightSettings.light2Color[0] = 0; + play->envCtx.adjLightSettings.light2Color[1] = 0; + play->envCtx.adjLightSettings.light2Color[2] = 0; - play->envCtx.lightSettings.fogColor[0] = 0; - play->envCtx.lightSettings.fogColor[1] = 0; - play->envCtx.lightSettings.fogColor[2] = 0; + play->envCtx.adjLightSettings.fogColor[0] = 0; + play->envCtx.adjLightSettings.fogColor[1] = 0; + play->envCtx.adjLightSettings.fogColor[2] = 0; - play->envCtx.lightSettings.fogNear = 0; - play->envCtx.lightSettings.zFar = 0; + play->envCtx.adjLightSettings.fogNear = 0; + play->envCtx.adjLightSettings.zFar = 0; play->envCtx.fillScreen = false; @@ -425,7 +425,7 @@ void EnTest6_StartCutscene(EnTest6* this, PlayState* play) { break; default: - gSaveContext.save.daysElapsed = 0; + gSaveContext.save.eventDayCount = 0; gSaveContext.save.day = 0; gSaveContext.save.time = CLOCK_TIME(6, 0) - 1; EnTest6_SetupAction(this, EnTest6_SharedSoTCutscene); diff --git a/src/overlays/actors/ovl_En_Test7/z_en_test7.c b/src/overlays/actors/ovl_En_Test7/z_en_test7.c index df0e829d4..417176d96 100644 --- a/src/overlays/actors/ovl_En_Test7/z_en_test7.c +++ b/src/overlays/actors/ovl_En_Test7/z_en_test7.c @@ -987,6 +987,7 @@ void EnTest7_Draw(Actor* thisx, PlayState* play) { func_80AF14FC(play, this->unk_15C); if (this->unk_144 & 4) { - func_800F9824(play, &play->envCtx, &play->view, play->state.gfxCtx, this->actor.world.pos, 70.0f, 5.0f, 0, 0); + Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, this->actor.world.pos, 70.0f, + 5.0f, 0, 0); } } diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 64a62f84a..7b88159f1 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -324,7 +324,7 @@ void func_80AECB6C(EnTk* this, PlayState* play) { } if (R_TIME_SPEED != 0.0f) { - this->skelAnime.playSpeed = (f32)func_800FE620(play) / R_TIME_SPEED; + this->skelAnime.playSpeed = (f32)Environment_GetTimeSpeed(play) / R_TIME_SPEED; } else { this->skelAnime.playSpeed = 0.0f; } diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index 551d7d774..3221878e3 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -77,7 +77,7 @@ void func_8089F014(EnViewer* this, PlayState* play, f32 arg2) { arg2 = 0.0f; } play->envCtx.lightSettingOverride = 0; - play->envCtx.unk_E0 = 2; + play->envCtx.lightBlendOverride = LIGHT_BLEND_OVERRIDE_FULL_CONTROL; play->envCtx.lightSetting = this->actor.world.rot.x; play->envCtx.prevLightSetting = this->actor.world.rot.z; play->envCtx.lightBlend = arg2; @@ -87,11 +87,11 @@ void func_8089F0A0(EnViewer* this, PlayState* play) { Player* player = GET_PLAYER(play); D_8089F3E4++; - if ((D_8089F3E4 == D_8089F3E0) && (play->envCtx.lightSettingOverride != 255)) { - play->envCtx.lightSettingOverride = 255; - play->envCtx.unk_E0 = 0; + if ((D_8089F3E4 == D_8089F3E0) && (play->envCtx.lightSettingOverride != LIGHT_SETTING_OVERRIDE_NONE)) { + play->envCtx.lightSettingOverride = LIGHT_SETTING_OVERRIDE_NONE; + play->envCtx.lightBlendOverride = LIGHT_BLEND_OVERRIDE_NONE; play->envCtx.lightBlend = 1.0f; - func_800FAAB4( + Environment_ChangeLightSetting( play, SurfaceType_GetLightSettingIndex(&play->colCtx, player->actor.floorPoly, player->actor.floorBgId)); play->envCtx.lightBlend = 1.0f; play->envCtx.prevLightSetting = play->envCtx.lightSetting; diff --git a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c index fb34c3b64..3aa4360f9 100644 --- a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c +++ b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c @@ -47,12 +47,6 @@ ActorInit En_Weather_Tag_InitVars = { (ActorFunc)EnWeatherTag_Draw, }; -extern f32 D_801F4E74; -extern u8 D_801BDBB8; -extern u8 D_801BDBB4; -extern u8 D_801F4E30; -extern s16 D_801F4E7A; - void EnWeatherTag_SetupAction(EnWeatherTag* this, EnWeatherTagActionFunc func) { this->actionFunc = func; } @@ -131,17 +125,17 @@ u8 func_80966608(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4, if (WEATHER_TAG_RANGE100(&this->actor) > Actor_WorldDistXZToActor(&player->actor, &this->actor)) { if (play->envCtx.lightConfig == play->envCtx.changeLightNextConfig) { - D_801BDBB8 = 1; - if (!(play->envCtx.lightMode == 0) || + gInterruptSongOfStorms = true; + if (!(play->envCtx.lightMode == LIGHT_MODE_TIME) || ((play->envCtx.lightConfig != 1) && !play->envCtx.changeLightEnabled)) { - D_801BDBB8 = 0; + gInterruptSongOfStorms = false; if (gWeatherMode != weatherMode) { gWeatherMode = weatherMode; play->envCtx.changeLightEnabled = true; play->envCtx.lightConfig = lightConfig; play->envCtx.changeLightNextConfig = changeLightNextConfig; - D_801BDBB4 = changeLightNextConfig; + gLightConfigAfterUnderwater = changeLightNextConfig; play->envCtx.changeDuration = changeDuration; play->envCtx.changeLightTimer = play->envCtx.changeDuration; } @@ -161,16 +155,16 @@ u8 func_80966758(EnWeatherTag* this, PlayState* play, UNK_TYPE a3, UNK_TYPE a4, if (WEATHER_TAG_RANGE100(&this->actor) < Actor_WorldDistXZToActor(&player->actor, &this->actor)) { if (play->envCtx.lightConfig == play->envCtx.changeLightNextConfig) { - D_801BDBB8 = 1; - if (!(play->envCtx.lightMode == 0) || + gInterruptSongOfStorms = true; + if (!(play->envCtx.lightMode == LIGHT_MODE_TIME) || ((play->envCtx.lightConfig != 1) && !play->envCtx.changeLightEnabled)) { - D_801BDBB8 = 0; - gWeatherMode = 0; + gInterruptSongOfStorms = false; + gWeatherMode = WEATHER_MODE_CLEAR; play->envCtx.changeLightEnabled = true; play->envCtx.lightConfig = lightConfig; play->envCtx.changeLightNextConfig = changeLightNextConfig; - D_801BDBB4 = changeLightNextConfig; + gLightConfigAfterUnderwater = changeLightNextConfig; play->envCtx.changeDuration = changeDuration; play->envCtx.changeLightTimer = play->envCtx.changeDuration; returnVal = 1; @@ -201,11 +195,11 @@ void func_8096689C(EnWeatherTag* this, PlayState* play) { play->envCtx.windSpeed = (this->actor.world.rot.z * partialResult) + 30.0f; if (partialResult > 0.01f) { - play->envCtx.sandstormState = 8; + play->envCtx.sandstormState = SANDSTORM_8; D_801F4E30 = 0x9B; - } else if (play->envCtx.sandstormState == 8) { + } else if (play->envCtx.sandstormState == SANDSTORM_8) { D_801F4E30 = 0; - play->envCtx.sandstormState = 9; + play->envCtx.sandstormState = SANDSTORM_9; } } @@ -243,7 +237,7 @@ void EnWeatherTag_Die(EnWeatherTag* this, PlayState* play) { // poisoned swamp: placed behind the water fall from ikana // this tag stops spawning after STT cleared? void func_80966B08(EnWeatherTag* this, PlayState* play) { - if (func_80966608(this, play, 0, 0, play->envCtx.lightConfig, 5, 100, 2) || (gWeatherMode == 2)) { + if (func_80966608(this, play, 0, 0, play->envCtx.lightConfig, 5, 100, 2) || (gWeatherMode == WEATHER_MODE_2)) { play->skyboxId = SKYBOX_3; EnWeatherTag_SetupAction(this, func_80966D20); } else if (D_801F4E74 <= 0.01f) { @@ -315,7 +309,7 @@ void func_80966D20(EnWeatherTag* this, PlayState* play) { EnWeatherTag_SetupAction(this, func_80966B08); } - if (gWeatherMode != 2) { + if (gWeatherMode != WEATHER_MODE_2) { EnWeatherTag_SetupAction(this, func_80966B08); } } @@ -325,7 +319,7 @@ void func_80966D20(EnWeatherTag* this, PlayState* play) { // path to goron village winter, winter mountain village void func_80966E0C(EnWeatherTag* this, PlayState* play) { if (func_80966608(this, play, 0, 1, 0, 2, 60, 3)) { - play->envCtx.unk_F2[3] = 0x80; + play->envCtx.precipitation[PRECIP_SNOW_MAX] = 128; EnWeatherTag_SetupAction(this, func_80966E84); } } @@ -333,7 +327,7 @@ void func_80966E0C(EnWeatherTag* this, PlayState* play) { // WEATHERTAG_TYPE_WINTERFOG 2 void func_80966E84(EnWeatherTag* this, PlayState* play) { if (func_80966758(this, play, 1, 0, 2, 0, 60)) { - play->envCtx.unk_F2[3] = 0; + play->envCtx.precipitation[PRECIP_SNOW_MAX] = 0; EnWeatherTag_SetupAction(this, func_80966E0C); } } @@ -343,8 +337,8 @@ void func_80966E84(EnWeatherTag* this, PlayState* play) { // wait if you enter the scene through a room instead of fog you get a flash rain shower void func_80966EF0(EnWeatherTag* this, PlayState* play) { if (func_80966608(this, play, 0, 1, 0, 2, 100, 4)) { - func_800FD78C(play); - play->envCtx.unk_F2[0] = 60; + Environment_PlayStormNatureAmbience(play); + play->envCtx.precipitation[PRECIP_RAIN_MAX] = 60; EnWeatherTag_SetupAction(this, func_80966F74); } } @@ -352,8 +346,8 @@ void func_80966EF0(EnWeatherTag* this, PlayState* play) { // WEATHERTAG_TYPE_UNK3 2 void func_80966F74(EnWeatherTag* this, PlayState* play) { if (func_80966758(this, play, 1, 0, 2, 0, 100)) { - func_800FD858(play); - play->envCtx.unk_F2[0] = 0; + Environment_StopStormNatureAmbience(play); + play->envCtx.precipitation[PRECIP_RAIN_MAX] = 0; EnWeatherTag_SetupAction(this, func_80966EF0); } } @@ -365,7 +359,7 @@ void func_80966FEC(EnWeatherTag* this, PlayState* play) { // weirdly, not the same as the other param lookup used in the rest of the file, which is float s32 distance = WEATHER_TAG_RANGE100INT(&this->actor); if (distance > 0) { - D_801F4E7A = distance; + gSkyboxNumStars = distance; } if ((play->sceneId == SCENE_KAIZOKU) && (play->actorCtx.flags & ACTORCTX_FLAG_1)) { @@ -410,9 +404,9 @@ void EnWeatherTag_DoNothing(EnWeatherTag* this, PlayState* play) { // these two are isolated, they call themselves but nothing calls them? void EnWeatherTag_Unused_809671B8(EnWeatherTag* this, PlayState* play) { if (func_80966608(this, play, 0, 1, 0, 4, 100, 5)) { - func_800FD78C(play); - play->envCtx.unk_E3 = 1; - play->envCtx.unk_F2[0] = 60; + Environment_PlayStormNatureAmbience(play); + play->envCtx.lightningState = LIGHTNING_ON; + play->envCtx.precipitation[PRECIP_RAIN_MAX] = 60; EnWeatherTag_SetupAction(this, EnWeatherTag_Unused_80967250); } } @@ -420,9 +414,9 @@ void EnWeatherTag_Unused_809671B8(EnWeatherTag* this, PlayState* play) { // these two are isolated, they call themselves but nothing calls them void EnWeatherTag_Unused_80967250(EnWeatherTag* this, PlayState* play) { if (func_80966758(this, play, 1, 0, 4, 0, 100)) { - func_800FD858(play); - play->envCtx.unk_E3 = 2; - play->envCtx.unk_F2[0] = 0; + Environment_StopStormNatureAmbience(play); + play->envCtx.lightningState = LIGHTNING_LAST; + play->envCtx.precipitation[PRECIP_RAIN_MAX] = 0; EnWeatherTag_SetupAction(this, EnWeatherTag_Unused_809671B8); } } @@ -442,20 +436,20 @@ void func_809672DC(EnWeatherTag* this, PlayState* play) { range = WEATHER_TAG_RANGE100(&this->actor); if (distance < range) { - play->envCtx.sandstormState = 6; + play->envCtx.sandstormState = SANDSTORM_6; strength = 1.0f - (distance / range); if (0.8f < strength) { strength = 1.0f; } D_801F4E30 = (200.0f * strength); } else { - if (play->envCtx.sandstormState == 6) { + if (play->envCtx.sandstormState == SANDSTORM_6) { D_801F4E30 = 0; - play->envCtx.sandstormState = 7; + play->envCtx.sandstormState = SANDSTORM_7; } } - Math_SmoothStepToS(&play->envCtx.lightSettings.fogNear, (s16)(-40.0f * strength), 1, 1, 1); + Math_SmoothStepToS(&play->envCtx.adjLightSettings.fogNear, -40.0f * strength, 1, 1, 1); } // WEATHERTAG_TYPE_LOCALDAY2RAIN: rain proximity as approaching rainy scene @@ -466,19 +460,19 @@ void func_809674C8(EnWeatherTag* this, PlayState* play) { if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(&this->actor)) { if (CURRENT_DAY == 2) { if ((gSaveContext.save.time >= CLOCK_TIME(7, 0)) && (gSaveContext.save.time < CLOCK_TIME(17, 30)) && - (play->envCtx.unk_F2[2] == 0)) { + (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 0)) { - gWeatherMode = 1; - func_800FD78C(play); - play->envCtx.unk_F2[4] = 0x20; + gWeatherMode = WEATHER_MODE_1; + Environment_PlayStormNatureAmbience(play); + play->envCtx.precipitation[PRECIP_SOS_MAX] = 32; EnWeatherTag_SetupAction(this, func_80967608); } } } else { - if ((play->envCtx.unk_F2[4] != 0) && !(play->state.frames & 3)) { - play->envCtx.unk_F2[4]--; - if ((play->envCtx.unk_F2[4]) == 8) { - func_800FD858(play); + if ((play->envCtx.precipitation[PRECIP_SOS_MAX] != 0) && !(play->state.frames & 3)) { + play->envCtx.precipitation[PRECIP_SOS_MAX]--; + if ((play->envCtx.precipitation[PRECIP_SOS_MAX]) == 8) { + Environment_StopStormNatureAmbience(play); } } } @@ -488,7 +482,7 @@ void func_809674C8(EnWeatherTag* this, PlayState* play) { void func_80967608(EnWeatherTag* this, PlayState* play) { if ((WEATHER_TAG_RANGE100(&this->actor) + 10.0f) < Actor_WorldDistXZToActor(&GET_PLAYER(play)->actor, &this->actor)) { - gWeatherMode = 0; + gWeatherMode = WEATHER_MODE_CLEAR; EnWeatherTag_SetupAction(this, func_809674C8); } } diff --git a/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c b/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c index a708038f5..a3df9a7a2 100644 --- a/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c +++ b/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c @@ -119,19 +119,19 @@ void EnWizFire_Destroy(Actor* thisx, PlayState* play) { EnWizFire* this = THIS; if (this->type == EN_WIZ_FIRE_TYPE_MAGIC_PROJECTILE) { - play->envCtx.lightSettings.fogColor[2] = 0; - play->envCtx.lightSettings.fogColor[1] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.fogColor[0] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.diffuseColor2[2] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.diffuseColor2[1] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.diffuseColor2[0] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.diffuseColor1[2] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.diffuseColor1[1] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.diffuseColor1[0] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.ambientColor[2] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.ambientColor[1] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.ambientColor[0] = play->envCtx.lightSettings.fogColor[2]; - play->envCtx.lightSettings.fogNear = play->envCtx.lightSettings.fogColor[2]; + play->envCtx.adjLightSettings.fogColor[2] = 0; + play->envCtx.adjLightSettings.fogColor[1] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.fogColor[0] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.light2Color[2] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.light2Color[1] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.light2Color[0] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.light1Color[2] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.light1Color[1] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.light1Color[0] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.ambientColor[2] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.ambientColor[1] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.ambientColor[0] = play->envCtx.adjLightSettings.fogColor[2]; + play->envCtx.adjLightSettings.fogNear = play->envCtx.adjLightSettings.fogColor[2]; } Collider_DestroyCylinder(play, &this->collider); @@ -518,38 +518,39 @@ void EnWizFire_Update(Actor* thisx, PlayState* play2) { fogNear = 968.0f; } - play->envCtx.lightSettings.fogNear = (fogNear - (s16)play->envCtx.unk_C4.fogNear) * this->blendScaleFrac; + play->envCtx.adjLightSettings.fogNear = + (fogNear - (s16)play->envCtx.lightSettings.fogNear) * this->blendScaleFrac; - play->envCtx.lightSettings.ambientColor[0] = - ((f32)lightSettingsColors[index].r - play->envCtx.unk_C4.ambientColor[0]) * this->blendScaleFrac; - play->envCtx.lightSettings.ambientColor[1] = - ((f32)lightSettingsColors[index].g - play->envCtx.unk_C4.ambientColor[1]) * this->blendScaleFrac; - play->envCtx.lightSettings.ambientColor[2] = - ((f32)lightSettingsColors[index].b - play->envCtx.unk_C4.ambientColor[2]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.ambientColor[0] = + ((f32)lightSettingsColors[index].r - play->envCtx.lightSettings.ambientColor[0]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.ambientColor[1] = + ((f32)lightSettingsColors[index].g - play->envCtx.lightSettings.ambientColor[1]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.ambientColor[2] = + ((f32)lightSettingsColors[index].b - play->envCtx.lightSettings.ambientColor[2]) * this->blendScaleFrac; index++; - play->envCtx.lightSettings.diffuseColor1[0] = - ((f32)lightSettingsColors[index].r - play->envCtx.unk_C4.diffuseColor1[0]) * this->blendScaleFrac; - play->envCtx.lightSettings.diffuseColor1[1] = - ((f32)lightSettingsColors[index].g - play->envCtx.unk_C4.diffuseColor1[1]) * this->blendScaleFrac; - play->envCtx.lightSettings.diffuseColor1[2] = - ((f32)lightSettingsColors[index].b - play->envCtx.unk_C4.diffuseColor1[2]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.light1Color[0] = + ((f32)lightSettingsColors[index].r - play->envCtx.lightSettings.light1Color[0]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.light1Color[1] = + ((f32)lightSettingsColors[index].g - play->envCtx.lightSettings.light1Color[1]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.light1Color[2] = + ((f32)lightSettingsColors[index].b - play->envCtx.lightSettings.light1Color[2]) * this->blendScaleFrac; index++; - play->envCtx.lightSettings.diffuseColor2[0] = - ((f32)lightSettingsColors[index].r - play->envCtx.unk_C4.diffuseColor[0]) * this->blendScaleFrac; - play->envCtx.lightSettings.diffuseColor2[1] = - ((f32)lightSettingsColors[index].g - play->envCtx.unk_C4.diffuseColor[1]) * this->blendScaleFrac; - play->envCtx.lightSettings.diffuseColor2[2] = - ((f32)lightSettingsColors[index].b - play->envCtx.unk_C4.diffuseColor[2]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.light2Color[0] = + ((f32)lightSettingsColors[index].r - play->envCtx.lightSettings.light2Color[0]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.light2Color[1] = + ((f32)lightSettingsColors[index].g - play->envCtx.lightSettings.light2Color[1]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.light2Color[2] = + ((f32)lightSettingsColors[index].b - play->envCtx.lightSettings.light2Color[2]) * this->blendScaleFrac; index++; - play->envCtx.lightSettings.fogColor[0] = - ((f32)lightSettingsColors[index].r - play->envCtx.unk_C4.fogColor[0]) * this->blendScaleFrac; - play->envCtx.lightSettings.fogColor[1] = - ((f32)lightSettingsColors[index].g - play->envCtx.unk_C4.fogColor[1]) * this->blendScaleFrac; - play->envCtx.lightSettings.fogColor[2] = - ((f32)lightSettingsColors[index].b - play->envCtx.unk_C4.fogColor[2]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.fogColor[0] = + ((f32)lightSettingsColors[index].r - play->envCtx.lightSettings.fogColor[0]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.fogColor[1] = + ((f32)lightSettingsColors[index].g - play->envCtx.lightSettings.fogColor[1]) * this->blendScaleFrac; + play->envCtx.adjLightSettings.fogColor[2] = + ((f32)lightSettingsColors[index].b - play->envCtx.lightSettings.fogColor[2]) * this->blendScaleFrac; } } diff --git a/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c b/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c index 3846ecfd0..069c4b89b 100644 --- a/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c +++ b/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.c @@ -328,7 +328,7 @@ void ObjEtcetera_Update(Actor* thisx, PlayState* play) { if (floorBgId == BGCHECK_SCENE) { floorPoly = this->dyna.actor.floorPoly; if ((floorPoly != NULL) && (this->burrowFlag & 1)) { - func_800FAAB4(play, SurfaceType_GetLightSettingIndex(&play->colCtx, floorPoly, floorBgId)); + Environment_ChangeLightSetting(play, SurfaceType_GetLightSettingIndex(&play->colCtx, floorPoly, floorBgId)); } } diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c index 2661b9cc5..dbefd93b9 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -55,11 +55,11 @@ void func_808DBEB0(ObjectKankyo* this, PlayState* play) { D_808DE5B0 = 0.0f; this->unk_144 = Rand_ZeroOne() * 360.0f; this->unk_148 = Rand_ZeroOne() * 360.0f; - if (play->envCtx.unk_F2[2] == 128) { + if (play->envCtx.precipitation[PRECIP_SNOW_CUR] == 128) { D_808DE5B0 = 1.0f; this->unk_114E = 1; - for (i = 0; i < play->envCtx.unk_F2[2]; i++) { + for (i = 0; i < play->envCtx.precipitation[PRECIP_SNOW_CUR]; i++) { this->unk_14C[i].unk_10 = Rand_ZeroOne() * -200.0f; } } else { @@ -107,7 +107,7 @@ void ObjectKankyo_Init(Actor* thisx, PlayState* play) { break; case 2: - play->envCtx.unk_F2[2] = 0x80; + play->envCtx.precipitation[PRECIP_SNOW_CUR] = 128; func_808DBFB0(this, play); break; @@ -180,16 +180,16 @@ void func_808DC18C(ObjectKankyo* this, PlayState* play) { magnitude = play->envCtx.windSpeed / 60.0f; magnitude = CLAMP(magnitude, 0.0f, 1.0f); - sp30.x = play->envCtx.windDir.x * magnitude; - sp30.y = play->envCtx.windDir.y + 100.0f; - sp30.z = play->envCtx.windDir.z * magnitude; + sp30.x = play->envCtx.windDirection.x * magnitude; + sp30.y = play->envCtx.windDirection.y + 100.0f; + sp30.z = play->envCtx.windDirection.z * magnitude; this->unk_14C[2].unk_00 = 0x4000 - Math_Vec3f_Pitch(&gZeroVec3f, &sp30); this->unk_14C[2].unk_04 = Math_Vec3f_Yaw(&gZeroVec3f, &sp30) + 0x8000; } void func_808DC454(ObjectKankyo* this, PlayState* play) { s16 i; - u32 tempI; + s32 pad1; f32 phi_f20; f32 spD0; f32 spCC; @@ -214,7 +214,7 @@ void func_808DC454(ObjectKankyo* this, PlayState* play) { spCC = y / magnitude; spC8 = z / magnitude; - for (i = 0; i < play->envCtx.unk_F2[2]; i++) { + for (i = 0; i < play->envCtx.precipitation[PRECIP_SNOW_CUR]; i++) { switch (this->unk_14C[i].unk_1C) { case 0: this->unk_14C[i].unk_00 = play->view.eye.x + (spD0 * 120.0f); @@ -231,14 +231,13 @@ void func_808DC454(ObjectKankyo* this, PlayState* play) { this->unk_14C[i].unk_10 = temp_f22; } else { this->unk_14C[i].unk_10 += temp_f22; - tempI = i; - if (play->envCtx.unk_F2[2] == (tempI + 1)) { + if (play->envCtx.precipitation[PRECIP_SNOW_CUR] == ((u32)i + 1)) { this->unk_114E = 0; } } this->unk_14C[i].unk_14 = (Rand_ZeroOne() - 0.5f) * (2.0f * temp_120); - if (play->envCtx.unk_F2[4] == 0) { + if (play->envCtx.precipitation[PRECIP_SOS_MAX] == 0) { this->unk_14C[i].unk_18 = (Rand_ZeroOne() * 3.0f) + 1.0f; } else { this->unk_14C[i].unk_18 = (Rand_ZeroOne() * 3.0f) + 8.0f; @@ -251,14 +250,14 @@ void func_808DC454(ObjectKankyo* this, PlayState* play) { temp_f28 = play->view.eye.y + (spCC * 120.0f); temp_f30 = play->view.eye.z + (spC8 * 120.0f); - magnitude = - sqrtf((f32)SQ(play->envCtx.windDir.x) + SQ(play->envCtx.windDir.y) + SQ(play->envCtx.windDir.z)); + magnitude = sqrtf((f32)SQ(play->envCtx.windDirection.x) + SQ(play->envCtx.windDirection.y) + + SQ(play->envCtx.windDirection.z)); if (magnitude == 0.0f) { magnitude = 0.001f; } - spC4 = -play->envCtx.windDir.x / magnitude; - spC0 = -play->envCtx.windDir.y / magnitude; - spBC = -play->envCtx.windDir.z / magnitude; + spC4 = -play->envCtx.windDirection.x / magnitude; + spC0 = -play->envCtx.windDirection.y / magnitude; + spBC = -play->envCtx.windDirection.z / magnitude; if (i == 0) { this->unk_144 += 0.049999997f * Rand_ZeroOne(); @@ -318,13 +317,13 @@ void func_808DC454(ObjectKankyo* this, PlayState* play) { } void func_808DCB7C(ObjectKankyo* this, PlayState* play) { - if (play->envCtx.unk_F2[2] < play->envCtx.unk_F2[3]) { + if (play->envCtx.precipitation[PRECIP_SNOW_CUR] < play->envCtx.precipitation[PRECIP_SNOW_MAX]) { if ((play->state.frames % 16) == 0) { - play->envCtx.unk_F2[2] += 2; + play->envCtx.precipitation[PRECIP_SNOW_CUR] += 2; } - } else if (play->envCtx.unk_F2[3] < play->envCtx.unk_F2[2]) { + } else if (play->envCtx.precipitation[PRECIP_SNOW_MAX] < play->envCtx.precipitation[PRECIP_SNOW_CUR]) { if ((play->state.frames % 16) == 0) { - play->envCtx.unk_F2[2] -= 2; + play->envCtx.precipitation[PRECIP_SNOW_CUR] -= 2; } } func_808DC454(this, play); @@ -333,24 +332,24 @@ void func_808DCB7C(ObjectKankyo* this, PlayState* play) { void func_808DCBF8(ObjectKankyo* this, PlayState* play) { f32 temp_f0; - if ((play->envCtx.unk_F2[2] > 0) && (this->unk_114C == 0)) { + if ((play->envCtx.precipitation[PRECIP_SNOW_CUR] > 0) && (this->unk_114C == 0)) { if ((play->state.frames % 16) == 0) { - play->envCtx.unk_F2[2] -= 9; - if ((s8)play->envCtx.unk_F2[2] < 0) { - play->envCtx.unk_F2[2] = 0; + play->envCtx.precipitation[PRECIP_SNOW_CUR] -= 9; + if ((s8)play->envCtx.precipitation[PRECIP_SNOW_CUR] < 0) { + play->envCtx.precipitation[PRECIP_SNOW_CUR] = 0; } } } - temp_f0 = (f32)play->envCtx.unk_F2[2] / 128; + temp_f0 = (f32)play->envCtx.precipitation[PRECIP_SNOW_CUR] / 128; temp_f0 = CLAMP(temp_f0, 0.0f, 1.0f); if (temp_f0 > 0.01f) { D_801F4E30 = 155.0f * temp_f0; - play->envCtx.sandstormState = 10; + play->envCtx.sandstormState = SANDSTORM_A; } else { D_801F4E30 = 0; - play->envCtx.sandstormState = 10; + play->envCtx.sandstormState = SANDSTORM_A; } func_808DC454(this, play); } @@ -413,14 +412,14 @@ void func_808DCDB4(ObjectKankyo* this, PlayState* play) { temp_f28 = play->view.eye.y + (spA8 * 120.0f); temp_f18 = play->view.eye.z + (spA4 * 120.0f); - magnitude = - sqrtf((f32)SQ(play->envCtx.windDir.x) + SQ(play->envCtx.windDir.y) + SQ(play->envCtx.windDir.z)); + magnitude = sqrtf((f32)SQ(play->envCtx.windDirection.x) + SQ(play->envCtx.windDirection.y) + + SQ(play->envCtx.windDirection.z)); if (magnitude == 0.0f) { magnitude = 0.001f; } - spA0 = -play->envCtx.windDir.x / magnitude; - sp9C = -play->envCtx.windDir.z / magnitude; + spA0 = -play->envCtx.windDirection.x / magnitude; + sp9C = -play->envCtx.windDirection.z / magnitude; if (i == 0) { this->unk_144 += 0.049999997f * Rand_ZeroOne(); @@ -512,7 +511,7 @@ void func_808DD3C8(Actor* thisx, PlayState* play2) { f32 temp_f2; f32 tempf; - if ((play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_UNDERWATER) || ((u8)play->envCtx.unk_E2 == 0)) { + if ((play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_UNDERWATER) || ((u8)play->envCtx.stormState == 0)) { return; } @@ -525,14 +524,14 @@ void func_808DD3C8(Actor* thisx, PlayState* play2) { temp_f0 = CLAMP(temp_f0, 0.0f, 1.0f); Math_SmoothStepToF(&D_808DE5B0, temp_f0, 0.2f, 0.1f, 0.001f); - sp68 = play->envCtx.unk_F2[2]; + sp68 = play->envCtx.precipitation[PRECIP_SNOW_CUR]; sp68 *= D_808DE5B0; - if ((play->envCtx.unk_F2[2] >= 32) && (sp68 < 32)) { + if ((play->envCtx.precipitation[PRECIP_SNOW_CUR] >= 32) && (sp68 < 32)) { sp68 = 32; } } else { - sp68 = play->envCtx.unk_F2[2]; + sp68 = play->envCtx.precipitation[PRECIP_SNOW_CUR]; } for (i = 0; i < sp68; i++) { @@ -654,7 +653,7 @@ void func_808DDE9C(Actor* thisx, PlayState* play2) { Player* player = GET_PLAYER(play); s32 i; u8 phi_s5; - u16 end = play->envCtx.unk_F2[1]; + u16 end = play->envCtx.precipitation[PRECIP_RAIN_CUR]; f32 temp_f12; f32 temp_f20; f32 temp_f22; diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index be5374519..2dbfecfdf 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -144,7 +144,7 @@ void OceffSpot_Update(Actor* thisx, PlayState* play) { temp = (2.0f - this->unk16C) * this->unk16C; - func_800FD2B4(play, temp * 0.5f, 880.0f, 0.2f, 0.9f); + Environment_AdjustLights(play, temp * 0.5f, 880.0f, 0.2f, 0.9f); Lights_PointNoGlowSetInfo(&this->lightInfo1, this->actor.world.pos.x, this->actor.world.pos.y + 55.0f, this->actor.world.pos.z, (s32)(255.0f * temp), (s32)(255.0f * temp), (s32)(200.0f * temp), diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index d04907e50..083b8c05f 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -522,7 +522,7 @@ FloorEffect sPlayerFloorEffect; Input* sPlayerControlInput; s32 sPlayerUseHeldItem; // When true, the current held item is used. Is reset to false every frame. s32 sPlayerHeldItemButtonIsHeldDown; // Indicates if the button for the current held item is held down. -EnvLightSettings D_80862B50; // backup of play->envCtx.lightSettings +AdjLightSettings D_80862B50; // backup of lay->envCtx.adjLightSettings s32 D_80862B6C; // this->skelAnime.moveFlags // sPlayerSkelMoveFlags? s32 func_8082DA90(PlayState* play) { @@ -6284,7 +6284,7 @@ s32 func_80835DF8(PlayState* play, Player* this, CollisionPoly** outPoly, s32* o f32 yIntersect = func_80835CD8(play, this, &D_8085D100, &pos, outPoly, outBgId); if ((*outBgId == BGCHECK_SCENE) && (fabsf(this->actor.world.pos.y - yIntersect) < 10.0f)) { - func_800FAAB4(play, SurfaceType_GetLightSettingIndex(&play->colCtx, *outPoly, *outBgId)); + Environment_ChangeLightSetting(play, SurfaceType_GetLightSettingIndex(&play->colCtx, *outPoly, *outBgId)); return true; } return false; @@ -7323,7 +7323,7 @@ void func_808388B8(PlayState* play, Player* this, PlayerTransformation playerFor gSaveContext.save.playerForm = playerForm; this->stateFlags1 |= PLAYER_STATE1_2; - D_80862B50 = play->envCtx.lightSettings; + D_80862B50 = play->envCtx.adjLightSettings; this->actor.velocity.y = 0.0f; Actor_DeactivateLens(play); } @@ -11243,7 +11243,8 @@ void Player_ProcessSceneCollision(PlayState* play, Player* this) { func_801A3CF4(SurfaceType_GetEcho(&play->colCtx, floorPoly, this->actor.floorBgId)); if (this->actor.floorBgId == BGCHECK_SCENE) { - func_800FAAB4(play, SurfaceType_GetLightSettingIndex(&play->colCtx, floorPoly, this->actor.floorBgId)); + Environment_ChangeLightSetting( + play, SurfaceType_GetLightSettingIndex(&play->colCtx, floorPoly, this->actor.floorBgId)); } else { DynaPoly_SetPlayerAbove(&play->colCtx, this->actor.floorBgId); } @@ -11838,9 +11839,9 @@ void func_80844784(PlayState* play, Player* this) { } if (play->envCtx.windSpeed >= 50.0f) { - temp_fa0 = play->envCtx.windDir.x; - temp_fa1 = play->envCtx.windDir.y; - temp_ft4 = play->envCtx.windDir.z; + temp_fa0 = play->envCtx.windDirection.x; + temp_fa1 = play->envCtx.windDirection.y; + temp_ft4 = play->envCtx.windDirection.z; temp_fv0_2 = sqrtf(SQ(temp_fa0) + SQ(temp_fa1) + SQ(temp_ft4)); if (temp_fv0_2 != 0.0f) { @@ -12617,7 +12618,7 @@ void Player_Draw(Actor* thisx, PlayState* play) { CLAMP_MIN(spB8, spB4) * this->actor.scale.z * 1.15f, MTXMODE_APPLY); Matrix_RotateXS(this->actor.shape.rot.x, MTXMODE_APPLY); Scene_SetRenderModeXlu(play, 0, 1); - Lib_LerpRGB(&D_8085D580, &D_8085D584, this->unk_B10[0], &spBC); + Color_RGB8_Lerp(&D_8085D580, &D_8085D584, this->unk_B10[0], &spBC); gDPSetEnvColor(POLY_OPA_DISP++, spBC.r, spBC.g, spBC.b, 255); @@ -17838,14 +17839,14 @@ void func_80854EFC(PlayState* play, f32 arg1, struct_8085D848_unk_00* arg2) { u8* new_var; s32 pad[4]; - new_var = play->envCtx.unk_C4.diffuseColor1; - sp70.fogNear = play->envCtx.unk_C4.fogNear; - sp70.fogColor[0] = play->envCtx.unk_C4.fogColor[0]; - sp70.fogColor[1] = play->envCtx.unk_C4.fogColor[1]; - sp70.fogColor[2] = play->envCtx.unk_C4.fogColor[2]; - sp70.ambientColor[0] = play->envCtx.unk_C4.ambientColor[0]; - sp70.ambientColor[1] = play->envCtx.unk_C4.ambientColor[1]; - sp70.ambientColor[2] = play->envCtx.unk_C4.ambientColor[2]; + new_var = play->envCtx.lightSettings.light1Color; + sp70.fogNear = play->envCtx.lightSettings.fogNear; + sp70.fogColor[0] = play->envCtx.lightSettings.fogColor[0]; + sp70.fogColor[1] = play->envCtx.lightSettings.fogColor[1]; + sp70.fogColor[2] = play->envCtx.lightSettings.fogColor[2]; + sp70.ambientColor[0] = play->envCtx.lightSettings.ambientColor[0]; + sp70.ambientColor[1] = play->envCtx.lightSettings.ambientColor[1]; + sp70.ambientColor[2] = play->envCtx.lightSettings.ambientColor[2]; if (arg1 <= 1.0f) { arg1 -= 0.0f; @@ -17876,13 +17877,13 @@ void func_80854EFC(PlayState* play, f32 arg1, struct_8085D848_unk_00* arg2) { var_t4 = D_8085D844; } - play->envCtx.lightSettings.fogNear = - ((s16)((var_v1->fogNear - var_t0->fogNear) * arg1) + var_t0->fogNear) - play->envCtx.unk_C4.fogNear; + play->envCtx.adjLightSettings.fogNear = + ((s16)((var_v1->fogNear - var_t0->fogNear) * arg1) + var_t0->fogNear) - play->envCtx.lightSettings.fogNear; - func_80854CD0(arg1, play->envCtx.lightSettings.fogColor, var_v1->fogColor, var_t0->fogColor, - play->envCtx.unk_C4.fogColor, play->envCtx.lightSettings.ambientColor, var_v1->ambientColor, - var_t0->ambientColor, play->envCtx.unk_C4.ambientColor, play->envCtx.lightSettings.diffuseColor1, - var_t3, var_t4, new_var); + func_80854CD0(arg1, play->envCtx.adjLightSettings.fogColor, var_v1->fogColor, var_t0->fogColor, + play->envCtx.lightSettings.fogColor, play->envCtx.adjLightSettings.ambientColor, var_v1->ambientColor, + var_t0->ambientColor, play->envCtx.lightSettings.ambientColor, + play->envCtx.adjLightSettings.light1Color, var_t3, var_t4, new_var); } struct_8085D848 D_8085D848[] = { @@ -18107,7 +18108,7 @@ void Player_Action_87(Player* this, PlayState* play) { this->prevMask = this->currentMask; this->csId = play->playerCsIds[PLAYER_CS_ID_MASK_TRANSFORMATION]; Player_StopCutscene(this); - play->envCtx.lightSettings = D_80862B50; + play->envCtx.adjLightSettings = D_80862B50; func_8085B384(this, play); return; } diff --git a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c index 61eb3aebd..139568f3b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c +++ b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c @@ -26,7 +26,7 @@ u32 EffectSsLightning_Init(PlayState* play, u32 index, EffectSs* this, void* ini void EffectSsLightning_Update(PlayState* play, u32 index, EffectSs* this); void EffectSsLightning_Draw(PlayState* play, u32 index, EffectSs* this); -TexturePtr sLightningTextures[] = { +static TexturePtr sLightningTextures[] = { gEffLightning1Tex, gEffLightning2Tex, gEffLightning3Tex, gEffLightning4Tex, gEffLightning5Tex, gEffLightning6Tex, gEffLightning7Tex, gEffLightning8Tex, }; diff --git a/src/overlays/gamestates/ovl_daytelop/z_daytelop.c b/src/overlays/gamestates/ovl_daytelop/z_daytelop.c index 637a20906..2c2e9a6b1 100644 --- a/src/overlays/gamestates/ovl_daytelop/z_daytelop.c +++ b/src/overlays/gamestates/ovl_daytelop/z_daytelop.c @@ -84,7 +84,7 @@ void DayTelop_Update(DayTelopState* this, GameState* thisx) { SET_NEXT_GAMESTATE(&this->state, Play_Init, sizeof(PlayState)); gSaveContext.save.time = CLOCK_TIME(6, 0); - D_801BDBC8 = 0xFE; + gSceneSeqState = SCENESEQ_MORNING; } else if (this->transitionCountdown == 90) { this->fadeInState = DAYTELOP_HOURSTEXT_FADEIN; this->alpha = 0; diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c index a47b5ed9e..65d26a97e 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c @@ -2197,7 +2197,7 @@ void FileSelect_LoadGame(GameState* thisx) { gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT; gSaveContext.cutsceneTrigger = 0; gSaveContext.chamberCutsceneNum = 0; - gSaveContext.nextDayTime = 0xFFFF; + gSaveContext.nextDayTime = NEXT_TIME_NONE; gSaveContext.retainWeatherMode = false; gSaveContext.buttonStatus[EQUIP_SLOT_B] = BTN_ENABLED; @@ -2489,7 +2489,7 @@ void FileSelect_InitContext(GameState* thisx) { Skybox_Init(&this->state, &this->skyboxCtx, 1); R_TIME_SPEED = 10; - envCtx->changeSkyboxState = 0; + envCtx->changeSkyboxState = CHANGE_SKYBOX_INACTIVE; envCtx->changeSkyboxTimer = 0; envCtx->changeLightEnabled = false; envCtx->changeLightTimer = 0; diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c index 06775bf6e..7a79da010 100644 --- a/src/overlays/gamestates/ovl_select/z_select.c +++ b/src/overlays/gamestates/ovl_select/z_select.c @@ -51,7 +51,7 @@ void MapSelect_LoadGame(MapSelectState* this, u32 entrance, s32 spawn) { gSaveContext.respawn[RESPAWN_MODE_ZORA].entrance = 0xFF; gSaveContext.respawn[RESPAWN_MODE_DEKU].entrance = 0xFF; gSaveContext.respawn[RESPAWN_MODE_HUMAN].entrance = 0xFF; - gWeatherMode = 0; + gWeatherMode = WEATHER_MODE_CLEAR; STOP_GAMESTATE(&this->state); SET_NEXT_GAMESTATE(&this->state, Play_Init, sizeof(PlayState)); diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 0d5c950c6..a5bcf5354 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -1706,86 +1706,86 @@ 0x800F4F54:("Font_LoadCharNES",), 0x800F4FC0:("Font_LoadMessageBoxEndIcon",), 0x800F5004:("Font_LoadOrderedFont",), - 0x800F5090:("func_800F5090",), + 0x800F5090:("Environment_GraphCallback",), 0x800F50D4:("Environment_ZBufValToFixedPoint",), 0x800F510C:("Environment_Init",), - 0x800F5954:("func_800F5954",), + 0x800F5954:("Environment_SmoothStepToU8",), 0x800F5A8C:("Environment_LerpWeight",), - 0x800F5B10:("func_800F5B10",), + 0x800F5B10:("Environment_LerpWeightAccelDecel",), 0x800F5CD0:("Environment_UpdateSkybox",), - 0x800F6834:("func_800F6834",), - 0x800F694C:("func_800F694C",), - 0x800F6A04:("func_800F6A04",), - 0x800F6A40:("func_800F6A40",), - 0x800F6AB8:("func_800F6AB8",), - 0x800F6B44:("func_800F6B44",), + 0x800F6834:("Environment_EnableUnderwaterLights",), + 0x800F694C:("Environment_DisableUnderwaterLights",), + 0x800F6A04:("Environment_WipeRumbleRequests",), + 0x800F6A40:("Environment_UpdateSkyboxRotY",), + 0x800F6AB8:("Environment_UpdateNextDayTime",), + 0x800F6B44:("Environment_UpdateTime",), 0x800F6CEC:("func_800F6CEC",), 0x800F6EA4:("func_800F6EA4",), - 0x800F6FCC:("Kankyo_IsSceneUpsideDown",), - 0x800F6FF8:("func_800F6FF8",), - 0x800F8554:("func_800F8554",), + 0x800F6FCC:("Environment_IsSceneUpsideDown",), + 0x800F6FF8:("Environment_UpdateLights",), + 0x800F8554:("Environment_UpdateSun",), 0x800F88C4:("func_800F88C4",), 0x800F8970:("func_800F8970",), - 0x800F8A9C:("func_800F8A9C",), + 0x800F8A9C:("Environment_UpdatePostmanEvents",), 0x800F8CD4:("Environment_Update",), - 0x800F8D84:("func_800F8D84",), + 0x800F8D84:("Environment_DrawSun",), 0x800F9728:("Environment_DrawSunLensFlare",), - 0x800F9824:("func_800F9824",), - 0x800FA39C:("func_800FA39C",), - 0x800FA3C4:("func_800FA3C4",), + 0x800F9824:("Environment_DrawLensFlare",), + 0x800FA39C:("Environment_RandCentered",), + 0x800FA3C4:("Environment_DrawRainImpl",), 0x800FA9FC:("Environment_DrawRain",), - 0x800FAAB4:("func_800FAAB4",), - 0x800FAC20:("func_800FAC20",), - 0x800FAF74:("func_800FAF74",), - 0x800FB010:("func_800FB010",), + 0x800FAAB4:("Environment_ChangeLightSetting",), + 0x800FAC20:("Environment_DrawSkyboxFilters",), + 0x800FAF74:("Environment_DrawLightningFlash",), + 0x800FB010:("Environment_UpdateLightningStrike",), 0x800FB320:("Environment_AddLightningBolts",), - 0x800FB388:("func_800FB388",), - 0x800FB758:("func_800FB758",), - 0x800FB9B4:("func_800FB9B4",), + 0x800FB388:("Environment_DrawLightning",), + 0x800FB758:("Environment_PlaySceneSequence",), + 0x800FB9B4:("Environment_UpdateTimeBasedSequence",), 0x800FBCBC:("Environment_DrawCustomLensFlare",), - 0x800FBDEC:("Kankyo_InitGameOverLights",), - 0x800FBF3C:("Kankyo_FadeInGameOverLights",), - 0x800FC158:("Kankyo_FadeOutGameOverLights",), - 0x800FC3DC:("func_800FC3DC",), + 0x800FBDEC:("Environment_InitGameOverLights",), + 0x800FBF3C:("Environment_FadeInGameOverLights",), + 0x800FC158:("Environment_FadeOutGameOverLights",), + 0x800FC3DC:("Environment_UpdateRain",), 0x800FC444:("Environment_FillScreen",), 0x800FC64C:("Environment_DrawSandstorm",), - 0x800FD2B4:("func_800FD2B4",), - 0x800FD538:("func_800FD538",), + 0x800FD2B4:("Environment_AdjustLights",), + 0x800FD538:("Environment_LerpRGB8",), 0x800FD59C:("Environment_LerpAmbientColor",), 0x800FD5E0:("Environment_LerpDiffuseColor",), 0x800FD654:("Environment_LerpFogColor",), 0x800FD698:("Environment_LerpFog",), - 0x800FD720:("get_days_elapsed",), - 0x800FD730:("reset_days_elapsed",), - 0x800FD740:("get_current_day",), - 0x800FD750:("func_800FD750",), - 0x800FD768:("func_800FD768",), - 0x800FD78C:("func_800FD78C",), - 0x800FD858:("func_800FD858",), - 0x800FD928:("func_800FD928",), - 0x800FD980:("func_800FD980",), - 0x800FDAF8:("func_800FDAF8",), - 0x800FDC94:("func_800FDC94",), - 0x800FE390:("func_800FE390",), - 0x800FE3E0:("func_800FE3E0",), + 0x800FD720:("Environment_GetEventDayCount",), + 0x800FD730:("Environment_ClearEventDayCount",), + 0x800FD740:("Environment_GetTotalDays",), + 0x800FD750:("Environment_ForcePlaySequence",), + 0x800FD768:("Environment_IsForcedSequenceDisabled",), + 0x800FD78C:("Environment_PlayStormNatureAmbience",), + 0x800FD858:("Environment_StopStormNatureAmbience",), + 0x800FD928:("Environment_WarpSongLeave",), + 0x800FD980:("Environment_SetupSkyboxStars",), + 0x800FDAF8:("Environment_DrawSkyboxStar",), + 0x800FDC94:("Environment_DrawSkyboxStarsImpl",), + 0x800FE390:("Environment_Draw",), + 0x800FE3E0:("Environment_DrawSkyboxStars",), 0x800FE484:("Environment_StopTime",), 0x800FE498:("Environment_StartTime",), 0x800FE4A8:("Environment_IsTimeStopped",), - 0x800FE4B8:("func_800FE4B8",), - 0x800FE590:("func_800FE590",), + 0x800FE4B8:("Environment_GetStormState",), + 0x800FE590:("Environment_IsFinalHours",), 0x800FE5D0:("func_800FE5D0",), 0x800FE610:("func_800FE610",), - 0x800FE620:("func_800FE620",), - 0x800FE658:("func_800FE658",), + 0x800FE620:("Environment_GetTimeSpeed",), + 0x800FE658:("Environment_SetTimeJump",), 0x800FE6F8:("func_800FE6F8",), - 0x800FE778:("func_800FE778",), - 0x800FE788:("func_800FE788",), - 0x800FE798:("func_800FE798",), - 0x800FE7A8:("func_800FE7A8",), + 0x800FE778:("Environment_GetSandstormColorIndex",), + 0x800FE788:("Environment_GetNextSandstormColorIndex",), + 0x800FE798:("Environment_GetSandstormLerpScale",), + 0x800FE7A8:("Environment_LerpSandstormColors",), 0x800FE9B4:("func_800FE9B4",), 0x800FEA50:("func_800FEA50",), 0x800FEAB0:("func_800FEAB0",), - 0x800FEAC0:("func_800FEAC0",), + 0x800FEAC0:("Environment_JumpForwardInTime",), 0x800FEAF4:("func_800FEAF4",), 0x800FEC90:("Lib_MemCpy",), 0x800FECC0:("Lib_MemSet",), @@ -1849,7 +1849,7 @@ 0x801000CC:("Lib_PlaySfx_2",), 0x801000F4:("Lib_PlaySfx_AtPos",), 0x8010011C:("Lib_Vec3f_TranslateAndRotateY",), - 0x801001B8:("Lib_LerpRGB",), + 0x801001B8:("Color_RGB8_Lerp",), 0x80100448:("Math_Vec3f_StepTo",), 0x801004FC:("Lib_Nop801004FC",), 0x80100504:("Lib_SegmentedToVirtual",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 6f243b124..1d3913e65 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -946,36 +946,33 @@ 0x801BDB08:("sKaleidoSetupRightPageEyeX","UNK_TYPE1","",0x1), 0x801BDB18:("sKaleidoSetupRightPageEyeZ","UNK_TYPE1","",0x1), 0x801BDB30:("kanfontOrdering","u8","[92]",0x5c), - 0x801BDB90:("D_801BDB90","f32","",0x4), - 0x801BDB94:("D_801BDB94","UNK_TYPE4","",0x4), - 0x801BDB98:("D_801BDB98","UNK_TYPE4","",0x4), - 0x801BDB9C:("D_801BDB9C","UNK_TYPE2","",0x2), - 0x801BDBA0:("D_801BDBA0","UNK_TYPE1","",0x1), - 0x801BDBA4:("D_801BDBA4","UNK_TYPE1","",0x1), + 0x801BDB90:("sSandstormLerpScale","f32","",0x4), + 0x801BDB94:("sSunScreenDepth","UNK_TYPE4","",0x4), + 0x801BDB98:("sEnvSkyboxNumStars","UNK_TYPE4","",0x4), + 0x801BDB9C:("sTimeJump","UNK_TYPE2","",0x2), + 0x801BDBA0:("sSandstormColorIndex","UNK_TYPE1","",0x1), + 0x801BDBA4:("sNextSandstormColorIndex","UNK_TYPE1","",0x1), 0x801BDBA8:("D_801BDBA8","UNK_TYPE1","",0x1), 0x801BDBB0:("gWeatherMode","u8","",0x1), - 0x801BDBB4:("D_801BDBB4","UNK_TYPE1","",0x1), - 0x801BDBB8:("D_801BDBB8","UNK_TYPE1","",0x1), - 0x801BDBBC:("D_801BDBBC","UNK_TYPE1","",0x1), + 0x801BDBB4:("gLightConfigAfterUnderwater","UNK_TYPE1","",0x1), + 0x801BDBB8:("gInterruptSongOfStorms","UNK_TYPE1","",0x1), + 0x801BDBBC:("sSkyboxIsChanging","UNK_TYPE1","",0x1), 0x801BDBC0:("D_801BDBC0","UNK_TYPE1","",0x1), 0x801BDBC4:("D_801BDBC4","UNK_TYPE1","",0x1), - 0x801BDBC8:("D_801BDBC8","u8","",0x1), - 0x801BDBCC:("D_801BDBCC","UNK_TYPE1","",0x1), - 0x801BDCF4:("D_801BDCF4","UNK_TYPE1","",0x1), - 0x801BE38E:("D_801BE38E","UNK_TYPE1","",0x1), - 0x801BE38F:("D_801BE38F","UNK_TYPE1","",0x1), - 0x801BE390:("D_801BE390","UNK_TYPE1","",0x1), - 0x801BE4D4:("D_801BE4D4","UNK_TYPE1","",0x1), - 0x801BE4F4:("D_801BE4F4","UNK_TYPE1","",0x1), - 0x801BE534:("D_801BE534","UNK_TYPE1","",0x1), - 0x801BE6D4:("D_801BE6D4","UNK_TYPE1","",0x1), - 0x801BE874:("D_801BE874","UNK_TYPE1","",0x1), - 0x801BE894:("D_801BE894","UNK_TYPE4","",0x4), - 0x801BE8BC:("D_801BE8BC","UNK_TYPE4","",0x4), - 0x801BE8E4:("D_801BE8E4","UNK_TYPE4","",0x4), - 0x801BE90C:("D_801BE90C","UNK_TYPE1","",0x1), - 0x801BE92C:("D_801BE92C","UNK_TYPE1","",0x1), - 0x801BE944:("D_801BE944","UNK_TYPE1","",0x1), + 0x801BDBC8:("gSceneSeqState","u8","",0x1), + 0x801BDBCC:("sTimeBasedLightConfigs","UNK_TYPE1","",0x1), + 0x801BDCF4:("sTimeBasedSkyboxConfigs","TimeBasedSkyboxEntry","[28][9]",0x7E0), + 0x801BE4D4:("sNormalSkyFiles","UNK_TYPE1","",0x1), + 0x801BE4F4:("sZBufValConversionTable","UNK_TYPE1","",0x1), + 0x801BE534:("sSkyboxPrimColors","UNK_TYPE1","",0x1), + 0x801BE6D4:("sSkyboxEnvColors","UNK_TYPE1","",0x1), + 0x801BE874:("sLensFlareColors","UNK_TYPE1","",0x1), + 0x801BE894:("sLensFlareScales","UNK_TYPE4","",0x4), + 0x801BE8BC:("sLensFlareAlphas","UNK_TYPE4","",0x4), + 0x801BE8E4:("sLensFlareTypes","UNK_TYPE4","",0x4), + 0x801BE90C:("sLightningTextures","UNK_TYPE1","",0x1), + 0x801BE92C:("sSandstormPrimColors","UNK_TYPE1","",0x1), + 0x801BE944:("sSandstormEnvColors","UNK_TYPE1","",0x1), 0x801BE960:("sInitChainHandlers","actor_init_var_func","[11]",0x2c), 0x801BE990:("sHeartsPrimColors","s16","[3][3]",0x12), 0x801BE9A4:("sHeartsEnvColors","s16","[3][3]",0x12), @@ -3870,45 +3867,45 @@ 0x801F4E20:("D_801F4E20","UNK_TYPE1","",0x1), 0x801F4E30:("D_801F4E30","UNK_TYPE1","",0x1), 0x801F4E31:("D_801F4E31","UNK_TYPE1","",0x1), - 0x801F4E32:("D_801F4E32","UNK_TYPE1","",0x1), - 0x801F4E38:("D_801F4E38","UNK_TYPE1","",0x1), + 0x801F4E32:("gCustomLensFlare1On","UNK_TYPE1","",0x1), + 0x801F4E38:("gCustomLensFlare1Pos","UNK_TYPE1","",0x1), 0x801F4E3C:("D_801F4E3C","UNK_TYPE1","",0x1), 0x801F4E40:("D_801F4E40","UNK_TYPE1","",0x1), 0x801F4E44:("D_801F4E44","UNK_TYPE1","",0x1), 0x801F4E48:("D_801F4E48","UNK_TYPE1","",0x1), 0x801F4E4C:("D_801F4E4C","UNK_TYPE1","",0x1), - 0x801F4E4E:("D_801F4E4E","UNK_TYPE1","",0x1), - 0x801F4E50:("D_801F4E50","UNK_TYPE1","",0x1), + 0x801F4E4E:("gCustomLensFlare2On","UNK_TYPE1","",0x1), + 0x801F4E50:("gCustomLensFlare2Pos","UNK_TYPE1","",0x1), 0x801F4E54:("D_801F4E54","UNK_TYPE1","",0x1), 0x801F4E58:("D_801F4E58","UNK_TYPE1","",0x1), 0x801F4E5C:("D_801F4E5C","UNK_TYPE1","",0x1), 0x801F4E60:("D_801F4E60","UNK_TYPE1","",0x1), 0x801F4E64:("D_801F4E64","UNK_TYPE1","",0x1), - 0x801F4E68:("D_801F4E68","UNK_TYPE1","",0x1), + 0x801F4E68:("gLightningStrike","UNK_TYPE1","",0x1), 0x801F4E70:("D_801F4E70","UNK_TYPE1","",0x1), 0x801F4E74:("D_801F4E74","UNK_TYPE1","",0x1), 0x801F4E78:("D_801F4E78","UNK_TYPE1","",0x1), - 0x801F4E7A:("D_801F4E7A","s16","",0x2), - 0x801F4E80:("D_801F4E80","UNK_TYPE1","",0x1), - 0x801F4EE0:("D_801F4EE0","UNK_TYPE1","",0x1), - 0x801F4EE8:("D_801F4EE8","UNK_TYPE1","",0x1), - 0x801F4EF8:("D_801F4EF8","UNK_TYPE1","",0x1), - 0x801F4F00:("D_801F4F00","UNK_TYPE1","",0x1), - 0x801F4F10:("D_801F4F10","UNK_TYPE1","",0x1), - 0x801F4F14:("D_801F4F14","UNK_TYPE1","",0x1), - 0x801F4F18:("D_801F4F18","UNK_TYPE1","",0x1), - 0x801F4F1C:("D_801F4F1C","UNK_TYPE1","",0x1), - 0x801F4F20:("D_801F4F20","UNK_TYPE1","",0x1), - 0x801F4F24:("D_801F4F24","UNK_TYPE1","",0x1), + 0x801F4E7A:("gSkyboxNumStars","s16","",0x2), + 0x801F4E80:("sLightningBolts","UNK_TYPE1","",0x1), + 0x801F4EE0:("sNGameOverLightNode","UNK_TYPE1","",0x1), + 0x801F4EE8:("sNGameOverLightInfo","UNK_TYPE1","",0x1), + 0x801F4EF8:("sSGameOverLightNode","UNK_TYPE1","",0x1), + 0x801F4F00:("sSGameOverLightInfo","UNK_TYPE1","",0x1), + 0x801F4F10:("sSunEnvAlpha","UNK_TYPE1","",0x1), + 0x801F4F14:("sSunColor","UNK_TYPE1","",0x1), + 0x801F4F18:("sSunScale","UNK_TYPE1","",0x1), + 0x801F4F1C:("sSunPrimAlpha","UNK_TYPE1","",0x1), + 0x801F4F20:("sSunDepthTestX","UNK_TYPE1","",0x1), + 0x801F4F24:("sSunDepthTestY","UNK_TYPE1","",0x1), 0x801F4F28:("D_801F4F28","UNK_TYPE1","",0x1), - 0x801F4F2C:("D_801F4F2C","UNK_TYPE1","",0x1), - 0x801F4F2E:("D_801F4F2E","UNK_TYPE1","",0x1), + 0x801F4F2C:("sLightningFlashAlpha","UNK_TYPE1","",0x1), + 0x801F4F2E:("sSandstormScroll","UNK_TYPE1","",0x1), 0x801F4F30:("D_801F4F30","UNK_TYPE1","",0x1), 0x801F4F31:("D_801F4F31","UNK_TYPE1","",0x1), - 0x801F4F32:("D_801F4F32","UNK_TYPE1","",0x1), + 0x801F4F32:("sEnvIsTimeStopped","UNK_TYPE1","",0x1), 0x801F4F33:("D_801F4F33","UNK_TYPE1","",0x1), - 0x801F4F34:("D_801F4F34","UNK_TYPE1","",0x1), - 0x801F4F38:("D_801F4F38","UNK_TYPE1","",0x1), + 0x801F4F34:("sGameOverLightsIntensity","UNK_TYPE1","",0x1), + 0x801F4F38:("sSkyboxStarsDList","UNK_TYPE1","",0x1), 0x801F4F40:("sBeatingHeartsDDPrim","s32","[3]",0x6), 0x801F4F48:("sBeatingHeartsDDEnv","s32","[3]",0x6), 0x801F4F50:("sHeartsDDPrim","s32","[2][3]",0xC), diff --git a/tools/namefixer.py b/tools/namefixer.py index 1fe4ce07f..12ff471aa 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -649,10 +649,64 @@ wordReplace = { "func_800A81F0": "EffectBlure_AddVertex", "func_800A8514": "EffectBlure_AddSpace", "Effect_GetParams": "Effect_GetByIndex", + "func_800FE484": "Environment_StopTime", "func_800FE498": "Environment_StartTime", "func_800FE4A8": "Environment_IsTimeStopped", "func_800F5A8C": "Environment_LerpWeight", + "func_800FD2B4": "Environment_AdjustLights", + "func_800FAAB4": "Environment_ChangeLightSetting", + "func_800FD78C": "Environment_PlayStormNatureAmbience", + "func_800FD858": "Environment_StopStormNatureAmbience", + "func_800F6834": "Environment_EnableUnderwaterLights", + "func_800F9824": "Environment_DrawLensFlare", + "func_800FE658": "Environment_SetTimeJump", + "func_800FE620": "Environment_GetTimeSpeed", + "func_800FD750": "Environment_ForcePlaySequence", + "func_800FE7A8": "Environment_LerpSandstormColors", + "func_800FB758": "Environment_PlaySceneSequence", + "func_800FE4B8": "Environment_GetStormState", + "Kankyo_FadeInGameOverLights": "Environment_FadeInGameOverLights", + "Kankyo_InitGameOverLights": "Environment_InitGameOverLights", + "Kankyo_FadeOutGameOverLights": "Environment_FadeOutGameOverLights", + "func_800F5090": "Environment_GraphCallback", + "func_800F5954": "Environment_SmoothStepToU8", + "func_800F5B10": "Environment_LerpWeightAccelDecel", + "func_800F694C": "Environment_DisableUnderwaterLights", + "func_800F6A40": "Environment_UpdateSkyboxRotY", + "func_800F6AB8": "Environment_UpdateNextDayTime", + "func_800F6B44": "Environment_UpdateTime", + "Kankyo_IsSceneUpsideDown": "Environment_IsSceneUpsideDown", + "func_800F6FF8": "Environment_UpdateLights", + "func_800F8554": "Environment_UpdateSun", + "func_800F8A9C": "Environment_UpdatePostmanEvents", + "func_800F8D84": "Environment_DrawSun", + "func_800FA39C": "Environment_RandCentered", + "func_800FA3C4": "Environment_DrawRainImpl", + "func_800FAC20": "Environment_DrawSkyboxFilters", + "func_800FAF74": "Environment_DrawLightningFlash", + "func_800FB010": "Environment_UpdateLightningStrike", + "func_800FB388": "Environment_DrawLightning", + "func_800FB9B4": "Environment_UpdateTimeBasedSequence", + "func_800FC3DC": "Environment_UpdateRain", + "func_800FD538": "Environment_LerpRGB8", + "get_days_elapsed": "Environment_GetEventDayCount", + "reset_days_elapsed": "Environment_ClearEventDayCount", + "get_current_day": "Environment_GetTotalDays", + "func_800FD768": "Environment_IsForcedSequenceDisabled", + "func_800FD928": "Environment_WarpSongLeave", + "func_800FD980": "Environment_SetupSkyboxStars", + "func_800FDAF8": "Environment_DrawSkyboxStar", + "func_800FDC94": "Environment_DrawSkyboxStarsImpl", + "func_800FE390": "Environment_Draw", + "func_800FE3E0": "Environment_DrawSkyboxStars", + "func_800FE590": "Environment_IsFinalHours", + "func_800FE778": "Environment_GetSandstormColorIndex", + "func_800FE788": "Environment_GetNextSandstormColorIndex", + "func_800FE798": "Environment_GetSandstormLerpScale", + "func_800FE7A8": "Environment_LerpSandstormColors", + "func_800FEAC0": "Environment_JumpForwardInTime", + "func_801A3F54": "Audio_SetCutsceneFlag", "func_800EA0D4": "Cutscene_StartManual", @@ -1031,6 +1085,8 @@ wordReplace = { "gSaveContext.save.horseData": "gSaveContext.save.saveInfo.horseData", "gSaveContext.save.checksum": "gSaveContext.save.saveInfo.checksum", + "gSaveContext.save.daysElapsed": "gSaveContext.save.eventDayCount", + "player->unk_A87": "player->exchangeItemAction", "player->exchangeItemId": "player->exchangeItemAction", "player->leftHandActor": "player->heldActor", @@ -1085,7 +1141,7 @@ wordReplace = { "globalCtx->mf_187FC": "play->billboardMtxF", "globalCtx->projectionMatrix": "play->viewProjectionMtxF", "globalCtx->actorCtx.actorList[": "play->actorCtx.actorLists[", - "globalCtx->envCtx.unk_8C": "play->envCtx.lightSettings", + "globalCtx->envCtx.unk_8C": "play->envCtx.adjLightSettings", "globalCtx->envCtx.unk_E5": "play->envCtx.fillScreen", "globalCtx->envCtx.unk_E6": "play->envCtx.screenFillColor", "globalCtx->envCtx.unk_C3": "play->envCtx.lightSettingOverride", @@ -1161,6 +1217,15 @@ wordReplace = { "play->roomCtx.unk31": "play->roomCtx.status", "play->objectCtx.status": "play->objectCtx.slots", + "play->envCtx.unk_E0": "play->envCtx.lightBlendOverride", + "play->envCtx.unk_E1": "play->envCtx.stormRequest", + "play->envCtx.unk_E2": "play->envCtx.stormState", + "play->envCtx.unk_E3": "play->envCtx.lightningState", + "play->envCtx.unk_E4": "play->envCtx.timeSeqState", + "play->envCtx.unk_F2": "play->envCtx.precipitation", + "play->envCtx.windDir": "play->envCtx.windDirection", + "play->envCtx.sunMoonDisabled": "play->envCtx.sunDisabled", + "actorCtx.unkC": "actorCtx.halfDaysBit", "actorCtx.unk1F4": "actorCtx.playerImpact.type", "actorCtx.unk1F5": "actorCtx.playerImpact.timer", @@ -1198,6 +1263,16 @@ wordReplace = { "D_801BDA9C": "gHorseIsMounted", "D_801BDAA4": "gHorsePlayedEponasSong", + "D_801BDBC8": "gSceneSeqState", + "D_801F4E32": "gCustomLensFlare1On", + "D_801F4E38": "gCustomLensFlare1Pos", + "D_801F4E4E": "gCustomLensFlare2On", + "D_801F4E50": "gCustomLensFlare2Pos", + "D_801F4E7A": "gSkyboxNumStars", + "D_801BDBB8": "gInterruptSongOfStorms", + "D_801BDBB4": "gLightConfigAfterUnderwater", + "D_801F4E68": "gLightningStrike", + # Macros "CUR_EQUIP_VALUE_VOID": "GET_CUR_EQUIP_VALUE", "CUR_UPG_VALUE_VOID": "GET_CUR_UPG_VALUE", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 02e1bf9cd..323a6af9e 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -1220,86 +1220,86 @@ asm/non_matchings/code/z_kanfont/Font_LoadChar.s,Font_LoadChar,0x800F4F40,0x5 asm/non_matchings/code/z_kanfont/Font_LoadCharNES.s,Font_LoadCharNES,0x800F4F54,0x1B asm/non_matchings/code/z_kanfont/Font_LoadMessageBoxEndIcon.s,Font_LoadMessageBoxEndIcon,0x800F4FC0,0x11 asm/non_matchings/code/z_kanfont/Font_LoadOrderedFont.s,Font_LoadOrderedFont,0x800F5004,0x23 -asm/non_matchings/code/z_kankyo/func_800F5090.s,func_800F5090,0x800F5090,0x11 +asm/non_matchings/code/z_kankyo/Environment_GraphCallback.s,Environment_GraphCallback,0x800F5090,0x11 asm/non_matchings/code/z_kankyo/Environment_ZBufValToFixedPoint.s,Environment_ZBufValToFixedPoint,0x800F50D4,0xE asm/non_matchings/code/z_kankyo/Environment_Init.s,Environment_Init,0x800F510C,0x212 -asm/non_matchings/code/z_kankyo/func_800F5954.s,func_800F5954,0x800F5954,0x4E +asm/non_matchings/code/z_kankyo/Environment_SmoothStepToU8.s,Environment_SmoothStepToU8,0x800F5954,0x4E asm/non_matchings/code/z_kankyo/Environment_LerpWeight.s,Environment_LerpWeight,0x800F5A8C,0x21 -asm/non_matchings/code/z_kankyo/func_800F5B10.s,func_800F5B10,0x800F5B10,0x70 +asm/non_matchings/code/z_kankyo/Environment_LerpWeightAccelDecel.s,Environment_LerpWeightAccelDecel,0x800F5B10,0x70 asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s,Environment_UpdateSkybox,0x800F5CD0,0x2D9 -asm/non_matchings/code/z_kankyo/func_800F6834.s,func_800F6834,0x800F6834,0x46 -asm/non_matchings/code/z_kankyo/func_800F694C.s,func_800F694C,0x800F694C,0x2E +asm/non_matchings/code/z_kankyo/Environment_EnableUnderwaterLights.s,Environment_EnableUnderwaterLights,0x800F6834,0x46 +asm/non_matchings/code/z_kankyo/Environment_DisableUnderwaterLights.s,Environment_DisableUnderwaterLights,0x800F694C,0x2E asm/non_matchings/code/z_kankyo/func_800F6A04.s,func_800F6A04,0x800F6A04,0xF -asm/non_matchings/code/z_kankyo/func_800F6A40.s,func_800F6A40,0x800F6A40,0x1E -asm/non_matchings/code/z_kankyo/func_800F6AB8.s,func_800F6AB8,0x800F6AB8,0x23 -asm/non_matchings/code/z_kankyo/func_800F6B44.s,func_800F6B44,0x800F6B44,0x6A +asm/non_matchings/code/z_kankyo/Environment_UpdateSkyboxRotY.s,Environment_UpdateSkyboxRotY,0x800F6A40,0x1E +asm/non_matchings/code/z_kankyo/Environment_UpdateNextDayTime.s,Environment_UpdateNextDayTime,0x800F6AB8,0x23 +asm/non_matchings/code/z_kankyo/Environment_UpdateTime.s,Environment_UpdateTime,0x800F6B44,0x6A asm/non_matchings/code/z_kankyo/func_800F6CEC.s,func_800F6CEC,0x800F6CEC,0x6E asm/non_matchings/code/z_kankyo/func_800F6EA4.s,func_800F6EA4,0x800F6EA4,0x4A -asm/non_matchings/code/z_kankyo/Kankyo_IsSceneUpsideDown.s,Kankyo_IsSceneUpsideDown,0x800F6FCC,0xB -asm/non_matchings/code/z_kankyo/func_800F6FF8.s,func_800F6FF8,0x800F6FF8,0x557 -asm/non_matchings/code/z_kankyo/func_800F8554.s,func_800F8554,0x800F8554,0xDC +asm/non_matchings/code/z_kankyo/Environment_IsSceneUpsideDown.s,Environment_IsSceneUpsideDown,0x800F6FCC,0xB +asm/non_matchings/code/z_kankyo/Environment_UpdateLights.s,Environment_UpdateLights,0x800F6FF8,0x557 +asm/non_matchings/code/z_kankyo/Environment_UpdateSun.s,Environment_UpdateSun,0x800F8554,0xDC asm/non_matchings/code/z_kankyo/func_800F88C4.s,func_800F88C4,0x800F88C4,0x2B asm/non_matchings/code/z_kankyo/func_800F8970.s,func_800F8970,0x800F8970,0x4B -asm/non_matchings/code/z_kankyo/func_800F8A9C.s,func_800F8A9C,0x800F8A9C,0x8E +asm/non_matchings/code/z_kankyo/Environment_UpdatePostmanEvents.s,Environment_UpdatePostmanEvents,0x800F8A9C,0x8E asm/non_matchings/code/z_kankyo/Environment_Update.s,Environment_Update,0x800F8CD4,0x2C -asm/non_matchings/code/z_kankyo/func_800F8D84.s,func_800F8D84,0x800F8D84,0x269 +asm/non_matchings/code/z_kankyo/Environment_DrawSun.s,Environment_DrawSun,0x800F8D84,0x269 asm/non_matchings/code/z_kankyo/Environment_DrawSunLensFlare.s,Environment_DrawSunLensFlare,0x800F9728,0x3F -asm/non_matchings/code/z_kankyo/func_800F9824.s,func_800F9824,0x800F9824,0x2DE -asm/non_matchings/code/z_kankyo/func_800FA39C.s,func_800FA39C,0x800FA39C,0xA -asm/non_matchings/code/z_kankyo/func_800FA3C4.s,func_800FA3C4,0x800FA3C4,0x18E +asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s,Environment_DrawLensFlare,0x800F9824,0x2DE +asm/non_matchings/code/z_kankyo/Environment_RandCentered.s,Environment_RandCentered,0x800FA39C,0xA +asm/non_matchings/code/z_kankyo/Environment_DrawRainImpl.s,Environment_DrawRainImpl,0x800FA3C4,0x18E asm/non_matchings/code/z_kankyo/Environment_DrawRain.s,Environment_DrawRain,0x800FA9FC,0x2E -asm/non_matchings/code/z_kankyo/func_800FAAB4.s,func_800FAAB4,0x800FAAB4,0x5B -asm/non_matchings/code/z_kankyo/func_800FAC20.s,func_800FAC20,0x800FAC20,0xD5 -asm/non_matchings/code/z_kankyo/func_800FAF74.s,func_800FAF74,0x800FAF74,0x27 -asm/non_matchings/code/z_kankyo/func_800FB010.s,func_800FB010,0x800FB010,0xC4 +asm/non_matchings/code/z_kankyo/Environment_ChangeLightSetting.s,Environment_ChangeLightSetting,0x800FAAB4,0x5B +asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxFilters.s,Environment_DrawSkyboxFilters,0x800FAC20,0xD5 +asm/non_matchings/code/z_kankyo/Environment_DrawLightningFlash.s,Environment_DrawLightningFlash,0x800FAF74,0x27 +asm/non_matchings/code/z_kankyo/Environment_UpdateLightningStrike.s,Environment_UpdateLightningStrike,0x800FB010,0xC4 asm/non_matchings/code/z_kankyo/Environment_AddLightningBolts.s,Environment_AddLightningBolts,0x800FB320,0x1A -asm/non_matchings/code/z_kankyo/func_800FB388.s,func_800FB388,0x800FB388,0xF4 -asm/non_matchings/code/z_kankyo/func_800FB758.s,func_800FB758,0x800FB758,0x97 -asm/non_matchings/code/z_kankyo/func_800FB9B4.s,func_800FB9B4,0x800FB9B4,0xC2 +asm/non_matchings/code/z_kankyo/Environment_DrawLightning.s,Environment_DrawLightning,0x800FB388,0xF4 +asm/non_matchings/code/z_kankyo/Environment_PlaySceneSequence.s,Environment_PlaySceneSequence,0x800FB758,0x97 +asm/non_matchings/code/z_kankyo/Environment_UpdateTimeBasedSequence.s,Environment_UpdateTimeBasedSequence,0x800FB9B4,0xC2 asm/non_matchings/code/z_kankyo/Environment_DrawCustomLensFlare.s,Environment_DrawCustomLensFlare,0x800FBCBC,0x4C -asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s,Kankyo_InitGameOverLights,0x800FBDEC,0x54 -asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s,Kankyo_FadeInGameOverLights,0x800FBF3C,0x87 -asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s,Kankyo_FadeOutGameOverLights,0x800FC158,0xA1 -asm/non_matchings/code/z_kankyo/func_800FC3DC.s,func_800FC3DC,0x800FC3DC,0x1A +asm/non_matchings/code/z_kankyo/Environment_InitGameOverLights.s,Environment_InitGameOverLights,0x800FBDEC,0x54 +asm/non_matchings/code/z_kankyo/Environment_FadeInGameOverLights.s,Environment_FadeInGameOverLights,0x800FBF3C,0x87 +asm/non_matchings/code/z_kankyo/Environment_FadeOutGameOverLights.s,Environment_FadeOutGameOverLights,0x800FC158,0xA1 +asm/non_matchings/code/z_kankyo/Environment_UpdateRain.s,Environment_UpdateRain,0x800FC3DC,0x1A asm/non_matchings/code/z_kankyo/Environment_FillScreen.s,Environment_FillScreen,0x800FC444,0x82 asm/non_matchings/code/z_kankyo/Environment_DrawSandstorm.s,Environment_DrawSandstorm,0x800FC64C,0x31A -asm/non_matchings/code/z_kankyo/func_800FD2B4.s,func_800FD2B4,0x800FD2B4,0xA1 -asm/non_matchings/code/z_kankyo/func_800FD538.s,func_800FD538,0x800FD538,0x19 +asm/non_matchings/code/z_kankyo/Environment_AdjustLights.s,Environment_AdjustLights,0x800FD2B4,0xA1 +asm/non_matchings/code/z_kankyo/Environment_LerpRGB8.s,Environment_LerpRGB8,0x800FD538,0x19 asm/non_matchings/code/z_kankyo/Environment_LerpAmbientColor.s,Environment_LerpAmbientColor,0x800FD59C,0x11 asm/non_matchings/code/z_kankyo/Environment_LerpDiffuseColor.s,Environment_LerpDiffuseColor,0x800FD5E0,0x1D asm/non_matchings/code/z_kankyo/Environment_LerpFogColor.s,Environment_LerpFogColor,0x800FD654,0x11 asm/non_matchings/code/z_kankyo/Environment_LerpFog.s,Environment_LerpFog,0x800FD698,0x22 -asm/non_matchings/code/z_kankyo/get_days_elapsed.s,get_days_elapsed,0x800FD720,0x4 -asm/non_matchings/code/z_kankyo/reset_days_elapsed.s,reset_days_elapsed,0x800FD730,0x4 -asm/non_matchings/code/z_kankyo/get_current_day.s,get_current_day,0x800FD740,0x4 -asm/non_matchings/code/z_kankyo/func_800FD750.s,func_800FD750,0x800FD750,0x6 -asm/non_matchings/code/z_kankyo/func_800FD768.s,func_800FD768,0x800FD768,0x9 -asm/non_matchings/code/z_kankyo/func_800FD78C.s,func_800FD78C,0x800FD78C,0x33 -asm/non_matchings/code/z_kankyo/func_800FD858.s,func_800FD858,0x800FD858,0x34 -asm/non_matchings/code/z_kankyo/func_800FD928.s,func_800FD928,0x800FD928,0x16 -asm/non_matchings/code/z_kankyo/func_800FD980.s,func_800FD980,0x800FD980,0x5E -asm/non_matchings/code/z_kankyo/func_800FDAF8.s,func_800FDAF8,0x800FDAF8,0x67 -asm/non_matchings/code/z_kankyo/func_800FDC94.s,func_800FDC94,0x800FDC94,0x1BF -asm/non_matchings/code/z_kankyo/func_800FE390.s,func_800FE390,0x800FE390,0x14 -asm/non_matchings/code/z_kankyo/func_800FE3E0.s,func_800FE3E0,0x800FE3E0,0x29 +asm/non_matchings/code/z_kankyo/Environment_GetEventDayCount.s,Environment_GetEventDayCount,0x800FD720,0x4 +asm/non_matchings/code/z_kankyo/Environment_ClearEventDayCount.s,Environment_ClearEventDayCount,0x800FD730,0x4 +asm/non_matchings/code/z_kankyo/Environment_GetTotalDays.s,Environment_GetTotalDays,0x800FD740,0x4 +asm/non_matchings/code/z_kankyo/Environment_ForcePlaySequence.s,Environment_ForcePlaySequence,0x800FD750,0x6 +asm/non_matchings/code/z_kankyo/Environment_IsForcedSequenceDisabled.s,Environment_IsForcedSequenceDisabled,0x800FD768,0x9 +asm/non_matchings/code/z_kankyo/Environment_PlayStormNatureAmbience.s,Environment_PlayStormNatureAmbience,0x800FD78C,0x33 +asm/non_matchings/code/z_kankyo/Environment_StopStormNatureAmbience.s,Environment_StopStormNatureAmbience,0x800FD858,0x34 +asm/non_matchings/code/z_kankyo/Environment_WarpSongLeave.s,Environment_WarpSongLeave,0x800FD928,0x16 +asm/non_matchings/code/z_kankyo/Environment_SetupSkyboxStars.s,Environment_SetupSkyboxStars,0x800FD980,0x5E +asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxStar.s,Environment_DrawSkyboxStar,0x800FDAF8,0x67 +asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxStarsImpl.s,Environment_DrawSkyboxStarsImpl,0x800FDC94,0x1BF +asm/non_matchings/code/z_kankyo/Environment_Draw.s,Environment_Draw,0x800FE390,0x14 +asm/non_matchings/code/z_kankyo/Environment_DrawSkyboxStars.s,Environment_DrawSkyboxStars,0x800FE3E0,0x29 asm/non_matchings/code/z_kankyo/Environment_StopTime.s,Environment_StopTime,0x800FE484,0x5 asm/non_matchings/code/z_kankyo/Environment_StartTime.s,Environment_StartTime,0x800FE498,0x4 asm/non_matchings/code/z_kankyo/Environment_IsTimeStopped.s,Environment_IsTimeStopped,0x800FE4A8,0x4 -asm/non_matchings/code/z_kankyo/func_800FE4B8.s,func_800FE4B8,0x800FE4B8,0x36 -asm/non_matchings/code/z_kankyo/func_800FE590.s,func_800FE590,0x800FE590,0x10 +asm/non_matchings/code/z_kankyo/Environment_GetStormState.s,Environment_GetStormState,0x800FE4B8,0x36 +asm/non_matchings/code/z_kankyo/Environment_IsFinalHours.s,Environment_IsFinalHours,0x800FE590,0x10 asm/non_matchings/code/z_kankyo/func_800FE5D0.s,func_800FE5D0,0x800FE5D0,0x10 asm/non_matchings/code/z_kankyo/func_800FE610.s,func_800FE610,0x800FE610,0x4 -asm/non_matchings/code/z_kankyo/func_800FE620.s,func_800FE620,0x800FE620,0xE -asm/non_matchings/code/z_kankyo/func_800FE658.s,func_800FE658,0x800FE658,0x28 +asm/non_matchings/code/z_kankyo/Environment_GetTimeSpeed.s,Environment_GetTimeSpeed,0x800FE620,0xE +asm/non_matchings/code/z_kankyo/Environment_SetTimeJump.s,Environment_SetTimeJump,0x800FE658,0x28 asm/non_matchings/code/z_kankyo/func_800FE6F8.s,func_800FE6F8,0x800FE6F8,0x20 -asm/non_matchings/code/z_kankyo/func_800FE778.s,func_800FE778,0x800FE778,0x4 -asm/non_matchings/code/z_kankyo/func_800FE788.s,func_800FE788,0x800FE788,0x4 -asm/non_matchings/code/z_kankyo/func_800FE798.s,func_800FE798,0x800FE798,0x4 -asm/non_matchings/code/z_kankyo/func_800FE7A8.s,func_800FE7A8,0x800FE7A8,0x83 +asm/non_matchings/code/z_kankyo/Environment_GetSandstormColorIndex.s,Environment_GetSandstormColorIndex,0x800FE778,0x4 +asm/non_matchings/code/z_kankyo/Environment_GetNextSandstormColorIndex.s,Environment_GetNextSandstormColorIndex,0x800FE788,0x4 +asm/non_matchings/code/z_kankyo/Environment_GetSandstormLerpScale.s,Environment_GetSandstormLerpScale,0x800FE798,0x4 +asm/non_matchings/code/z_kankyo/Environment_LerpSandstormColors.s,Environment_LerpSandstormColors,0x800FE7A8,0x83 asm/non_matchings/code/z_kankyo/func_800FE9B4.s,func_800FE9B4,0x800FE9B4,0x27 asm/non_matchings/code/z_kankyo/func_800FEA50.s,func_800FEA50,0x800FEA50,0x18 asm/non_matchings/code/z_kankyo/func_800FEAB0.s,func_800FEAB0,0x800FEAB0,0x4 -asm/non_matchings/code/z_kankyo/func_800FEAC0.s,func_800FEAC0,0x800FEAC0,0xD +asm/non_matchings/code/z_kankyo/Environment_JumpForwardInTime.s,Environment_JumpForwardInTime,0x800FEAC0,0xD asm/non_matchings/code/z_kankyo/func_800FEAF4.s,func_800FEAF4,0x800FEAF4,0x67 asm/non_matchings/code/z_lib/Lib_MemCpy.s,Lib_MemCpy,0x800FEC90,0xC asm/non_matchings/code/z_lib/Lib_MemSet.s,Lib_MemSet,0x800FECC0,0x21 @@ -1363,7 +1363,7 @@ asm/non_matchings/code/z_lib/Lib_PlaySfx.s,Lib_PlaySfx,0x801000A4,0xA asm/non_matchings/code/z_lib/Lib_PlaySfx_2.s,Lib_PlaySfx_2,0x801000CC,0xA asm/non_matchings/code/z_lib/Lib_PlaySfx_AtPos.s,Lib_PlaySfx_AtPos,0x801000F4,0xA asm/non_matchings/code/z_lib/Lib_Vec3f_TranslateAndRotateY.s,Lib_Vec3f_TranslateAndRotateY,0x8010011C,0x27 -asm/non_matchings/code/z_lib/Lib_LerpRGB.s,Lib_LerpRGB,0x801001B8,0xA4 +asm/non_matchings/code/z_lib/Color_RGB8_Lerp.s,Color_RGB8_Lerp,0x801001B8,0xA4 asm/non_matchings/code/z_lib/Math_Vec3f_StepTo.s,Math_Vec3f_StepTo,0x80100448,0x2D asm/non_matchings/code/z_lib/Lib_Nop801004FC.s,Lib_Nop801004FC,0x801004FC,0x2 asm/non_matchings/code/z_lib/Lib_SegmentedToVirtual.s,Lib_SegmentedToVirtual,0x80100504,0xE From 45dc74ed06303556f7b3c44646e21e86b76fe0ba Mon Sep 17 00:00:00 2001 From: petrie911 Date: Thu, 5 Oct 2023 07:57:25 -0500 Subject: [PATCH 4/5] all functions decomped --- .../actors/ovl_Boss_Hakugin/z_boss_hakugin.c | 541 +++++++++++++++++- .../actors/ovl_Boss_Hakugin/z_boss_hakugin.h | 4 +- 2 files changed, 523 insertions(+), 22 deletions(-) diff --git a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c index 9957b2bba..f263f8980 100644 --- a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c +++ b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c @@ -52,6 +52,8 @@ void func_80B08550(BossHakugin* this, PlayState* play); void func_80B08848(BossHakugin* this, PlayState* play); void func_80B0A5EC(BossHakugin* this); void func_80B0A87C(BossHakugin* this); +void func_80B09178(BossHakugin* this); +void func_80B09A94(BossHakugin* this, PlayState* play); void BossHakugin_GenShadowTex(u8* tex, BossHakugin* this); void BossHakugin_DrawShadowTex(u8* tex, BossHakugin* this, PlayState* play); @@ -761,12 +763,12 @@ void func_80B06D38(BossHakugin* this, PlayState* play) { } return; } - sp44 = - (EnBom*) Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, - this->unk_0484.elements[1].dim.worldSphere.center.x - (100.0f * Math_SinS(this->actor.shape.rot.y)), - this->unk_0484.elements[1].dim.worldSphere.center.y + 100.0f, - this->unk_0484.elements[1].dim.worldSphere.center.z - (Math_CosS(this->actor.shape.rot.y) * 100.0f), - 0, 0, 0, 0); + sp44 = (EnBom*)Actor_Spawn( + &play->actorCtx, play, ACTOR_EN_BOM, + this->unk_0484.elements[1].dim.worldSphere.center.x - (100.0f * Math_SinS(this->actor.shape.rot.y)), + this->unk_0484.elements[1].dim.worldSphere.center.y + 100.0f, + this->unk_0484.elements[1].dim.worldSphere.center.z - (Math_CosS(this->actor.shape.rot.y) * 100.0f), 0, 0, 0, + 0); if (sp44 != NULL) { temp_a1 = (this->actor.yawTowardsPlayer - this->actor.shape.rot.y) - 0x8000; if (temp_a1 > 0x2000) { @@ -1339,7 +1341,81 @@ void func_80B08C1C(BossHakugin* this) { this->actionFunc = func_80B08CB8; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B08CB8.s") +void func_80B08CB8(BossHakugin* this, PlayState* play) { + s16 temp_a0; + + if (this->unk_01A4 == 0) { + this->unk_0484.base.atFlags |= 1; + } + if (this->unk_0192 == 1) { + if (func_80B0728C(this)) { + Math_Vec3f_Copy(this->unk_3734, &this->unk_0380); + this->unk_01B8 = this->actor.speed + 100.0f; + this->unk_37AC.x = Math_CosS(0xA00) * Math_SinS(this->actor.shape.rot.y); + this->unk_37AC.y = Math_SinS(0xA00); + this->unk_37AC.z = Math_CosS(0xA00) * Math_CosS(this->actor.shape.rot.y); + this->unk_0192 = 2; + this->unk_01C8 = 0.0f; + Audio_PlaySfx_AtPos(&this->unk_0458, 0x3852U); + this->unk_37B8.base.atFlags |= 1; + } + } else { + Math_ScaledStepToS(&this->unk_01A6, 0, 0x100); + } + if (func_80B0791C(this, play)) { + func_80B09A94(this, play); + } else { + if (this->unk_019A >= 0x38) { + this->unk_019A = 0; + this->unk_019C = 0x28; + this->unk_01C4 = 27.0f; + } + if ((this->unk_019C == 0x28) && + (Math_SmoothStepToF(&this->actor.speed, this->unk_01C4, 0.15f, 1.0f, 0.1f) < 0.05f)) { + this->unk_019C -= 1; + } else { + if (this->unk_019C != 0x28) { + this->unk_019C--; + if (this->unk_019C == 0) { + if (this->actor.xzDistToPlayer > 1500.0f) { + this->unk_01C4 = 12.5f; + } else if (this->unk_044C.z > 0.0f) { + this->unk_01C4 = 21.0f; + } else { + this->unk_01C4 = 14.5f; + } + this->unk_01C4 += (0x1E - this->actor.colChkInfo.health) * (1.0f / 30.0f); + this->unk_019C = 0x28; + } + } + } + this->skelAnime.playSpeed = (this->actor.speed * 0.03125f) + 0.5f; + SkelAnime_Update(&this->skelAnime); + func_80B07450(this, play); + if ((this->unk_01BC < (this->unk_01C0 * 0.5f)) || (this->unk_01BC < 89.100006f)) { + this->unk_019E = (Rand_ZeroFloat(0.4f) + 0.6f) * 1536.0f; + } else if ((this->unk_01C0 < (this->unk_01BC * 0.5f)) || (this->unk_01C0 < 89.100006f)) { + this->unk_019E = -((Rand_ZeroFloat(0.4f) + 0.6f) * 1536.0f); + } else if ((this->unk_01A2 == this->unk_019E) && (Rand_ZeroOne() < 0.005f)) { + if (this->unk_019E > 0) { + this->unk_019E = -((Rand_ZeroFloat(0.4f) + 0.6f) * 1536.0f); + } else { + this->unk_019E = ((Rand_ZeroFloat(0.4f) + 0.6f) * 1536.0f); + } + } + Math_SmoothStepToS(&this->unk_01A2, this->unk_019E, 5, 0x800, 0x10); + Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_01A0 + this->unk_01A2, 5, 0x800, 0x10); + + temp_a0 = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; + this->actor.world.rot.y = this->actor.shape.rot.y; + if ((this->unk_018C != 1) && (this->actor.xzDistToPlayer > 750.0f) && (this->actor.xzDistToPlayer < 1650.0f) && + (ABS_ALT(temp_a0) < 0x3000)) { + func_80B09178(this); + } + } +} + +// #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B08CB8.s") void func_80B09178(BossHakugin* this) { Animation_Change(&this->skelAnime, &gGohtRunAnim, 1.5f, 0.0f, 0.0f, 0, -3.0f); @@ -1393,9 +1469,9 @@ void func_80B093C0(BossHakugin* this) { if (this->unk_0192 == 1) { Math_Vec3f_Copy(&this->unk_3734[0], &this->unk_0380); this->unk_01B8 = this->actor.speed + 100.0f; - this->unk_37AC = Math_CosS(0xA00) * Math_SinS(this->actor.shape.rot.y); - this->unk_37B0 = Math_SinS(0xA00); - this->unk_37B4 = Math_CosS(0xA00) * Math_CosS(this->actor.shape.rot.y); + this->unk_37AC.x = Math_CosS(0xA00) * Math_SinS(this->actor.shape.rot.y); + this->unk_37AC.y = Math_SinS(0xA00); + this->unk_37AC.z = Math_CosS(0xA00) * Math_CosS(this->actor.shape.rot.y); this->unk_0192 = 2; this->unk_01C8 = 0.0f; Audio_PlaySfx_AtPos(&this->unk_0458, NA_SE_EN_COMMON_E_BALL_THR); @@ -1406,7 +1482,61 @@ void func_80B093C0(BossHakugin* this) { this->actionFunc = func_80B094E0; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B094E0.s") +void func_80B094E0(BossHakugin* this, PlayState* play) { + CollisionPoly* spBC; + Vec3f spB0; + Vec3f spA4; + s32 i; + s32 sp9C; + + Actor_PlaySfx_Flagged(&this->actor, 0x301BU); + if (SkelAnime_Update(&this->skelAnime)) { + if (this->unk_0195 == 0) { + this->unk_0195 = 1; + func_80B05A64(this, play, 0x4268, 7, 0xA); + } + + if (this->actor.speed > 5.0f) { + + for (i = 0; i < 2; i++) { + s16 temp1 = this->actor.shape.rot.y + (u32)(0xF000 * i - 0x7800); // TODO: seems fake + s16 temp2; + f32 temp_fs1; + + spB0.x = 2.0f * Math_SinS(temp1); + spB0.y = 1.0f; + spB0.z = 2.0f * Math_CosS(temp1); + + temp2 = this->actor.shape.rot.y + (u32)(0x8000 * i - 0x4000); + temp_fs1 = Rand_ZeroFloat(190.0f); + spA4.x = this->actor.world.pos.x + (80.0f * Math_SinS(temp2)) + + (Math_SinS(this->actor.shape.rot.y) * temp_fs1); + spA4.z = this->actor.world.pos.z + (80.0f * Math_CosS(temp2)) + + (Math_CosS(this->actor.shape.rot.y) * temp_fs1); + spA4.y = this->actor.world.pos.y + 300.0f; + spA4.y = BgCheck_EntityRaycastFloor5_2(play, &play->colCtx, &spBC, &sp9C, &this->actor, &spA4) + 10.0f; + func_800B12F0(play, &spA4, &spB0, &gZeroVec3f, Rand_S16Offset(0x2EE, 0x64), 0xA, 0x1E); + } + } + } + Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_01A0, 5, 0x800, 0x10); + this->actor.world.rot.y = this->actor.shape.rot.y; + if (this->actor.speed < 0.1f) { + this->unk_019C--; + this->actor.world.pos.x = this->actor.home.pos.x + Rand_CenteredFloat(5.0f); + this->actor.world.pos.y = this->actor.home.pos.y + Rand_CenteredFloat(5.0f); + this->actor.world.pos.z = this->actor.home.pos.z + Rand_CenteredFloat(5.0f); + if (this->unk_019C == 0) { + this->unk_0484.base.acFlags |= 4; + Math_Vec3f_Copy(&this->actor.world.pos, &this->actor.home.pos); + func_80B08C1C(this); + this->unk_01A4 = 0x14; + } + } else if (Math_StepToF(&this->actor.speed, 5.0f, 0.3f)) { + Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); + this->actor.speed = 0.0f; + } +} void func_80B09840(BossHakugin* this, PlayState* play) { Player* player = GET_PLAYER(play); @@ -1748,13 +1878,204 @@ void func_80B0A87C(BossHakugin* this) { this->actionFunc = func_80B0A8C4; } +#ifdef NON_MATCHING +// non-matchings seem to be caused by accesses to D_80B0EB38 +typedef struct { + s32 unk_00; + s32 unk_04; +} BossHakuginUnkStruct_80B0A8C4; + +extern BossHakuginUnkStruct_80B0A8C4 D_80B0EB38[5]; +extern s32 D_80B0EB24[5]; + +void func_80B0A8C4(BossHakugin* this, PlayState* play) { + EnBom* bomb; + Vec3s* test; + Camera* camera; + Vec3f eyeTarget; + s16 temp_s0; + s32 sp60; + s32 i; + s32 pad; + + camera = Play_GetCamera(play, this->unk_01AC); + SkelAnime_Update(&this->skelAnime); + sp60 = this->unk_019C / 6; + temp_s0 = this->actor.shape.rot.y + (0x6000 * this->unk_01B4); + eyeTarget.x = (Math_SinS(temp_s0) * 500.0f) + this->actor.world.pos.x; + eyeTarget.y = this->actor.world.pos.y + 250.0f; + eyeTarget.z = (Math_CosS(temp_s0) * 500.0f) + this->actor.world.pos.z; + Math_Vec3f_StepTo(&this->unk_038C, &eyeTarget, 25.0f); + Play_SetCameraAtEye(play, this->unk_01AC, &camera->at, &this->unk_038C); + if (sp60 == 30) { + Camera* camera2 = Play_GetCamera(play, 0); + + Play_DisableMotionBlur(); + CutsceneManager_Stop(this->actor.csId); + Play_SetCameraAtEye(play, this->unk_01AC, &camera2->at, &camera2->eye); + func_80B05EE0(this, play); + func_80B0DFA8(this); + this->actor.draw = func_80B0E5A4; + this->actor.update = func_80B0E548; + } else if (((this->unk_019C % 6) == 0) && (sp60 < 6)) { + test = &this->unk_0484.elements[D_80B0EB38[sp60].unk_00].dim.worldSphere.center; + bomb = (EnBom*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, test->x, test->y, test->z, 1, 0, 0, 0); + if (bomb != NULL) { + bomb->timer = 0; + } + this->unk_01B0 &= ~D_80B0EB38[sp60].unk_04; + if (sp60 == 5) { + AudioSeq_QueueSeqCmd(0x8021U); + } + } + + if (((this->unk_019C + 3) % 6) == 0) { + sp60 = (this->unk_019C + 3) / 6 - 1; + if (sp60 < 4) { + for (i = D_80B0EB24[sp60]; i < D_80B0EB24[sp60 + 1]; i++) { + this->unk_09F8[i].unk_C.y = Rand_ZeroFloat(5.0f) + 5.0f; + } + } + if (sp60 < 6) { + if (sp60 & 1) { + Audio_PlaySfx_AtPos(&this->unk_0458, 0x393EU); + } else { + Audio_PlaySfx_AtPos(&this->unk_0458, 0x393DU); + } + } + if (1) {} // TODO: probably fake + } + + this->unk_019C++; +} +#else #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0A8C4.s") +#endif -void func_80B0AC30(BossHakugin* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0AC30.s") +void func_80B0AC30(BossHakugin* this, PlayState* play) { + Player* player = GET_PLAYER(play); -s32 func_80B0ADFC(BossHakugin* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0ADFC.s") + if ((this->unk_0484.base.atFlags & 2) && + ((this->actionFunc == func_80B091D8) || !(player->stateFlags3 & 0x80000))) { + if ((this->actionFunc == func_80B091D8) && (this->unk_0484.elements->info.toucherFlags & 2) && + !(this->unk_0484.base.atFlags & 4) && (play->grabPlayer(play, player))) { + func_80B09840(this, play); + } else if (player->stateFlags3 & 0x1000) { + player->unk_B08 = player->linearVelocity = -5.0f; + player->unk_B0C += player->unk_B08 * 0.05f; + player->actor.velocity.y = 10.0f; + player->unk_B8C = 4; + player->actor.shape.rot.y = player->actor.home.rot.y = player->currentYaw = player->actor.world.rot.y; + + } else if (!(this->unk_0484.base.atFlags & 4)) { + s16 var_a3 = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; + + if (var_a3 > 0) { + var_a3 = this->actor.shape.rot.y + (s32)(var_a3 / 2.0f) + 0x4000; + } else { + var_a3 = this->actor.shape.rot.y + (s32)(var_a3 / 2.0f) - 0x4000; + } + func_800B8D50(play, &this->actor, 5.0f, var_a3, 6.0f, 0U); + } + } +} + +s32 func_80B0ADFC(BossHakugin* this, PlayState* play) { + if (this->unk_0484.base.acFlags & 2) { + s32 i; + + for (i = 0; i < 19; i++) { + if (this->unk_0484.elements[i].info.bumperFlags & 2) { + break; + } + } + if (i == 19) { + return 0; + } + if ((this->unk_0196 == 0xA) && (this->unk_0484.elements[i].info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + return 0; + } + func_80B07B88(this, play); + if (this->actionFunc == func_80B094E0) { + Actor_SetColorFilter(&this->actor, 0x4000U, 0xFFU, 0U, (u16)0xF); + func_80B07BFC(this, play, i); + if (Actor_ApplyDamage(&this->actor) == 0) { + Enemy_StartFinishingBlow(play, &this->actor); + Actor_PlaySfx(&this->actor, 0x3950U); + func_80B09E84(this); + } else { + Actor_PlaySfx(&this->actor, 0x3951U); + } + this->unk_01A4 = 0xF; + return 1; + } + if (((this->actor.colChkInfo.damageEffect == 0xF) || (this->actor.colChkInfo.damageEffect == 0xE) || + (this->actor.colChkInfo.damageEffect == 2) || (this->actor.colChkInfo.damageEffect == 3) || + (this->actor.colChkInfo.damageEffect == 4) || (this->actor.colChkInfo.damageEffect == 0xD) || + (this->actor.colChkInfo.damageEffect == 0xC)) && + ((this->actionFunc == func_80B08CB8) || (this->actionFunc == func_80B09E20) || + (this->actionFunc == func_80B09C78) || (this->actionFunc == func_80B091D8))) { + Player* player = GET_PLAYER(play); + + if (this->actor.colChkInfo.damageEffect == 0xF) { + player->pushedSpeed = 15.0f; + if ((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y) > 0) { + player->pushedYaw = this->actor.shape.rot.y + 0x4000; + } else { + player->pushedYaw = this->actor.shape.rot.y - 0x4000; + } + } + this->unk_01A4 = 0xF; + Actor_SetColorFilter(&this->actor, 0x4000U, 0xFF, 0, 0xF); + this->unk_019A += 0x23; + func_80B07BFC(this, play, i); + this->actor.colChkInfo.damage = this->unk_0484.elements[i].info.acHitInfo->toucher.damage; + if (Actor_ApplyDamage(&this->actor) == 0) { + Enemy_StartFinishingBlow(play, &this->actor); + Actor_PlaySfx(&this->actor, 0x3950U); + func_80B09E84(this); + } else { + if ((this->actor.colChkInfo.damageEffect == 0xC) || + ((this->actor.colChkInfo.damageEffect == 0xF) && (this->actionFunc != func_80B091D8) && + ((this->unk_0484.elements[0].info.bumperFlags & 2) || + (this->unk_0484.elements[1].info.bumperFlags & 2) || + (this->unk_0484.elements[2].info.bumperFlags & 2) || + (this->unk_0484.elements[3].info.bumperFlags & 2) || + (this->unk_0484.elements[6].info.bumperFlags & 2) || + (this->unk_0484.elements[9].info.bumperFlags & 2) || + (this->unk_0484.elements[13].info.bumperFlags & 2) || + (this->unk_0484.elements[17].info.bumperFlags & 2) || + (this->unk_0484.elements[18].info.bumperFlags & 2)))) { + func_80B093C0(this); + } else if ((this->unk_0192 == 0) && (this->unk_01AA == 0) && (this->actionFunc == func_80B08CB8) && + (this->actor.colChkInfo.damageEffect == 0xF)) { + this->unk_01A8 = 5; + this->unk_0192 = 1; + } + Actor_PlaySfx(&this->actor, 0x3951U); + } + return 1; + } else { + s32 j; + + this->unk_01A4 = 0x14; + for (j = 0; j < 19; j++) { + Vec3f sp40; + ColliderInfo* hurtbox = &this->unk_0484.elements[j].info; + + if ((hurtbox->bumperFlags & 2) && (hurtbox->acHitInfo != NULL) && + !(hurtbox->acHitInfo->toucherFlags & 0x18)) { + Math_Vec3s_ToVec3f(&sp40, &hurtbox->bumper.hitPos); + EffectSsHitmark_SpawnFixedScale(play, 3, &sp40); + CollisionCheck_SpawnShieldParticlesMetalSound(play, &sp40, &this->actor.projectedPos); + break; + } + } + } + } + + return 0; +} void func_80B0B238(BossHakugin* this) { BossHakuginEffect* temp_s0; @@ -1843,8 +2164,98 @@ void func_80B0B548(BossHakugin* this, PlayState* play) { } } -void func_80B0B660(BossHakugin* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0B660.s") +void func_80B0B660(BossHakugin* this, PlayState* play) { + Player* spA4 = GET_PLAYER(play); + CollisionPoly* spA0 = NULL; + Vec3f sp94; + Vec3f sp88; + Vec3f sp7C; + Vec3f sp70; + Vec3f* sp6C; + Vec3f* var_s0; + s32 var_s0_2; + f32 sp60; + s32 sp5C; + s32 sp58 = 0; + s16 temp_v1; + + sp6C = this->unk_3734; + + if (this->unk_0192 == 2) { + if (Math_StepToF(&this->unk_01B8, 50.0f, 3.5f)) { + this->unk_0192 = 3; + } + } else if (this->unk_0192 == 3) { + sp60 = BINANG_TO_RAD(Math3D_Vec3fDistSq(sp6C, &spA4->actor.world.pos) * (1.0f / SQ(120.0f)) * 32.0f); + if (sp60 > M_PI / 4.0f) { + sp60 = M_PI / 4.0f; + } + Math_Vec3f_Diff(&spA4->actor.world.pos, sp6C, &sp70); + if (func_80B0573C(&sp70)) { + func_80B057A4(&this->unk_37AC, &sp70, sp60); + } + } else if (this->unk_0192 != 4) { + return; + } + Audio_PlaySfx_AtPos(&this->unk_0464, 0x304CU); + if (this->unk_01AA < 0xA) { + this->unk_01AA++; + } + if ((this->unk_0192 == 4) && (this->unk_01AA == 9)) { + this->unk_0192 = 0; + this->unk_01AA = 0; + } else { + var_s0 = &this->unk_3734[9]; + while (var_s0 != sp6C) { + Math_Vec3f_Copy(var_s0, var_s0 - 1); + var_s0--; + } + this->unk_0198 += (s16)(0x4000 + (Rand_Next() >> 0x12)); + if (this->unk_0192 != 4) { + if (this->unk_37B8.base.atFlags & 2) { + this->unk_0192 = 4; + this->unk_01AA = 0; + this->unk_37B8.base.atFlags &= ~2; + this->unk_37B8.base.atFlags &= ~1; + sp58 = 1; + Audio_PlaySfx_AtPos(&this->unk_0464, 0x384EU); + } + sp88.x = sp6C->x + (this->unk_01B8 * this->unk_37AC.x); + sp88.y = sp6C->y + (this->unk_01B8 * this->unk_37AC.y); + sp88.z = sp6C->z + (this->unk_01B8 * this->unk_37AC.z); + if (BgCheck_EntityLineTest1(&play->colCtx, sp6C, &sp88, &sp94, &spA0, 1, 1, 1, 1, &sp5C)) { + var_s0_2 = 0; + Math_Vec3f_Copy(sp6C, &sp94); + + if ((spA0->normal.y >= -0x6664) && (spA0->normal.y < 0x3FFF)) { + temp_v1 = + Math_Vec3f_Yaw(sp6C, &spA4->actor.world.pos) - + Math_Atan2S_XY(spA0->normal.z * COLPOLY_NORMAL_FRAC, spA0->normal.x * COLPOLY_NORMAL_FRAC); + var_s0_2 = (ABS_ALT(temp_v1) > 0x4000) ? 1 : 0LL; // TODO: make less fake + } + if ((this->unk_0192 == 3) && (var_s0_2 || (spA0->normal.y >= 0x4000))) { + this->unk_0192 = 4; + this->unk_01AA = 0; + if (sp58 == 0) { + Audio_PlaySfx_AtPos(&this->unk_0464, 0x384EU); + } + } else { + sp7C.x = spA0->normal.x * COLPOLY_NORMAL_FRAC; + sp7C.y = spA0->normal.y * COLPOLY_NORMAL_FRAC; + sp7C.z = spA0->normal.z * COLPOLY_NORMAL_FRAC; + func_80179F64(&this->unk_37AC, &sp7C, &sp70); + Math_Vec3f_Copy(&this->unk_37AC, &sp70); + } + } else { + Math_Vec3f_Copy(sp6C, &sp88); + } + this->unk_37B8.dim.worldSphere.center.x = sp6C->x; + this->unk_37B8.dim.worldSphere.center.y = sp6C->y; + this->unk_37B8.dim.worldSphere.center.z = sp6C->z; + CollisionCheck_SetAT(play, &play->colChkCtx, &this->unk_37B8.base); + } + } +} void BossHakugin_Update(Actor* thisx, PlayState* play) { s32 pad; @@ -2447,9 +2858,101 @@ void BossHakugin_DrawShadowTex(u8* tex, BossHakugin* this, PlayState* play) { CLOSE_DISPS(gfxCtx); } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0D9CC.s") +#ifdef NON_MATCHING +void func_80B0D9CC(BossHakugin* this) { + s32 var_s3; + Vec3f spC8; + s32 var_s1 = 0xF; + BossHakuginEffect* var_s0 = this->unk_09F8; + s32 var_v1; + s32 temp_a0; + f32 spB4 = Math_SinS(this->actor.shape.rot.y) * 65.0f; + f32 spB0 = Math_CosS(this->actor.shape.rot.y) * 65.0f; + f32 spAC = Math_SinS(this->actor.shape.rot.z) * 65.0f; + f32 temp1; + f32 temp2; + f32 temp3; + f32 temp4; + f32 temp5; + f32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0DFA8.s") + for (var_s3 = 4; var_s3 > 0; var_s3--, var_s1 -= 4) { + spC8.x = this->actor.world.pos.x - (var_s3 * spB4) + (2.3076923f * spB4); + spC8.y = this->actor.world.pos.y + (85.0f * (4 - var_s3)) + 20.0f; + spC8.z = this->actor.world.pos.z - (var_s3 * spB0) + (2.3076923f * spB0); + + var_s0->unk_24 = ((var_s3 * 4.5f) + 22.0f) * 0.001f; + Math_Vec3f_Copy(&var_s0->unk_0, &spC8); + + temp_a0 = var_s1 >> 1; + if (temp_a0 == 0) { + break; + } + var_s0++; + + temp1 = (var_s3 / (f32)temp_a0); + temp2 = (spB0 + spB4) * temp1; + temp3 = (spB0 - spB4) * temp1; + + for (var_v1 = 0; var_v1 < temp_a0; var_v1++, var_s0++) { + var_s0->unk_0.x = spC8.x + temp2 * (temp_a0 - var_v1); + var_s0->unk_0.y = spC8.y + var_s3 * spAC; + var_s0->unk_0.z = spC8.z + temp3 * (temp_a0 - var_v1); + var_s0->unk_24 = ((var_s3 * 4.5f) + 22.0f) * 0.001f; + } + + temp4 = (spB4 - spB0) * temp1; + temp5 = (spB0 + spB4) * temp1; + + for (var_v1 = 0; var_v1 < temp_a0; var_v1++, var_s0++) { + var_s0->unk_0.x = spC8.x + temp4 * (temp_a0 - var_v1); + var_s0->unk_0.y = spC8.y - var_s3 * spAC; + var_s0->unk_0.z = spC8.z + temp5 * (temp_a0 - var_v1); + var_s0->unk_24 = ((var_s3 * 4.5f) + 22.0f) * 0.001f; + } + } + + for (var_s3 = 0; var_s3 < 36; var_s3++) { + var_s0 = &this->unk_09F8[var_s3]; + + var_s0->unk_24 += Rand_ZeroFloat(5.0f) * 0.001f; + var_s0->unk_1C.x = (s32)Rand_Next() >> 0x10; + var_s0->unk_1C.y = (s32)Rand_Next() >> 0x10; + var_s0->unk_1C.z = (s32)Rand_Next() >> 0x10; + var_s0->unk_C.x = var_s0->unk_0.y; + var_s0->unk_C.y = 0.0f; + var_s0->unk_0.y += 850.0f; + } +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B0D9CC.s") +#endif + +void func_80B0DFA8(BossHakugin* this) { + s32 i; + BossHakuginEffect* effect; + ColliderJntSphElement* element; + + for (i = 0; i < 18; i++) { + effect = &this->unk_09F8[i << 1]; + element = &this->unk_0484.elements[i]; + + element->dim.worldSphere.center.x = effect->unk_0.x; + element->dim.worldSphere.center.y = effect->unk_0.y; + element->dim.worldSphere.center.z = effect->unk_0.z; + element->dim.worldSphere.radius = effect->unk_24 * 3000.0f; + element->info.bumper.dmgFlags = 0xF3CFBBFF; + element->info.bumperFlags &= ~0x40; + + element->info.elemType = 0; + } + for (; i < 19; i++) { + this->unk_0484.elements[i].info.bumperFlags &= ~1; + this->unk_0484.elements[i].info.ocElemFlags &= ~1; + } + + this->unk_0484.base.colType = 0xC; +} void func_80B0E548(Actor* thisx, PlayState* play2) { BossHakugin* this = THIS; diff --git a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h index 6662f11e0..bc03f14ca 100644 --- a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h +++ b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.h @@ -98,9 +98,7 @@ typedef struct BossHakugin { /* 0x2618 */ BossHakuginUnkStruct_2618 unk_2618[20]; /* 0x3158 */ BossHakuginFhgFlashUnkStruct unk_3158[5][15]; /* 0x3734 */ Vec3f unk_3734[10]; - /* 0x37AC */ f32 unk_37AC; - /* 0x37B0 */ f32 unk_37B0; - /* 0x37B4 */ f32 unk_37B4; + /* 0x37AC */ Vec3f unk_37AC; /* 0x37B8 */ ColliderSphere unk_37B8; } BossHakugin; // size = 0x3810 From a9897faf0d438772b746d8bb8ad0932075e55455 Mon Sep 17 00:00:00 2001 From: petrie911 Date: Thu, 5 Oct 2023 07:59:49 -0500 Subject: [PATCH 5/5] all functions decomped --- src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c index f263f8980..7ff79abf5 100644 --- a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c +++ b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c @@ -1415,8 +1415,6 @@ void func_80B08CB8(BossHakugin* this, PlayState* play) { } } -// #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Boss_Hakugin/func_80B08CB8.s") - void func_80B09178(BossHakugin* this) { Animation_Change(&this->skelAnime, &gGohtRunAnim, 1.5f, 0.0f, 0.0f, 0, -3.0f); this->actionFunc = func_80B091D8;