From b3b489268bdd1e8e95cd4eeef2ffbbb91463e816 Mon Sep 17 00:00:00 2001 From: tom-overton Date: Sat, 6 Nov 2021 00:13:02 -0700 Subject: [PATCH] Little more documentation --- .../actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c | 100 ++++++++++-------- tools/disasm/functions.txt | 16 +-- 2 files changed, 63 insertions(+), 53 deletions(-) diff --git a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c index 5179d81099..a4d985f456 100644 --- a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c +++ b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c @@ -32,10 +32,10 @@ void ObjTokeidai_RaiseTower(ObjTokeidai* this, GlobalContext* globalCtx); void ObjTokeidai_TowerTransformationStart(ObjTokeidai* this, GlobalContext* globalCtx); void ObjTokeidai_DoNothing(ObjTokeidai* this, GlobalContext* globalCtx); void ObjTokeidai_StaircaseIntoTowerIdle(ObjTokeidai* this, GlobalContext* globalCtx); -void func_80AB3ED0(ObjTokeidai* this, GlobalContext* globalCtx); -void func_80AB4040(ObjTokeidai* this, GlobalContext* globalCtx); -void func_80AB4080(ObjTokeidai* this, GlobalContext* globalCtx); -void func_80AB4160(ObjTokeidai* this, GlobalContext* globalCtx); +void ObjTokeidai_TowerClockIdle(ObjTokeidai* this, GlobalContext* globalCtx); +void ObjTokeidai_SmallClockIdle(ObjTokeidai* this, GlobalContext* globalCtx); +void ObjTokeidai_TowerGearIdle(ObjTokeidai* this, GlobalContext* globalCtx); +void ObjTokeidai_TowerTopIdle(ObjTokeidai* this, GlobalContext* globalCtx); void ObjTokeidai_SetupTowerTransformationStart(ObjTokeidai* this); void ObjTokeidai_DrawClock(Actor* thisx, GlobalContext* globalCtx); void ObjTokeidai_DrawTowerTop(Actor* thisx, GlobalContext* globalCtx); @@ -43,8 +43,11 @@ void ObjTokeidai_DrawTowerGear(Actor* thisx, GlobalContext* globalCtx); // Silly overload defines that I'm not sure I should even be doing #define settleTimer clockFaceAdditionalRotation +#define transformationRotationalVelocity clockFaceAdditionalRotation +#define transformationWaitTimer clockFaceAdditionalRotation #define unk_154 clockFaceAdditionalRotation #define settleAmount clockFaceRotationTimer +#define transformationRotationalAcceleration clockFaceRotationTimer #define unk_156 clockFaceRotationTimer #define unk_15C sunMoonDiskAdditionalRotation #define lightIntensity clockHour @@ -126,7 +129,7 @@ void ObjTokeidai_InitTowerGear(ObjTokeidai* this, GlobalContext* globalCtx) { this->actor.shape.yOffset = 1500.0f; gSaveContext.weekEventReg[8] |= 0x40; } else { - this->actionFunc = func_80AB4080; + this->actionFunc = ObjTokeidai_TowerGearIdle; } } @@ -148,7 +151,7 @@ void ObjTokeidai_InitTowerClock(ObjTokeidai* this, GlobalContext* globalCtx) { this->actor.home.pos.z += 13.0f; this->actionFunc = ObjTokeidai_TransformedClockIdle; } else { - this->actionFunc = func_80AB3ED0; + this->actionFunc = ObjTokeidai_TowerClockIdle; } } @@ -191,7 +194,7 @@ void ObjTokeidai_InitTowerTop(ObjTokeidai* this, GlobalContext* globalCtx) { this->actor.shape.rot.x = -0x4000; this->actionFunc = ObjTokeidai_TransformedTopIdle; } else { - this->actionFunc = func_80AB4160; + this->actionFunc = ObjTokeidai_TowerTopIdle; } } @@ -234,13 +237,13 @@ void ObjTokeidai_Init(Actor* thisx, GlobalContext* globalCtx) { Actor_SetScale(&this->actor, 0.02f); this->actor.draw = ObjTokeidai_DrawClock; ObjTokeidai_InitClock(this); - this->actionFunc = func_80AB4040; + this->actionFunc = ObjTokeidai_SmallClockIdle; break; case OBJ_TOKEIDAI_TYPE_VERY_SMALL_CLOCK: Actor_SetScale(&this->actor, 0.01f); this->actor.draw = ObjTokeidai_DrawClock; ObjTokeidai_InitClock(this); - this->actionFunc = func_80AB4040; + this->actionFunc = ObjTokeidai_SmallClockIdle; break; case OBJ_TOKEIDAI_TYPE_TOWER_TOP_TERMINA_FIELD: Actor_SetScale(&this->actor, 0.15f); @@ -260,7 +263,7 @@ void ObjTokeidai_Init(Actor* thisx, GlobalContext* globalCtx) { void ObjTokeidai_Destroy(Actor* thisx, GlobalContext* globalCtx) { } -void func_80AB3010(ObjTokeidai* this, s32 playSound) { +void ObjTokeidai_HandleMinute(ObjTokeidai* this, s32 playSound) { s32 currentMinute; currentMinute = OBJ_TOKEIDAI_GET_CURRENT_MINUTE(this); @@ -280,7 +283,9 @@ void func_80AB3010(ObjTokeidai* this, s32 playSound) { } } this->outerRingOrGearRotationTimer++; - if ((currentMinute == 15 && this->outerRingOrGearRotation < 0) || (currentMinute != 15 && this->outerRingOrGearRotation > OBJ_TOKEIDAI_GET_OUTER_RING_OR_GEAR_ROTATION(currentMinute))) { + if ((currentMinute == 15 && this->outerRingOrGearRotation < 0) || + (currentMinute != 15 && + this->outerRingOrGearRotation > OBJ_TOKEIDAI_GET_OUTER_RING_OR_GEAR_ROTATION(currentMinute))) { this->outerRingOrGearRotation = OBJ_TOKEIDAI_GET_OUTER_RING_OR_GEAR_ROTATION(currentMinute); this->clockMinute = currentMinute; this->outerRingOrGearAdditionalRotation = 0x5A; @@ -431,7 +436,8 @@ void ObjTokeidai_TowerTransformationFinish(ObjTokeidai* this, GlobalContext* glo this->clockFaceZTranslation -= 0xA; } else { type = OBJ_TOKEIDAI_TYPE(&this->actor); - if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { + if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || + (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { ObjTokeidai_TowerTransformationEndCutscene(this, globalCtx); } else { this->actionFunc = ObjTokeidai_DoNothing; @@ -443,21 +449,21 @@ void ObjTokeidai_TowerTransformationFinish(ObjTokeidai* this, GlobalContext* glo } void ObjTokeidai_TowerTransformationWait(ObjTokeidai* this, GlobalContext* globalCtx) { - if (this->unk_154 > 0) { - this->unk_154--; + if (this->transformationWaitTimer > 0) { + this->transformationWaitTimer--; } else { this->actionFunc = ObjTokeidai_TowerTransformationFinish; - this->unk_154 = 0; + this->transformationWaitTimer = 0; } } void ObjTokeidai_TowerTopFall(ObjTokeidai* this, GlobalContext* globalCtx) { - this->xRotation += this->unk_154; + this->xRotation += this->transformationRotationalVelocity; if (this->xRotation < 0x4000) { - this->unk_154 += this->unk_156; + this->transformationRotationalVelocity += this->transformationRotationalAcceleration; return; } - this->unk_156 = 0x14; + this->transformationRotationalAcceleration = 0x14; this->xRotation = 0x4000; switch (this->reboundCount) { case 0: @@ -471,13 +477,13 @@ void ObjTokeidai_TowerTopFall(ObjTokeidai* this, GlobalContext* globalCtx) { break; } this->reboundCount += 1; - if (this->unk_154 >= 0x191) { - this->unk_154 = -0xC8; - } else if (this->unk_154 >= 0x33) { - this->unk_154 = -(this->unk_154 >> 1); + if (this->transformationRotationalVelocity >= 0x191) { + this->transformationRotationalVelocity = -0xC8; + } else if (this->transformationRotationalVelocity >= 0x33) { + this->transformationRotationalVelocity = -(this->transformationRotationalVelocity >> 1); } else { this->actionFunc = ObjTokeidai_TowerTransformationWait; - this->unk_154 = 0xA; + this->transformationWaitTimer = 0xA; } } @@ -496,13 +502,14 @@ void ObjTokeidai_TowerRaiseFinished(ObjTokeidai* this, GlobalContext* globalCtx) this->settleTimer--; } else { type = OBJ_TOKEIDAI_TYPE(&this->actor); - if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { + if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || + (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { Audio_PlayActorSound2(&this->actor, NA_SE_EV_CLOCK_TOWER_FALL); } this->yTranslation = 3400; this->actionFunc = ObjTokeidai_TowerTopFall; - this->unk_154 = 0; - this->unk_156 = 0xA; + this->transformationRotationalVelocity = 0; + this->transformationRotationalAcceleration = 0xA; this->reboundCount = 0; } } @@ -513,12 +520,14 @@ void ObjTokeidai_RaiseTower(ObjTokeidai* this, GlobalContext* globalCtx) { if (this->yTranslation < 3400) { type = OBJ_TOKEIDAI_TYPE(&this->actor); this->yTranslation += 0x19; - if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { + if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || + (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { func_800B9010(&this->actor, NA_SE_EV_CLOCK_TOWER_UP - SFX_FLAG); } } else { type = OBJ_TOKEIDAI_TYPE(&this->actor); - if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { + if ((type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN) || + (type == OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD)) { Audio_PlayActorSound2(&this->actor, NA_SE_EV_CLOCK_TOWER_STOP); } this->yTranslation = 3400; @@ -538,8 +547,8 @@ void ObjTokeidai_TowerTransformationStart(ObjTokeidai* this, GlobalContext* glob void ObjTokeidai_SetupTowerTransformationStart(ObjTokeidai* this) { this->actionFunc = ObjTokeidai_TowerTransformationStart; - this->unk_154 = 0; - this->unk_156 = 0; + this->clockFaceAdditionalRotation = 0; + this->clockFaceRotationTimer = 0; this->yTranslation = 0; this->xRotation = 0; this->clockFaceZTranslation = 0; @@ -557,7 +566,7 @@ void ObjTokeidai_StaircaseIntoTowerIdle(ObjTokeidai* this, GlobalContext* global } } -s32 func_80AB3C50(ObjTokeidai* this, GlobalContext* globalCtx) { +s32 ObjTokeidai_IsPostFirstCycleFinalHours(ObjTokeidai* this, GlobalContext* globalCtx) { if (gSaveContext.inventory.items[0] == 0xFF) { return false; } @@ -568,7 +577,7 @@ s32 func_80AB3C50(ObjTokeidai* this, GlobalContext* globalCtx) { return false; } -void func_80AB3CCC(ObjTokeidai* this, GlobalContext* globalCtx) { +void ObjTokeidai_HandleHour(ObjTokeidai* this, GlobalContext* globalCtx) { s32 currentHour; currentHour = OBJ_TOKEIDAI_GET_CURRENT_HOUR(this); @@ -585,7 +594,8 @@ void func_80AB3CCC(ObjTokeidai* this, GlobalContext* globalCtx) { } } this->clockFaceRotationTimer++; - if ((currentHour == 12 && this->clockFaceRotation < 0) || (currentHour != 12 && this->clockFaceRotation > OBJ_TOKEIDAI_GET_CLOCK_FACE_ROTATION(currentHour))) { + if ((currentHour == 12 && this->clockFaceRotation < 0) || + (currentHour != 12 && this->clockFaceRotation > OBJ_TOKEIDAI_GET_CLOCK_FACE_ROTATION(currentHour))) { this->clockFaceRotation = OBJ_TOKEIDAI_GET_CLOCK_FACE_ROTATION(currentHour); this->clockHour = currentHour; this->clockFaceAdditionalRotation = 0; @@ -612,7 +622,7 @@ void func_80AB3CCC(ObjTokeidai* this, GlobalContext* globalCtx) { } } -void func_80AB3ED0(ObjTokeidai* this, GlobalContext* globalCtx) { +void ObjTokeidai_TowerClockIdle(ObjTokeidai* this, GlobalContext* globalCtx) { if (gSaveContext.day % 5 == 3 && this->clockHour < 6 && gSaveContext.time < CLOCK_TIME(6, 0)) { this->actor.draw = ObjTokeidai_DrawClock; ObjTokeidai_SetupTowerTransformationStart(this); @@ -636,19 +646,19 @@ void func_80AB3ED0(ObjTokeidai* this, GlobalContext* globalCtx) { } } if (gSaveContext.day % 5 != 3 || gSaveContext.time >= CLOCK_TIME(6, 0)) { - func_80AB3010(this, true); + ObjTokeidai_HandleMinute(this, true); } - func_80AB3CCC(this, globalCtx); + ObjTokeidai_HandleHour(this, globalCtx); } -void func_80AB4040(ObjTokeidai* this, GlobalContext* globalCtx) { +void ObjTokeidai_SmallClockIdle(ObjTokeidai* this, GlobalContext* globalCtx) { this->currentTime = gSaveContext.time; - func_80AB3010(this, true); - func_80AB3CCC(this, globalCtx); + ObjTokeidai_HandleMinute(this, true); + ObjTokeidai_HandleHour(this, globalCtx); } -void func_80AB4080(ObjTokeidai* this, GlobalContext* globalCtx) { - if (func_80AB3C50(this, globalCtx)) { +void ObjTokeidai_TowerGearIdle(ObjTokeidai* this, GlobalContext* globalCtx) { + if (ObjTokeidai_IsPostFirstCycleFinalHours(this, globalCtx)) { this->actor.draw = ObjTokeidai_DrawTowerGear; } else { if (globalCtx->csCtx.state != 0) { @@ -667,14 +677,14 @@ void func_80AB4080(ObjTokeidai* this, GlobalContext* globalCtx) { this->actor.home.rot.x = 0; } } - func_80AB3010(this, false); + ObjTokeidai_HandleMinute(this, false); } } -void func_80AB4160(ObjTokeidai* this, GlobalContext* globalCtx) { +void ObjTokeidai_TowerTopIdle(ObjTokeidai* this, GlobalContext* globalCtx) { s32 type; - if (func_80AB3C50(this, globalCtx)) { + if (ObjTokeidai_IsPostFirstCycleFinalHours(this, globalCtx)) { this->lightIntensity = 0; if ((this->actor.child == NULL)) { type = OBJ_TOKEIDAI_TYPE(&this->actor); @@ -692,7 +702,7 @@ void func_80AB4160(ObjTokeidai* this, GlobalContext* globalCtx) { } } } else { - this->actor.shape.rot.y += -0x40; + this->actor.shape.rot.y -= 0x40; if (gSaveContext.isNight != 0) { if (this->lightIntensity < 100) { this->lightIntensity += +4; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 05436a5b80..e6fc35928b 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -11667,7 +11667,7 @@ 0x80AB2544:("DmChar09_Update",), 0x80AB25D8:("func_80AB25D8",), 0x80AB261C:("DmChar09_Draw",), - 0x80AB2790:("func_80AB2790",), + 0x80AB2790:("ObjTokeidai_GetTargetSunMoonDiskRotation",), 0x80AB27B4:("ObjTokeidai_SetupClockOrGear",), 0x80AB2834:("ObjTokeidai_InitClock",), 0x80AB28C8:("ObjTokeidai_InitTowerGear",), @@ -11675,7 +11675,7 @@ 0x80AB2BBC:("ObjTokeidai_InitTowerTop",), 0x80AB2DEC:("ObjTokeidai_Init",), 0x80AB3000:("ObjTokeidai_Destroy",), - 0x80AB3010:("func_80AB3010",), + 0x80AB3010:("ObjTokeidai_HandleMinute",), 0x80AB319C:("ObjTokeidai_CollapseGear",), 0x80AB3240:("ObjTokeidai_TransformedGearIdle",), 0x80AB32F0:("func_80AB32F0",), @@ -11695,12 +11695,12 @@ 0x80AB3BB0:("ObjTokeidai_SetupTowerTransformationStart",), 0x80AB3BD8:("ObjTokeidai_DoNothing",), 0x80AB3BE8:("ObjTokeidai_StaircaseIntoTowerIdle",), - 0x80AB3C50:("func_80AB3C50",), - 0x80AB3CCC:("func_80AB3CCC",), - 0x80AB3ED0:("func_80AB3ED0",), - 0x80AB4040:("func_80AB4040",), - 0x80AB4080:("func_80AB4080",), - 0x80AB4160:("func_80AB4160",), + 0x80AB3C50:("ObjTokeidai_IsPostFirstCycleFinalHours",), + 0x80AB3CCC:("ObjTokeidai_HandleHour",), + 0x80AB3ED0:("ObjTokeidai_TowerClockIdle",), + 0x80AB4040:("ObjTokeidai_SmallClockIdle",), + 0x80AB4080:("ObjTokeidai_TowerGearIdle",), + 0x80AB4160:("ObjTokeidai_TowerTopIdle",), 0x80AB4278:("ObjTokeidai_Update",), 0x80AB429C:("ObjTokeidai_Draw",), 0x80AB4394:("ObjTokeidai_DrawClock",),