diff --git a/assets/xml/objects/object_boss07.xml b/assets/xml/objects/object_boss07.xml index 91234f758..b1f6cb417 100644 --- a/assets/xml/objects/object_boss07.xml +++ b/assets/xml/objects/object_boss07.xml @@ -1,216 +1,270 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/include/variables.h b/include/variables.h index 500d35af2..1a4850815 100644 --- a/include/variables.h +++ b/include/variables.h @@ -684,20 +684,6 @@ extern UNK_PTR D_801BF5C0; // extern UNK_TYPE2 D_801BF9E6; // extern UNK_TYPE2 D_801BF9E8; // extern UNK_TYPE2 D_801BF9EA; -// extern UNK_TYPE2 sFinalHoursClockDigitsRed; -// extern UNK_TYPE2 sFinalHoursClockFrameEnvRed; -// extern UNK_TYPE2 sFinalHoursClockFrameEnvGreen; -// extern UNK_TYPE2 sFinalHoursClockFrameEnvBlue; -// extern UNK_TYPE2 sFinalHoursClockColorTimer; -// extern UNK_TYPE2 sFinalHoursClockColorTargetIndex; -// extern UNK_TYPE2 sActionVtxPosX; -// extern UNK_TYPE2 sActionVtxWidths; -// extern UNK_TYPE2 sActionVtxPosY; -// extern UNK_TYPE2 sActionVtxHeights; -// extern UNK_TYPE2 sMinigamePerfectLetterEllipseCenterX; -// extern UNK_TYPE2 sMinigamePerfectLetterEllipseCenterY; -// extern UNK_TYPE4 sPostmanTimerInputBtnAPressed; -// extern UNK_TYPE1 sDoActionTextures; // extern UNK_TYPE1 D_801BFAB8; // extern UNK_TYPE1 D_801BFAC4; // extern UNK_TYPE1 D_801BFACC; @@ -737,17 +723,6 @@ extern UNK_PTR D_801BF5C0; // extern UNK_TYPE1 D_801BFC10; // extern UNK_TYPE1 sFinalHoursDigitTextures; // extern UNK_TYPE1 D_801BFC40; -// extern UNK_TYPE2 sPerfectLettersType1OffScreenAngles; -// extern UNK_TYPE2 sPerfectLettersType1PrimColorTargets; -// extern UNK_TYPE2 D_801BFC62; -// extern UNK_TYPE2 D_801BFC64; -// extern UNK_TYPE2 sPerfectLettersType2SpellingOffsetsX; -// extern UNK_TYPE2 sPerfectLettersType2OffScreenOffsetsX; -// extern UNK_TYPE1 sPerfectLettersType2PrimColorTargets; -// extern UNK_TYPE2 sPerfectLettersType3SpellingOffsetsX; -// extern UNK_TYPE2 sPerfectLettersType3OffScreenAngles; -// extern UNK_TYPE1 sPerfectLettersType3PrimColorTargets; -// extern UNK_TYPE4 sPerfectLettersTextures; // extern UNK_TYPE2 sTimerStateTimer; // extern UNK_TYPE2 sTimerDigits; // extern UNK_TYPE2 D_801BFCEA; diff --git a/include/z64interface.h b/include/z64interface.h index be2249710..b93a9cc9f 100644 --- a/include/z64interface.h +++ b/include/z64interface.h @@ -78,7 +78,7 @@ typedef enum { /* 1 */ PERFECT_LETTERS_TYPE_1, /* 2 */ PERFECT_LETTERS_TYPE_2, /* 3 */ PERFECT_LETTERS_TYPE_3 -} MinigamePerfectType; +} PerfectLettersType; typedef enum { /* 0 */ PERFECT_LETTERS_STATE_OFF, @@ -88,7 +88,7 @@ typedef enum { /* 4 */ PERFECT_LETTERS_STATE_SPREAD, // Exit for type 1 /* 5 */ PERFECT_LETTERS_STATE_DISPLAY, /* 6 */ PERFECT_LETTERS_STATE_EXIT -} MinigamePerfectState; +} PerfectLettersState; #define PERFECT_LETTERS_NUM_LETTERS 8 #define PERFECT_LETTERS_ANGLE_PER_LETTER (0x10000 / PERFECT_LETTERS_NUM_LETTERS) diff --git a/include/z64save.h b/include/z64save.h index 52afb3bf8..6f95a4550 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -114,7 +114,7 @@ typedef enum { typedef enum { /* 0 */ MINIGAME_STATUS_INACTIVE, /* 1 */ MINIGAME_STATUS_ACTIVE, - /* 3 */ MINIGAME_STATUS_DONE = 3 + /* 3 */ MINIGAME_STATUS_END = 3 } MinigameStatus; typedef enum { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 4eaab27f7..18961e259 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -7296,7 +7296,7 @@ void Interface_Init(PlayState* play) { LifeMeter_Init(play); Map_Init(play); - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; interfaceCtx->perfectLettersPrimColor[0] = 255; interfaceCtx->perfectLettersPrimColor[1] = 165; interfaceCtx->perfectLettersPrimColor[2] = 55; diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index 6451354a2..90b050be8 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -2925,7 +2925,7 @@ void EnHorse_UpdateHorsebackArchery(EnHorse* this, PlayState* play) { EnHorse_UpdateHbaRaceInfo(this, play, &sHbaInfo); if (((this->hbaFlags & 1) || (this->hbaTimer > 45)) && (sp28 != 1) && - (gSaveContext.minigameStatus != MINIGAME_STATUS_DONE)) { + (gSaveContext.minigameStatus != MINIGAME_STATUS_END)) { gSaveContext.save.cutscene = 0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_64; diff --git a/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c b/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c index ed745bf96..92e918c5d 100644 --- a/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c +++ b/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c @@ -478,7 +478,7 @@ void func_80C147B4(EnJgameTsn* this, PlayState* play) { case 0x10A0: case 0x10A1: func_801477B4(play); - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP; CLEAR_WEEKEVENTREG(WEEKEVENTREG_90_20); func_80C144E4(this); diff --git a/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c b/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c index 2260c7e27..c02b00b5a 100644 --- a/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c +++ b/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c @@ -304,7 +304,7 @@ void func_80B269A4(EnKendoJs* this, PlayState* play) { case 0x272D: func_801477B4(play); - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; func_80B276C4(this); func_80B276D8(this, play); break; @@ -334,7 +334,7 @@ void func_80B26AFC(EnKendoJs* this, PlayState* play) { } if ((this->unk_288 == 0x272E) || (this->unk_288 == 0x272F) || (this->unk_288 == 0x2730)) { - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; } player->stateFlags1 &= ~PLAYER_STATE1_20; diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 717d19917..f517a129d 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -334,7 +334,7 @@ void EnSyatekiMan_Swamp_HandleChoice(EnSyatekiMan* this, PlayState* play) { Message_StartTextbox(play, 0xA31, &this->actor); this->prevTextId = 0xA31; if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) { - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; } this->shootingGameState = SG_GAME_STATE_NOT_PLAYING; @@ -373,7 +373,7 @@ void EnSyatekiMan_Swamp_HandleChoice(EnSyatekiMan* this, PlayState* play) { } if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) { - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; } this->shootingGameState = SG_GAME_STATE_NOT_PLAYING; @@ -414,7 +414,7 @@ void EnSyatekiMan_Swamp_HandleNormalMessage(EnSyatekiMan* this, PlayState* play) CLEAR_WEEKEVENTREG(WEEKEVENTREG_63_01); CLEAR_WEEKEVENTREG(WEEKEVENTREG_63_02); this->actionFunc = EnSyatekiMan_Swamp_Idle; - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; this->shootingGameState = SG_GAME_STATE_NONE; } else { // Wanna play again? @@ -434,7 +434,7 @@ void EnSyatekiMan_Swamp_HandleNormalMessage(EnSyatekiMan* this, PlayState* play) play->msgCtx.msgMode = 0x43; play->msgCtx.stateTimer = 4; player->actor.freezeTimer = 0; - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; player->stateFlags1 |= PLAYER_STATE1_20; this->actionFunc = EnSyatekiMan_Swamp_SetupGiveReward; EnSyatekiMan_Swamp_SetupGiveReward(this, play); @@ -641,7 +641,7 @@ void EnSyatekiMan_Town_HandleChoice(EnSyatekiMan* this, PlayState* play) { if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) { player->stateFlags3 &= ~PLAYER_STATE3_400; - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; } this->shootingGameState = SG_GAME_STATE_NOT_PLAYING; @@ -677,7 +677,7 @@ void EnSyatekiMan_Town_HandleChoice(EnSyatekiMan* this, PlayState* play) { if (this->shootingGameState == SG_GAME_STATE_ONE_MORE_GAME) { player->stateFlags3 &= ~PLAYER_STATE3_400; - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; } this->shootingGameState = SG_GAME_STATE_NOT_PLAYING; @@ -808,7 +808,7 @@ void EnSyatekiMan_Town_HandleNormalMessage(EnSyatekiMan* this, PlayState* play) play->msgCtx.msgMode = 0x43; play->msgCtx.stateTimer = 4; player->actor.freezeTimer = 0; - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; this->actionFunc = EnSyatekiMan_Town_SetupGiveReward; EnSyatekiMan_Town_SetupGiveReward(this, play); break; @@ -1122,7 +1122,7 @@ void EnSyatekiMan_Swamp_EndGame(EnSyatekiMan* this, PlayState* play) { CLEAR_WEEKEVENTREG(WEEKEVENTREG_63_01); CLEAR_WEEKEVENTREG(WEEKEVENTREG_63_02); this->shootingGameState = SG_GAME_STATE_NONE; - gSaveContext.minigameStatus = MINIGAME_STATUS_DONE; + gSaveContext.minigameStatus = MINIGAME_STATUS_END; this->actionFunc = EnSyatekiMan_Swamp_Idle; return; } diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 18a8c44e6..f2cb657c8 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -1123,8 +1123,8 @@ 0x801BFA1C:("sActionVtxWidths","UNK_TYPE2","",0x2), 0x801BFA34:("sActionVtxPosY","UNK_TYPE2","",0x2), 0x801BFA4C:("sActionVtxHeights","UNK_TYPE2","",0x2), - 0x801BFA64:("sMinigamePerfectLetterEllipseCenterX","UNK_TYPE2","",0x2), - 0x801BFA74:("sMinigamePerfectLetterEllipseCenterY","UNK_TYPE2","",0x2), + 0x801BFA64:("sPerfectLettersCenterX","UNK_TYPE2","",0x2), + 0x801BFA74:("sPerfectLettersCenterY","UNK_TYPE2","",0x2), 0x801BFA84:("sPostmanTimerInputBtnAPressed","UNK_TYPE4","",0x4), 0x801BFAB0:("sDoActionTextures","UNK_TYPE1","",0x1), 0x801BFAB8:("magicBorderColors","UNK_TYPE1","",0x1), diff --git a/tools/namefixer.py b/tools/namefixer.py index c28311683..dbc5abf23 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -499,6 +499,8 @@ wordReplace = { "func_80169E6C": "Play_SetupRespawnPoint", "func_8016A0AC": "Play_IsUnderwater", "func_801690CC": "Play_InCsMode", + "func_8011B4E0": "Interface_SetPerfectLetters", + "func_80112AFC": "Interface_InitMinigame", "func_8010E9F0": "Interface_StartTimer", "func_8010EA9C": "Interface_StartPostmanTimer", "func_80121F94": "Interface_Destroy", @@ -719,6 +721,8 @@ wordReplace = { "gSaveContext.sceneSetupIndex": "gSaveContext.sceneLayer", "gSaveContext.seqIndex": "gSaveContext.seqId", "gSaveContext.nightSeqIndex": "gSaveContext.ambienceId", + "gSaveContext.minigameState": "gSaveContext.minigameStatus", + "gSaveContext.unk_3F3C": "gSaveContext.minigameHiddenScore", "player->unk_A87": "player->exchangeItemId", "player->leftHandActor": "player->heldActor", @@ -759,6 +763,11 @@ wordReplace = { "globalCtx->interfaceCtx.unk_21E": "play->interfaceCtx.bButtonDoAction", "play->interfaceCtx.unk_31A": "play->interfaceCtx.storyState", "play->interfaceCtx.unk_31B": "play->interfaceCtx.storyType", + "play->interfaceCtx.unk_25C": "play->interfaceCtx.minigamePoints", + "play->interfaceCtx.unk_25E": "play->interfaceCtx.minigameHiddenPoints", + "play->interfaceCtx.unk_280": "play->interfaceCtx.minigameState", + "play->interfaceCtx.unk_286": "play->interfaceCtx.perfectLettersOn", + "play->interfaceCtx.hbaAmmo": "play->interfaceCtx.minigameAmmo", # "play->actorCtx.flags": "play->actorCtx.sceneFlags", # "play->actorCtx.unk5": "play->actorCtx.flags",