From 41adadd85d4d528bf99a4bc8934eabec9be06b3b Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 15 Jul 2025 06:10:34 +0100 Subject: [PATCH 01/27] Pause docs: UIOverlay L/R buttons details (#2650) --- include/regs.h | 4 + src/code/z_construct.c | 6 +- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 145 +++++++++--------- 3 files changed, 80 insertions(+), 75 deletions(-) diff --git a/include/regs.h b/include/regs.h index 187939cf58..a59e059ab8 100644 --- a/include/regs.h +++ b/include/regs.h @@ -126,6 +126,7 @@ struct PlayState; #define R_EPONAS_SONG_PLAYED DREG(53) #define R_MAGIC_FILL_COLOR(i) ZREG(0 + (i)) #define R_PAUSE_PAGE_SWITCH_FRAME_ADVANCE_ON ZREG(13) +#define R_PAUSE_BUTTON_L_R_SELECTED_PRIM_TIMER ZREG(28) #define R_C_BTN_COLOR(i) ZREG(39 + (i)) #define R_B_BTN_COLOR(i) ZREG(43 + (i)) #if OOT_NTSC @@ -192,6 +193,7 @@ struct PlayState; #define R_B_LABEL_DD WREG(0) #define R_PAUSE_PAGES_Y_ORIGIN_2 WREG(2) // Complements PauseContext.pagesYOrigin1 #define R_PAUSE_DEPTH_OFFSET WREG(3) // Offset position of all pages away from the camera +#define R_PAUSE_UI_ANIMS_DURATION WREG(6) #if OOT_NTSC #define R_B_LABEL_SCALE(i) WREG(8 + (i)) #define R_B_LABEL_X(i) WREG(10 + (i)) @@ -201,6 +203,8 @@ struct PlayState; #define R_PAUSE_BUTTON_LEFT_X WREG(16) #define R_PAUSE_BUTTON_RIGHT_X WREG(17) #define R_PAUSE_BUTTON_LEFT_RIGHT_Y WREG(18) +#define R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X WREG(25) +#define R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X WREG(26) #define R_OW_MINIMAP_X WREG(29) #define R_OW_MINIMAP_Y WREG(30) #define R_MINIMAP_DISABLED WREG(31) diff --git a/src/code/z_construct.c b/src/code/z_construct.c index 92c84de000..179012b43e 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -352,7 +352,7 @@ void Regs_InitDataImpl(void) { ZREG(25) = 4; ZREG(26) = 20; ZREG(27) = 10; - ZREG(28) = 20; + R_PAUSE_BUTTON_L_R_SELECTED_PRIM_TIMER = 20; ZREG(29) = 4; ZREG(30) = 20; ZREG(31) = 10; @@ -557,8 +557,8 @@ void Regs_InitDataImpl(void) { WREG(22) = -32; WREG(23) = -38; WREG(24) = -36; - WREG(25) = 40; - WREG(26) = -40; + R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X = 40; + R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X = -40; WREG(27) = 0; WREG(28) = 0; R_OW_MINIMAP_X = 238; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index c7b7042244..f43b3d627c 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -1684,22 +1684,23 @@ void KaleidoScope_DrawUIOverlay(PlayState* play) { static u16 sToPlayMelodyTextWidths[] = LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex_WIDTH, gPauseToPlayMelodyENGTex_WIDTH, gPauseToPlayMelodyGERTex_WIDTH, gPauseToPlayMelodyFRATex_WIDTH); - static s16 D_8082ADF0[][4] = { + static s16 sLRSelectedPrimColors[][4] = { { 180, 210, 255, 220 }, { 100, 100, 150, 220 }, }; - static s16 D_8082AE00 = 20; - static s16 D_8082AE04 = 0; + static s16 sLRSelectedPrimTimer = 20; + static s16 sLRSelectedPrimState = 0; static s16 D_8082AE08[] = { 10, 16, 16, 17, 12, 13, 18, 17, 17, 19, 13, 21, 20, 21, 14, 15, 15, 15, 11, 14, }; static s16 D_8082AE30[] = { 21, 20, 19, 18, 11, 14, 10, 15, 16, 13, 12, 17, }; - static s16 D_808321A0; - static s16 D_808321A2; - static s16 D_808321A4; - static s16 D_808321A6; + static s16 sLRSelectedPrimR; + static s16 sLRSelectedPrimG; + static s16 sLRSelectedPrimB; + static s16 sLRSelectedPrimA; + PauseContext* pauseCtx = &play->pauseCtx; s16 stepR; s16 stepG; @@ -1711,39 +1712,39 @@ void KaleidoScope_DrawUIOverlay(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 1676); - stepR = ABS(D_808321A0 - D_8082ADF0[D_8082AE04][0]) / D_8082AE00; - stepG = ABS(D_808321A2 - D_8082ADF0[D_8082AE04][1]) / D_8082AE00; - stepB = ABS(D_808321A4 - D_8082ADF0[D_8082AE04][2]) / D_8082AE00; - stepA = ABS(D_808321A6 - D_8082ADF0[D_8082AE04][3]) / D_8082AE00; - if (D_808321A0 >= D_8082ADF0[D_8082AE04][0]) { - D_808321A0 -= stepR; + stepR = ABS(sLRSelectedPrimR - sLRSelectedPrimColors[sLRSelectedPrimState][0]) / sLRSelectedPrimTimer; + stepG = ABS(sLRSelectedPrimG - sLRSelectedPrimColors[sLRSelectedPrimState][1]) / sLRSelectedPrimTimer; + stepB = ABS(sLRSelectedPrimB - sLRSelectedPrimColors[sLRSelectedPrimState][2]) / sLRSelectedPrimTimer; + stepA = ABS(sLRSelectedPrimA - sLRSelectedPrimColors[sLRSelectedPrimState][3]) / sLRSelectedPrimTimer; + if (sLRSelectedPrimR >= sLRSelectedPrimColors[sLRSelectedPrimState][0]) { + sLRSelectedPrimR -= stepR; } else { - D_808321A0 += stepR; + sLRSelectedPrimR += stepR; } - if (D_808321A2 >= D_8082ADF0[D_8082AE04][1]) { - D_808321A2 -= stepG; + if (sLRSelectedPrimG >= sLRSelectedPrimColors[sLRSelectedPrimState][1]) { + sLRSelectedPrimG -= stepG; } else { - D_808321A2 += stepG; + sLRSelectedPrimG += stepG; } - if (D_808321A4 >= D_8082ADF0[D_8082AE04][2]) { - D_808321A4 -= stepB; + if (sLRSelectedPrimB >= sLRSelectedPrimColors[sLRSelectedPrimState][2]) { + sLRSelectedPrimB -= stepB; } else { - D_808321A4 += stepB; + sLRSelectedPrimB += stepB; } - if (D_808321A6 >= D_8082ADF0[D_8082AE04][3]) { - D_808321A6 -= stepA; + if (sLRSelectedPrimA >= sLRSelectedPrimColors[sLRSelectedPrimState][3]) { + sLRSelectedPrimA -= stepA; } else { - D_808321A6 += stepA; + sLRSelectedPrimA += stepA; } - D_8082AE00--; - if (D_8082AE00 == 0) { - D_808321A0 = D_8082ADF0[D_8082AE04][0]; - D_808321A2 = D_8082ADF0[D_8082AE04][1]; - D_808321A4 = D_8082ADF0[D_8082AE04][2]; - D_808321A6 = D_8082ADF0[D_8082AE04][3]; - D_8082AE00 = ZREG(28); - D_8082AE04 ^= 1; + sLRSelectedPrimTimer--; + if (sLRSelectedPrimTimer == 0) { + sLRSelectedPrimR = sLRSelectedPrimColors[sLRSelectedPrimState][0]; + sLRSelectedPrimG = sLRSelectedPrimColors[sLRSelectedPrimState][1]; + sLRSelectedPrimB = sLRSelectedPrimColors[sLRSelectedPrimState][2]; + sLRSelectedPrimA = sLRSelectedPrimColors[sLRSelectedPrimState][3]; + sLRSelectedPrimTimer = R_PAUSE_BUTTON_L_R_SELECTED_PRIM_TIMER; + sLRSelectedPrimState ^= 1; } y = pauseCtx->infoPanelOffsetY - 76; @@ -1853,7 +1854,7 @@ void KaleidoScope_DrawUIOverlay(PlayState* play) { gSPDisplayList(POLY_OPA_DISP++, gInfoPanelBgDL); if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { - gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sLRSelectedPrimR, sLRSelectedPrimG, sLRSelectedPrimB, sLRSelectedPrimA); } // Draw UI_OVERLAY_QUAD_BUTTON_LEFT @@ -1862,14 +1863,14 @@ void KaleidoScope_DrawUIOverlay(PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 180, 210, 255, 220); if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { - gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sLRSelectedPrimR, sLRSelectedPrimG, sLRSelectedPrimB, sLRSelectedPrimA); } // Draw UI_OVERLAY_QUAD_BUTTON_RIGHT gSPDisplayList(POLY_OPA_DISP++, gRButtonIconDL); if (pauseCtx->cursorSpecialPos != 0) { - j = (pauseCtx->cursorSpecialPos - 8) * 4; + j = (pauseCtx->cursorSpecialPos - PAUSE_CURSOR_PAGE_LEFT + UI_OVERLAY_QUAD_BUTTON_LEFT) * 4; pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->uiOverlayVtx[j].v.ob[0]; pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->uiOverlayVtx[j].v.ob[1]; KaleidoScope_DrawCursor(play, pauseCtx->pageIndex); @@ -2233,11 +2234,11 @@ void KaleidoScope_UpdatePageSwitch(PlayState* play, Input* input) { if (pauseCtx->nextPageMode) {} if (pauseCtx->pageSwitchTimer < ((4 * PAGE_SWITCH_NSTEPS) / 2)) { - R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6); + R_PAUSE_BUTTON_LEFT_X -= R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X -= R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; } else { - R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6); + R_PAUSE_BUTTON_LEFT_X += R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X += R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; } pauseCtx->pageSwitchTimer += 4; @@ -4088,13 +4089,13 @@ void KaleidoScope_Update(PlayState* play) { } pauseCtx->itemPagePitch = pauseCtx->equipPagePitch = pauseCtx->mapPagePitch = pauseCtx->questPagePitch -= - 160.0f / WREG(6); - pauseCtx->infoPanelOffsetY += 40 / WREG(6); - interfaceCtx->startAlpha += 255 / WREG(6); - R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6); - XREG(5) += 150 / WREG(6); - pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4))); + 160.0f / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->infoPanelOffsetY += 40 / R_PAUSE_UI_ANIMS_DURATION; + interfaceCtx->startAlpha += 255 / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_LEFT_X += R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X += R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + XREG(5) += 150 / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + WREG(4))); if (pauseCtx->itemPagePitch == 0) { interfaceCtx->startAlpha = 255; @@ -4249,9 +4250,9 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_STATE_SAVE_PROMPT: switch (pauseCtx->savePromptState) { case PAUSE_SAVE_PROMPT_STATE_APPEARING: - pauseCtx->promptPitch -= 314.0f / WREG(6); - R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6); + pauseCtx->promptPitch -= 314.0f / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_LEFT_X -= R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X -= R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; if (pauseCtx->promptPitch <= -628.0f) { pauseCtx->promptPitch = -628.0f; @@ -4320,9 +4321,9 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU: case PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU_2: - pauseCtx->promptPitch += 314.0f / WREG(6); - R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6); + pauseCtx->promptPitch += 314.0f / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_LEFT_X += R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X += R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; if (pauseCtx->promptPitch >= -314.0f) { pauseCtx->state = PAUSE_STATE_MAIN; @@ -4337,13 +4338,13 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_SAVE_PROMPT_STATE_CLOSING_AFTER_SAVED: if (pauseCtx->promptPitch != (YREG(8) + 160.0f)) { pauseCtx->itemPagePitch = pauseCtx->equipPagePitch = pauseCtx->mapPagePitch = - pauseCtx->questPagePitch += 160.0f / WREG(6); - pauseCtx->promptPitch += 160.0f / WREG(6); - pauseCtx->infoPanelOffsetY -= 40 / WREG(6); - R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6); - XREG(5) -= 150 / WREG(6); - pauseCtx->alpha -= (u16)(255 / WREG(6)); + pauseCtx->questPagePitch += 160.0f / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->promptPitch += 160.0f / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->infoPanelOffsetY -= 40 / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_LEFT_X -= R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X -= R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + XREG(5) -= 150 / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->alpha -= (u16)(255 / R_PAUSE_UI_ANIMS_DURATION); if (pauseCtx->promptPitch == (YREG(8) + 160.0f)) { pauseCtx->alpha = 0; } @@ -4507,14 +4508,14 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_STATE_GAME_OVER_SHOW_WINDOW: pauseCtx->itemPagePitch = pauseCtx->equipPagePitch = pauseCtx->mapPagePitch = pauseCtx->questPagePitch = - pauseCtx->promptPitch -= 160.0f / WREG(6); - pauseCtx->infoPanelOffsetY += 40 / WREG(6); - interfaceCtx->startAlpha += 255 / WREG(6); + pauseCtx->promptPitch -= 160.0f / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->infoPanelOffsetY += 40 / R_PAUSE_UI_ANIMS_DURATION; + interfaceCtx->startAlpha += 255 / R_PAUSE_UI_ANIMS_DURATION; VREG(88) -= 3; - R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6); - XREG(5) += 150 / WREG(6); - pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4))); + R_PAUSE_BUTTON_LEFT_X += R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X += R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + XREG(5) += 150 / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + WREG(4))); if (pauseCtx->promptPitch < -628.0f) { pauseCtx->promptPitch = -628.0f; interfaceCtx->startAlpha = 255; @@ -4676,13 +4677,13 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_STATE_CLOSING: if (pauseCtx->itemPagePitch != 160.0f) { pauseCtx->itemPagePitch = pauseCtx->equipPagePitch = pauseCtx->mapPagePitch = - pauseCtx->questPagePitch += 160.0f / WREG(6); - pauseCtx->infoPanelOffsetY -= 40 / WREG(6); - interfaceCtx->startAlpha -= 255 / WREG(6); - R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6); - R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6); - XREG(5) -= 150 / WREG(6); - pauseCtx->alpha -= (u16)(255 / WREG(6)); + pauseCtx->questPagePitch += 160.0f / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->infoPanelOffsetY -= 40 / R_PAUSE_UI_ANIMS_DURATION; + interfaceCtx->startAlpha -= 255 / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_LEFT_X -= R_PAUSE_BUTTON_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + R_PAUSE_BUTTON_RIGHT_X -= R_PAUSE_BUTTON_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; + XREG(5) -= 150 / R_PAUSE_UI_ANIMS_DURATION; + pauseCtx->alpha -= (u16)(255 / R_PAUSE_UI_ANIMS_DURATION); if (pauseCtx->itemPagePitch == 160.0f) { pauseCtx->alpha = 0; } From 7158775cea70824bdae64822286f01f841c43806 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 15 Jul 2025 06:31:41 +0100 Subject: [PATCH 02/27] Finish rename scene lists (#2652) --- include/scene.h | 12 ++++++------ src/code/z_scene.c | 4 ++-- .../extase_oot64/scene_commands_resource.py | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/scene.h b/include/scene.h index 8e5b1a100c..5aafc40169 100644 --- a/include/scene.h +++ b/include/scene.h @@ -400,13 +400,13 @@ typedef enum NaviQuestHintFileId { // Scene commands typedef enum SceneCommandTypeID { - /* 0x00 */ SCENE_CMD_ID_SPAWN_LIST, + /* 0x00 */ SCENE_CMD_ID_PLAYER_ENTRY_LIST, /* 0x01 */ SCENE_CMD_ID_ACTOR_LIST, /* 0x02 */ SCENE_CMD_ID_UNUSED_2, /* 0x03 */ SCENE_CMD_ID_COLLISION_HEADER, /* 0x04 */ SCENE_CMD_ID_ROOM_LIST, /* 0x05 */ SCENE_CMD_ID_WIND_SETTINGS, - /* 0x06 */ SCENE_CMD_ID_ENTRANCE_LIST, + /* 0x06 */ SCENE_CMD_ID_SPAWN_LIST, /* 0x07 */ SCENE_CMD_ID_SPECIAL_FILES, /* 0x08 */ SCENE_CMD_ID_ROOM_BEHAVIOR, /* 0x09 */ SCENE_CMD_ID_UNDEFINED_9, @@ -429,8 +429,8 @@ typedef enum SceneCommandTypeID { /* 0x1A */ SCENE_CMD_ID_MAX } SceneCommandTypeID; -#define SCENE_CMD_SPAWN_LIST(numSpawns, spawnList) \ - { SCENE_CMD_ID_SPAWN_LIST, numSpawns, CMD_PTR(spawnList) } +#define SCENE_CMD_PLAYER_ENTRY_LIST(length, playerEntryList) \ + { SCENE_CMD_ID_PLAYER_ENTRY_LIST, length, CMD_PTR(playerEntryList) } #define SCENE_CMD_ACTOR_LIST(numActors, actorList) \ { SCENE_CMD_ID_ACTOR_LIST, numActors, CMD_PTR(actorList) } @@ -447,8 +447,8 @@ typedef enum SceneCommandTypeID { #define SCENE_CMD_WIND_SETTINGS(xDir, yDir, zDir, strength) \ { SCENE_CMD_ID_WIND_SETTINGS, 0, CMD_BBBB(xDir, yDir, zDir, strength) } -#define SCENE_CMD_ENTRANCE_LIST(entranceList) \ - { SCENE_CMD_ID_ENTRANCE_LIST, 0, CMD_PTR(entranceList) } +#define SCENE_CMD_SPAWN_LIST(spawnList) \ + { SCENE_CMD_ID_SPAWN_LIST, 0, CMD_PTR(spawnList) } #define SCENE_CMD_SPECIAL_FILES(naviQuestHintFileId, keepObjectId) \ { SCENE_CMD_ID_SPECIAL_FILES, naviQuestHintFileId, CMD_W(keepObjectId) } diff --git a/src/code/z_scene.c b/src/code/z_scene.c index a3182a2f88..38323e6c7b 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -531,13 +531,13 @@ void Scene_SetTransitionForNextEntrance(PlayState* play) { } SceneCmdHandlerFunc sSceneCmdHandlers[SCENE_CMD_ID_MAX] = { - Scene_CommandPlayerEntryList, // SCENE_CMD_ID_SPAWN_LIST + Scene_CommandPlayerEntryList, // SCENE_CMD_ID_PLAYER_ENTRY_LIST Scene_CommandActorEntryList, // SCENE_CMD_ID_ACTOR_LIST Scene_CommandUnused2, // SCENE_CMD_ID_UNUSED_2 Scene_CommandCollisionHeader, // SCENE_CMD_ID_COLLISION_HEADER Scene_CommandRoomList, // SCENE_CMD_ID_ROOM_LIST Scene_CommandWindSettings, // SCENE_CMD_ID_WIND_SETTINGS - Scene_CommandSpawnList, // SCENE_CMD_ID_ENTRANCE_LIST + Scene_CommandSpawnList, // SCENE_CMD_ID_SPAWN_LIST Scene_CommandSpecialFiles, // SCENE_CMD_ID_SPECIAL_FILES Scene_CommandRoomBehavior, // SCENE_CMD_ID_ROOM_BEHAVIOR Scene_CommandUndefined9, // SCENE_CMD_ID_UNDEFINED_9 diff --git a/tools/assets/extract/extase_oot64/scene_commands_resource.py b/tools/assets/extract/extase_oot64/scene_commands_resource.py index 57f2cbf440..aa6da2bc45 100644 --- a/tools/assets/extract/extase_oot64/scene_commands_resource.py +++ b/tools/assets/extract/extase_oot64/scene_commands_resource.py @@ -44,13 +44,13 @@ VERBOSE_NOT_FULLY_PARSED_SCENECMD = False class SceneCmdId(enum.Enum): # keep the SCENE_CMD_ID_ prefix for grepability - SCENE_CMD_ID_SPAWN_LIST = 0 + SCENE_CMD_ID_PLAYER_ENTRY_LIST = 0 SCENE_CMD_ID_ACTOR_LIST = enum.auto() SCENE_CMD_ID_UNUSED_2 = enum.auto() SCENE_CMD_ID_COLLISION_HEADER = enum.auto() SCENE_CMD_ID_ROOM_LIST = enum.auto() SCENE_CMD_ID_WIND_SETTINGS = enum.auto() - SCENE_CMD_ID_ENTRANCE_LIST = enum.auto() + SCENE_CMD_ID_SPAWN_LIST = enum.auto() SCENE_CMD_ID_SPECIAL_FILES = enum.auto() SCENE_CMD_ID_ROOM_BEHAVIOR = enum.auto() SCENE_CMD_ID_UNDEFINED_9 = enum.auto() @@ -73,13 +73,13 @@ class SceneCmdId(enum.Enum): scene_cmd_macro_name_by_cmd_id = { - SceneCmdId.SCENE_CMD_ID_SPAWN_LIST: "SCENE_CMD_SPAWN_LIST", + SceneCmdId.SCENE_CMD_ID_PLAYER_ENTRY_LIST: "SCENE_CMD_PLAYER_ENTRY_LIST", SceneCmdId.SCENE_CMD_ID_ACTOR_LIST: "SCENE_CMD_ACTOR_LIST", SceneCmdId.SCENE_CMD_ID_UNUSED_2: "SCENE_CMD_UNUSED_02", SceneCmdId.SCENE_CMD_ID_COLLISION_HEADER: "SCENE_CMD_COL_HEADER", SceneCmdId.SCENE_CMD_ID_ROOM_LIST: "SCENE_CMD_ROOM_LIST", SceneCmdId.SCENE_CMD_ID_WIND_SETTINGS: "SCENE_CMD_WIND_SETTINGS", - SceneCmdId.SCENE_CMD_ID_ENTRANCE_LIST: "SCENE_CMD_ENTRANCE_LIST", + SceneCmdId.SCENE_CMD_ID_SPAWN_LIST: "SCENE_CMD_SPAWN_LIST", SceneCmdId.SCENE_CMD_ID_SPECIAL_FILES: "SCENE_CMD_SPECIAL_FILES", SceneCmdId.SCENE_CMD_ID_ROOM_BEHAVIOR: "SCENE_CMD_ROOM_BEHAVIOR", SceneCmdId.SCENE_CMD_ID_UNDEFINED_9: "SCENE_CMD_UNK_09", @@ -220,7 +220,7 @@ class SceneCommandsResource(Resource, can_size_be_unknown=True): ) ) - if cmd_id == SceneCmdId.SCENE_CMD_ID_ENTRANCE_LIST: + if cmd_id == SceneCmdId.SCENE_CMD_ID_SPAWN_LIST: assert data1 == 0 resource = memory_context.report_resource_at_segmented( self, @@ -250,7 +250,7 @@ class SceneCommandsResource(Resource, can_size_be_unknown=True): ) ) - if cmd_id == SceneCmdId.SCENE_CMD_ID_SPAWN_LIST: + if cmd_id == SceneCmdId.SCENE_CMD_ID_PLAYER_ENTRY_LIST: self.player_entry_list_length = data1 resource = memory_context.report_resource_at_segmented( self, @@ -439,7 +439,7 @@ class SceneCommandsResource(Resource, can_size_be_unknown=True): f.write(" " * 4) f.write(scene_cmd_macro_name_by_cmd_id[cmd_id]) f.write("(") - if cmd_id == SceneCmdId.SCENE_CMD_ID_SPAWN_LIST: + if cmd_id == SceneCmdId.SCENE_CMD_ID_PLAYER_ENTRY_LIST: address = data2_I f.write( memory_context.get_c_expression_length_at_segmented(address) @@ -474,7 +474,7 @@ class SceneCommandsResource(Resource, can_size_be_unknown=True): zDir = data2_B2 strength = data2_B3 f.write(f"{xDir}, {yDir}, {zDir}, {strength}") - if cmd_id == SceneCmdId.SCENE_CMD_ID_ENTRANCE_LIST: + if cmd_id == SceneCmdId.SCENE_CMD_ID_SPAWN_LIST: assert data1 == 0 address = data2_I f.write(memory_context.get_c_reference_at_segmented(address)) From 4c2a451b9ca9e125873cea5c5bc21f790432c158 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 15 Jul 2025 06:52:22 +0100 Subject: [PATCH 03/27] Add `ENV_LIGHT_SETTINGS_BLEND_RATE_AND_FOG_NEAR_PACK`, fix extracted negative `blendRate` (#2653) * Add ENV_LIGHT_SETTINGS_BLEND_RATE_AND_FOG_NEAR_PACK, fix extracted negative blendRate * -> BLEND_RATE_AND_FOG_NEAR --- include/environment.h | 4 +++- tools/assets/extract/extase_oot64/scene_rooms_resources.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/environment.h b/include/environment.h index 6c23dfb336..1c820ffebd 100644 --- a/include/environment.h +++ b/include/environment.h @@ -155,8 +155,10 @@ typedef struct CurrentEnvLightSettings { // The blendRate determines how fast the current light settings fade to the next one // (under LIGHT_MODE_SETTINGS, otherwise unused). +#define BLEND_RATE_AND_FOG_NEAR(blendRate, fogNear) (s16)((((blendRate) / 4) << 10) | (fogNear)) + // 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_BLEND_RATE_U8(blendRateAndFogNear) (u8)(((blendRateAndFogNear) >> 10) * 4) #define ENV_LIGHT_SETTINGS_FOG_NEAR(blendRateAndFogNear) ((blendRateAndFogNear) & 0x3FF) typedef struct EnvLightSettings { diff --git a/tools/assets/extract/extase_oot64/scene_rooms_resources.py b/tools/assets/extract/extase_oot64/scene_rooms_resources.py index d3b8903f2a..3b632604cd 100644 --- a/tools/assets/extract/extase_oot64/scene_rooms_resources.py +++ b/tools/assets/extract/extase_oot64/scene_rooms_resources.py @@ -293,8 +293,10 @@ class EnvLightSettingsListResource(CDataArrayNamedLengthResource): def write_blendRateAndFogNear(v): blendRate = (v >> 10) * 4 + if blendRate < 0: + blendRate += 0x100 fogNear = v & 0x3FF - return f"(({blendRate} / 4) << 10) | {fogNear}" + return f"BLEND_RATE_AND_FOG_NEAR({blendRate}, {fogNear})" elem_cdata_ext = CDataExt_Struct( ( From 6ecb84097c1a9a8426f3815c84aa6a5d49ad5804 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 16 Aug 2025 10:25:04 -0700 Subject: [PATCH 04/27] Fix macOS build for clang 17 (#2657) --- src/libgcc/longlong.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libgcc/longlong.h b/src/libgcc/longlong.h index fb6ebb15e5..9590da9af2 100644 --- a/src/libgcc/longlong.h +++ b/src/libgcc/longlong.h @@ -92,8 +92,8 @@ __asm__("multu %2,%3\n\t" \ "mflo %0\n\t" \ "mfhi %1" \ - : "=d"(w0), "=d"(w1) \ - : "d"((USItype)(u)), "d"((USItype)(v))) + : "=r"(w0), "=r"(w1) \ + : "r"((USItype)(u)), "r"((USItype)(v))) #endif #define udiv_qrnnd(q, r, n1, n0, d) \ From b204d6c089a0c8c64c180f40436682be3848f0e9 Mon Sep 17 00:00:00 2001 From: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> Date: Wed, 20 Aug 2025 10:30:08 +0200 Subject: [PATCH 05/27] =?UTF-8?q?Document=20Damp=C3=A9's=20ghost=20(#2656)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Document Dampé * Format * Address review * Format --- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 143 +++++++++++------- .../actors/ovl_En_Po_Relay/z_en_po_relay.h | 13 +- 2 files changed, 93 insertions(+), 63 deletions(-) diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index b1f81b70d7..b4add29656 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -22,8 +22,7 @@ #include "play_state.h" #include "player.h" #include "save.h" - -#include "assets/objects/object_tk/object_tk.h" +#include "array_count.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -42,7 +41,7 @@ void EnPoRelay_Talk2(EnPoRelay* this, PlayState* play); void EnPoRelay_DisappearAndReward(EnPoRelay* this, PlayState* play); void EnPoRelay_SetupIdle(EnPoRelay* this); -static Vec3s D_80AD8C30[] = { +static Vec3s sPathPoints[] = { { 0xFFC4, 0xFDEE, 0xF47A }, { 0x0186, 0xFE0C, 0xF47A }, { 0x0186, 0xFE0C, 0xF0F6 }, { 0x00D2, 0xFDEE, 0xF0F6 }, { 0x00D2, 0xFD9E, 0xEEDA }, { 0x023A, 0xFDC6, 0xEEDA }, { 0x023A, 0xFDC6, 0xED18 }, { 0x00D2, 0xFDC6, 0xED18 }, { 0x00D2, 0xFDC6, 0xEBCE }, { 0x00D2, 0xFDC6, 0xEAA2 }, { 0x023A, 0xFDC6, 0xEAA2 }, { 0x023A, 0xFDC6, 0xEBB0 }, @@ -84,23 +83,31 @@ static ColliderCylinderInit sCylinderInit = { { 30, 52, 0, { 0, 0, 0 } }, }; -static s32 D_80AD8D24 = 0; +static s32 sAlreadySpawned = false; static InitChainEntry sInitChain[] = { ICHAIN_S8(naviEnemyId, NAVI_ENEMY_DAMPES_GHOST, ICHAIN_CONTINUE), ICHAIN_F32(lockOnArrowOffset, 1500, ICHAIN_STOP), }; -static Vec3f D_80AD8D30 = { 0.0f, 1.5f, 0.0f }; +static Vec3f sDisappearParticlesVelocity = { 0.0f, 1.5f, 0.0f }; -static Vec3f D_80AD8D3C = { 0.0f, 0.0f, 0.0f }; +static Vec3f sDisappearParticlesAccel = { 0.0f, 0.0f, 0.0f }; -static Vec3f D_80AD8D48 = { 0.0f, 1200.0f, 0.0f }; +// the offset (in model space) from the position of the lantern limb and the position of the actual light +static Vec3f sLanternLightOffset = { 0.0f, 1200.0f, 0.0f }; + +typedef enum DampeEyes { + /* 0 */ DAMPE_EYES_FULLY_OPEN, + /* 1 */ DAMPE_EYES_HALF_OPEN, + /* 2 */ DAMPE_EYES_CLOSED, + /* 3 */ DAMPE_EYES_MAX +} DampeEyes; static void* sEyesTextures[] = { - gDampeEyeOpenTex, - gDampeEyeHalfTex, - gDampeEyeClosedTex, + gDampeEyeOpenTex, // DAMPE_EYES_FULLY_OPEN + gDampeEyeHalfTex, // DAMPE_EYES_HALF_OPEN + gDampeEyeClosedTex, // DAMPE_EYES_CLOSED }; void EnPoRelay_Init(Actor* thisx, PlayState* play) { @@ -109,18 +116,19 @@ void EnPoRelay_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 42.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &gDampeSkel, &gDampeFloatAnim, this->jointTable, this->morphTable, 18); + SkelAnime_InitFlex(play, &this->skelAnime, &gDampeSkel, &gDampeFloatAnim, this->jointTable, this->morphTable, + LIMB_OBJECT_TK_00BE40_MAX); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); Lights_PointNoGlowSetInfo(&this->lightInfo, this->actor.home.pos.x, this->actor.home.pos.y, this->actor.home.pos.z, 255, 255, 255, 200); this->lightColor.a = 255; - temp = 1; - if (D_80AD8D24 != 0) { + temp = true; + if (sAlreadySpawned) { Actor_Kill(&this->actor); } else { - D_80AD8D24 = temp; + sAlreadySpawned = temp; Actor_SetTextWithPrefix(play, &this->actor, 65); this->textId = this->actor.textId; EnPoRelay_SetupIdle(this); @@ -136,9 +144,12 @@ void EnPoRelay_Destroy(Actor* thisx, PlayState* play) { } void EnPoRelay_SetupIdle(EnPoRelay* this) { - this->unk_195 = 32; - this->pathIndex = 0; + this->bobTimer = 32; + this->pathPoint = 0; + + // does not despawn upon room transitions this->actor.room = -1; + this->actor.shape.rot.y = 0; this->actor.world.rot.y = -0x8000; this->actor.colChkInfo.mass = MASS_HEAVY; @@ -154,11 +165,11 @@ void EnPoRelay_Vec3sToVec3f(Vec3f* dest, Vec3s* src) { void EnPoRelay_SetupRace(EnPoRelay* this) { Vec3f vec; - EnPoRelay_Vec3sToVec3f(&vec, &D_80AD8C30[this->pathIndex]); + EnPoRelay_Vec3sToVec3f(&vec, &sPathPoints[this->pathPoint]); this->actionTimer = ((s16)(this->actor.shape.rot.y - this->actor.world.rot.y - 0x8000) >> 0xB) % 32U; Interface_SetTimer(0); this->hookshotSlotFull = INV_CONTENT(ITEM_HOOKSHOT) != ITEM_NONE; - this->unk_19A = Actor_WorldYawTowardPoint(&this->actor, &vec); + this->yawTowardsPathPoint = Actor_WorldYawTowardPoint(&this->actor, &vec); this->actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_LAUGH); this->actionFunc = EnPoRelay_Race; @@ -172,8 +183,12 @@ void EnPoRelay_SetupEndRace(EnPoRelay* this) { } void EnPoRelay_CorrectY(EnPoRelay* this) { - Math_StepToF(&this->actor.home.pos.y, D_80AD8C30[(this->pathIndex >= 28) ? 27 : this->pathIndex].y + 45.0f, 2.0f); - this->actor.world.pos.y = Math_SinS(this->unk_195 * 0x800) * 8.0f + this->actor.home.pos.y; + Math_StepToF( + &this->actor.home.pos.y, + sPathPoints[(this->pathPoint >= ARRAY_COUNT(sPathPoints)) ? ARRAY_COUNT(sPathPoints) - 1 : this->pathPoint].y + + 45.0f, + 2.0f); + this->actor.world.pos.y = Math_SinS(this->bobTimer * 0x800) * 8.0f + this->actor.home.pos.y; } void EnPoRelay_Idle(EnPoRelay* this, PlayState* play) { @@ -208,9 +223,12 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { if (this->actionTimer != 0) { this->actionTimer--; } + + // 3% chance of throwing a flame every 32 frames (1.6 seconds), if it fails + // it checks again the next frame without waiting the 32 frames if (this->actionTimer == 0 && Rand_ZeroOne() < 0.03f) { this->actionTimer = 32; - if (this->pathIndex < 23) { + if (this->pathPoint < 23) { speedXZ = Rand_ZeroOne() * 3.0f; if (speedXZ < 1.0f) { multiplier = 1.0f; @@ -221,14 +239,19 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { } speedXZ = 30.0f * multiplier; Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HONOTRAP, - Math_CosS(this->unk_19A) * speedXZ + this->actor.world.pos.x, this->actor.world.pos.y, - Math_SinS(this->unk_19A) * speedXZ + this->actor.world.pos.z, 0, - (this->unk_19A + 0x8000) - (0x2000 * multiplier), 0, HONOTRAP_TYPE_FLAME_DROP); + Math_CosS(this->yawTowardsPathPoint) * speedXZ + this->actor.world.pos.x, + this->actor.world.pos.y, + Math_SinS(this->yawTowardsPathPoint) * speedXZ + this->actor.world.pos.z, 0, + (this->yawTowardsPathPoint + 0x8000) - (0x2000 * multiplier), 0, HONOTRAP_TYPE_FLAME_DROP); } } - Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_19A, 2, 0x1000, 0x100); + Math_SmoothStepToS(&this->actor.world.rot.y, this->yawTowardsPathPoint, 2, 0x1000, 0x100); this->actor.shape.rot.y = this->actor.world.rot.y + (this->actionTimer * 0x800) + 0x8000; - if (this->pathIndex < 23) { + if (this->pathPoint < 23) { + //! @bug Dampé's speed is directly proportional to the player's speed when less than 300 units away from the + //! player and not in the branching paths, so if the player's speed is negative (by HESSing or similar), + //! Dampé will also move backwards, away from the next path point rather than towards it + // If the player travels along a different path to Dampé that converges later if ((Math3D_PointInSquare2D(660.0f, 840.0f, -4480.0f, -3760.0f, player->actor.world.pos.x, player->actor.world.pos.z) != 0) || @@ -253,21 +276,21 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { } else { Math_ApproachF(&this->actor.speed, 3.5f, 0.5f, 1.5f); } - EnPoRelay_Vec3sToVec3f(&vec, &D_80AD8C30[this->pathIndex]); + EnPoRelay_Vec3sToVec3f(&vec, &sPathPoints[this->pathPoint]); if (Actor_WorldDistXZToPoint(&this->actor, &vec) < 40.0f) { - this->pathIndex++; - EnPoRelay_Vec3sToVec3f(&vec, &D_80AD8C30[this->pathIndex]); - if (this->pathIndex == 28) { + this->pathPoint++; + EnPoRelay_Vec3sToVec3f(&vec, &sPathPoints[this->pathPoint]); + if (this->pathPoint == ARRAY_COUNT(sPathPoints)) { EnPoRelay_SetupEndRace(this); - } else if (this->pathIndex == 9) { + } else if (this->pathPoint == 9) { // first door Flags_SetSwitch(play, 0x35); - } else if (this->pathIndex == 17) { + } else if (this->pathPoint == 17) { // second door Flags_SetSwitch(play, 0x36); - } else if (this->pathIndex == 25) { + } else if (this->pathPoint == 25) { // third door Flags_SetSwitch(play, 0x37); } } - this->unk_19A = Actor_WorldYawTowardPoint(&this->actor, &vec); + this->yawTowardsPathPoint = Actor_WorldYawTowardPoint(&this->actor, &vec); Actor_PlaySfx_Flagged(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); } @@ -289,7 +312,7 @@ void EnPoRelay_Talk2(EnPoRelay* this, PlayState* play) { Math_ScaledStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 0x100); if (Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) { if (Message_ShouldAdvance(play)) { - if (this->hookshotSlotFull != 0) { + if (this->hookshotSlotFull) { Actor_SetTextWithPrefix(play, &this->actor, 0x2E); } else { Actor_SetTextWithPrefix(play, &this->actor, 0x2D); @@ -324,35 +347,36 @@ void EnPoRelay_DisappearAndReward(EnPoRelay* this, PlayState* play) { vec.x = (Math_SinS(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) + 0x4800) * 23.0f) + this->actor.world.pos.x; vec.z = (Math_CosS(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) + 0x4800) * 23.0f) + this->actor.world.pos.z; } - EffectSsDeadDb_Spawn(play, &vec, &D_80AD8D30, &D_80AD8D3C, this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, - 0, 0, 255, 1, 9, true); + EffectSsDeadDb_Spawn(play, &vec, &sDisappearParticlesVelocity, &sDisappearParticlesAccel, + this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, 0, 0, 255, 1, 9, true); vec.x = (this->actor.world.pos.x + this->actor.world.pos.x) - vec.x; vec.z = (this->actor.world.pos.z + this->actor.world.pos.z) - vec.z; - EffectSsDeadDb_Spawn(play, &vec, &D_80AD8D30, &D_80AD8D3C, this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, - 0, 0, 255, 1, 9, true); + EffectSsDeadDb_Spawn(play, &vec, &sDisappearParticlesVelocity, &sDisappearParticlesAccel, + this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, 0, 0, 255, 1, 9, true); vec.x = this->actor.world.pos.x; vec.z = this->actor.world.pos.z; - EffectSsDeadDb_Spawn(play, &vec, &D_80AD8D30, &D_80AD8D3C, this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, - 0, 0, 255, 1, 9, true); + EffectSsDeadDb_Spawn(play, &vec, &sDisappearParticlesVelocity, &sDisappearParticlesAccel, + this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, 0, 0, 255, 1, 9, true); if (this->actionTimer == 1) { Actor_PlaySfx(&this->actor, NA_SE_EN_EXTINCT); } } if (Math_StepToF(&this->actor.scale.x, 0.0f, 0.001f) != 0) { - if (this->hookshotSlotFull != 0) { - Vec3f sp60; + if (this->hookshotSlotFull) { + Vec3f posAtGround; s32 pad1; - sp60.x = this->actor.world.pos.x; - sp60.y = this->actor.floorHeight; - sp60.z = this->actor.world.pos.z; + posAtGround.x = this->actor.world.pos.x; + posAtGround.y = this->actor.floorHeight; + posAtGround.z = this->actor.world.pos.z; if (gSaveContext.timerSeconds < HIGH_SCORE(HS_DAMPE_RACE)) { HIGH_SCORE(HS_DAMPE_RACE) = gSaveContext.timerSeconds; } if (!Flags_GetCollectible(play, this->actor.params) && (gSaveContext.timerSeconds <= 60)) { - Item_DropCollectible2(play, &sp60, (this->actor.params << 8) + (0x4000 | ITEM00_HEART_PIECE)); + Item_DropCollectible2(play, &posAtGround, (this->actor.params << 8) + (0x4000 | ITEM00_HEART_PIECE)); } else { - Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ITEM00, sp60.x, sp60.y, sp60.z, 0, 0, 0, 2); + Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ITEM00, posAtGround.x, posAtGround.y, posAtGround.z, 0, 0, + 0, 2); } } else { Flags_SetTempClear(play, 4); @@ -377,27 +401,30 @@ void EnPoRelay_Update(Actor* thisx, PlayState* play) { Collider_UpdateCylinder(&this->actor, &this->collider); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); Actor_SetFocus(&this->actor, 50.0f); - if (this->unk_195 != 0) { - this->unk_195 -= 1; + if (this->bobTimer != 0) { + this->bobTimer -= 1; } - if (this->unk_195 == 0) { - this->unk_195 = 32; + if (this->bobTimer == 0) { + this->bobTimer = 32; } this->eyeTextureIdx++; - if (this->eyeTextureIdx == 3) { - this->eyeTextureIdx = 0; + if (this->eyeTextureIdx == DAMPE_EYES_MAX) { + this->eyeTextureIdx = DAMPE_EYES_FULLY_OPEN; } } void EnPoRelay_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { EnPoRelay* this = (EnPoRelay*)thisx; - if (limbIndex == 14) { + // lantern + if (limbIndex == LIMB_OBJECT_TK_00BDCC) { f32 rand; Vec3f vec; OPEN_DISPS(play->state.gfxCtx, "../z_en_po_relay.c", 885); rand = Rand_ZeroOne(); + + // lantern can be from a light orange to pure white this->lightColor.r = (s16)(rand * 30.0f) + 225; this->lightColor.g = (s16)(rand * 100.0f) + 155; this->lightColor.b = (s16)(rand * 160.0f) + 95; @@ -405,10 +432,12 @@ void EnPoRelay_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* gDPSetEnvColor(POLY_OPA_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, 128); gSPDisplayList(POLY_OPA_DISP++, gDampeLanternDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_po_relay.c", 901); - Matrix_MultVec3f(&D_80AD8D48, &vec); + Matrix_MultVec3f(&sLanternLightOffset, &vec); Lights_PointNoGlowSetInfo(&this->lightInfo, vec.x, vec.y, vec.z, this->lightColor.r, this->lightColor.g, this->lightColor.b, 200); - } else if (limbIndex == 8) { + + // halo + } else if (limbIndex == LIMB_OBJECT_TK_00BD84) { OPEN_DISPS(play->state.gfxCtx, "../z_en_po_relay.c", 916); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_en_po_relay.c", 918); gSPDisplayList(POLY_OPA_DISP++, gDampeHaloDL); diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.h b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.h index 483208f9f0..2fa0536885 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.h +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.h @@ -4,6 +4,7 @@ #include "ultra64.h" #include "actor.h" #include "light.h" +#include "assets/objects/object_tk/object_tk.h" struct EnPoRelay; @@ -14,14 +15,14 @@ typedef struct EnPoRelay { /* 0x014C */ SkelAnime skelAnime; /* 0x0190 */ EnPoRelayActionFunc actionFunc; /* 0x0194 */ u8 hookshotSlotFull; - /* 0x0195 */ u8 unk_195; + /* 0x0195 */ u8 bobTimer; // used for the up & down bobbing /* 0x0196 */ s16 actionTimer; - /* 0x0198 */ s16 pathIndex; - /* 0x019A */ s16 unk_19A; - /* 0x019C */ u16 textId; + /* 0x0198 */ s16 pathPoint; // current (upcoming) path point + /* 0x019A */ s16 yawTowardsPathPoint; // yaw towards the current (upcoming) path point + /* 0x019C */ u16 textId; // mirrors actor.textId /* 0x019E */ u16 eyeTextureIdx; - /* 0x01A0 */ Vec3s jointTable[18]; - /* 0x020C */ Vec3s morphTable[18]; + /* 0x01A0 */ Vec3s jointTable[LIMB_OBJECT_TK_00BE40_MAX]; + /* 0x020C */ Vec3s morphTable[LIMB_OBJECT_TK_00BE40_MAX]; /* 0x0278 */ Color_RGBA8 lightColor; /* 0x027C */ LightNode* lightNode; /* 0x0280 */ LightInfo lightInfo; From 9f5ddc518aacd38fe077818a8526c19c1da59c5e Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Sun, 19 Oct 2025 16:30:16 +0100 Subject: [PATCH 06/27] Explicitly align gfxprint texture data to 8 bytes (#2663) --- src/libu64/gfxprint.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/libu64/gfxprint.c b/src/libu64/gfxprint.c index c47d52a3a5..1131dc5102 100644 --- a/src/libu64/gfxprint.c +++ b/src/libu64/gfxprint.c @@ -1,9 +1,10 @@ #include "libc64/aprintf.h" #include "libu64/gfxprint.h" +#include "alignment.h" #include "attributes.h" #include "translation.h" -u16 sGfxPrintFontTLUT[64] = { +ALIGNED(8) u16 sGfxPrintFontTLUT[64] = { 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, @@ -11,14 +12,14 @@ u16 sGfxPrintFontTLUT[64] = { 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, }; -u16 sGfxPrintRainbowTLUT[16] = { +ALIGNED(8) u16 sGfxPrintRainbowTLUT[16] = { 0xF801, 0xFBC1, 0xFFC1, 0x07C1, 0x0421, 0x003F, 0x803F, 0xF83F, 0xF801, 0xFBC1, 0xFFC1, 0x07C1, 0x0421, 0x003F, 0x803F, 0xF83F, }; -u8 sGfxPrintRainbowData[8] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; +ALIGNED(8) u8 sGfxPrintRainbowData[8] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; -u8 sGfxPrintFontData[(16 * 256) / 2] = { +ALIGNED(8) u8 sGfxPrintFontData[(16 * 256) / 2] = { 0x00, 0xDF, 0xFD, 0x00, 0x0A, 0xEE, 0xFF, 0xA0, 0x0D, 0xF2, 0x2D, 0xD0, 0x06, 0x61, 0x1D, 0xC0, 0x01, 0x12, 0x2D, 0xD0, 0x06, 0x71, 0x99, 0x00, 0x01, 0x1E, 0xED, 0x10, 0x07, 0x7E, 0xF7, 0x00, 0x01, 0x56, 0x29, 0x90, 0x05, 0x58, 0x97, 0x60, 0x0D, 0xD2, 0x29, 0x90, 0x05, 0x59, 0x97, 0x70, 0x04, 0xDF, 0xFD, 0x40, 0x02, 0x6E, 0xF7, 0x00, 0x00, From eb55fc84531c6163e6fc0cf80d0501a5166cae76 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Thu, 20 Nov 2025 03:33:09 +0000 Subject: [PATCH 07/27] Don't include calling isPrintfInit in iQue debug builds (#2672) --- src/boot/boot_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/boot/boot_main.c b/src/boot/boot_main.c index cfe011ac33..91b74cbe9f 100644 --- a/src/boot/boot_main.c +++ b/src/boot/boot_main.c @@ -36,7 +36,7 @@ void bootproc(void) { gCartHandle = osCartRomInit(); osDriveRomInit(); -#if DEBUG_FEATURES +#if DEBUG_FEATURES && !PLATFORM_IQUE isPrintfInit(); #endif Locale_Init(); From eb5dac74d6435baf85ced9158d3ff915ba8872ca Mon Sep 17 00:00:00 2001 From: Gabriel Ravier Date: Fri, 21 Nov 2025 00:49:16 +0100 Subject: [PATCH 08/27] Document N64DD data buffer (#2665) --- include/n64dd.h | 2 +- src/n64dd/n64dd_data_buffer.c | 8 ++++++-- src/n64dd/z_n64dd.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/n64dd.h b/include/n64dd.h index f7a3f649ca..97064bc352 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -155,7 +155,7 @@ extern vu8 D_80121214; extern s32 (*D_801D2E54)(struct_801E0D18*); -extern u8 B_801DC000[]; +extern u8 gN64DDDiskReadTemporaryBuffer[]; extern s32 D_801D2E90; extern OSMesgQueue* B_801E0D10[2]; diff --git a/src/n64dd/n64dd_data_buffer.c b/src/n64dd/n64dd_data_buffer.c index d4dfeb3363..00a09a69b6 100644 --- a/src/n64dd/n64dd_data_buffer.c +++ b/src/n64dd/n64dd_data_buffer.c @@ -1,4 +1,8 @@ #include "n64dd.h" -// Buffer used for reading from the disk? -u8 B_801DC000[0x4D10]; +/** + * Buffer used during the process of reading from the disk + * Used to directly read individual blocks from the disk before copying to the final destination. + * As blocks are read directly into this buffer from the disk, it should be 16-byte aligned. + */ +ALIGNED(16) u8 gN64DDDiskReadTemporaryBuffer[MAX_BLK_SIZE]; diff --git a/src/n64dd/z_n64dd.c b/src/n64dd/z_n64dd.c index ea1b73249e..4c896b5873 100644 --- a/src/n64dd/z_n64dd.c +++ b/src/n64dd/z_n64dd.c @@ -36,7 +36,7 @@ typedef struct struct_801D9B90 { s32 func_801C7A1C(struct_801E0D18* arg0); -void* D_801D2E50 = &B_801DC000; +void* D_801D2E50 = &gN64DDDiskReadTemporaryBuffer; s32 (*D_801D2E54)(struct_801E0D18*) = func_801C7A1C; struct_801D9B90 B_801D9B90; From fd299cc72b88a3d3a7dd5caa31c5738ec6e08fe1 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Sun, 25 Jan 2026 18:39:59 -0500 Subject: [PATCH 09/27] Document `BgSpot18Basket` (#2688) --- .../ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c | 284 +++++++++--------- .../ovl_Bg_Spot18_Basket/z_bg_spot18_basket.h | 20 +- 2 files changed, 157 insertions(+), 147 deletions(-) diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c index 51bccf7ca0..0fb4bc9842 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c @@ -1,3 +1,9 @@ +/* + * File: z_bg_spot18_basket.c + * Overlay: ovl_Bg_Spot18_Basket + * Description: Goron Vase + */ + #include "z_bg_spot18_basket.h" #include "libc64/qrand.h" @@ -24,18 +30,18 @@ void BgSpot18Basket_Destroy(Actor* thisx, PlayState* play); void BgSpot18Basket_Update(Actor* thisx, PlayState* play); void BgSpot18Basket_Draw(Actor* thisx, PlayState* play); -void func_808B7BCC(BgSpot18Basket* this, PlayState* play); -void func_808B7AEC(BgSpot18Basket* this); -void func_808B7B58(BgSpot18Basket* this); -void func_808B7BB0(BgSpot18Basket* this); -void func_808B7D38(BgSpot18Basket* this); -void func_808B7F74(BgSpot18Basket* this); -void func_808B818C(BgSpot18Basket* this); -void func_808B7AFC(BgSpot18Basket* this, PlayState* play); -void func_808B7B6C(BgSpot18Basket* this, PlayState* play); -void func_808B7D50(BgSpot18Basket* this, PlayState* play); -void func_808B7FC0(BgSpot18Basket* this, PlayState* play); -void func_808B81A0(BgSpot18Basket* this, PlayState* play); +void BgSpot18Basket_Spinning(BgSpot18Basket* this, PlayState* play); +void BgSpot18Basket_SetupInactive(BgSpot18Basket* this); +void BgSpot18Basket_SetupActivation(BgSpot18Basket* this); +void BgSpot18Basket_SetupSpinning(BgSpot18Basket* this); +void BgSpot18Basket_SetupExplosionCs(BgSpot18Basket* this); +void BgSpot18Basket_SetupStopping(BgSpot18Basket* this); +void BgSpot18Basket_SetupGivingPrize(BgSpot18Basket* this); +void BgSpot18Basket_Inactive(BgSpot18Basket* this, PlayState* play); +void BgSpot18Basket_Activation(BgSpot18Basket* this, PlayState* play); +void BgSpot18Basket_ExplosionCs(BgSpot18Basket* this, PlayState* play); +void BgSpot18Basket_Stopping(BgSpot18Basket* this, PlayState* play); +void BgSpot18Basket_GivingPrize(BgSpot18Basket* this, PlayState* play); ActorProfile Bg_Spot18_Basket_Profile = { /**/ ACTOR_BG_SPOT18_BASKET, @@ -87,9 +93,9 @@ static ColliderJntSphInit sJntSphInit = { sJntSphElementsInit, }; -static s16 D_808B85C8[] = { 0x8000, 0x2AAA, 0xD555, 0x0000 }; +static s16 sGoronVaseStoppedRotY[] = { 0x8000, 0x2AAA, 0xD555, 0x0000 }; -void func_808B7710(Actor* thisx, PlayState* play) { +void BgSpot18Basket_InitColliderJntSph(Actor* thisx, PlayState* play) { BgSpot18Basket* this = (BgSpot18Basket*)thisx; Collider_InitJntSph(play, &this->colliderJntSph); @@ -97,8 +103,8 @@ void func_808B7710(Actor* thisx, PlayState* play) { this->dyna.actor.colChkInfo.mass = MASS_IMMOVABLE; } -void func_808B7770(BgSpot18Basket* this, PlayState* play, f32 arg2) { - static s16 D_808B85D0 = 0; +void BgSpot18Basket_SpawnDustClouds(BgSpot18Basket* this, PlayState* play, f32 spawnRate) { + static s16 spawnPos = 0; Vec3f acceleration; Vec3f velocity; Vec3f position; @@ -108,14 +114,14 @@ void func_808B7770(BgSpot18Basket* this, PlayState* play, f32 arg2) { f32 sinValue; for (i = 0; i != 2; i++) { - if (arg2 < Rand_ZeroOne()) { + if (spawnRate < Rand_ZeroOne()) { continue; } - D_808B85D0 += 0x7530; + spawnPos += 0x7530; - sinValue = Math_SinS(D_808B85D0); - cosValue = Math_CosS(D_808B85D0); + sinValue = Math_SinS(spawnPos); + cosValue = Math_CosS(spawnPos); randomValue = (Rand_ZeroOne() * 35.0f) + 35.0f; @@ -149,7 +155,7 @@ void BgSpot18Basket_Init(Actor* thisx, PlayState* play) { CollisionHeader* colHeader = NULL; DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS | DYNA_TRANSFORM_ROT_Y); - func_808B7710(&this->dyna.actor, play); + BgSpot18Basket_InitColliderJntSph(&this->dyna.actor, play); CollisionHeader_GetVirtual(&gGoronCityVaseCol, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); @@ -160,11 +166,11 @@ void BgSpot18Basket_Init(Actor* thisx, PlayState* play) { this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y; if (Flags_GetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 8, 6))) { - func_808B7BB0(this); + BgSpot18Basket_SetupSpinning(this); return; } - func_808B7AEC(this); + BgSpot18Basket_SetupInactive(this); Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, ACTOR_BG_SPOT18_FUTA, this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, this->dyna.actor.shape.rot.x, this->dyna.actor.shape.rot.y + 0x1555, this->dyna.actor.shape.rot.z, -1); @@ -185,50 +191,52 @@ void BgSpot18Basket_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyJntSph(play, &this->colliderJntSph); } -void func_808B7AEC(BgSpot18Basket* this) { - this->actionFunc = func_808B7AFC; +void BgSpot18Basket_SetupInactive(BgSpot18Basket* this) { + this->actionFunc = BgSpot18Basket_Inactive; } -void func_808B7AFC(BgSpot18Basket* this, PlayState* play) { +void BgSpot18Basket_Inactive(BgSpot18Basket* this, PlayState* play) { if (Flags_GetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 8, 6))) { OnePointCutscene_Init(play, 4220, 80, &this->dyna.actor, CAM_ID_MAIN); - func_808B7B58(this); + BgSpot18Basket_SetupActivation(this); } } -void func_808B7B58(BgSpot18Basket* this) { - this->actionFunc = func_808B7B6C; - this->unk_216 = 0; +void BgSpot18Basket_SetupActivation(BgSpot18Basket* this) { + this->actionFunc = BgSpot18Basket_Activation; + this->timer = 0; } -void func_808B7B6C(BgSpot18Basket* this, PlayState* play) { - if (this->unk_216 > 20) { - func_808B7BB0(this); +void BgSpot18Basket_Activation(BgSpot18Basket* this, PlayState* play) { + if (this->timer > 20) { + BgSpot18Basket_SetupSpinning(this); this->dyna.actor.child->parent = NULL; this->dyna.actor.child = NULL; } } -void func_808B7BB0(BgSpot18Basket* this) { - this->actionFunc = func_808B7BCC; - this->unk_210 = this->unk_20C = 0; +void BgSpot18Basket_SetupSpinning(BgSpot18Basket* this) { + this->actionFunc = BgSpot18Basket_Spinning; + this->spinRate = this->circleRate = 0; } -void func_808B7BCC(BgSpot18Basket* this, PlayState* play) { +void BgSpot18Basket_Spinning(BgSpot18Basket* this, PlayState* play) { f32 positionDiff; Actor* colliderBaseAc; - Math_StepToS(&this->unk_210, 0x1F4, 0x1E); + Math_StepToS(&this->spinRate, 0x1F4, 0x1E); - this->dyna.actor.shape.rot.y += this->unk_210; + this->dyna.actor.shape.rot.y += this->spinRate; - Math_StepToF(&this->unk_208, 50.0f, 1.5f); - Math_StepToS(&this->unk_20C, 400, 15); + Math_StepToF(&this->circleRadius, 50.0f, 1.5f); + Math_StepToS(&this->circleRate, 400, 15); - this->unk_20E += this->unk_20C; + this->circleMoveAngle += this->circleRate; - this->dyna.actor.world.pos.x = (Math_SinS(this->unk_20E) * this->unk_208) + this->dyna.actor.home.pos.x; - this->dyna.actor.world.pos.z = (Math_CosS(this->unk_20E) * this->unk_208) + this->dyna.actor.home.pos.z; + this->dyna.actor.world.pos.x = + (Math_SinS(this->circleMoveAngle) * this->circleRadius) + this->dyna.actor.home.pos.x; + this->dyna.actor.world.pos.z = + (Math_CosS(this->circleMoveAngle) * this->circleRadius) + this->dyna.actor.home.pos.z; if (this->colliderJntSph.base.acFlags & AC_HIT) { colliderBaseAc = this->colliderJntSph.base.ac; @@ -240,7 +248,7 @@ void func_808B7BCC(BgSpot18Basket* this, PlayState* play) { if (Math3D_Dist2DSq(colliderBaseAc->world.pos.z, this->colliderJntSph.base.ac->world.pos.x, this->dyna.actor.world.pos.z, this->dyna.actor.world.pos.x) < SQ(32.0f)) { OnePointCutscene_Init(play, 4210, 240, &this->dyna.actor, CAM_ID_MAIN); - func_808B7D38(this); + BgSpot18Basket_SetupExplosionCs(this); DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); } } @@ -249,191 +257,193 @@ void func_808B7BCC(BgSpot18Basket* this, PlayState* play) { Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG); } -void func_808B7D38(BgSpot18Basket* this) { - this->actionFunc = func_808B7D50; - this->unk_216 = 0; - this->unk_214 = 0; +void BgSpot18Basket_SetupExplosionCs(BgSpot18Basket* this) { + this->actionFunc = BgSpot18Basket_ExplosionCs; + this->timer = 0; + this->pivotAltitude = 0; } -void func_808B7D50(BgSpot18Basket* this, PlayState* play) { - if (this->unk_216 > 120) { - Math_StepToS(&this->unk_210, 0x3E8, 0x32); +void BgSpot18Basket_ExplosionCs(BgSpot18Basket* this, PlayState* play) { + if (this->timer > 120) { + Math_StepToS(&this->spinRate, 0x3E8, 0x32); } else { - Math_StepToS(&this->unk_210, 0xBB8, 0x64); + Math_StepToS(&this->spinRate, 0xBB8, 0x64); } - this->dyna.actor.shape.rot.y += this->unk_210; + this->dyna.actor.shape.rot.y += this->spinRate; - if (this->unk_216 < 70) { - Math_StepToF(&this->unk_208, 100.0f, 2.0f); + if (this->timer < 70) { + Math_StepToF(&this->circleRadius, 100.0f, 2.0f); } else { - Math_StepToF(&this->unk_208, 0.0f, 2.0f); + Math_StepToF(&this->circleRadius, 0.0f, 2.0f); } - Math_StepToS(&this->unk_20C, 1000, 20); + Math_StepToS(&this->circleRate, 1000, 20); - this->unk_20E += this->unk_20C; + this->circleMoveAngle += this->circleRate; - this->dyna.actor.world.pos.x = (Math_SinS(this->unk_20E) * this->unk_208) + this->dyna.actor.home.pos.x; - this->dyna.actor.world.pos.z = (Math_CosS(this->unk_20E) * this->unk_208) + this->dyna.actor.home.pos.z; + this->dyna.actor.world.pos.x = + (Math_SinS(this->circleMoveAngle) * this->circleRadius) + this->dyna.actor.home.pos.x; + this->dyna.actor.world.pos.z = + (Math_CosS(this->circleMoveAngle) * this->circleRadius) + this->dyna.actor.home.pos.z; - this->unk_212 += 0xBB8; + this->pivotAzimuth += 0xBB8; - Math_StepToS(&this->unk_214, 0x5DC, 0x1E); + Math_StepToS(&this->pivotAltitude, 0x5DC, 0x1E); - this->dyna.actor.shape.rot.x = Math_CosS(this->unk_212) * this->unk_214; - this->dyna.actor.shape.rot.z = -Math_SinS(this->unk_212) * this->unk_214; + this->dyna.actor.shape.rot.x = Math_CosS(this->pivotAzimuth) * this->pivotAltitude; + this->dyna.actor.shape.rot.z = -Math_SinS(this->pivotAzimuth) * this->pivotAltitude; - if (this->unk_216 > 140) { - func_808B7F74(this); + if (this->timer > 140) { + BgSpot18Basket_SetupStopping(this); } - if (this->unk_216 < 80) { - func_808B7770(this, play, 1.0f); + if (this->timer < 80) { + BgSpot18Basket_SpawnDustClouds(this, play, 1.0f); } else { - func_808B7770(this, play, 0.8f); + BgSpot18Basket_SpawnDustClouds(this, play, 0.8f); } { - f32 tempValue2 = (this->unk_210 - 500) * 0.0006f; - f32 tempValue = CLAMP(tempValue2, 0.0f, 1.5f); + f32 freqScale = (this->spinRate - 0x1F4) * 0.0006f; + f32 clampedFreqScale = CLAMP(freqScale, 0.0f, 1.5f); - func_800F436C(&this->dyna.actor.projectedPos, NA_SE_EV_WALL_MOVE_SP - SFX_FLAG, tempValue); + func_800F436C(&this->dyna.actor.projectedPos, NA_SE_EV_WALL_MOVE_SP - SFX_FLAG, clampedFreqScale); } } -void func_808B7F74(BgSpot18Basket* this) { +void BgSpot18Basket_SetupStopping(BgSpot18Basket* this) { s16 shapeRotY; shapeRotY = this->dyna.actor.shape.rot.y; - this->actionFunc = func_808B7FC0; + this->actionFunc = BgSpot18Basket_Stopping; if ((shapeRotY < -0x2E93) || (shapeRotY >= 0x7C19)) { - this->unk_218 = 2; + this->prize = 2; } else if (shapeRotY < 0x26C2) { - this->unk_218 = 1; + this->prize = 1; } else { - this->unk_218 = 0; + this->prize = 0; } - this->unk_216 = 0; + this->timer = 0; } -void func_808B7FC0(BgSpot18Basket* this, PlayState* play) { +void BgSpot18Basket_Stopping(BgSpot18Basket* this, PlayState* play) { s32 pad; - s32 tempUnk214; - s16 arrayValue; + s32 tempAltitude; + s16 stoppedRotY; - this->unk_212 += 0xBB8; + this->pivotAzimuth += 0xBB8; - if (this->unk_216 >= 13) { - tempUnk214 = Math_StepToS(&this->unk_214, 0, 55); + if (this->timer >= 13) { + tempAltitude = Math_StepToS(&this->pivotAltitude, 0, 55); } else { - tempUnk214 = 0; + tempAltitude = 0; } - this->dyna.actor.shape.rot.x = Math_CosS(this->unk_212) * this->unk_214; - this->dyna.actor.shape.rot.z = -Math_SinS(this->unk_212) * this->unk_214; + this->dyna.actor.shape.rot.x = Math_CosS(this->pivotAzimuth) * this->pivotAltitude; + this->dyna.actor.shape.rot.z = -Math_SinS(this->pivotAzimuth) * this->pivotAltitude; - Math_StepToS(&this->unk_210, 0x1F4, 0xA); - this->dyna.actor.shape.rot.y += this->unk_210; + Math_StepToS(&this->spinRate, 0x1F4, 0xA); + this->dyna.actor.shape.rot.y += this->spinRate; - if (tempUnk214 != 0) { - arrayValue = D_808B85C8[this->unk_218]; + if (tempAltitude != 0) { + stoppedRotY = sGoronVaseStoppedRotY[this->prize]; - if ((s16)(this->dyna.actor.shape.rot.y - arrayValue) >= 0) { - this->dyna.actor.shape.rot.y = arrayValue; + if ((s16)(this->dyna.actor.shape.rot.y - stoppedRotY) >= 0) { + this->dyna.actor.shape.rot.y = stoppedRotY; - func_808B818C(this); + BgSpot18Basket_SetupGivingPrize(this); DynaPoly_EnableCollision(play, &play->colCtx.dyna, this->dyna.bgId); } } - if (this->unk_216 < 30) { - func_808B7770(this, play, 0.5f); + if (this->timer < 30) { + BgSpot18Basket_SpawnDustClouds(this, play, 0.5f); } else { - func_808B7770(this, play, 0.3f); + BgSpot18Basket_SpawnDustClouds(this, play, 0.3f); } { - f32 tempUnk210 = (this->unk_210 - 500) * 0.0006f; - f32 clampedTempUnk210 = CLAMP(tempUnk210, 0.0f, 1.5f); + f32 freqScale = (this->spinRate - 0x1F4) * 0.0006f; + f32 clampedFreqScale = CLAMP(freqScale, 0.0f, 1.5f); - func_800F436C(&this->dyna.actor.projectedPos, NA_SE_EV_WALL_MOVE_SP - SFX_FLAG, clampedTempUnk210); + func_800F436C(&this->dyna.actor.projectedPos, NA_SE_EV_WALL_MOVE_SP - SFX_FLAG, clampedFreqScale); } } -void func_808B818C(BgSpot18Basket* this) { - this->actionFunc = func_808B81A0; - this->unk_216 = 0; +void BgSpot18Basket_SetupGivingPrize(BgSpot18Basket* this) { + this->actionFunc = BgSpot18Basket_GivingPrize; + this->timer = 0; } -static s16 D_808B85E4[] = { -0x0FA0, 0x0320, 0x0FA0 }; +static s16 sGoronVaseCollectibleRotY[] = { -0x0FA0, 0x0320, 0x0FA0 }; -void func_808B81A0(BgSpot18Basket* this, PlayState* play) { +void BgSpot18Basket_GivingPrize(BgSpot18Basket* this, PlayState* play) { s32 i; Actor* actor = &this->dyna.actor; - Vec3f tempVector; + Vec3f spawnPos; EnItem00* collectible; - if (this->unk_216 == 1) { - tempVector.x = actor->world.pos.x; - tempVector.y = actor->world.pos.y + 170.0f; - tempVector.z = actor->world.pos.z; + if (this->timer == 1) { + spawnPos.x = actor->world.pos.x; + spawnPos.y = actor->world.pos.y + 170.0f; + spawnPos.z = actor->world.pos.z; - if (this->unk_218 == 0) { - for (i = 0; i < ARRAY_COUNT(D_808B85E4); i++) { - collectible = Item_DropCollectible(play, &tempVector, ITEM00_BOMBS_A); + if (this->prize == 0) { + for (i = 0; i < ARRAY_COUNT(sGoronVaseCollectibleRotY); i++) { + collectible = Item_DropCollectible(play, &spawnPos, ITEM00_BOMBS_A); if (collectible != NULL) { collectible->actor.velocity.y = 11.0f; - collectible->actor.world.rot.y = D_808B85E4[i]; + collectible->actor.world.rot.y = sGoronVaseCollectibleRotY[i]; } } - } else if (this->unk_218 == 1) { - for (i = 0; i < ARRAY_COUNT(D_808B85E4); i++) { - collectible = Item_DropCollectible(play, &tempVector, ITEM00_RUPEE_GREEN); + } else if (this->prize == 1) { + for (i = 0; i < ARRAY_COUNT(sGoronVaseCollectibleRotY); i++) { + collectible = Item_DropCollectible(play, &spawnPos, ITEM00_RUPEE_GREEN); if (collectible != NULL) { collectible->actor.velocity.y = 11.0f; - collectible->actor.world.rot.y = D_808B85E4[i]; + collectible->actor.world.rot.y = sGoronVaseCollectibleRotY[i]; } } - } else if (this->unk_218 == 2) { - if ((this->unk_21A != 0) || Flags_GetCollectible(play, PARAMS_GET_U(actor->params, 0, 6))) { - collectible = Item_DropCollectible(play, &tempVector, ITEM00_RUPEE_PURPLE); + } else if (this->prize == 2) { + if ((this->isHeartPieceGiven) || Flags_GetCollectible(play, PARAMS_GET_U(actor->params, 0, 6))) { + collectible = Item_DropCollectible(play, &spawnPos, ITEM00_RUPEE_PURPLE); if (collectible != NULL) { collectible->actor.velocity.y = 11.0f; - collectible->actor.world.rot.y = D_808B85E4[1]; + collectible->actor.world.rot.y = sGoronVaseCollectibleRotY[1]; } } else { - collectible = Item_DropCollectible(play, &tempVector, + collectible = Item_DropCollectible(play, &spawnPos, (PARAMS_GET_U(actor->params, 0, 6) << 8) | ITEM00_HEART_PIECE); if (collectible != NULL) { collectible->actor.velocity.y = 11.0f; - collectible->actor.world.rot.y = D_808B85E4[1]; - this->unk_21A = 1; + collectible->actor.world.rot.y = sGoronVaseCollectibleRotY[1]; + this->isHeartPieceGiven = true; } } - collectible = Item_DropCollectible(play, &tempVector, ITEM00_RUPEE_RED); + collectible = Item_DropCollectible(play, &spawnPos, ITEM00_RUPEE_RED); if (collectible != NULL) { collectible->actor.velocity.y = 11.0f; - collectible->actor.world.rot.y = D_808B85E4[0]; + collectible->actor.world.rot.y = sGoronVaseCollectibleRotY[0]; } - collectible = Item_DropCollectible(play, &tempVector, ITEM00_RUPEE_BLUE); + collectible = Item_DropCollectible(play, &spawnPos, ITEM00_RUPEE_BLUE); if (collectible != NULL) { collectible->actor.velocity.y = 11.0f; - collectible->actor.world.rot.y = D_808B85E4[2]; + collectible->actor.world.rot.y = sGoronVaseCollectibleRotY[2]; } } - } else if (this->unk_216 == 2) { - if (this->unk_218 == 2) { + } else if (this->timer == 2) { + if (this->prize == 2) { Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); } else { Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR); } - } else if (this->unk_216 == 200) { - func_808B7BB0(this); + } else if (this->timer == 200) { + BgSpot18Basket_SetupSpinning(this); } } @@ -442,13 +452,13 @@ void BgSpot18Basket_Update(Actor* thisx, PlayState* play) { BgSpot18Basket* this = (BgSpot18Basket*)thisx; s32 bgId; - this->unk_216++; + this->timer++; this->actionFunc(this, play); this->dyna.actor.floorHeight = BgCheck_EntityRaycastDown4(&play->colCtx, &this->dyna.actor.floorPoly, &bgId, &this->dyna.actor, &this->dyna.actor.world.pos); - if (this->actionFunc != func_808B7AFC) { + if (this->actionFunc != BgSpot18Basket_Inactive) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderJntSph.base); - if (this->actionFunc != func_808B7B6C) { + if (this->actionFunc != BgSpot18Basket_Activation) { this->colliderJntSph.base.acFlags &= ~AC_HIT; CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base); } diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.h b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.h index 6b4c85bceb..631847514a 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.h +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.h @@ -13,16 +13,16 @@ typedef struct BgSpot18Basket { /* 0x0164 */ ColliderJntSph colliderJntSph; /* 0x0184 */ ColliderJntSphElement colliderJntSphElements[2]; /* 0x0204 */ BgSpot18BasketActionFunc actionFunc; - /* 0x0208 */ f32 unk_208; - /* 0x020C */ s16 unk_20C; - /* 0x020E */ s16 unk_20E; - /* 0x0210 */ s16 unk_210; - /* 0x0212 */ s16 unk_212; - /* 0x0214 */ s16 unk_214; - /* 0x0216 */ s16 unk_216; - /* 0x0218 */ s16 unk_218; - /* 0x021A */ u8 unk_21A; - /* 0x021B */ u8 unk_21B; + /* 0x0208 */ f32 circleRadius; + /* 0x020C */ s16 circleRate; + /* 0x020E */ s16 circleMoveAngle; + /* 0x0210 */ s16 spinRate; + /* 0x0212 */ s16 pivotAzimuth; + /* 0x0214 */ s16 pivotAltitude; + /* 0x0216 */ s16 timer; + /* 0x0218 */ s16 prize; + /* 0x021A */ u8 isHeartPieceGiven; + /* 0x021B */ u8 pad; } BgSpot18Basket; // size = 0x021C #endif From 845d6458b02549b2c05fff8590bcc9b4cfbdf270 Mon Sep 17 00:00:00 2001 From: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> Date: Wed, 28 Jan 2026 00:23:36 +0100 Subject: [PATCH 10/27] Commit code assets (#2691) * Commit code assets * Have different ifdefs * Move to code files * Missed an include * Prevent code assets from having their source unnecessarily written --- src/code/z_fbdemo_circle.c | 33 ++++++++++++++++++++++++++- src/code/z_fbdemo_triforce.c | 9 +++++++- src/code/z_fbdemo_wipe1.c | 15 +++++++++++- tools/assets/extract/write_source.txt | 3 --- 4 files changed, 54 insertions(+), 6 deletions(-) diff --git a/src/code/z_fbdemo_circle.c b/src/code/z_fbdemo_circle.c index eb66a2fab8..a83e7ed45e 100644 --- a/src/code/z_fbdemo_circle.c +++ b/src/code/z_fbdemo_circle.c @@ -3,6 +3,7 @@ #include "color.h" #include "gfx.h" #include "sfx.h" +#include "tex_len.h" #include "transition.h" typedef enum TransitionCircleDirection { @@ -15,7 +16,37 @@ Gfx sTransCircleEmptyDL[] = { gsSPEndDisplayList(), }; -#include "assets/code/fbdemo_circle/code.c" +#define sTransCircleNormalTex_WIDTH 16 +#define sTransCircleNormalTex_HEIGHT 64 +u64 sTransCircleNormalTex[TEX_LEN(u64, sTransCircleNormalTex_WIDTH, sTransCircleNormalTex_HEIGHT, 8)] = { +#include "assets/code/fbdemo_circle/sTransCircleNormalTex.i8.inc.c" +}; + +#define sTransCircleWaveTex_WIDTH 16 +#define sTransCircleWaveTex_HEIGHT 64 +u64 sTransCircleWaveTex[TEX_LEN(u64, sTransCircleWaveTex_WIDTH, sTransCircleWaveTex_HEIGHT, 8)] = { +#include "assets/code/fbdemo_circle/sTransCircleWaveTex.i8.inc.c" +}; + +#define sTransCircleRippleTex_WIDTH 16 +#define sTransCircleRippleTex_HEIGHT 64 +u64 sTransCircleRippleTex[TEX_LEN(u64, sTransCircleRippleTex_WIDTH, sTransCircleRippleTex_HEIGHT, 8)] = { +#include "assets/code/fbdemo_circle/sTransCircleRippleTex.i8.inc.c" +}; + +#define sTransCircleStarburstTex_WIDTH 16 +#define sTransCircleStarburstTex_HEIGHT 64 +u64 sTransCircleStarburstTex[TEX_LEN(u64, sTransCircleStarburstTex_WIDTH, sTransCircleStarburstTex_HEIGHT, 8)] = { +#include "assets/code/fbdemo_circle/sTransCircleStarburstTex.i8.inc.c" +}; + +Vtx sTransCircleVtx[34] = { +#include "assets/code/fbdemo_circle/sTransCircleVtx.inc.c" +}; + +Gfx sTransCircleDL[26] = { +#include "assets/code/fbdemo_circle/sTransCircleDL.inc.c" +}; void TransitionCircle_Start(void* thisx) { TransitionCircle* this = (TransitionCircle*)thisx; diff --git a/src/code/z_fbdemo_triforce.c b/src/code/z_fbdemo_triforce.c index b1a5b2e679..efcf214d5b 100644 --- a/src/code/z_fbdemo_triforce.c +++ b/src/code/z_fbdemo_triforce.c @@ -1,10 +1,17 @@ #include "transition_triforce.h" +#include "gfx.h" #include "printf.h" #include "z_math.h" #include "transition_instances.h" -#include "assets/code/fbdemo_triforce/code.c" +Gfx sTransTriforceDL[6] = { +#include "assets/code/fbdemo_triforce/sTransTriforceDL.inc.c" +}; + +Vtx sTransTriforceVtx[10] = { +#include "assets/code/fbdemo_triforce/sTransTriforceVtx.inc.c" +}; void TransitionTriforce_Start(void* thisx) { TransitionTriforce* this = (TransitionTriforce*)thisx; diff --git a/src/code/z_fbdemo_wipe1.c b/src/code/z_fbdemo_wipe1.c index 6a5dd62e5c..f8c38d117a 100644 --- a/src/code/z_fbdemo_wipe1.c +++ b/src/code/z_fbdemo_wipe1.c @@ -2,6 +2,7 @@ #include "gfx.h" #include "save.h" +#include "tex_len.h" #include "transition_instances.h" typedef enum TransitionWipeDirection { @@ -9,7 +10,19 @@ typedef enum TransitionWipeDirection { /* 1 */ TRANS_WIPE_DIR_OUT } TransitionWipeDirection; -#include "assets/code/fbdemo_wipe1/code.c" +Vtx sTransWipeVtx[25] = { +#include "assets/code/fbdemo_wipe1/sTransWipeVtx.inc.c" +}; + +#define sTransWipeTex_WIDTH 64 +#define sTransWipeTex_HEIGHT 64 +u64 sTransWipeTex[TEX_LEN(u64, sTransWipeTex_WIDTH, sTransWipeTex_HEIGHT, 4)] = { +#include "assets/code/fbdemo_wipe1/sTransWipeTex.i4.inc.c" +}; + +Gfx sTransWipeDL[31] = { +#include "assets/code/fbdemo_wipe1/sTransWipeDL.inc.c" +}; // unused. Gfx sTransWipeSyncDL[] = { diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt index e4171fb6a1..9f9c87599a 100644 --- a/tools/assets/extract/write_source.txt +++ b/tools/assets/extract/write_source.txt @@ -1,6 +1,3 @@ -assets/code/fbdemo_circle/code.c -assets/code/fbdemo_triforce/code.c -assets/code/fbdemo_wipe1/code.c assets/misc/link_animetion/link_animetion.c assets/misc/z_select_static/z_select_static.c assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.c From ebbabb7d91f97b75cf52984961012562290d52a7 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Thu, 12 Feb 2026 18:22:21 -0500 Subject: [PATCH 11/27] Document `EnWeiyer` (#2686) * Document `EnWeiyer` * Rename function --- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 302 +++++++++--------- .../actors/ovl_En_Weiyer/z_en_weiyer.h | 8 +- 2 files changed, 155 insertions(+), 155 deletions(-) diff --git a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c index 919eb6bd75..78a284a881 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -26,17 +26,17 @@ void EnWeiyer_Destroy(Actor* thisx, PlayState* play); void EnWeiyer_Update(Actor* thisx, PlayState* play); void EnWeiyer_Draw(Actor* thisx, PlayState* play); -void func_80B32804(EnWeiyer* this, PlayState* play); -void func_80B328E8(EnWeiyer* this, PlayState* play); -void func_80B32C2C(EnWeiyer* this, PlayState* play); -void func_80B32D30(EnWeiyer* this, PlayState* play); -void func_80B32E34(EnWeiyer* this, PlayState* play); -void func_80B33018(EnWeiyer* this, PlayState* play); -void func_80B331CC(EnWeiyer* this, PlayState* play); -void func_80B333B8(EnWeiyer* this, PlayState* play); -void func_80B332B4(EnWeiyer* this, PlayState* play); -void func_80B33338(EnWeiyer* this, PlayState* play); -void func_80B3349C(EnWeiyer* this, PlayState* play); +void EnWeiyer_InitInsideWaterBox(EnWeiyer* this, PlayState* play); +void EnWeiyer_FreeSwim(EnWeiyer* this, PlayState* play); +void EnWeiyer_TurnAround(EnWeiyer* this, PlayState* play); +void EnWeiyer_StuckOnFloor(EnWeiyer* this, PlayState* play); +void EnWeiyer_Attack(EnWeiyer* this, PlayState* play); +void EnWeiyer_Inactive(EnWeiyer* this, PlayState* play); +void EnWeiyer_Hurt(EnWeiyer* this, PlayState* play); +void EnWeiyer_Stunned(EnWeiyer* this, PlayState* play); +void EnWeiyer_Die(EnWeiyer* this, PlayState* play); +void EnWeiyer_Dead(EnWeiyer* this, PlayState* play); +void EnWeiyer_OutOfWater(EnWeiyer* this, PlayState* play); ActorProfile En_Weiyer_Profile = { /**/ ACTOR_EN_WEIYER, @@ -122,7 +122,7 @@ void EnWeiyer_Init(Actor* thisx, PlayState* play) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); - this->actionFunc = func_80B32804; + this->actionFunc = EnWeiyer_InitInsideWaterBox; } void EnWeiyer_Destroy(Actor* thisx, PlayState* play) { @@ -131,52 +131,52 @@ void EnWeiyer_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyCylinder(play, &this->collider); } -void func_80B32384(EnWeiyer* this) { - this->unk_196 = this->actor.shape.rot.y; - this->unk_27C = (cosf(-M_PI / 8) * 3.0f) + this->actor.world.pos.y; +void EnWeiyer_SetupFreeSwim(EnWeiyer* this) { + this->targetYaw = this->actor.shape.rot.y; + this->swimHeight = (cosf(-M_PI / 8) * 3.0f) + this->actor.world.pos.y; Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f); - this->unk_194 = 30; + this->timer = 30; this->actor.speed = CLAMP_MAX(this->actor.speed, 2.5f); this->collider.base.atFlags &= ~AT_ON; - this->unk_280 = this->actor.floorHeight; - this->actionFunc = func_80B328E8; + this->targetSwimHeight = this->actor.floorHeight; + this->actionFunc = EnWeiyer_FreeSwim; } -void func_80B32434(EnWeiyer* this) { +void EnWeiyer_SetupTurnAround(EnWeiyer* this) { Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f); this->collider.base.atFlags |= AT_ON; - this->unk_194 = 0; + this->timer = 0; this->actor.speed = 5.0f; - this->actionFunc = func_80B32C2C; + this->actionFunc = EnWeiyer_TurnAround; } -void func_80B32494(EnWeiyer* this) { +void EnWeiyer_SetupStuckOnFloor(EnWeiyer* this) { Animation_Change(&this->skelAnime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f); - this->unk_194 = 40; + this->timer = 40; this->collider.base.atFlags |= AT_ON; - this->actionFunc = func_80B32D30; + this->actionFunc = EnWeiyer_StuckOnFloor; } -void func_80B32508(EnWeiyer* this) { - this->unk_194 = 200; +void EnWeiyer_SetupAttack(EnWeiyer* this) { + this->timer = 200; this->collider.base.atFlags |= AT_ON; this->skelAnime.playSpeed = 3.0f; - this->actionFunc = func_80B32E34; + this->actionFunc = EnWeiyer_Attack; } -void func_80B32538(EnWeiyer* this) { - this->unk_194 = 200; - this->unk_196 = this->actor.yawTowardsPlayer + 0x8000; - this->unk_27C = this->actor.world.pos.y; +void EnWeiyer_SetupInactive(EnWeiyer* this) { + this->timer = 200; + this->targetYaw = this->actor.yawTowardsPlayer + 0x8000; + this->swimHeight = this->actor.world.pos.y; this->actor.speed = CLAMP_MAX(this->actor.speed, 4.0f); this->collider.base.atFlags &= ~AT_ON; this->skelAnime.playSpeed = 1.0f; - this->actionFunc = func_80B33018; + this->actionFunc = EnWeiyer_Inactive; } -void func_80B325A0(EnWeiyer* this) { +void EnWeiyer_SetupHurt(EnWeiyer* this) { Animation_Change(&this->skelAnime, &gStingerHitAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -3.0f); - this->unk_194 = 40; + this->timer = 40; this->collider.base.atFlags &= ~AT_ON; this->collider.base.acFlags &= ~AC_ON; this->actor.gravity = 0.0f; @@ -184,12 +184,12 @@ void func_80B325A0(EnWeiyer* this) { this->actor.speed = 3.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40); this->collider.dim.height = sCylinderInit.dim.height; - this->actionFunc = func_80B331CC; + this->actionFunc = EnWeiyer_Hurt; } -void func_80B32660(EnWeiyer* this) { +void EnWeiyer_SetupStunned(EnWeiyer* this) { Animation_Change(&this->skelAnime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f); - this->unk_194 = 80; + this->timer = 80; this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -1.0f; @@ -197,34 +197,34 @@ void func_80B32660(EnWeiyer* this) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 200, COLORFILTER_BUFFLAG_OPA, 80); this->collider.base.atFlags &= ~AT_ON; Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE); - this->actionFunc = func_80B333B8; + this->actionFunc = EnWeiyer_Stunned; } -void func_80B32724(EnWeiyer* this) { +void EnWeiyer_SetupDie(EnWeiyer* this) { Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f); - this->unk_194 = 20; + this->timer = 20; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40); this->collider.base.atFlags &= ~AT_ON; this->collider.base.acFlags &= ~AC_ON; this->actor.speed = 3.0f; - this->actionFunc = func_80B332B4; + this->actionFunc = EnWeiyer_Die; } -void func_80B327B0(EnWeiyer* this) { +void EnWeiyer_SetupDead(EnWeiyer* this) { this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.colorFilterParams |= 0x2000; - this->actionFunc = func_80B33338; + this->actionFunc = EnWeiyer_Dead; } -void func_80B327D8(EnWeiyer* this) { +void EnWeiyer_SetupOutOfWater(EnWeiyer* this) { this->actor.shape.rot.x = -0x2000; - this->unk_194 = -1; + this->timer = -1; this->actor.speed = 5.0f; - this->actionFunc = func_80B3349C; + this->actionFunc = EnWeiyer_OutOfWater; } -void func_80B32804(EnWeiyer* this, PlayState* play) { +void EnWeiyer_InitInsideWaterBox(EnWeiyer* this, PlayState* play) { WaterBox* waterBox; s32 bgId; @@ -239,20 +239,20 @@ void func_80B32804(EnWeiyer* this, PlayState* play) { } else { this->actor.home.pos.y -= 5.0f; this->actor.world.pos.y = (this->actor.home.pos.y + this->actor.floorHeight) / 2.0f; - func_80B32384(this); + EnWeiyer_SetupFreeSwim(this); } } -void func_80B328E8(EnWeiyer* this, PlayState* play) { - s32 sp34; +void EnWeiyer_FreeSwim(EnWeiyer* this, PlayState* play) { + s32 animRestarted; f32 curFrame; SkelAnime_Update(&this->skelAnime); Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x800); - sp34 = Animation_OnFrame(&this->skelAnime, 0.0f); + animRestarted = Animation_OnFrame(&this->skelAnime, 0.0f); curFrame = this->skelAnime.curFrame; - Math_StepToF(&this->unk_27C, this->unk_280, 0.5f); - this->actor.world.pos.y = this->unk_27C - cosf((curFrame - 5.0f) * (M_PI / 40)) * 3.0f; + Math_StepToF(&this->swimHeight, this->targetSwimHeight, 0.5f); + this->actor.world.pos.y = this->swimHeight - cosf((curFrame - 5.0f) * (M_PI / 40)) * 3.0f; if (curFrame <= 45.0f) { Math_StepToF(&this->actor.speed, 1.0f, 0.03f); @@ -261,19 +261,19 @@ void func_80B328E8(EnWeiyer* this, PlayState* play) { } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - this->unk_196 = this->actor.wallYaw; - this->unk_194 = 30; + this->targetYaw = this->actor.wallYaw; + this->timer = 30; } - if (Math_ScaledStepToS(&this->actor.shape.rot.y, this->unk_196, 182)) { - if (this->unk_194 != 0) { - this->unk_194--; + if (Math_ScaledStepToS(&this->actor.shape.rot.y, this->targetYaw, 182)) { + if (this->timer != 0) { + this->timer--; } - if (this->unk_194 == 0) { - this->unk_196 = + if (this->timer == 0) { + this->targetYaw = Rand_S16Offset(0x2000, 0x2000) * ((Rand_ZeroOne() < 0.5f) ? -1 : 1) + this->actor.shape.rot.y; - this->unk_194 = 30; + this->timer = 30; if (Rand_ZeroOne() < 0.3333f) { Actor_PlaySfx(&this->actor, NA_SE_EN_EIER_CRY); @@ -283,38 +283,38 @@ void func_80B328E8(EnWeiyer* this, PlayState* play) { if (this->actor.home.pos.y < this->actor.world.pos.y) { if (this->actor.home.pos.y < this->actor.floorHeight) { - func_80B32434(this); + EnWeiyer_SetupTurnAround(this); } else { this->actor.world.pos.y = this->actor.home.pos.y; - this->unk_280 = + this->targetSwimHeight = Rand_ZeroOne() * ((this->actor.home.pos.y - this->actor.floorHeight) / 2.0f) + this->actor.floorHeight; } } else { Player* player = GET_PLAYER(play); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->unk_280 = + this->targetSwimHeight = this->actor.home.pos.y - Rand_ZeroOne() * ((this->actor.home.pos.y - this->actor.floorHeight) / 2.0f); - } else if (sp34 && (Rand_ZeroOne() < 0.1f)) { - this->unk_280 = + } else if (animRestarted && (Rand_ZeroOne() < 0.1f)) { + this->targetSwimHeight = Rand_ZeroOne() * (this->actor.home.pos.y - this->actor.floorHeight) + this->actor.floorHeight; } if ((this->actor.xzDistToPlayer < 400.0f) && (fabsf(this->actor.yDistToPlayer) < 250.0f) && (player->actor.world.pos.y < (this->actor.home.pos.y + 20.0f))) { - func_80B32508(this); + EnWeiyer_SetupAttack(this); } } } -void func_80B32C2C(EnWeiyer* this, PlayState* play) { +void EnWeiyer_TurnAround(EnWeiyer* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - if (this->unk_194 == 0) { + if (this->timer == 0) { if (Math_ScaledStepToS(&this->actor.shape.rot.x, -0x4000, 0x800)) { this->actor.shape.rot.z = 0; this->actor.shape.rot.y += 0x8000; - this->unk_194 = 1; + this->timer = 1; } else { this->actor.shape.rot.z = this->actor.shape.rot.x * 2; } @@ -327,14 +327,14 @@ void func_80B32C2C(EnWeiyer* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_OCTAROCK_SINK); } - func_80B32538(this); + EnWeiyer_SetupInactive(this); } else if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - func_80B32494(this); + EnWeiyer_SetupStuckOnFloor(this); } } } -void func_80B32D30(EnWeiyer* this, PlayState* play) { +void EnWeiyer_StuckOnFloor(EnWeiyer* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if (Animation_OnFrame(&this->skelAnime, 0.0f)) { @@ -344,40 +344,40 @@ void func_80B32D30(EnWeiyer* this, PlayState* play) { Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x800); Math_StepToF(&this->actor.speed, 0.0f, 1.0f); - if (this->unk_194 != 0) { - this->unk_194--; + if (this->timer != 0) { + this->timer--; } - if (this->unk_194 == 0) { - func_80B32434(this); + if (this->timer == 0) { + EnWeiyer_SetupTurnAround(this); } else if (this->actor.world.pos.y < this->actor.home.pos.y) { - func_80B32384(this); + EnWeiyer_SetupFreeSwim(this); } } -s16 func_80B32DEC(EnWeiyer* this, PlayState* play) { +s16 EnWeiyer_PitchTowardPlayer(EnWeiyer* this, PlayState* play) { Player* player = GET_PLAYER(play); - Vec3f vec; + Vec3f playerWorldPos; - vec.x = player->actor.world.pos.x; - vec.y = player->actor.world.pos.y + 20.0f; - vec.z = player->actor.world.pos.z; + playerWorldPos.x = player->actor.world.pos.x; + playerWorldPos.y = player->actor.world.pos.y + 20.0f; + playerWorldPos.z = player->actor.world.pos.z; - return Actor_WorldPitchTowardPoint(&this->actor, &vec); + return Actor_WorldPitchTowardPoint(&this->actor, &playerWorldPos); } -void func_80B32E34(EnWeiyer* this, PlayState* play) { +void EnWeiyer_Attack(EnWeiyer* this, PlayState* play) { Player* player = GET_PLAYER(play); SkelAnime_Update(&this->skelAnime); - if (this->unk_194 != 0) { - this->unk_194--; + if (this->timer != 0) { + this->timer--; } - if ((this->unk_194 == 0) || ((this->actor.home.pos.y + 20.0f) <= player->actor.world.pos.y) || + if ((this->timer == 0) || ((this->actor.home.pos.y + 20.0f) <= player->actor.world.pos.y) || (this->collider.base.atFlags & AT_HIT)) { - func_80B32538(this); + EnWeiyer_SetupInactive(this); } else { if (Actor_IsFacingPlayer(&this->actor, 0x2800)) { Math_StepToF(&this->actor.speed, 4.0f, 0.2f); @@ -388,34 +388,34 @@ void func_80B32E34(EnWeiyer* this, PlayState* play) { if (this->actor.home.pos.y < this->actor.world.pos.y) { if (this->actor.home.pos.y < this->actor.floorHeight) { this->actor.shape.rot.x = 0; - func_80B32434(this); + EnWeiyer_SetupTurnAround(this); return; } this->actor.world.pos.y = this->actor.home.pos.y; Math_SmoothStepToS(&this->actor.shape.rot.x, 0x1000, 2, 0x100, 0x40); } else { - Math_SmoothStepToS(&this->actor.shape.rot.x, func_80B32DEC(this, play), 2, 0x100, 0x40); + Math_SmoothStepToS(&this->actor.shape.rot.x, EnWeiyer_PitchTowardPlayer(this, play), 2, 0x100, 0x40); } Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 2, 0x200, 0x80); if ((player->actor.depthInWater < 50.0f) && (this->actor.depthInWater < 20.0f) && Actor_IsFacingPlayer(&this->actor, 0x2000)) { - func_80B327D8(this); + EnWeiyer_SetupOutOfWater(this); } } } -void func_80B33018(EnWeiyer* this, PlayState* play) { +void EnWeiyer_Inactive(EnWeiyer* this, PlayState* play) { f32 curFrame; SkelAnime_Update(&this->skelAnime); Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x800); curFrame = this->skelAnime.curFrame; - Math_StepToF(&this->unk_27C, (this->actor.home.pos.y - this->actor.floorHeight) / 4.0f + this->actor.floorHeight, + Math_StepToF(&this->swimHeight, (this->actor.home.pos.y - this->actor.floorHeight) / 4.0f + this->actor.floorHeight, 1.0f); - this->actor.world.pos.y = this->unk_27C - cosf((curFrame - 5.0f) * (M_PI / 40)) * 3.0f; + this->actor.world.pos.y = this->swimHeight - cosf((curFrame - 5.0f) * (M_PI / 40)) * 3.0f; if (curFrame <= 45.0f) { Math_StepToF(&this->actor.speed, 1.0f, 0.03f); @@ -423,70 +423,70 @@ void func_80B33018(EnWeiyer* this, PlayState* play) { Math_StepToF(&this->actor.speed, 1.3f, 0.03f); } - if (this->unk_194 != 0) { - this->unk_194--; + if (this->timer != 0) { + this->timer--; } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - this->unk_196 = this->actor.wallYaw; + this->targetYaw = this->actor.wallYaw; } - if (Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_196, 2, 0x200, 0x80) == 0) { - this->unk_196 = this->actor.yawTowardsPlayer + 0x8000; + if (Math_SmoothStepToS(&this->actor.shape.rot.y, this->targetYaw, 2, 0x200, 0x80) == 0) { + this->targetYaw = this->actor.yawTowardsPlayer + 0x8000; } if (this->actor.home.pos.y < this->actor.world.pos.y) { if (this->actor.home.pos.y < this->actor.floorHeight) { - func_80B32434(this); + EnWeiyer_SetupTurnAround(this); } else { this->actor.world.pos.y = this->actor.home.pos.y; } } - if (this->unk_194 == 0) { - func_80B32384(this); + if (this->timer == 0) { + EnWeiyer_SetupFreeSwim(this); } } -void func_80B331CC(EnWeiyer* this, PlayState* play) { +void EnWeiyer_Hurt(EnWeiyer* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - if (this->unk_194 != 0) { - this->unk_194--; + if (this->timer != 0) { + this->timer--; } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - this->unk_196 = this->actor.wallYaw; + this->targetYaw = this->actor.wallYaw; } else { - this->unk_196 = this->actor.yawTowardsPlayer + 0x8000; + this->targetYaw = this->actor.yawTowardsPlayer + 0x8000; } - Math_ScaledStepToS(&this->actor.world.rot.y, this->unk_196, 0x38E); + Math_ScaledStepToS(&this->actor.world.rot.y, this->targetYaw, 0x38E); Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x200); - this->actor.shape.rot.z = sinf(this->unk_194 * (M_PI / 5)) * 5120.0f; + this->actor.shape.rot.z = sinf(this->timer * (M_PI / 5)) * 5120.0f; - if (this->unk_194 == 0) { + if (this->timer == 0) { this->actor.shape.rot.z = 0; this->collider.base.acFlags |= AC_ON; - func_80B32384(this); + EnWeiyer_SetupFreeSwim(this); } } -void func_80B332B4(EnWeiyer* this, PlayState* play) { +void EnWeiyer_Die(EnWeiyer* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); Math_ScaledStepToS(&this->actor.shape.rot.x, -0x4000, 0x400); this->actor.shape.rot.z += 0x1000; - if (this->unk_194 != 0) { - this->unk_194--; + if (this->timer != 0) { + this->timer--; } - if ((this->unk_194 == 0) || (this->actor.bgCheckFlags & BGCHECKFLAG_CEILING)) { - func_80B327B0(this); + if ((this->timer == 0) || (this->actor.bgCheckFlags & BGCHECKFLAG_CEILING)) { + EnWeiyer_SetupDead(this); } } -void func_80B33338(EnWeiyer* this, PlayState* play) { +void EnWeiyer_Dead(EnWeiyer* this, PlayState* play) { this->actor.shape.shadowAlpha = CLAMP_MIN((s16)(this->actor.shape.shadowAlpha - 5), 0); this->actor.world.pos.y -= 2.0f; @@ -496,9 +496,9 @@ void func_80B33338(EnWeiyer* this, PlayState* play) { } } -void func_80B333B8(EnWeiyer* this, PlayState* play) { - if (this->unk_194 != 0) { - this->unk_194--; +void EnWeiyer_Stunned(EnWeiyer* this, PlayState* play) { + if (this->timer != 0) { + this->timer--; } Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x200); @@ -515,78 +515,78 @@ void func_80B333B8(EnWeiyer* this, PlayState* play) { } } - if (this->unk_194 == 0) { + if (this->timer == 0) { this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; this->collider.dim.height = sCylinderInit.dim.height; - func_80B32384(this); + EnWeiyer_SetupFreeSwim(this); } } -void func_80B3349C(EnWeiyer* this, PlayState* play) { +void EnWeiyer_OutOfWater(EnWeiyer* this, PlayState* play) { Player* player = GET_PLAYER(play); - s16 phi_a1; - s32 phi_a0; + s16 pitch; + s32 playerIsOutOfWater; SkelAnime_Update(&this->skelAnime); - phi_a0 = ((this->actor.home.pos.y + 20.0f) <= player->actor.world.pos.y); + playerIsOutOfWater = ((this->actor.home.pos.y + 20.0f) <= player->actor.world.pos.y); - if (this->unk_194 == -1) { - if (phi_a0 || (this->collider.base.atFlags & AT_HIT)) { - func_80B32538(this); + if (this->timer == -1) { + if (playerIsOutOfWater || (this->collider.base.atFlags & AT_HIT)) { + EnWeiyer_SetupInactive(this); } else if (this->actor.depthInWater < 0.0f) { - this->unk_194 = 10; + this->timer = 10; EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 1, 400); Actor_PlaySfx(&this->actor, NA_SE_EN_OCTAROCK_JUMP); } } else { - if (phi_a0 || (this->collider.base.atFlags & AT_HIT)) { - this->unk_194 = 0; - } else if (this->unk_194 != 0) { - this->unk_194--; + if (playerIsOutOfWater || (this->collider.base.atFlags & AT_HIT)) { + this->timer = 0; + } else if (this->timer != 0) { + this->timer--; } - if (this->unk_194 == 0) { - phi_a1 = 0x1800; + if (this->timer == 0) { + pitch = 0x1800; } else { - phi_a1 = func_80B32DEC(this, play); - phi_a1 = CLAMP_MIN(phi_a1, 0); + pitch = EnWeiyer_PitchTowardPlayer(this, play); + pitch = CLAMP_MIN(pitch, 0); } - if (this->actor.shape.rot.x < phi_a1) { - Math_ScaledStepToS(&this->actor.shape.rot.x, phi_a1, 0x400); + if (this->actor.shape.rot.x < pitch) { + Math_ScaledStepToS(&this->actor.shape.rot.x, pitch, 0x400); } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - func_80B32434(this); + EnWeiyer_SetupTurnAround(this); } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.shape.rot.x > 0)) { EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 1, 400); Actor_PlaySfx(&this->actor, NA_SE_EN_OCTAROCK_SINK); - func_80B32538(this); + EnWeiyer_SetupInactive(this); } else { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 8, 0x100, 0x80); } } } -void func_80B3368C(EnWeiyer* this, PlayState* play) { +void EnWeiyer_UpdateDamage(EnWeiyer* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; Actor_SetDropFlag(&this->actor, &this->collider.elem, true); if ((this->actor.colChkInfo.damageReaction != 0) || (this->actor.colChkInfo.damage != 0)) { if (this->actor.colChkInfo.damageReaction == 1) { - if (this->actionFunc != func_80B333B8) { - func_80B32660(this); + if (this->actionFunc != EnWeiyer_Stunned) { + EnWeiyer_SetupStunned(this); } } else if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_EIER_DEAD); this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; - func_80B32724(this); + EnWeiyer_SetupDie(this); } else { - func_80B325A0(this); + EnWeiyer_SetupHurt(this); } } } @@ -597,12 +597,12 @@ void EnWeiyer_Update(Actor* thisx, PlayState* play) { s32 pad; this->actor.home.pos.y = this->actor.depthInWater + this->actor.world.pos.y - 5.0f; - func_80B3368C(this, play); + EnWeiyer_UpdateDamage(this, play); this->actionFunc(this, play); this->actor.world.rot.y = this->actor.shape.rot.y; this->actor.world.rot.x = -this->actor.shape.rot.x; - if ((this->actor.world.rot.x == 0) || (this->actionFunc == func_80B333B8)) { + if ((this->actor.world.rot.x == 0) || (this->actionFunc == EnWeiyer_Stunned)) { Actor_MoveXZGravity(&this->actor); } else { Actor_MoveXYZ(&this->actor); @@ -644,7 +644,7 @@ void EnWeiyer_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_weiyer.c", 1193); - if (this->actionFunc != func_80B33338) { + if (this->actionFunc != EnWeiyer_Dead) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]); gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255); diff --git a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.h b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.h index d35e43544f..2ab34e2c87 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.h +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.h @@ -12,12 +12,12 @@ typedef struct EnWeiyer { /* 0x0000 */ Actor actor; /* 0x014C */ SkelAnime skelAnime; /* 0x0190 */ EnWeiyerActionFunc actionFunc; - /* 0x0194 */ s16 unk_194; - /* 0x0196 */ s16 unk_196; + /* 0x0194 */ s16 timer; + /* 0x0196 */ s16 targetYaw; /* 0x0198 */ Vec3s jointTable[19]; /* 0x020A */ Vec3s morphTable[19]; - /* 0x027C */ f32 unk_27C; - /* 0x0280 */ f32 unk_280; + /* 0x027C */ f32 swimHeight; + /* 0x0280 */ f32 targetSwimHeight; /* 0x0284 */ ColliderCylinder collider; } EnWeiyer; // size = 0x02D0 From bf7af1746dc0fdbc550cb82766542a0dcb4d7048 Mon Sep 17 00:00:00 2001 From: Gabriel Ravier Date: Sat, 14 Feb 2026 16:36:58 +0100 Subject: [PATCH 12/27] Document EnPubox (#2668) --- src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c | 2 +- src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c index 59ea027c65..6f38e51512 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c @@ -50,7 +50,7 @@ void EnPubox_Init(Actor* thisx, PlayState* play) { default: break; } - this->unk_164 = 1; + this->unused_164 = 1; thisx->colChkInfo.cylRadius = 20; thisx->colChkInfo.cylHeight = 50; thisx->cullingVolumeDownward = 1200.0f; diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.h b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.h index c128c86dfb..10b0b06382 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.h +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.h @@ -8,7 +8,7 @@ struct EnPubox; typedef struct EnPubox { /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ u32 unk_164; + /* 0x0164 */ u32 unused_164; // Set to 1 on initialization, has no other uses } EnPubox; // size = 0x0168 #endif From c66f593496263a05207daef9cec2c63bf537b26b Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Sat, 14 Feb 2026 15:57:04 -0500 Subject: [PATCH 13/27] Name message start frame count variable (#2673) --- src/code/z_message.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/code/z_message.c b/src/code/z_message.c index 08d4c7181d..48ec9fd088 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -127,7 +127,7 @@ s32 sCharTexScale; s16 sTextFade = false; // original name: key_off_flag ? -char D_8014B2F4 = 0; +char sMessageStartFrameCount = 0; s16 sOcarinaButtonIndexBufPos = 0; @@ -2559,7 +2559,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE); } - sMessageHasSetSfx = D_8014B2F4 = sTextboxSkipped = sTextIsCredits = 0; + sMessageHasSetSfx = sMessageStartFrameCount = sTextboxSkipped = sTextIsCredits = 0; if (textId >= 0x0500 && textId < 0x0600) { // text ids 0500 to 0600 are reserved for credits sTextIsCredits = true; @@ -4154,17 +4154,17 @@ void Message_Update(PlayState* play) { switch (msgCtx->msgMode) { case MSGMODE_TEXT_START: - D_8014B2F4++; + sMessageStartFrameCount++; var = false; if (R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_MARKET) { - if (D_8014B2F4 >= 4) { + if (sMessageStartFrameCount >= 4) { var = true; } } else if (R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_DEFAULT || play->sceneId == SCENE_CASTLE_COURTYARD_GUARDS_DAY) { var = true; - } else if (D_8014B2F4 >= 4 || msgCtx->talkActor == NULL) { + } else if (sMessageStartFrameCount >= 4 || msgCtx->talkActor == NULL) { var = true; } From 5e89618c2e12df05306ed3c3d0f39162111bb3b1 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Sat, 14 Feb 2026 18:48:10 -0500 Subject: [PATCH 14/27] Label `EnEiyer` as Stinger (#2681) * Label `EnEiyer` as Stinger * Change to Ground --- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index 953ee1597e..91d9941dba 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -1,3 +1,9 @@ +/* + * File: z_en_eiyer.c + * Overlay: ovl_En_Eiyer + * Description: Stinger (Ground) + */ + #include "z_en_eiyer.h" #include "libc64/qrand.h" From 014eca05fefb9a9bf89ecfa398bf27eb3c293fa4 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Sun, 15 Feb 2026 02:49:46 -0500 Subject: [PATCH 15/27] Fix wrong BGM entry names (#2671) --- include/tables/sequence_table.h | 4 ++-- src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c | 6 +++--- tools/assets/extract/oot64_data/audio_ids.py | 4 ++-- tools/csdis.py | 4 ++-- tools/extract_audio.py | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/tables/sequence_table.h b/include/tables/sequence_table.h index 70ccfcbae1..7c11c6ad81 100644 --- a/include/tables/sequence_table.h +++ b/include/tables/sequence_table.h @@ -114,7 +114,7 @@ DEFINE_SEQUENCE (Sequence_90, NA_BGM_OWL, MEDIUM_CART, CA DEFINE_SEQUENCE (Sequence_91, NA_BGM_SHADOW_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // shadow_temple DEFINE_SEQUENCE (Sequence_92, NA_BGM_WATER_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // water_temple DEFINE_SEQUENCE (Sequence_93, NA_BGM_BRIDGE_TO_GANONS, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // bridge_to_ganons -DEFINE_SEQUENCE (Sequence_94, NA_BGM_OCARINA_OF_TIME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // ocarina_of_time +DEFINE_SEQUENCE (Sequence_94, NA_BGM_SEAL_OF_SAGES, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // seal_of_sages DEFINE_SEQUENCE (Sequence_95, NA_BGM_GERUDO_VALLEY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY ) // gerudo_valley DEFINE_SEQUENCE (Sequence_96, NA_BGM_POTION_SHOP, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // potion_shop DEFINE_SEQUENCE (Sequence_97, NA_BGM_KOTAKE_KOUME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // kotake_koume @@ -122,7 +122,7 @@ DEFINE_SEQUENCE (Sequence_98, NA_BGM_ESCAPE, MEDIUM_CART, CA DEFINE_SEQUENCE (Sequence_99, NA_BGM_UNDERGROUND, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // underground DEFINE_SEQUENCE (Sequence_100, NA_BGM_GANONDORF_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganondorf_boss DEFINE_SEQUENCE (Sequence_101, NA_BGM_GANON_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganon_boss -DEFINE_SEQUENCE (Sequence_102, NA_BGM_END_DEMO, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // end_demo +DEFINE_SEQUENCE (Sequence_102, NA_BGM_OCARINA_OF_TIME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // ocarina_of_time DEFINE_SEQUENCE (Sequence_103, NA_BGM_STAFF_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_1 DEFINE_SEQUENCE (Sequence_104, NA_BGM_STAFF_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_2 DEFINE_SEQUENCE (Sequence_105, NA_BGM_STAFF_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_3 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 3c983d700f..4b3135ed97 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 @@ -151,8 +151,8 @@ static u16 sBgmList[] = { NA_BGM_WATER_TEMPLE, NA_BGM_BRIDGE_TO_GANONS, NA_BGM_CUTSCENE_EFFECTS, - NA_BGM_OCARINA_OF_TIME, - NA_BGM_OCARINA_OF_TIME, + NA_BGM_SEAL_OF_SAGES, + NA_BGM_SEAL_OF_SAGES, NA_BGM_GERUDO_VALLEY, NA_BGM_POTION_SHOP, NA_BGM_KOTAKE_KOUME, @@ -161,7 +161,7 @@ static u16 sBgmList[] = { NA_BGM_UNDERGROUND, NA_BGM_GANONDORF_BOSS, NA_BGM_GANON_BOSS, - NA_BGM_END_DEMO, + NA_BGM_OCARINA_OF_TIME, }; #endif diff --git a/tools/assets/extract/oot64_data/audio_ids.py b/tools/assets/extract/oot64_data/audio_ids.py index 8bcf2b60b8..2ef0431192 100644 --- a/tools/assets/extract/oot64_data/audio_ids.py +++ b/tools/assets/extract/oot64_data/audio_ids.py @@ -95,7 +95,7 @@ SEQ_IDS = { 0x5B: "NA_BGM_SHADOW_TEMPLE", 0x5C: "NA_BGM_WATER_TEMPLE", 0x5D: "NA_BGM_BRIDGE_TO_GANONS", - 0x5E: "NA_BGM_OCARINA_OF_TIME", + 0x5E: "NA_BGM_SEAL_OF_SAGES", 0x5F: "NA_BGM_GERUDO_VALLEY", 0x60: "NA_BGM_POTION_SHOP", 0x61: "NA_BGM_KOTAKE_KOUME", @@ -103,7 +103,7 @@ SEQ_IDS = { 0x63: "NA_BGM_UNDERGROUND", 0x64: "NA_BGM_GANONDORF_BOSS", 0x65: "NA_BGM_GANON_BOSS", - 0x66: "NA_BGM_END_DEMO", + 0x66: "NA_BGM_OCARINA_OF_TIME", 0x67: "NA_BGM_STAFF_1", 0x68: "NA_BGM_STAFF_2", 0x69: "NA_BGM_STAFF_3", diff --git a/tools/csdis.py b/tools/csdis.py index d4baec1398..6e796fcc7c 100755 --- a/tools/csdis.py +++ b/tools/csdis.py @@ -285,7 +285,7 @@ sequence_ids = { 0x5B: "NA_BGM_SHADOW_TEMPLE", 0x5C: "NA_BGM_WATER_TEMPLE", 0x5D: "NA_BGM_BRIDGE_TO_GANONS", - 0x5E: "NA_BGM_OCARINA_OF_TIME", + 0x5E: "NA_BGM_SEAL_OF_SAGES", 0x5F: "NA_BGM_GERUDO_VALLEY", 0x60: "NA_BGM_POTION_SHOP", 0x61: "NA_BGM_KOTAKE_KOUME", @@ -293,7 +293,7 @@ sequence_ids = { 0x63: "NA_BGM_UNDERGROUND", 0x64: "NA_BGM_GANONDORF_BOSS", 0x65: "NA_BGM_GANON_BOSS", - 0x66: "NA_BGM_END_DEMO", + 0x66: "NA_BGM_OCARINA_OF_TIME", 0x67: "NA_BGM_STAFF_1", 0x68: "NA_BGM_STAFF_2", 0x69: "NA_BGM_STAFF_3", diff --git a/tools/extract_audio.py b/tools/extract_audio.py index c67d7b1650..0d9c81b9b1 100644 --- a/tools/extract_audio.py +++ b/tools/extract_audio.py @@ -131,7 +131,7 @@ if __name__ == '__main__': "NA_BGM_SHADOW_TEMPLE", "NA_BGM_WATER_TEMPLE", "NA_BGM_BRIDGE_TO_GANONS", - "NA_BGM_OCARINA_OF_TIME", + "NA_BGM_SEAL_OF_SAGES", "NA_BGM_GERUDO_VALLEY", "NA_BGM_POTION_SHOP", "NA_BGM_KOTAKE_KOUME", @@ -139,7 +139,7 @@ if __name__ == '__main__': "NA_BGM_UNDERGROUND", "NA_BGM_GANONDORF_BOSS", "NA_BGM_GANON_BOSS", - "NA_BGM_END_DEMO", + "NA_BGM_OCARINA_OF_TIME", "NA_BGM_STAFF_1", "NA_BGM_STAFF_2", "NA_BGM_STAFF_3", From dbe1a80541173652c344f20226310a8bf90f3086 Mon Sep 17 00:00:00 2001 From: Tharo Date: Mon, 16 Feb 2026 14:32:37 +0000 Subject: [PATCH 16/27] Commit and split gameplay_keep (#2612) * Commit and split gameplay_keep * Remove debugging bits * format * bss * merge gameplay_keep_0x400 into link_textures * Name some unused NTSC stuff * Rename files for some of the newly named unused NTSC stuff * name more gkeep files * format * spin_attack * name fish anims files * name some eff_ files * name a bunch more files * Add underscore in not-final names * cleanup limb enum names (remove g prefix) * split gameplay_keep_0x34020.c into gBugCrawlAnim.c + bug_skel.c * door.h -> door_skel.h * gArrowNAnim -> gArrowN_Anim * split arrow_anims into gArrow1_Anim + gArrow2_Anim * fix merge * bss * bss * Fix bss --------- Co-authored-by: Dragorn421 --- assets/objects/gameplay_keep/arrow_skel.c | 52 + assets/objects/gameplay_keep/arrow_skel.h | 32 + assets/objects/gameplay_keep/bomb_body.c | 14 + assets/objects/gameplay_keep/bomb_body.h | 13 + assets/objects/gameplay_keep/bomb_cap.c | 14 + assets/objects/gameplay_keep/bomb_cap.h | 13 + assets/objects/gameplay_keep/bombchu_body.c | 14 + assets/objects/gameplay_keep/bombchu_body.h | 13 + assets/objects/gameplay_keep/boomerang.c | 20 + assets/objects/gameplay_keep/boomerang.h | 11 + assets/objects/gameplay_keep/bug_skel.c | 255 ++ assets/objects/gameplay_keep/bug_skel.h | 103 + .../gameplay_keep/circle_glow_textures.c | 17 + .../gameplay_keep/circle_glow_textures.h | 20 + assets/objects/gameplay_keep/compass_arrow.c | 10 + assets/objects/gameplay_keep/compass_arrow.h | 9 + assets/objects/gameplay_keep/cuttable_shrub.c | 27 + assets/objects/gameplay_keep/cuttable_shrub.h | 18 + assets/objects/gameplay_keep/debug_models.c | 62 + assets/objects/gameplay_keep/debug_models.h | 33 + .../gameplay_keep/directional_sign_model.c | 11 + .../gameplay_keep/directional_sign_model.h | 9 + assets/objects/gameplay_keep/door_skel.c | 55 + assets/objects/gameplay_keep/door_skel.h | 32 + .../gameplay_keep/drop_recovery_heart_tex.c | 5 + .../gameplay_keep/drop_recovery_heart_tex.h | 11 + assets/objects/gameplay_keep/dust_textures.c | 33 + assets/objects/gameplay_keep/dust_textures.h | 32 + .../gameplay_keep/eff_bomb_explosion.c | 50 + .../gameplay_keep/eff_bomb_explosion.h | 36 + assets/objects/gameplay_keep/eff_bubble.c | 10 + assets/objects/gameplay_keep/eff_bubble.h | 9 + assets/objects/gameplay_keep/eff_dust.c | 10 + assets/objects/gameplay_keep/eff_dust.h | 9 + .../gameplay_keep/eff_enemy_death_flame.c | 50 + .../gameplay_keep/eff_enemy_death_flame.h | 40 + assets/objects/gameplay_keep/eff_fire.c | 22 + assets/objects/gameplay_keep/eff_fire.h | 17 + .../gameplay_keep/eff_fire_footprint.c | 42 + .../gameplay_keep/eff_fire_footprint.h | 34 + assets/objects/gameplay_keep/eff_flash.c | 18 + assets/objects/gameplay_keep/eff_flash.h | 14 + .../objects/gameplay_keep/eff_fragments_1.c | 14 + .../objects/gameplay_keep/eff_fragments_1.h | 13 + .../gameplay_keep/eff_fragments_2_model.c | 10 + .../gameplay_keep/eff_fragments_2_model.h | 9 + assets/objects/gameplay_keep/eff_hitmark.c | 106 + assets/objects/gameplay_keep/eff_hitmark.h | 82 + .../objects/gameplay_keep/eff_ice_fragments.c | 15 + .../objects/gameplay_keep/eff_ice_fragments.h | 10 + assets/objects/gameplay_keep/eff_lightning.c | 42 + assets/objects/gameplay_keep/eff_lightning.h | 34 + .../objects/gameplay_keep/eff_magma_bubble.c | 42 + .../objects/gameplay_keep/eff_magma_bubble.h | 34 + assets/objects/gameplay_keep/eff_shockwave.c | 14 + assets/objects/gameplay_keep/eff_shockwave.h | 13 + .../objects/gameplay_keep/eff_spark_model.c | 10 + .../objects/gameplay_keep/eff_spark_model.h | 9 + .../gameplay_keep/eff_spark_textures.c | 17 + .../gameplay_keep/eff_spark_textures.h | 20 + assets/objects/gameplay_keep/eff_sparkles.c | 14 + assets/objects/gameplay_keep/eff_sparkles.h | 13 + .../objects/gameplay_keep/eff_water_ripple.c | 14 + .../objects/gameplay_keep/eff_water_ripple.h | 13 + .../objects/gameplay_keep/eff_water_splash.c | 42 + .../objects/gameplay_keep/eff_water_splash.h | 34 + assets/objects/gameplay_keep/fairy_anim.c | 13 + assets/objects/gameplay_keep/fairy_anim.h | 10 + assets/objects/gameplay_keep/fairy_skel.c | 129 + assets/objects/gameplay_keep/fairy_skel.h | 62 + .../objects/gameplay_keep/flat_block_model.c | 11 + .../objects/gameplay_keep/flat_block_model.h | 9 + .../gameplay_keep/flat_rot_block_model.c | 11 + .../gameplay_keep/flat_rot_block_model.h | 9 + assets/objects/gameplay_keep/gArrow1_Anim.c | 13 + assets/objects/gameplay_keep/gArrow1_Anim.h | 10 + assets/objects/gameplay_keep/gArrow2_Anim.c | 13 + assets/objects/gameplay_keep/gArrow2_Anim.h | 10 + assets/objects/gameplay_keep/gBugCrawlAnim.c | 13 + assets/objects/gameplay_keep/gBugCrawlAnim.h | 11 + .../gameplay_keep/gDoorAdultOpeningLeftAnim.c | 13 + .../gameplay_keep/gDoorAdultOpeningLeftAnim.h | 10 + .../gDoorAdultOpeningRightAnim.c | 13 + .../gDoorAdultOpeningRightAnim.h | 10 + .../gameplay_keep/gDoorChildOpeningLeftAnim.c | 13 + .../gameplay_keep/gDoorChildOpeningLeftAnim.h | 10 + .../gDoorChildOpeningRightAnim.c | 13 + .../gDoorChildOpeningRightAnim.h | 10 + .../objects/gameplay_keep/gFishInWaterAnim.c | 13 + .../objects/gameplay_keep/gFishInWaterAnim.h | 10 + .../gameplay_keep/gFishOutOfWaterAnim.c | 13 + .../gameplay_keep/gFishOutOfWaterAnim.h | 10 + assets/objects/gameplay_keep/gLargerCubeCol.c | 24 + assets/objects/gameplay_keep/gLargerCubeCol.h | 12 + .../gameplay_keep/gLargerFlatBlockCol.c | 23 + .../gameplay_keep/gLargerFlatBlockCol.h | 12 + assets/objects/gameplay_keep/gTallBlockCol.c | 24 + assets/objects/gameplay_keep/gTallBlockCol.h | 12 + .../objects/gameplay_keep/gWideTallBlockCol.c | 24 + .../objects/gameplay_keep/gWideTallBlockCol.h | 12 + assets/objects/gameplay_keep/gameplay_keep.h | 145 ++ .../gameplay_keep/gameplay_keep_0x13700.c | 18 + .../gameplay_keep/gameplay_keep_0x13700.h | 16 + .../gameplay_keep/gameplay_keep_0x16A50.c | 9 + .../gameplay_keep/gameplay_keep_0x16A50.h | 14 + .../gameplay_keep/gameplay_keep_0x173D0.c | 18 + .../gameplay_keep/gameplay_keep_0x173D0.h | 16 + .../gameplay_keep/gameplay_keep_0x18610.c | 67 + .../gameplay_keep/gameplay_keep_0x18610.h | 39 + .../gameplay_keep/gameplay_keep_0x21810.c | 13 + .../gameplay_keep/gameplay_keep_0x21810.h | 17 + .../gameplay_keep/gameplay_keep_0x32090.c | 17 + .../gameplay_keep/gameplay_keep_0x32090.h | 20 + .../gameplay_keep/gameplay_keep_0x33090.c | 5 + .../gameplay_keep/gameplay_keep_0x33090.h | 11 + .../gameplay_keep/gameplay_keep_0x33910.c | 11 + .../gameplay_keep/gameplay_keep_0x33910.h | 9 + .../gameplay_keep/gameplay_keep_0x38FB0.c | 5 + .../gameplay_keep/gameplay_keep_0x38FB0.h | 11 + .../gameplay_keep/gameplay_keep_0x39710.c | 11 + .../gameplay_keep/gameplay_keep_0x39710.h | 9 + .../gameplay_keep/gameplay_keep_0x39DF0.c | 11 + .../gameplay_keep/gameplay_keep_0x39DF0.h | 9 + .../gameplay_keep/gameplay_keep_0x3AC30.c | 5 + .../gameplay_keep/gameplay_keep_0x3AC30.h | 11 + .../gameplay_keep/gameplay_keep_0x3B1E0.c | 21 + .../gameplay_keep/gameplay_keep_0x3B1E0.h | 11 + .../gameplay_keep/gameplay_keep_0x3C870.c | 17 + .../gameplay_keep/gameplay_keep_0x3C870.h | 20 + .../gameplay_keep/gameplay_keep_0x3F140.c | 26 + .../gameplay_keep/gameplay_keep_0x3F140.h | 26 + .../gameplay_keep/gameplay_keep_0x42530.c | 9 + .../gameplay_keep/gameplay_keep_0x42530.h | 14 + .../gameplay_keep/gameplay_keep_0x43530.c | 9 + .../gameplay_keep/gameplay_keep_0x43530.h | 14 + .../gameplay_keep/gameplay_keep_0x44530.c | 5 + .../gameplay_keep/gameplay_keep_0x44530.h | 11 + .../gameplay_keep/gameplay_keep_0x45530.c | 6 + .../gameplay_keep/gameplay_keep_0x45530.h | 11 + .../gameplay_keep/gameplay_keep_0x45D30.c | 5 + .../gameplay_keep/gameplay_keep_0x45D30.h | 11 + .../gameplay_keep/gameplay_keep_0x49F20.c | 11 + .../gameplay_keep/gameplay_keep_0x49F20.h | 9 + .../gameplay_keep/gameplay_keep_0x4A090.c | 18 + .../gameplay_keep/gameplay_keep_0x4A090.h | 16 + .../gameplay_keep/gameplay_keep_0x4D160.c | 24 + .../gameplay_keep/gameplay_keep_0x4D160.h | 12 + .../gameplay_keep/gameplay_keep_0x4E660.c | 38 + .../gameplay_keep/gameplay_keep_0x4E660.h | 16 + .../gameplay_keep/gameplay_keep_0x515B0.c | 5 + .../gameplay_keep/gameplay_keep_0x515B0.h | 11 + .../gameplay_keep/gameplay_keep_0x55DB0.c | 9 + .../gameplay_keep/gameplay_keep_0x55DB0.h | 14 + .../gameplay_keep_ntsc_0x39850.c | 12 + .../gameplay_keep_ntsc_0x39850.h | 12 + .../gameplay_keep_ntsc_0x3C610.c | 20 + .../gameplay_keep_ntsc_0x3C610.h | 14 + .../gameplay_keep_ntsc_0x3FD80.c | 9 + .../gameplay_keep_ntsc_0x3FD80.h | 17 + .../gameplay_keep_ntsc_0x46A40.c | 14 + .../gameplay_keep_ntsc_0x46A40.h | 17 + .../gameplay_keep/gameplay_keep_ntsc_0xC880.c | 12 + .../gameplay_keep/gameplay_keep_ntsc_0xC880.h | 12 + .../gameplay_keep/gameplay_keep_ntsc_0xCE60.c | 5 + .../gameplay_keep/gameplay_keep_ntsc_0xCE60.h | 14 + .../gameplay_keep/grass_blades_model.c | 11 + .../gameplay_keep/grass_blades_model.h | 9 + .../heart_piece_interior_model.c | 12 + .../heart_piece_interior_model.h | 9 + assets/objects/gameplay_keep/hilite3_tex.c | 6 + assets/objects/gameplay_keep/hilite3_tex.h | 11 + assets/objects/gameplay_keep/hilite4_tex.c | 5 + assets/objects/gameplay_keep/hilite4_tex.h | 11 + .../objects/gameplay_keep/hilite_textures.c | 9 + .../objects/gameplay_keep/hilite_textures.h | 14 + .../gameplay_keep/hover_boots_circle.c | 18 + .../gameplay_keep/hover_boots_circle.h | 16 + assets/objects/gameplay_keep/item_drop_dl.c | 11 + assets/objects/gameplay_keep/item_drop_dl.h | 9 + .../objects/gameplay_keep/item_drops_ntsc.c | 13 + .../objects/gameplay_keep/item_drops_ntsc.h | 20 + assets/objects/gameplay_keep/lens_flare.c | 22 + assets/objects/gameplay_keep/lens_flare.h | 17 + assets/objects/gameplay_keep/lens_mask_tex.c | 5 + assets/objects/gameplay_keep/lens_mask_tex.h | 11 + .../gameplay_keep/liftable_rock_model.c | 11 + .../gameplay_keep/liftable_rock_model.h | 9 + assets/objects/gameplay_keep/link_textures.c | 33 + assets/objects/gameplay_keep/link_textures.h | 32 + assets/objects/gameplay_keep/lock_on_arrow.c | 11 + assets/objects/gameplay_keep/lock_on_arrow.h | 9 + .../objects/gameplay_keep/lock_on_reticle.c | 10 + .../objects/gameplay_keep/lock_on_reticle.h | 9 + assets/objects/gameplay_keep/moon.c | 14 + assets/objects/gameplay_keep/moon.h | 13 + .../gameplay_keep/player_anim_headers.c | 2294 +++++++++++++++++ .../gameplay_keep/player_anim_headers.h | 580 +++++ .../gameplay_keep/player_pause_joint_tables.c | 21 + .../gameplay_keep/player_pause_joint_tables.h | 12 + assets/objects/gameplay_keep/raindrop_model.c | 10 + assets/objects/gameplay_keep/raindrop_model.h | 9 + .../gameplay_keep/rectangular_sign_model.c | 11 + .../gameplay_keep/rectangular_sign_model.h | 9 + .../gameplay_keep/rock_fragments_model.c | 19 + .../gameplay_keep/rock_fragments_model.h | 11 + .../gameplay_keep/rock_fragments_tex.c | 9 + .../gameplay_keep/rock_fragments_tex.h | 14 + assets/objects/gameplay_keep/rupee.c | 35 + assets/objects/gameplay_keep/rupee.h | 29 + .../gameplay_keep/rupee_light_red_tex.c | 5 + .../gameplay_keep/rupee_light_red_tex.h | 12 + assets/objects/gameplay_keep/shadow_circle.c | 14 + assets/objects/gameplay_keep/shadow_circle.h | 13 + assets/objects/gameplay_keep/shadow_foot.c | 14 + assets/objects/gameplay_keep/shadow_foot.h | 13 + assets/objects/gameplay_keep/shadow_horse.c | 14 + assets/objects/gameplay_keep/shadow_horse.h | 13 + .../gameplay_keep/shopkeeper_controls_tex.c | 14 + .../gameplay_keep/shopkeeper_controls_tex.h | 17 + assets/objects/gameplay_keep/sign_textures.c | 17 + assets/objects/gameplay_keep/sign_textures.h | 20 + assets/objects/gameplay_keep/small_cube_col.c | 23 + assets/objects/gameplay_keep/small_cube_col.h | 12 + .../objects/gameplay_keep/small_cube_model.c | 11 + .../objects/gameplay_keep/small_cube_model.h | 9 + .../gameplay_keep/small_flat_block_col.c | 23 + .../gameplay_keep/small_flat_block_col.h | 12 + assets/objects/gameplay_keep/spin_attack.c | 58 + assets/objects/gameplay_keep/spin_attack.h | 30 + .../gameplay_keep/sun_evening_textures.c | 15 + .../gameplay_keep/sun_evening_textures.h | 17 + assets/objects/gameplay_keep/sun_textures.c | 15 + assets/objects/gameplay_keep/sun_textures.h | 17 + .../objects/gameplay_keep/tree_stump_model.c | 11 + .../objects/gameplay_keep/tree_stump_model.h | 9 + .../objects/gameplay_keep/unk_eff_blure_tex.c | 5 + .../objects/gameplay_keep/unk_eff_blure_tex.h | 11 + .../objects/gameplay_keep/unknown_eff_stone.c | 42 + .../objects/gameplay_keep/unknown_eff_stone.h | 34 + .../unused_arrow_icon_model_ntsc.c | 11 + .../unused_arrow_icon_model_ntsc.h | 12 + .../unused_bomb_icon_model_ntsc.c | 11 + .../unused_bomb_icon_model_ntsc.h | 12 + assets/objects/gameplay_keep/unused_bubbles.c | 42 + assets/objects/gameplay_keep/unused_bubbles.h | 34 + .../unused_heart_container_icon_model_ntsc.c | 11 + .../unused_heart_container_icon_model_ntsc.h | 12 + .../unused_heart_icon_model_ntsc.c | 11 + .../unused_heart_icon_model_ntsc.h | 12 + .../unused_heart_piece_icon_tex_ntsc.c | 5 + .../unused_heart_piece_icon_tex_ntsc.h | 14 + assets/xml/objects/gameplay_keep.xml | 230 +- assets/xml/objects/gameplay_keep_pal.xml | 189 +- spec/spec | 143 +- src/code/z_actor.c | 8 +- src/code/z_debug_display.c | 2 +- src/code/z_eff_blure.c | 2 +- src/code/z_eff_shield_particle.c | 2 +- src/code/z_eff_spark.c | 2 +- src/code/z_en_a_keep.c | 13 +- src/code/z_en_item00.c | 8 +- src/code/z_kankyo.c | 15 +- src/code/z_lights.c | 2 +- src/code/z_map_exp.c | 2 +- src/code/z_player_lib.c | 3 +- .../actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c | 2 +- .../actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c | 3 +- .../ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c | 2 +- .../ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c | 2 +- .../ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c | 2 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 2 +- .../z_bg_spot00_hanebasi.c | 2 +- src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 2 +- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 4 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 9 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 4 +- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 6 +- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 2 +- src/overlays/actors/ovl_Demo_6K/z_demo_6k.c | 3 +- .../actors/ovl_Demo_Effect/z_demo_effect.c | 2 +- .../actors/ovl_Demo_Kankyo/z_demo_kankyo.c | 8 +- .../actors/ovl_Door_Killer/z_door_killer.c | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 3 +- src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c | 2 +- .../ovl_En_Anubice_Fire/z_en_anubice_fire.c | 2 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 11 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 3 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 2 +- src/overlays/actors/ovl_En_Bw/z_en_bw.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 2 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 6 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 3 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 4 +- .../actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c | 2 +- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 2 +- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 2 +- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 2 +- src/overlays/actors/ovl_En_Fish/z_en_fish.c | 4 +- src/overlays/actors/ovl_En_Fw/z_en_fw.c | 2 +- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 2 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- .../actors/ovl_En_Honotrap/z_en_honotrap.c | 2 +- .../ovl_En_Horse_Normal/z_en_horse_normal.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 2 +- .../actors/ovl_En_Insect/z_en_insect.c | 3 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 2 +- src/overlays/actors/ovl_En_Kusa/z_en_kusa.c | 2 +- src/overlays/actors/ovl_En_Light/z_en_light.c | 2 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 2 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 2 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- .../actors/ovl_En_Vb_Ball/z_en_vb_ball.c | 2 +- .../actors/ovl_En_Viewer/z_en_viewer.c | 2 +- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 2 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- .../actors/ovl_Magic_Dark/z_magic_dark.c | 3 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 2 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 2 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 2 +- .../ovl_Object_Kankyo/z_object_kankyo.c | 6 +- .../actors/ovl_player_actor/z_player.c | 14 +- .../ovl_Effect_Ss_Blast/z_eff_ss_blast.c | 2 +- .../ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c | 2 +- .../ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c | 2 +- .../ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c | 3 +- .../ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c | 2 +- .../ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c | 2 +- .../ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c | 2 +- .../z_eff_ss_dt_bubble.c | 3 +- .../ovl_Effect_Ss_Dust/z_eff_ss_dust.c | 3 +- .../ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c | 2 +- .../ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c | 2 +- .../ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c | 2 +- .../z_eff_ss_fire_tail.c | 2 +- .../ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c | 2 +- .../ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c | 2 +- .../z_eff_ss_g_ripple.c | 2 +- .../ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c | 3 +- .../z_eff_ss_g_splash.c | 2 +- .../ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c | 3 +- .../ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c | 2 +- .../z_eff_ss_ice_piece.c | 2 +- .../ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c | 2 +- .../z_eff_ss_kirakira.c | 2 +- .../z_eff_ss_lightning.c | 2 +- .../ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c | 3 +- .../ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c | 2 +- .../ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c | 2 +- tools/assets/extract/extase/__init__.py | 7 +- tools/assets/extract/write_source.txt | 1 - 359 files changed, 8307 insertions(+), 335 deletions(-) create mode 100644 assets/objects/gameplay_keep/arrow_skel.c create mode 100644 assets/objects/gameplay_keep/arrow_skel.h create mode 100644 assets/objects/gameplay_keep/bomb_body.c create mode 100644 assets/objects/gameplay_keep/bomb_body.h create mode 100644 assets/objects/gameplay_keep/bomb_cap.c create mode 100644 assets/objects/gameplay_keep/bomb_cap.h create mode 100644 assets/objects/gameplay_keep/bombchu_body.c create mode 100644 assets/objects/gameplay_keep/bombchu_body.h create mode 100644 assets/objects/gameplay_keep/boomerang.c create mode 100644 assets/objects/gameplay_keep/boomerang.h create mode 100644 assets/objects/gameplay_keep/bug_skel.c create mode 100644 assets/objects/gameplay_keep/bug_skel.h create mode 100644 assets/objects/gameplay_keep/circle_glow_textures.c create mode 100644 assets/objects/gameplay_keep/circle_glow_textures.h create mode 100644 assets/objects/gameplay_keep/compass_arrow.c create mode 100644 assets/objects/gameplay_keep/compass_arrow.h create mode 100644 assets/objects/gameplay_keep/cuttable_shrub.c create mode 100644 assets/objects/gameplay_keep/cuttable_shrub.h create mode 100644 assets/objects/gameplay_keep/debug_models.c create mode 100644 assets/objects/gameplay_keep/debug_models.h create mode 100644 assets/objects/gameplay_keep/directional_sign_model.c create mode 100644 assets/objects/gameplay_keep/directional_sign_model.h create mode 100644 assets/objects/gameplay_keep/door_skel.c create mode 100644 assets/objects/gameplay_keep/door_skel.h create mode 100644 assets/objects/gameplay_keep/drop_recovery_heart_tex.c create mode 100644 assets/objects/gameplay_keep/drop_recovery_heart_tex.h create mode 100644 assets/objects/gameplay_keep/dust_textures.c create mode 100644 assets/objects/gameplay_keep/dust_textures.h create mode 100644 assets/objects/gameplay_keep/eff_bomb_explosion.c create mode 100644 assets/objects/gameplay_keep/eff_bomb_explosion.h create mode 100644 assets/objects/gameplay_keep/eff_bubble.c create mode 100644 assets/objects/gameplay_keep/eff_bubble.h create mode 100644 assets/objects/gameplay_keep/eff_dust.c create mode 100644 assets/objects/gameplay_keep/eff_dust.h create mode 100644 assets/objects/gameplay_keep/eff_enemy_death_flame.c create mode 100644 assets/objects/gameplay_keep/eff_enemy_death_flame.h create mode 100644 assets/objects/gameplay_keep/eff_fire.c create mode 100644 assets/objects/gameplay_keep/eff_fire.h create mode 100644 assets/objects/gameplay_keep/eff_fire_footprint.c create mode 100644 assets/objects/gameplay_keep/eff_fire_footprint.h create mode 100644 assets/objects/gameplay_keep/eff_flash.c create mode 100644 assets/objects/gameplay_keep/eff_flash.h create mode 100644 assets/objects/gameplay_keep/eff_fragments_1.c create mode 100644 assets/objects/gameplay_keep/eff_fragments_1.h create mode 100644 assets/objects/gameplay_keep/eff_fragments_2_model.c create mode 100644 assets/objects/gameplay_keep/eff_fragments_2_model.h create mode 100644 assets/objects/gameplay_keep/eff_hitmark.c create mode 100644 assets/objects/gameplay_keep/eff_hitmark.h create mode 100644 assets/objects/gameplay_keep/eff_ice_fragments.c create mode 100644 assets/objects/gameplay_keep/eff_ice_fragments.h create mode 100644 assets/objects/gameplay_keep/eff_lightning.c create mode 100644 assets/objects/gameplay_keep/eff_lightning.h create mode 100644 assets/objects/gameplay_keep/eff_magma_bubble.c create mode 100644 assets/objects/gameplay_keep/eff_magma_bubble.h create mode 100644 assets/objects/gameplay_keep/eff_shockwave.c create mode 100644 assets/objects/gameplay_keep/eff_shockwave.h create mode 100644 assets/objects/gameplay_keep/eff_spark_model.c create mode 100644 assets/objects/gameplay_keep/eff_spark_model.h create mode 100644 assets/objects/gameplay_keep/eff_spark_textures.c create mode 100644 assets/objects/gameplay_keep/eff_spark_textures.h create mode 100644 assets/objects/gameplay_keep/eff_sparkles.c create mode 100644 assets/objects/gameplay_keep/eff_sparkles.h create mode 100644 assets/objects/gameplay_keep/eff_water_ripple.c create mode 100644 assets/objects/gameplay_keep/eff_water_ripple.h create mode 100644 assets/objects/gameplay_keep/eff_water_splash.c create mode 100644 assets/objects/gameplay_keep/eff_water_splash.h create mode 100644 assets/objects/gameplay_keep/fairy_anim.c create mode 100644 assets/objects/gameplay_keep/fairy_anim.h create mode 100644 assets/objects/gameplay_keep/fairy_skel.c create mode 100644 assets/objects/gameplay_keep/fairy_skel.h create mode 100644 assets/objects/gameplay_keep/flat_block_model.c create mode 100644 assets/objects/gameplay_keep/flat_block_model.h create mode 100644 assets/objects/gameplay_keep/flat_rot_block_model.c create mode 100644 assets/objects/gameplay_keep/flat_rot_block_model.h create mode 100644 assets/objects/gameplay_keep/gArrow1_Anim.c create mode 100644 assets/objects/gameplay_keep/gArrow1_Anim.h create mode 100644 assets/objects/gameplay_keep/gArrow2_Anim.c create mode 100644 assets/objects/gameplay_keep/gArrow2_Anim.h create mode 100644 assets/objects/gameplay_keep/gBugCrawlAnim.c create mode 100644 assets/objects/gameplay_keep/gBugCrawlAnim.h create mode 100644 assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.c create mode 100644 assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.h create mode 100644 assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.c create mode 100644 assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.h create mode 100644 assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.c create mode 100644 assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.h create mode 100644 assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.c create mode 100644 assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.h create mode 100644 assets/objects/gameplay_keep/gFishInWaterAnim.c create mode 100644 assets/objects/gameplay_keep/gFishInWaterAnim.h create mode 100644 assets/objects/gameplay_keep/gFishOutOfWaterAnim.c create mode 100644 assets/objects/gameplay_keep/gFishOutOfWaterAnim.h create mode 100644 assets/objects/gameplay_keep/gLargerCubeCol.c create mode 100644 assets/objects/gameplay_keep/gLargerCubeCol.h create mode 100644 assets/objects/gameplay_keep/gLargerFlatBlockCol.c create mode 100644 assets/objects/gameplay_keep/gLargerFlatBlockCol.h create mode 100644 assets/objects/gameplay_keep/gTallBlockCol.c create mode 100644 assets/objects/gameplay_keep/gTallBlockCol.h create mode 100644 assets/objects/gameplay_keep/gWideTallBlockCol.c create mode 100644 assets/objects/gameplay_keep/gWideTallBlockCol.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x13700.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x13700.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x16A50.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x16A50.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x173D0.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x173D0.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x18610.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x18610.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x21810.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x21810.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x32090.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x32090.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x33090.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x33090.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x33910.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x33910.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x38FB0.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x38FB0.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x39710.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x39710.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x39DF0.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x39DF0.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3AC30.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3AC30.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3C870.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3C870.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3F140.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x3F140.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x42530.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x42530.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x43530.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x43530.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x44530.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x44530.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x45530.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x45530.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x45D30.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x45D30.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x49F20.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x49F20.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x4A090.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x4A090.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x4D160.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x4D160.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x4E660.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x4E660.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x515B0.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x515B0.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x55DB0.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.h create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.c create mode 100644 assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.h create mode 100644 assets/objects/gameplay_keep/grass_blades_model.c create mode 100644 assets/objects/gameplay_keep/grass_blades_model.h create mode 100644 assets/objects/gameplay_keep/heart_piece_interior_model.c create mode 100644 assets/objects/gameplay_keep/heart_piece_interior_model.h create mode 100644 assets/objects/gameplay_keep/hilite3_tex.c create mode 100644 assets/objects/gameplay_keep/hilite3_tex.h create mode 100644 assets/objects/gameplay_keep/hilite4_tex.c create mode 100644 assets/objects/gameplay_keep/hilite4_tex.h create mode 100644 assets/objects/gameplay_keep/hilite_textures.c create mode 100644 assets/objects/gameplay_keep/hilite_textures.h create mode 100644 assets/objects/gameplay_keep/hover_boots_circle.c create mode 100644 assets/objects/gameplay_keep/hover_boots_circle.h create mode 100644 assets/objects/gameplay_keep/item_drop_dl.c create mode 100644 assets/objects/gameplay_keep/item_drop_dl.h create mode 100644 assets/objects/gameplay_keep/item_drops_ntsc.c create mode 100644 assets/objects/gameplay_keep/item_drops_ntsc.h create mode 100644 assets/objects/gameplay_keep/lens_flare.c create mode 100644 assets/objects/gameplay_keep/lens_flare.h create mode 100644 assets/objects/gameplay_keep/lens_mask_tex.c create mode 100644 assets/objects/gameplay_keep/lens_mask_tex.h create mode 100644 assets/objects/gameplay_keep/liftable_rock_model.c create mode 100644 assets/objects/gameplay_keep/liftable_rock_model.h create mode 100644 assets/objects/gameplay_keep/link_textures.c create mode 100644 assets/objects/gameplay_keep/link_textures.h create mode 100644 assets/objects/gameplay_keep/lock_on_arrow.c create mode 100644 assets/objects/gameplay_keep/lock_on_arrow.h create mode 100644 assets/objects/gameplay_keep/lock_on_reticle.c create mode 100644 assets/objects/gameplay_keep/lock_on_reticle.h create mode 100644 assets/objects/gameplay_keep/moon.c create mode 100644 assets/objects/gameplay_keep/moon.h create mode 100644 assets/objects/gameplay_keep/player_anim_headers.c create mode 100644 assets/objects/gameplay_keep/player_anim_headers.h create mode 100644 assets/objects/gameplay_keep/player_pause_joint_tables.c create mode 100644 assets/objects/gameplay_keep/player_pause_joint_tables.h create mode 100644 assets/objects/gameplay_keep/raindrop_model.c create mode 100644 assets/objects/gameplay_keep/raindrop_model.h create mode 100644 assets/objects/gameplay_keep/rectangular_sign_model.c create mode 100644 assets/objects/gameplay_keep/rectangular_sign_model.h create mode 100644 assets/objects/gameplay_keep/rock_fragments_model.c create mode 100644 assets/objects/gameplay_keep/rock_fragments_model.h create mode 100644 assets/objects/gameplay_keep/rock_fragments_tex.c create mode 100644 assets/objects/gameplay_keep/rock_fragments_tex.h create mode 100644 assets/objects/gameplay_keep/rupee.c create mode 100644 assets/objects/gameplay_keep/rupee.h create mode 100644 assets/objects/gameplay_keep/rupee_light_red_tex.c create mode 100644 assets/objects/gameplay_keep/rupee_light_red_tex.h create mode 100644 assets/objects/gameplay_keep/shadow_circle.c create mode 100644 assets/objects/gameplay_keep/shadow_circle.h create mode 100644 assets/objects/gameplay_keep/shadow_foot.c create mode 100644 assets/objects/gameplay_keep/shadow_foot.h create mode 100644 assets/objects/gameplay_keep/shadow_horse.c create mode 100644 assets/objects/gameplay_keep/shadow_horse.h create mode 100644 assets/objects/gameplay_keep/shopkeeper_controls_tex.c create mode 100644 assets/objects/gameplay_keep/shopkeeper_controls_tex.h create mode 100644 assets/objects/gameplay_keep/sign_textures.c create mode 100644 assets/objects/gameplay_keep/sign_textures.h create mode 100644 assets/objects/gameplay_keep/small_cube_col.c create mode 100644 assets/objects/gameplay_keep/small_cube_col.h create mode 100644 assets/objects/gameplay_keep/small_cube_model.c create mode 100644 assets/objects/gameplay_keep/small_cube_model.h create mode 100644 assets/objects/gameplay_keep/small_flat_block_col.c create mode 100644 assets/objects/gameplay_keep/small_flat_block_col.h create mode 100644 assets/objects/gameplay_keep/spin_attack.c create mode 100644 assets/objects/gameplay_keep/spin_attack.h create mode 100644 assets/objects/gameplay_keep/sun_evening_textures.c create mode 100644 assets/objects/gameplay_keep/sun_evening_textures.h create mode 100644 assets/objects/gameplay_keep/sun_textures.c create mode 100644 assets/objects/gameplay_keep/sun_textures.h create mode 100644 assets/objects/gameplay_keep/tree_stump_model.c create mode 100644 assets/objects/gameplay_keep/tree_stump_model.h create mode 100644 assets/objects/gameplay_keep/unk_eff_blure_tex.c create mode 100644 assets/objects/gameplay_keep/unk_eff_blure_tex.h create mode 100644 assets/objects/gameplay_keep/unknown_eff_stone.c create mode 100644 assets/objects/gameplay_keep/unknown_eff_stone.h create mode 100644 assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.c create mode 100644 assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.h create mode 100644 assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.c create mode 100644 assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.h create mode 100644 assets/objects/gameplay_keep/unused_bubbles.c create mode 100644 assets/objects/gameplay_keep/unused_bubbles.h create mode 100644 assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.c create mode 100644 assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.h create mode 100644 assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.c create mode 100644 assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.h create mode 100644 assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.c create mode 100644 assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.h diff --git a/assets/objects/gameplay_keep/arrow_skel.c b/assets/objects/gameplay_keep/arrow_skel.c new file mode 100644 index 0000000000..493728e9c4 --- /dev/null +++ b/assets/objects/gameplay_keep/arrow_skel.c @@ -0,0 +1,52 @@ +#include "arrow_skel.h" +#include "hilite_textures.h" +#include "array_count.h" +#include "gfx.h" + +u64 gArrowShaftTex[TEX_LEN(u64, gArrowShaftTex_WIDTH, gArrowShaftTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gArrowShaftTex.rgba16.inc.c" +}; + +u64 gArrowFletchingTex[TEX_LEN(u64, gArrowFletchingTex_WIDTH, gArrowFletchingTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gArrowFletchingTex.rgba16.inc.c" +}; + +Vtx gArrowNearVtx[] = { +#include "assets/objects/gameplay_keep/gArrowNearVtx.inc.c" +}; + +Gfx gArrowNearDL[60] = { +#include "assets/objects/gameplay_keep/gArrowNearDL.inc.c" +}; + +Vtx gArrowFarVtx[] = { +#include "assets/objects/gameplay_keep/gArrowFarVtx.inc.c" +}; + +Gfx gArrowFarDL[52] = { +#include "assets/objects/gameplay_keep/gArrowFarDL.inc.c" +}; + +LodLimb gArrowSkelLimb_0 = { +#include "assets/objects/gameplay_keep/gArrowSkelLimb_0.inc.c" +}; + +LodLimb gArrowSkelLimb_1 = { +#include "assets/objects/gameplay_keep/gArrowSkelLimb_1.inc.c" +}; + +LodLimb gArrowSkelLimb_2 = { +#include "assets/objects/gameplay_keep/gArrowSkelLimb_2.inc.c" +}; + +LodLimb gArrowSkelLimb_3 = { +#include "assets/objects/gameplay_keep/gArrowSkelLimb_3.inc.c" +}; + +void* gArrowLimbs[] = { +#include "assets/objects/gameplay_keep/gArrowLimbs.inc.c" +}; + +SkeletonHeader gArrowSkel = { +#include "assets/objects/gameplay_keep/gArrowSkel.inc.c" +}; diff --git a/assets/objects/gameplay_keep/arrow_skel.h b/assets/objects/gameplay_keep/arrow_skel.h new file mode 100644 index 0000000000..f695bffaf6 --- /dev/null +++ b/assets/objects/gameplay_keep/arrow_skel.h @@ -0,0 +1,32 @@ +#ifndef GAMEPLAY_KEEP_ARROW_SKEL_H +#define GAMEPLAY_KEEP_ARROW_SKEL_H + +#include "tex_len.h" +#include "animation.h" + +#define gArrowShaftTex_WIDTH 16 +#define gArrowShaftTex_HEIGHT 128 +extern u64 gArrowShaftTex[TEX_LEN(u64, gArrowShaftTex_WIDTH, gArrowShaftTex_HEIGHT, 16)]; +#define gArrowFletchingTex_WIDTH 32 +#define gArrowFletchingTex_HEIGHT 16 +extern u64 gArrowFletchingTex[TEX_LEN(u64, gArrowFletchingTex_WIDTH, gArrowFletchingTex_HEIGHT, 16)]; +extern Vtx gArrowNearVtx[]; +extern Gfx gArrowNearDL[60]; +extern Vtx gArrowFarVtx[]; +extern Gfx gArrowFarDL[52]; +extern LodLimb gArrowSkelLimb_0; +extern LodLimb gArrowSkelLimb_1; +extern LodLimb gArrowSkelLimb_2; +extern LodLimb gArrowSkelLimb_3; +extern void* gArrowLimbs[]; +typedef enum ArrowSkelLimb { + /* 0 */ ARROW_LIMB_NONE, + /* 1 */ ARROW_LIMB_0, + /* 2 */ ARROW_LIMB_1, + /* 3 */ ARROW_LIMB_2, + /* 4 */ ARROW_LIMB_3, + /* 5 */ ARROW_LIMB_MAX +} ArrowSkelLimb; +extern SkeletonHeader gArrowSkel; + +#endif diff --git a/assets/objects/gameplay_keep/bomb_body.c b/assets/objects/gameplay_keep/bomb_body.c new file mode 100644 index 0000000000..ad3a24b9c2 --- /dev/null +++ b/assets/objects/gameplay_keep/bomb_body.c @@ -0,0 +1,14 @@ +#include "bomb_body.h" +#include "gfx.h" + +u64 gBombBodyTex[TEX_LEN(u64, gBombBodyTex_WIDTH, gBombBodyTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gBombBodyTex.ia8.inc.c" +}; + +Vtx gBombBodyVtx[] = { +#include "assets/objects/gameplay_keep/gBombBodyVtx.inc.c" +}; + +Gfx gBombBodyDL[17] = { +#include "assets/objects/gameplay_keep/gBombBodyDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/bomb_body.h b/assets/objects/gameplay_keep/bomb_body.h new file mode 100644 index 0000000000..e7e91cc486 --- /dev/null +++ b/assets/objects/gameplay_keep/bomb_body.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_BOMB_BODY_H +#define GAMEPLAY_KEEP_BOMB_BODY_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gBombBodyTex_WIDTH 64 +#define gBombBodyTex_HEIGHT 64 +extern u64 gBombBodyTex[TEX_LEN(u64, gBombBodyTex_WIDTH, gBombBodyTex_HEIGHT, 8)]; +extern Vtx gBombBodyVtx[]; +extern Gfx gBombBodyDL[17]; + +#endif diff --git a/assets/objects/gameplay_keep/bomb_cap.c b/assets/objects/gameplay_keep/bomb_cap.c new file mode 100644 index 0000000000..965a39b870 --- /dev/null +++ b/assets/objects/gameplay_keep/bomb_cap.c @@ -0,0 +1,14 @@ +#include "bomb_cap.h" +#include "gfx.h" + +u64 gBombCapTex[TEX_LEN(u64, gBombCapTex_WIDTH, gBombCapTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gBombCapTex.rgba16.inc.c" +}; + +Vtx gBombCapVtx[] = { +#include "assets/objects/gameplay_keep/gBombCapVtx.inc.c" +}; + +Gfx gBombCapDL[24] = { +#include "assets/objects/gameplay_keep/gBombCapDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/bomb_cap.h b/assets/objects/gameplay_keep/bomb_cap.h new file mode 100644 index 0000000000..e0c59b12e8 --- /dev/null +++ b/assets/objects/gameplay_keep/bomb_cap.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_BOMB_CAP_H +#define GAMEPLAY_KEEP_BOMB_CAP_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gBombCapTex_WIDTH 8 +#define gBombCapTex_HEIGHT 8 +extern u64 gBombCapTex[TEX_LEN(u64, gBombCapTex_WIDTH, gBombCapTex_HEIGHT, 16)]; +extern Vtx gBombCapVtx[]; +extern Gfx gBombCapDL[24]; + +#endif diff --git a/assets/objects/gameplay_keep/bombchu_body.c b/assets/objects/gameplay_keep/bombchu_body.c new file mode 100644 index 0000000000..f0517de9e1 --- /dev/null +++ b/assets/objects/gameplay_keep/bombchu_body.c @@ -0,0 +1,14 @@ +#include "bombchu_body.h" +#include "gfx.h" + +u64 gBombchuBodyTex[TEX_LEN(u64, gBombchuBodyTex_WIDTH, gBombchuBodyTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gBombchuBodyTex.rgba16.inc.c" +}; + +Vtx gBombchuVtx[] = { +#include "assets/objects/gameplay_keep/gBombchuVtx.inc.c" +}; + +Gfx gBombchuDL[45] = { +#include "assets/objects/gameplay_keep/gBombchuDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/bombchu_body.h b/assets/objects/gameplay_keep/bombchu_body.h new file mode 100644 index 0000000000..ebd4b6a26d --- /dev/null +++ b/assets/objects/gameplay_keep/bombchu_body.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_BOMBCHU_BODY_H +#define GAMEPLAY_KEEP_BOMBCHU_BODY_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gBombchuBodyTex_WIDTH 8 +#define gBombchuBodyTex_HEIGHT 8 +extern u64 gBombchuBodyTex[TEX_LEN(u64, gBombchuBodyTex_WIDTH, gBombchuBodyTex_HEIGHT, 16)]; +extern Vtx gBombchuVtx[]; +extern Gfx gBombchuDL[45]; + +#endif diff --git a/assets/objects/gameplay_keep/boomerang.c b/assets/objects/gameplay_keep/boomerang.c new file mode 100644 index 0000000000..ccc4243e10 --- /dev/null +++ b/assets/objects/gameplay_keep/boomerang.c @@ -0,0 +1,20 @@ +#include "boomerang.h" +#include "gameplay_keep_0x16A50.h" +#include "hilite_textures.h" +#include "gfx.h" + +Vtx gBoomerangVtx[] = { +#include "assets/objects/gameplay_keep/gBoomerangVtx.inc.c" +}; + +Gfx gUnknownBlankDL[1] = { +#include "assets/objects/gameplay_keep/gUnknownBlankDL.inc.c" +}; + +Gfx gBoomerangDL[46] = { +#include "assets/objects/gameplay_keep/gBoomerangDL.inc.c" +}; + +Gfx gBoomerangRefDL[2] = { +#include "assets/objects/gameplay_keep/gBoomerangRefDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/boomerang.h b/assets/objects/gameplay_keep/boomerang.h new file mode 100644 index 0000000000..d288b7986c --- /dev/null +++ b/assets/objects/gameplay_keep/boomerang.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_BOOMERANG_H +#define GAMEPLAY_KEEP_BOOMERANG_H + +#include "ultra64.h" + +extern Vtx gBoomerangVtx[]; +extern Gfx gUnknownBlankDL[1]; +extern Gfx gBoomerangDL[46]; +extern Gfx gBoomerangRefDL[2]; + +#endif diff --git a/assets/objects/gameplay_keep/bug_skel.c b/assets/objects/gameplay_keep/bug_skel.c new file mode 100644 index 0000000000..25bb27e0aa --- /dev/null +++ b/assets/objects/gameplay_keep/bug_skel.c @@ -0,0 +1,255 @@ +#include "bug_skel.h" +#include "array_count.h" +#include "gfx.h" + +Gfx gBugLimb_1DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_1DL.inc.c" +}; + +Gfx gBugLimb_1WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_1WrapperDL.inc.c" +}; + +Gfx gBugLimb_1WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_1WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_1Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_1Vtx.inc.c" +}; + +Gfx gBugLimb_2DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_2DL.inc.c" +}; + +Gfx gBugLimb_2WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_2WrapperDL.inc.c" +}; + +Gfx gBugLimb_2WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_2WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_2Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_2Vtx.inc.c" +}; + +Gfx gBugLimb_3DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_3DL.inc.c" +}; + +Gfx gBugLimb_3WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_3WrapperDL.inc.c" +}; + +Gfx gBugLimb_3WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_3WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_3Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_3Vtx.inc.c" +}; + +Gfx gBugLimb_4DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_4DL.inc.c" +}; + +Gfx gBugLimb_4WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_4WrapperDL.inc.c" +}; + +Gfx gBugLimb_4WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_4WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_4Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_4Vtx.inc.c" +}; + +Gfx gBugLimb_5DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_5DL.inc.c" +}; + +Gfx gBugLimb_5WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_5WrapperDL.inc.c" +}; + +Gfx gBugLimb_5WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_5WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_5Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_5Vtx.inc.c" +}; + +Gfx gBugLimb_6DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_6DL.inc.c" +}; + +Gfx gBugLimb_6WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_6WrapperDL.inc.c" +}; + +Gfx gBugLimb_6WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_6WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_6Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_6Vtx.inc.c" +}; + +Gfx gBugLimb_7DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_7DL.inc.c" +}; + +Gfx gBugLimb_7WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_7WrapperDL.inc.c" +}; + +Gfx gBugLimb_7WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_7WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_7Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_7Vtx.inc.c" +}; + +Gfx gBugLimb_8DL[20] = { +#include "assets/objects/gameplay_keep/gBugLimb_8DL.inc.c" +}; + +Gfx gBugLimb_8WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_8WrapperDL.inc.c" +}; + +Gfx gBugLimb_8WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_8WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_8Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_8Vtx.inc.c" +}; + +Gfx gBugLimb_9DL[22] = { +#include "assets/objects/gameplay_keep/gBugLimb_9DL.inc.c" +}; + +Gfx gBugLimb_9WrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_9WrapperDL.inc.c" +}; + +Gfx gBugLimb_9WrapperWrapperDL[2] = { +#include "assets/objects/gameplay_keep/gBugLimb_9WrapperWrapperDL.inc.c" +}; + +Vtx gBugLimb_9Vtx[] = { +#include "assets/objects/gameplay_keep/gBugLimb_9Vtx.inc.c" +}; + +u64 gBugBodyTex[TEX_LEN(u64, gBugBodyTex_WIDTH, gBugBodyTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gBugBodyTex.rgba16.inc.c" +}; + +u64 gBugLegTex[TEX_LEN(u64, gBugLegTex_WIDTH, gBugLegTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gBugLegTex.rgba16.inc.c" +}; + +StandardLimb gBugSkelLimb_0 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_0.inc.c" +}; + +StandardLimb gBugSkelLimb_1 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_1.inc.c" +}; + +StandardLimb gBugSkelLimb_2 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_2.inc.c" +}; + +StandardLimb gBugSkelLimb_3 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_3.inc.c" +}; + +StandardLimb gBugSkelLimb_4 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_4.inc.c" +}; + +StandardLimb gBugSkelLimb_5 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_5.inc.c" +}; + +StandardLimb gBugSkelLimb_6 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_6.inc.c" +}; + +StandardLimb gBugSkelLimb_7 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_7.inc.c" +}; + +StandardLimb gBugSkelLimb_8 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_8.inc.c" +}; + +StandardLimb gBugSkelLimb_9 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_9.inc.c" +}; + +StandardLimb gBugSkelLimb_10 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_10.inc.c" +}; + +StandardLimb gBugSkelLimb_11 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_11.inc.c" +}; + +StandardLimb gBugSkelLimb_12 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_12.inc.c" +}; + +StandardLimb gBugSkelLimb_13 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_13.inc.c" +}; + +StandardLimb gBugSkelLimb_14 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_14.inc.c" +}; + +StandardLimb gBugSkelLimb_15 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_15.inc.c" +}; + +StandardLimb gBugSkelLimb_16 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_16.inc.c" +}; + +StandardLimb gBugSkelLimb_17 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_17.inc.c" +}; + +StandardLimb gBugSkelLimb_18 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_18.inc.c" +}; + +StandardLimb gBugSkelLimb_19 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_19.inc.c" +}; + +StandardLimb gBugSkelLimb_20 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_20.inc.c" +}; + +StandardLimb gBugSkelLimb_21 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_21.inc.c" +}; + +StandardLimb gBugSkelLimb_22 = { +#include "assets/objects/gameplay_keep/gBugSkelLimb_22.inc.c" +}; + +void* gBugLimbs[] = { +#include "assets/objects/gameplay_keep/gBugLimbs.inc.c" +}; + +SkeletonHeader gBugSkel = { +#include "assets/objects/gameplay_keep/gBugSkel.inc.c" +}; diff --git a/assets/objects/gameplay_keep/bug_skel.h b/assets/objects/gameplay_keep/bug_skel.h new file mode 100644 index 0000000000..d742254c94 --- /dev/null +++ b/assets/objects/gameplay_keep/bug_skel.h @@ -0,0 +1,103 @@ +#ifndef GAMEPLAY_KEEP_BUG_SKEL_H +#define GAMEPLAY_KEEP_BUG_SKEL_H + +#include "tex_len.h" +#include "ultra64.h" +#include "animation.h" + +extern Gfx gBugLimb_1DL[20]; +extern Gfx gBugLimb_1WrapperDL[2]; +extern Gfx gBugLimb_1WrapperWrapperDL[2]; +extern Vtx gBugLimb_1Vtx[]; +extern Gfx gBugLimb_2DL[20]; +extern Gfx gBugLimb_2WrapperDL[2]; +extern Gfx gBugLimb_2WrapperWrapperDL[2]; +extern Vtx gBugLimb_2Vtx[]; +extern Gfx gBugLimb_3DL[20]; +extern Gfx gBugLimb_3WrapperDL[2]; +extern Gfx gBugLimb_3WrapperWrapperDL[2]; +extern Vtx gBugLimb_3Vtx[]; +extern Gfx gBugLimb_4DL[20]; +extern Gfx gBugLimb_4WrapperDL[2]; +extern Gfx gBugLimb_4WrapperWrapperDL[2]; +extern Vtx gBugLimb_4Vtx[]; +extern Gfx gBugLimb_5DL[20]; +extern Gfx gBugLimb_5WrapperDL[2]; +extern Gfx gBugLimb_5WrapperWrapperDL[2]; +extern Vtx gBugLimb_5Vtx[]; +extern Gfx gBugLimb_6DL[20]; +extern Gfx gBugLimb_6WrapperDL[2]; +extern Gfx gBugLimb_6WrapperWrapperDL[2]; +extern Vtx gBugLimb_6Vtx[]; +extern Gfx gBugLimb_7DL[20]; +extern Gfx gBugLimb_7WrapperDL[2]; +extern Gfx gBugLimb_7WrapperWrapperDL[2]; +extern Vtx gBugLimb_7Vtx[]; +extern Gfx gBugLimb_8DL[20]; +extern Gfx gBugLimb_8WrapperDL[2]; +extern Gfx gBugLimb_8WrapperWrapperDL[2]; +extern Vtx gBugLimb_8Vtx[]; +extern Gfx gBugLimb_9DL[22]; +extern Gfx gBugLimb_9WrapperDL[2]; +extern Gfx gBugLimb_9WrapperWrapperDL[2]; +extern Vtx gBugLimb_9Vtx[]; +#define gBugBodyTex_WIDTH 16 +#define gBugBodyTex_HEIGHT 64 +extern u64 gBugBodyTex[TEX_LEN(u64, gBugBodyTex_WIDTH, gBugBodyTex_HEIGHT, 16)]; +#define gBugLegTex_WIDTH 8 +#define gBugLegTex_HEIGHT 16 +extern u64 gBugLegTex[TEX_LEN(u64, gBugLegTex_WIDTH, gBugLegTex_HEIGHT, 16)]; +extern StandardLimb gBugSkelLimb_0; +extern StandardLimb gBugSkelLimb_1; +extern StandardLimb gBugSkelLimb_2; +extern StandardLimb gBugSkelLimb_3; +extern StandardLimb gBugSkelLimb_4; +extern StandardLimb gBugSkelLimb_5; +extern StandardLimb gBugSkelLimb_6; +extern StandardLimb gBugSkelLimb_7; +extern StandardLimb gBugSkelLimb_8; +extern StandardLimb gBugSkelLimb_9; +extern StandardLimb gBugSkelLimb_10; +extern StandardLimb gBugSkelLimb_11; +extern StandardLimb gBugSkelLimb_12; +extern StandardLimb gBugSkelLimb_13; +extern StandardLimb gBugSkelLimb_14; +extern StandardLimb gBugSkelLimb_15; +extern StandardLimb gBugSkelLimb_16; +extern StandardLimb gBugSkelLimb_17; +extern StandardLimb gBugSkelLimb_18; +extern StandardLimb gBugSkelLimb_19; +extern StandardLimb gBugSkelLimb_20; +extern StandardLimb gBugSkelLimb_21; +extern StandardLimb gBugSkelLimb_22; +extern void* gBugLimbs[]; +typedef enum BugSkelLimb { + /* 0 */ BUG_LIMB_NONE, + /* 1 */ BUG_LIMB_0, + /* 2 */ BUG_LIMB_1, + /* 3 */ BUG_LIMB_2, + /* 4 */ BUG_LIMB_3, + /* 5 */ BUG_LIMB_4, + /* 6 */ BUG_LIMB_5, + /* 7 */ BUG_LIMB_6, + /* 8 */ BUG_LIMB_7, + /* 9 */ BUG_LIMB_8, + /* 10 */ BUG_LIMB_9, + /* 11 */ BUG_LIMB_10, + /* 12 */ BUG_LIMB_11, + /* 13 */ BUG_LIMB_12, + /* 14 */ BUG_LIMB_13, + /* 15 */ BUG_LIMB_14, + /* 16 */ BUG_LIMB_15, + /* 17 */ BUG_LIMB_16, + /* 18 */ BUG_LIMB_17, + /* 19 */ BUG_LIMB_18, + /* 20 */ BUG_LIMB_19, + /* 21 */ BUG_LIMB_20, + /* 22 */ BUG_LIMB_21, + /* 23 */ BUG_LIMB_22, + /* 24 */ BUG_LIMB_MAX +} BugSkelLimb; +extern SkeletonHeader gBugSkel; + +#endif diff --git a/assets/objects/gameplay_keep/circle_glow_textures.c b/assets/objects/gameplay_keep/circle_glow_textures.c new file mode 100644 index 0000000000..0914f13e0e --- /dev/null +++ b/assets/objects/gameplay_keep/circle_glow_textures.c @@ -0,0 +1,17 @@ +#include "circle_glow_textures.h" + +u64 gCircleGlowLTex[TEX_LEN(u64, gCircleGlowLTex_WIDTH, gCircleGlowLTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gCircleGlowLTex.i8.inc.c" +}; + +u64 gCircleGlowRTex[TEX_LEN(u64, gCircleGlowRTex_WIDTH, gCircleGlowRTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gCircleGlowRTex.i8.inc.c" +}; + +u64 gCircleGlowSLTex[TEX_LEN(u64, gCircleGlowSLTex_WIDTH, gCircleGlowSLTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gCircleGlowSLTex.i8.inc.c" +}; + +u64 gCircleGlowSRTex[TEX_LEN(u64, gCircleGlowSRTex_WIDTH, gCircleGlowSRTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gCircleGlowSRTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/circle_glow_textures.h b/assets/objects/gameplay_keep/circle_glow_textures.h new file mode 100644 index 0000000000..d326d1b456 --- /dev/null +++ b/assets/objects/gameplay_keep/circle_glow_textures.h @@ -0,0 +1,20 @@ +#ifndef GAMEPLAY_KEEP_CIRCLE_GLOW_TEXTURES_H +#define GAMEPLAY_KEEP_CIRCLE_GLOW_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gCircleGlowLTex_WIDTH 32 +#define gCircleGlowLTex_HEIGHT 64 +extern u64 gCircleGlowLTex[TEX_LEN(u64, gCircleGlowLTex_WIDTH, gCircleGlowLTex_HEIGHT, 8)]; +#define gCircleGlowRTex_WIDTH 32 +#define gCircleGlowRTex_HEIGHT 64 +extern u64 gCircleGlowRTex[TEX_LEN(u64, gCircleGlowRTex_WIDTH, gCircleGlowRTex_HEIGHT, 8)]; +#define gCircleGlowSLTex_WIDTH 32 +#define gCircleGlowSLTex_HEIGHT 64 +extern u64 gCircleGlowSLTex[TEX_LEN(u64, gCircleGlowSLTex_WIDTH, gCircleGlowSLTex_HEIGHT, 8)]; +#define gCircleGlowSRTex_WIDTH 32 +#define gCircleGlowSRTex_HEIGHT 64 +extern u64 gCircleGlowSRTex[TEX_LEN(u64, gCircleGlowSRTex_WIDTH, gCircleGlowSRTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/compass_arrow.c b/assets/objects/gameplay_keep/compass_arrow.c new file mode 100644 index 0000000000..b41eb184e9 --- /dev/null +++ b/assets/objects/gameplay_keep/compass_arrow.c @@ -0,0 +1,10 @@ +#include "compass_arrow.h" +#include "gfx.h" + +Gfx gCompassArrowDL[5] = { +#include "assets/objects/gameplay_keep/gCompassArrowDL.inc.c" +}; + +Vtx gCompassArrowVtx[] = { +#include "assets/objects/gameplay_keep/gCompassArrowVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/compass_arrow.h b/assets/objects/gameplay_keep/compass_arrow.h new file mode 100644 index 0000000000..4d3b5f3d4a --- /dev/null +++ b/assets/objects/gameplay_keep/compass_arrow.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_COMPASS_ARROW_H +#define GAMEPLAY_KEEP_COMPASS_ARROW_H + +#include "ultra64.h" + +extern Gfx gCompassArrowDL[5]; +extern Vtx gCompassArrowVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/cuttable_shrub.c b/assets/objects/gameplay_keep/cuttable_shrub.c new file mode 100644 index 0000000000..4d25fba68d --- /dev/null +++ b/assets/objects/gameplay_keep/cuttable_shrub.c @@ -0,0 +1,27 @@ +#include "cuttable_shrub.h" +#include "gfx.h" + +Vtx gCuttableShrubStalkVtx[] = { +#include "assets/objects/gameplay_keep/gCuttableShrubStalkVtx.inc.c" +}; + +Gfx gCuttableShrubStalkDL[18] = { +#include "assets/objects/gameplay_keep/gCuttableShrubStalkDL.inc.c" +}; + +Vtx gCuttableShrubTipVtx[] = { +#include "assets/objects/gameplay_keep/gCuttableShrubTipVtx.inc.c" +}; + +Gfx gCuttableShrubTipDL[18] = { +#include "assets/objects/gameplay_keep/gCuttableShrubTipDL.inc.c" +}; + +u64 gCuttableShrubLeafTFragmentTex[TEX_LEN(u64, gCuttableShrubLeafTFragmentTex_WIDTH, + gCuttableShrubLeafTFragmentTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gCuttableShrubLeafTFragmentTex.rgba16.inc.c" +}; + +u64 gCuttableShrubTex[TEX_LEN(u64, gCuttableShrubTex_WIDTH, gCuttableShrubTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gCuttableShrubTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/cuttable_shrub.h b/assets/objects/gameplay_keep/cuttable_shrub.h new file mode 100644 index 0000000000..977fa363c6 --- /dev/null +++ b/assets/objects/gameplay_keep/cuttable_shrub.h @@ -0,0 +1,18 @@ +#ifndef GAMEPLAY_KEEP_CUTTABLE_SHRUB_H +#define GAMEPLAY_KEEP_CUTTABLE_SHRUB_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gCuttableShrubStalkVtx[]; +extern Gfx gCuttableShrubStalkDL[18]; +extern Vtx gCuttableShrubTipVtx[]; +extern Gfx gCuttableShrubTipDL[18]; +#define gCuttableShrubLeafTFragmentTex_WIDTH 32 +#define gCuttableShrubLeafTFragmentTex_HEIGHT 32 +extern u64 gCuttableShrubLeafTFragmentTex[TEX_LEN(u64, gCuttableShrubLeafTFragmentTex_WIDTH, gCuttableShrubLeafTFragmentTex_HEIGHT, 16)]; +#define gCuttableShrubTex_WIDTH 32 +#define gCuttableShrubTex_HEIGHT 32 +extern u64 gCuttableShrubTex[TEX_LEN(u64, gCuttableShrubTex_WIDTH, gCuttableShrubTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/debug_models.c b/assets/objects/gameplay_keep/debug_models.c new file mode 100644 index 0000000000..fb718214ab --- /dev/null +++ b/assets/objects/gameplay_keep/debug_models.c @@ -0,0 +1,62 @@ +#include "debug_models.h" +#include "gfx.h" + +Vtx gDebugPyramidVtx[] = { +#include "assets/objects/gameplay_keep/gDebugPyramidVtx.inc.c" +}; + +Gfx gDebugPyramidDL[6] = { +#include "assets/objects/gameplay_keep/gDebugPyramidDL.inc.c" +}; + +u64 gDebugCircleTex[TEX_LEN(u64, gDebugCircleTex_WIDTH, gDebugCircleTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDebugCircleTex.i8.inc.c" +}; + +u64 gDebugBallTex[TEX_LEN(u64, gDebugBallTex_WIDTH, gDebugBallTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDebugBallTex.i8.inc.c" +}; + +u64 gDebugCursorTex[TEX_LEN(u64, gDebugCursorTex_WIDTH, gDebugCursorTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDebugCursorTex.i8.inc.c" +}; + +u64 gDebugCrossTex[TEX_LEN(u64, gDebugCrossTex_WIDTH, gDebugCrossTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDebugCrossTex.i8.inc.c" +}; + +Gfx gDebugArrowDL[12] = { +#include "assets/objects/gameplay_keep/gDebugArrowDL.inc.c" +}; + +Vtx gDebugArrowVtx[] = { +#include "assets/objects/gameplay_keep/gDebugArrowVtx.inc.c" +}; + +Gfx gDebugCameraDL[15] = { +#include "assets/objects/gameplay_keep/gDebugCameraDL.inc.c" +}; + +Vtx gDebugCameraVtx[] = { +#include "assets/objects/gameplay_keep/gDebugCameraVtx.inc.c" +}; + +Vtx gDebugCheckeredFloorVtx[] = { +#include "assets/objects/gameplay_keep/gDebugCheckeredFloorVtx.inc.c" +}; + +Gfx gDebugCheckeredFloorDL[18] = { +#include "assets/objects/gameplay_keep/gDebugCheckeredFloorDL.inc.c" +}; + +u64 gDebugCheckeredFloorTex[TEX_LEN(u64, gDebugCheckeredFloorTex_WIDTH, gDebugCheckeredFloorTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gDebugCheckeredFloorTex.ia4.inc.c" +}; + +Vtx gDebugSpriteVtx[] = { +#include "assets/objects/gameplay_keep/gDebugSpriteVtx.inc.c" +}; + +Gfx gDebugSpriteDL[3] = { +#include "assets/objects/gameplay_keep/gDebugSpriteDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/debug_models.h b/assets/objects/gameplay_keep/debug_models.h new file mode 100644 index 0000000000..52da352443 --- /dev/null +++ b/assets/objects/gameplay_keep/debug_models.h @@ -0,0 +1,33 @@ +#ifndef GAMEPLAY_KEEP_DEBUG_MODELS_H +#define GAMEPLAY_KEEP_DEBUG_MODELS_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gDebugPyramidVtx[]; +extern Gfx gDebugPyramidDL[6]; +#define gDebugCircleTex_WIDTH 16 +#define gDebugCircleTex_HEIGHT 16 +extern u64 gDebugCircleTex[TEX_LEN(u64, gDebugCircleTex_WIDTH, gDebugCircleTex_HEIGHT, 8)]; +#define gDebugBallTex_WIDTH 16 +#define gDebugBallTex_HEIGHT 16 +extern u64 gDebugBallTex[TEX_LEN(u64, gDebugBallTex_WIDTH, gDebugBallTex_HEIGHT, 8)]; +#define gDebugCursorTex_WIDTH 16 +#define gDebugCursorTex_HEIGHT 16 +extern u64 gDebugCursorTex[TEX_LEN(u64, gDebugCursorTex_WIDTH, gDebugCursorTex_HEIGHT, 8)]; +#define gDebugCrossTex_WIDTH 16 +#define gDebugCrossTex_HEIGHT 16 +extern u64 gDebugCrossTex[TEX_LEN(u64, gDebugCrossTex_WIDTH, gDebugCrossTex_HEIGHT, 8)]; +extern Gfx gDebugArrowDL[12]; +extern Vtx gDebugArrowVtx[]; +extern Gfx gDebugCameraDL[15]; +extern Vtx gDebugCameraVtx[]; +extern Vtx gDebugCheckeredFloorVtx[]; +extern Gfx gDebugCheckeredFloorDL[18]; +#define gDebugCheckeredFloorTex_WIDTH 32 +#define gDebugCheckeredFloorTex_HEIGHT 32 +extern u64 gDebugCheckeredFloorTex[TEX_LEN(u64, gDebugCheckeredFloorTex_WIDTH, gDebugCheckeredFloorTex_HEIGHT, 4)]; +extern Vtx gDebugSpriteVtx[]; +extern Gfx gDebugSpriteDL[3]; + +#endif diff --git a/assets/objects/gameplay_keep/directional_sign_model.c b/assets/objects/gameplay_keep/directional_sign_model.c new file mode 100644 index 0000000000..716ad861ec --- /dev/null +++ b/assets/objects/gameplay_keep/directional_sign_model.c @@ -0,0 +1,11 @@ +#include "directional_sign_model.h" +#include "sign_textures.h" +#include "gfx.h" + +Vtx gSignDirectionalVtx[] = { +#include "assets/objects/gameplay_keep/gSignDirectionalVtx.inc.c" +}; + +Gfx gSignDirectionalDL[88] = { +#include "assets/objects/gameplay_keep/gSignDirectionalDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/directional_sign_model.h b/assets/objects/gameplay_keep/directional_sign_model.h new file mode 100644 index 0000000000..9ba0dc8600 --- /dev/null +++ b/assets/objects/gameplay_keep/directional_sign_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_DIRECTIONAL_SIGN_MODEL_H +#define GAMEPLAY_KEEP_DIRECTIONAL_SIGN_MODEL_H + +#include "ultra64.h" + +extern Vtx gSignDirectionalVtx[]; +extern Gfx gSignDirectionalDL[88]; + +#endif diff --git a/assets/objects/gameplay_keep/door_skel.c b/assets/objects/gameplay_keep/door_skel.c new file mode 100644 index 0000000000..ab71076772 --- /dev/null +++ b/assets/objects/gameplay_keep/door_skel.c @@ -0,0 +1,55 @@ +#include "door_skel.h" +#include "array_count.h" +#include "gfx.h" + +Vtx gDoorLeftVtx[] = { +#include "assets/objects/gameplay_keep/gDoorLeftVtx.inc.c" +}; + +Vtx gDoorRightVtx[] = { +#include "assets/objects/gameplay_keep/gDoorRightVtx.inc.c" +}; + +Vtx gDoorFrameVtx[] = { +#include "assets/objects/gameplay_keep/gDoorFrameVtx.inc.c" +}; + +Gfx gDoorFrameDL[17] = { +#include "assets/objects/gameplay_keep/gDoorFrameDL.inc.c" +}; + +Gfx gDoorLeftDL[41] = { +#include "assets/objects/gameplay_keep/gDoorLeftDL.inc.c" +}; + +Gfx gDoorRightDL[39] = { +#include "assets/objects/gameplay_keep/gDoorRightDL.inc.c" +}; + +u64 gWoodenDoorTex[TEX_LEN(u64, gWoodenDoorTex_WIDTH, gWoodenDoorTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gWoodenDoorTex.rgba16.inc.c" +}; + +StandardLimb gDoorSkelLimb_0 = { +#include "assets/objects/gameplay_keep/gDoorSkelLimb_0.inc.c" +}; + +StandardLimb gDoorSkelLimb_1 = { +#include "assets/objects/gameplay_keep/gDoorSkelLimb_1.inc.c" +}; + +StandardLimb gDoorSkelLimb_2 = { +#include "assets/objects/gameplay_keep/gDoorSkelLimb_2.inc.c" +}; + +StandardLimb gDoorSkelLimb_3 = { +#include "assets/objects/gameplay_keep/gDoorSkelLimb_3.inc.c" +}; + +void* gDoorLimbs[] = { +#include "assets/objects/gameplay_keep/gDoorLimbs.inc.c" +}; + +SkeletonHeader gDoorSkel = { +#include "assets/objects/gameplay_keep/gDoorSkel.inc.c" +}; diff --git a/assets/objects/gameplay_keep/door_skel.h b/assets/objects/gameplay_keep/door_skel.h new file mode 100644 index 0000000000..9319ffad76 --- /dev/null +++ b/assets/objects/gameplay_keep/door_skel.h @@ -0,0 +1,32 @@ +#ifndef GAMEPLAY_KEEP_DOOR_SKEL_H +#define GAMEPLAY_KEEP_DOOR_SKEL_H + +#include "tex_len.h" +#include "ultra64.h" +#include "animation.h" + +extern Vtx gDoorLeftVtx[]; +extern Vtx gDoorRightVtx[]; +extern Vtx gDoorFrameVtx[]; +extern Gfx gDoorFrameDL[17]; +extern Gfx gDoorLeftDL[41]; +extern Gfx gDoorRightDL[39]; +#define gWoodenDoorTex_WIDTH 32 +#define gWoodenDoorTex_HEIGHT 64 +extern u64 gWoodenDoorTex[TEX_LEN(u64, gWoodenDoorTex_WIDTH, gWoodenDoorTex_HEIGHT, 16)]; +extern StandardLimb gDoorSkelLimb_0; +extern StandardLimb gDoorSkelLimb_1; +extern StandardLimb gDoorSkelLimb_2; +extern StandardLimb gDoorSkelLimb_3; +extern void* gDoorLimbs[]; +typedef enum DoorSkelLimb { + /* 0 */ DOOR_LIMB_NONE, + /* 1 */ DOOR_LIMB_0, + /* 2 */ DOOR_LIMB_1, + /* 3 */ DOOR_LIMB_2, + /* 4 */ DOOR_LIMB_3, + /* 5 */ DOOR_LIMB_MAX +} DoorSkelLimb; +extern SkeletonHeader gDoorSkel; + +#endif diff --git a/assets/objects/gameplay_keep/drop_recovery_heart_tex.c b/assets/objects/gameplay_keep/drop_recovery_heart_tex.c new file mode 100644 index 0000000000..347a7714fb --- /dev/null +++ b/assets/objects/gameplay_keep/drop_recovery_heart_tex.c @@ -0,0 +1,5 @@ +#include "drop_recovery_heart_tex.h" + +u64 gDropRecoveryHeartTex[TEX_LEN(u64, gDropRecoveryHeartTex_WIDTH, gDropRecoveryHeartTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropRecoveryHeartTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/drop_recovery_heart_tex.h b/assets/objects/gameplay_keep/drop_recovery_heart_tex.h new file mode 100644 index 0000000000..ecaba29d26 --- /dev/null +++ b/assets/objects/gameplay_keep/drop_recovery_heart_tex.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_DROP_RECOVERY_HEART_TEX_H +#define GAMEPLAY_KEEP_DROP_RECOVERY_HEART_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gDropRecoveryHeartTex_WIDTH 32 +#define gDropRecoveryHeartTex_HEIGHT 32 +extern u64 gDropRecoveryHeartTex[TEX_LEN(u64, gDropRecoveryHeartTex_WIDTH, gDropRecoveryHeartTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/dust_textures.c b/assets/objects/gameplay_keep/dust_textures.c new file mode 100644 index 0000000000..2dccdd6668 --- /dev/null +++ b/assets/objects/gameplay_keep/dust_textures.c @@ -0,0 +1,33 @@ +#include "dust_textures.h" + +u64 gDust1Tex[TEX_LEN(u64, gDust1Tex_WIDTH, gDust1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust1Tex.i8.inc.c" +}; + +u64 gDust2Tex[TEX_LEN(u64, gDust2Tex_WIDTH, gDust2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust2Tex.i8.inc.c" +}; + +u64 gDust3Tex[TEX_LEN(u64, gDust3Tex_WIDTH, gDust3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust3Tex.i8.inc.c" +}; + +u64 gDust4Tex[TEX_LEN(u64, gDust4Tex_WIDTH, gDust4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust4Tex.i8.inc.c" +}; + +u64 gDust5Tex[TEX_LEN(u64, gDust5Tex_WIDTH, gDust5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust5Tex.i8.inc.c" +}; + +u64 gDust6Tex[TEX_LEN(u64, gDust6Tex_WIDTH, gDust6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust6Tex.i8.inc.c" +}; + +u64 gDust7Tex[TEX_LEN(u64, gDust7Tex_WIDTH, gDust7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust7Tex.i8.inc.c" +}; + +u64 gDust8Tex[TEX_LEN(u64, gDust8Tex_WIDTH, gDust8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDust8Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/dust_textures.h b/assets/objects/gameplay_keep/dust_textures.h new file mode 100644 index 0000000000..b771929189 --- /dev/null +++ b/assets/objects/gameplay_keep/dust_textures.h @@ -0,0 +1,32 @@ +#ifndef GAMEPLAY_KEEP_DUST_TEXTURES_H +#define GAMEPLAY_KEEP_DUST_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gDust1Tex_WIDTH 32 +#define gDust1Tex_HEIGHT 32 +extern u64 gDust1Tex[TEX_LEN(u64, gDust1Tex_WIDTH, gDust1Tex_HEIGHT, 8)]; +#define gDust2Tex_WIDTH 32 +#define gDust2Tex_HEIGHT 32 +extern u64 gDust2Tex[TEX_LEN(u64, gDust2Tex_WIDTH, gDust2Tex_HEIGHT, 8)]; +#define gDust3Tex_WIDTH 32 +#define gDust3Tex_HEIGHT 32 +extern u64 gDust3Tex[TEX_LEN(u64, gDust3Tex_WIDTH, gDust3Tex_HEIGHT, 8)]; +#define gDust4Tex_WIDTH 32 +#define gDust4Tex_HEIGHT 32 +extern u64 gDust4Tex[TEX_LEN(u64, gDust4Tex_WIDTH, gDust4Tex_HEIGHT, 8)]; +#define gDust5Tex_WIDTH 32 +#define gDust5Tex_HEIGHT 32 +extern u64 gDust5Tex[TEX_LEN(u64, gDust5Tex_WIDTH, gDust5Tex_HEIGHT, 8)]; +#define gDust6Tex_WIDTH 32 +#define gDust6Tex_HEIGHT 32 +extern u64 gDust6Tex[TEX_LEN(u64, gDust6Tex_WIDTH, gDust6Tex_HEIGHT, 8)]; +#define gDust7Tex_WIDTH 32 +#define gDust7Tex_HEIGHT 32 +extern u64 gDust7Tex[TEX_LEN(u64, gDust7Tex_WIDTH, gDust7Tex_HEIGHT, 8)]; +#define gDust8Tex_WIDTH 32 +#define gDust8Tex_HEIGHT 32 +extern u64 gDust8Tex[TEX_LEN(u64, gDust8Tex_WIDTH, gDust8Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_bomb_explosion.c b/assets/objects/gameplay_keep/eff_bomb_explosion.c new file mode 100644 index 0000000000..cb17bb5af3 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_bomb_explosion.c @@ -0,0 +1,50 @@ +#include "eff_bomb_explosion.h" +#include "gfx.h" + +u64 gEffBombExplosion1Tex[TEX_LEN(u64, gEffBombExplosion1Tex_WIDTH, gEffBombExplosion1Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion1Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion2Tex[TEX_LEN(u64, gEffBombExplosion2Tex_WIDTH, gEffBombExplosion2Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion2Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion3Tex[TEX_LEN(u64, gEffBombExplosion3Tex_WIDTH, gEffBombExplosion3Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion3Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion4Tex[TEX_LEN(u64, gEffBombExplosion4Tex_WIDTH, gEffBombExplosion4Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion4Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion5Tex[TEX_LEN(u64, gEffBombExplosion5Tex_WIDTH, gEffBombExplosion5Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion5Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion6Tex[TEX_LEN(u64, gEffBombExplosion6Tex_WIDTH, gEffBombExplosion6Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion6Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion7Tex[TEX_LEN(u64, gEffBombExplosion7Tex_WIDTH, gEffBombExplosion7Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion7Tex.ia16.inc.c" +}; + +u64 gEffBombExplosion8Tex[TEX_LEN(u64, gEffBombExplosion8Tex_WIDTH, gEffBombExplosion8Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion8Tex.ia16.inc.c" +}; + +Gfx gEffBombExplosion1DL[13] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion1DL.inc.c" +}; + +Gfx gEffBombExplosion2DL[11] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion2DL.inc.c" +}; + +Gfx gEffBombExplosion3DL[3] = { +#include "assets/objects/gameplay_keep/gEffBombExplosion3DL.inc.c" +}; + +Vtx gEffBombExplosionVtx[] = { +#include "assets/objects/gameplay_keep/gEffBombExplosionVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_bomb_explosion.h b/assets/objects/gameplay_keep/eff_bomb_explosion.h new file mode 100644 index 0000000000..46d8957426 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_bomb_explosion.h @@ -0,0 +1,36 @@ +#ifndef GAMEPLAY_KEEP_EFF_BOMB_EXPLOSION_H +#define GAMEPLAY_KEEP_EFF_BOMB_EXPLOSION_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffBombExplosion1Tex_WIDTH 32 +#define gEffBombExplosion1Tex_HEIGHT 32 +extern u64 gEffBombExplosion1Tex[TEX_LEN(u64, gEffBombExplosion1Tex_WIDTH, gEffBombExplosion1Tex_HEIGHT, 16)]; +#define gEffBombExplosion2Tex_WIDTH 32 +#define gEffBombExplosion2Tex_HEIGHT 32 +extern u64 gEffBombExplosion2Tex[TEX_LEN(u64, gEffBombExplosion2Tex_WIDTH, gEffBombExplosion2Tex_HEIGHT, 16)]; +#define gEffBombExplosion3Tex_WIDTH 32 +#define gEffBombExplosion3Tex_HEIGHT 32 +extern u64 gEffBombExplosion3Tex[TEX_LEN(u64, gEffBombExplosion3Tex_WIDTH, gEffBombExplosion3Tex_HEIGHT, 16)]; +#define gEffBombExplosion4Tex_WIDTH 32 +#define gEffBombExplosion4Tex_HEIGHT 32 +extern u64 gEffBombExplosion4Tex[TEX_LEN(u64, gEffBombExplosion4Tex_WIDTH, gEffBombExplosion4Tex_HEIGHT, 16)]; +#define gEffBombExplosion5Tex_WIDTH 32 +#define gEffBombExplosion5Tex_HEIGHT 32 +extern u64 gEffBombExplosion5Tex[TEX_LEN(u64, gEffBombExplosion5Tex_WIDTH, gEffBombExplosion5Tex_HEIGHT, 16)]; +#define gEffBombExplosion6Tex_WIDTH 32 +#define gEffBombExplosion6Tex_HEIGHT 32 +extern u64 gEffBombExplosion6Tex[TEX_LEN(u64, gEffBombExplosion6Tex_WIDTH, gEffBombExplosion6Tex_HEIGHT, 16)]; +#define gEffBombExplosion7Tex_WIDTH 32 +#define gEffBombExplosion7Tex_HEIGHT 32 +extern u64 gEffBombExplosion7Tex[TEX_LEN(u64, gEffBombExplosion7Tex_WIDTH, gEffBombExplosion7Tex_HEIGHT, 16)]; +#define gEffBombExplosion8Tex_WIDTH 32 +#define gEffBombExplosion8Tex_HEIGHT 32 +extern u64 gEffBombExplosion8Tex[TEX_LEN(u64, gEffBombExplosion8Tex_WIDTH, gEffBombExplosion8Tex_HEIGHT, 16)]; +extern Gfx gEffBombExplosion1DL[13]; +extern Gfx gEffBombExplosion2DL[11]; +extern Gfx gEffBombExplosion3DL[3]; +extern Vtx gEffBombExplosionVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_bubble.c b/assets/objects/gameplay_keep/eff_bubble.c new file mode 100644 index 0000000000..b21219d869 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_bubble.c @@ -0,0 +1,10 @@ +#include "eff_bubble.h" +#include "gfx.h" + +Gfx gEffBubbleDL[15] = { +#include "assets/objects/gameplay_keep/gEffBubbleDL.inc.c" +}; + +Vtx gEffBubbleVtx[] = { +#include "assets/objects/gameplay_keep/gEffBubbleVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_bubble.h b/assets/objects/gameplay_keep/eff_bubble.h new file mode 100644 index 0000000000..1994b91d2d --- /dev/null +++ b/assets/objects/gameplay_keep/eff_bubble.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_EFF_BUBBLE_H +#define GAMEPLAY_KEEP_EFF_BUBBLE_H + +#include "ultra64.h" + +extern Gfx gEffBubbleDL[15]; +extern Vtx gEffBubbleVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_dust.c b/assets/objects/gameplay_keep/eff_dust.c new file mode 100644 index 0000000000..ca78eeca3f --- /dev/null +++ b/assets/objects/gameplay_keep/eff_dust.c @@ -0,0 +1,10 @@ +#include "eff_dust.h" +#include "gfx.h" + +Gfx gEffDustDL[11] = { +#include "assets/objects/gameplay_keep/gEffDustDL.inc.c" +}; + +Vtx gEffDustVtx[] = { +#include "assets/objects/gameplay_keep/gEffDustVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_dust.h b/assets/objects/gameplay_keep/eff_dust.h new file mode 100644 index 0000000000..6d314e8221 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_dust.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_EFF_DUST_H +#define GAMEPLAY_KEEP_EFF_DUST_H + +#include "ultra64.h" + +extern Gfx gEffDustDL[11]; +extern Vtx gEffDustVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_enemy_death_flame.c b/assets/objects/gameplay_keep/eff_enemy_death_flame.c new file mode 100644 index 0000000000..3ee36d87ce --- /dev/null +++ b/assets/objects/gameplay_keep/eff_enemy_death_flame.c @@ -0,0 +1,50 @@ +#include "eff_enemy_death_flame.h" +#include "gfx.h" + +u64 gEffEnemyDeathFlame1Tex[TEX_LEN(u64, gEffEnemyDeathFlame1Tex_WIDTH, gEffEnemyDeathFlame1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame1Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame2Tex[TEX_LEN(u64, gEffEnemyDeathFlame2Tex_WIDTH, gEffEnemyDeathFlame2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame2Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame3Tex[TEX_LEN(u64, gEffEnemyDeathFlame3Tex_WIDTH, gEffEnemyDeathFlame3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame3Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame4Tex[TEX_LEN(u64, gEffEnemyDeathFlame4Tex_WIDTH, gEffEnemyDeathFlame4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame4Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame5Tex[TEX_LEN(u64, gEffEnemyDeathFlame5Tex_WIDTH, gEffEnemyDeathFlame5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame5Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame6Tex[TEX_LEN(u64, gEffEnemyDeathFlame6Tex_WIDTH, gEffEnemyDeathFlame6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame6Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame7Tex[TEX_LEN(u64, gEffEnemyDeathFlame7Tex_WIDTH, gEffEnemyDeathFlame7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame7Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame8Tex[TEX_LEN(u64, gEffEnemyDeathFlame8Tex_WIDTH, gEffEnemyDeathFlame8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame8Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame9Tex[TEX_LEN(u64, gEffEnemyDeathFlame9Tex_WIDTH, gEffEnemyDeathFlame9Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame9Tex.i8.inc.c" +}; + +u64 gEffEnemyDeathFlame10Tex[TEX_LEN(u64, gEffEnemyDeathFlame10Tex_WIDTH, gEffEnemyDeathFlame10Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlame10Tex.i8.inc.c" +}; + +Gfx gEffEnemyDeathFlameDL[13] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlameDL.inc.c" +}; + +Vtx gEffEnemyDeathFlameVtx[] = { +#include "assets/objects/gameplay_keep/gEffEnemyDeathFlameVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_enemy_death_flame.h b/assets/objects/gameplay_keep/eff_enemy_death_flame.h new file mode 100644 index 0000000000..4b731c34cf --- /dev/null +++ b/assets/objects/gameplay_keep/eff_enemy_death_flame.h @@ -0,0 +1,40 @@ +#ifndef GAMEPLAY_KEEP_EFF_ENEMY_DEATH_FLAME_H +#define GAMEPLAY_KEEP_EFF_ENEMY_DEATH_FLAME_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffEnemyDeathFlame1Tex_WIDTH 32 +#define gEffEnemyDeathFlame1Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame1Tex[TEX_LEN(u64, gEffEnemyDeathFlame1Tex_WIDTH, gEffEnemyDeathFlame1Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame2Tex_WIDTH 32 +#define gEffEnemyDeathFlame2Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame2Tex[TEX_LEN(u64, gEffEnemyDeathFlame2Tex_WIDTH, gEffEnemyDeathFlame2Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame3Tex_WIDTH 32 +#define gEffEnemyDeathFlame3Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame3Tex[TEX_LEN(u64, gEffEnemyDeathFlame3Tex_WIDTH, gEffEnemyDeathFlame3Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame4Tex_WIDTH 32 +#define gEffEnemyDeathFlame4Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame4Tex[TEX_LEN(u64, gEffEnemyDeathFlame4Tex_WIDTH, gEffEnemyDeathFlame4Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame5Tex_WIDTH 32 +#define gEffEnemyDeathFlame5Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame5Tex[TEX_LEN(u64, gEffEnemyDeathFlame5Tex_WIDTH, gEffEnemyDeathFlame5Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame6Tex_WIDTH 32 +#define gEffEnemyDeathFlame6Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame6Tex[TEX_LEN(u64, gEffEnemyDeathFlame6Tex_WIDTH, gEffEnemyDeathFlame6Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame7Tex_WIDTH 32 +#define gEffEnemyDeathFlame7Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame7Tex[TEX_LEN(u64, gEffEnemyDeathFlame7Tex_WIDTH, gEffEnemyDeathFlame7Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame8Tex_WIDTH 32 +#define gEffEnemyDeathFlame8Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame8Tex[TEX_LEN(u64, gEffEnemyDeathFlame8Tex_WIDTH, gEffEnemyDeathFlame8Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame9Tex_WIDTH 32 +#define gEffEnemyDeathFlame9Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame9Tex[TEX_LEN(u64, gEffEnemyDeathFlame9Tex_WIDTH, gEffEnemyDeathFlame9Tex_HEIGHT, 8)]; +#define gEffEnemyDeathFlame10Tex_WIDTH 32 +#define gEffEnemyDeathFlame10Tex_HEIGHT 64 +extern u64 gEffEnemyDeathFlame10Tex[TEX_LEN(u64, gEffEnemyDeathFlame10Tex_WIDTH, gEffEnemyDeathFlame10Tex_HEIGHT, 8)]; +extern Gfx gEffEnemyDeathFlameDL[13]; +extern Vtx gEffEnemyDeathFlameVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_fire.c b/assets/objects/gameplay_keep/eff_fire.c new file mode 100644 index 0000000000..7d95baaae4 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fire.c @@ -0,0 +1,22 @@ +#include "eff_fire.h" +#include "gfx.h" + +Vtx gEffFireVtx[] = { +#include "assets/objects/gameplay_keep/gEffFireVtx.inc.c" +}; + +Gfx gEffFire1DL[24] = { +#include "assets/objects/gameplay_keep/gEffFire1DL.inc.c" +}; + +Gfx gEffFire2DL[24] = { +#include "assets/objects/gameplay_keep/gEffFire2DL.inc.c" +}; + +u64 gDecorativeFlameMaskTex[TEX_LEN(u64, gDecorativeFlameMaskTex_WIDTH, gDecorativeFlameMaskTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gDecorativeFlameMaskTex.i4.inc.c" +}; + +u64 gDecorativeFlameTex[TEX_LEN(u64, gDecorativeFlameTex_WIDTH, gDecorativeFlameTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDecorativeFlameTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_fire.h b/assets/objects/gameplay_keep/eff_fire.h new file mode 100644 index 0000000000..cf3aee7eb5 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fire.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_EFF_FIRE_H +#define GAMEPLAY_KEEP_EFF_FIRE_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gEffFireVtx[]; +extern Gfx gEffFire1DL[24]; +extern Gfx gEffFire2DL[24]; +#define gDecorativeFlameMaskTex_WIDTH 32 +#define gDecorativeFlameMaskTex_HEIGHT 128 +extern u64 gDecorativeFlameMaskTex[TEX_LEN(u64, gDecorativeFlameMaskTex_WIDTH, gDecorativeFlameMaskTex_HEIGHT, 4)]; +#define gDecorativeFlameTex_WIDTH 32 +#define gDecorativeFlameTex_HEIGHT 64 +extern u64 gDecorativeFlameTex[TEX_LEN(u64, gDecorativeFlameTex_WIDTH, gDecorativeFlameTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_fire_footprint.c b/assets/objects/gameplay_keep/eff_fire_footprint.c new file mode 100644 index 0000000000..10d8a2ca98 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fire_footprint.c @@ -0,0 +1,42 @@ +#include "eff_fire_footprint.h" +#include "gfx.h" + +u64 gEffFireFootprint1Tex[TEX_LEN(u64, gEffFireFootprint1Tex_WIDTH, gEffFireFootprint1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint1Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint2Tex[TEX_LEN(u64, gEffFireFootprint2Tex_WIDTH, gEffFireFootprint2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint2Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint3Tex[TEX_LEN(u64, gEffFireFootprint3Tex_WIDTH, gEffFireFootprint3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint3Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint4Tex[TEX_LEN(u64, gEffFireFootprint4Tex_WIDTH, gEffFireFootprint4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint4Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint5Tex[TEX_LEN(u64, gEffFireFootprint5Tex_WIDTH, gEffFireFootprint5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint5Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint6Tex[TEX_LEN(u64, gEffFireFootprint6Tex_WIDTH, gEffFireFootprint6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint6Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint7Tex[TEX_LEN(u64, gEffFireFootprint7Tex_WIDTH, gEffFireFootprint7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint7Tex.ia8.inc.c" +}; + +u64 gEffFireFootprint8Tex[TEX_LEN(u64, gEffFireFootprint8Tex_WIDTH, gEffFireFootprint8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffFireFootprint8Tex.ia8.inc.c" +}; + +Gfx gEffFireFootprintDL[12] = { +#include "assets/objects/gameplay_keep/gEffFireFootprintDL.inc.c" +}; + +Vtx gEffFireFootprintVtx[] = { +#include "assets/objects/gameplay_keep/gEffFireFootprintVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_fire_footprint.h b/assets/objects/gameplay_keep/eff_fire_footprint.h new file mode 100644 index 0000000000..9a19d0ceae --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fire_footprint.h @@ -0,0 +1,34 @@ +#ifndef GAMEPLAY_KEEP_EFF_FIRE_FOOTPRINT_H +#define GAMEPLAY_KEEP_EFF_FIRE_FOOTPRINT_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffFireFootprint1Tex_WIDTH 32 +#define gEffFireFootprint1Tex_HEIGHT 32 +extern u64 gEffFireFootprint1Tex[TEX_LEN(u64, gEffFireFootprint1Tex_WIDTH, gEffFireFootprint1Tex_HEIGHT, 8)]; +#define gEffFireFootprint2Tex_WIDTH 32 +#define gEffFireFootprint2Tex_HEIGHT 32 +extern u64 gEffFireFootprint2Tex[TEX_LEN(u64, gEffFireFootprint2Tex_WIDTH, gEffFireFootprint2Tex_HEIGHT, 8)]; +#define gEffFireFootprint3Tex_WIDTH 32 +#define gEffFireFootprint3Tex_HEIGHT 32 +extern u64 gEffFireFootprint3Tex[TEX_LEN(u64, gEffFireFootprint3Tex_WIDTH, gEffFireFootprint3Tex_HEIGHT, 8)]; +#define gEffFireFootprint4Tex_WIDTH 32 +#define gEffFireFootprint4Tex_HEIGHT 32 +extern u64 gEffFireFootprint4Tex[TEX_LEN(u64, gEffFireFootprint4Tex_WIDTH, gEffFireFootprint4Tex_HEIGHT, 8)]; +#define gEffFireFootprint5Tex_WIDTH 32 +#define gEffFireFootprint5Tex_HEIGHT 32 +extern u64 gEffFireFootprint5Tex[TEX_LEN(u64, gEffFireFootprint5Tex_WIDTH, gEffFireFootprint5Tex_HEIGHT, 8)]; +#define gEffFireFootprint6Tex_WIDTH 32 +#define gEffFireFootprint6Tex_HEIGHT 32 +extern u64 gEffFireFootprint6Tex[TEX_LEN(u64, gEffFireFootprint6Tex_WIDTH, gEffFireFootprint6Tex_HEIGHT, 8)]; +#define gEffFireFootprint7Tex_WIDTH 32 +#define gEffFireFootprint7Tex_HEIGHT 32 +extern u64 gEffFireFootprint7Tex[TEX_LEN(u64, gEffFireFootprint7Tex_WIDTH, gEffFireFootprint7Tex_HEIGHT, 8)]; +#define gEffFireFootprint8Tex_WIDTH 32 +#define gEffFireFootprint8Tex_HEIGHT 32 +extern u64 gEffFireFootprint8Tex[TEX_LEN(u64, gEffFireFootprint8Tex_WIDTH, gEffFireFootprint8Tex_HEIGHT, 8)]; +extern Gfx gEffFireFootprintDL[12]; +extern Vtx gEffFireFootprintVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_flash.c b/assets/objects/gameplay_keep/eff_flash.c new file mode 100644 index 0000000000..6100286e5a --- /dev/null +++ b/assets/objects/gameplay_keep/eff_flash.c @@ -0,0 +1,18 @@ +#include "eff_flash.h" +#include "gfx.h" + +Vtx gEffFlashVtx[] = { +#include "assets/objects/gameplay_keep/gEffFlashVtx.inc.c" +}; + +Gfx gEffFlash1DL[15] = { +#include "assets/objects/gameplay_keep/gEffFlash1DL.inc.c" +}; + +Gfx gEffFlash2DL[16] = { +#include "assets/objects/gameplay_keep/gEffFlash2DL.inc.c" +}; + +u64 gFlashTex[TEX_LEN(u64, gFlashTex_WIDTH, gFlashTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gFlashTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_flash.h b/assets/objects/gameplay_keep/eff_flash.h new file mode 100644 index 0000000000..a9b2db8c2a --- /dev/null +++ b/assets/objects/gameplay_keep/eff_flash.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_EFF_FLASH_H +#define GAMEPLAY_KEEP_EFF_FLASH_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gEffFlashVtx[]; +extern Gfx gEffFlash1DL[15]; +extern Gfx gEffFlash2DL[16]; +#define gFlashTex_WIDTH 64 +#define gFlashTex_HEIGHT 64 +extern u64 gFlashTex[TEX_LEN(u64, gFlashTex_WIDTH, gFlashTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_fragments_1.c b/assets/objects/gameplay_keep/eff_fragments_1.c new file mode 100644 index 0000000000..784e363ef9 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fragments_1.c @@ -0,0 +1,14 @@ +#include "eff_fragments_1.h" +#include "gfx.h" + +Vtx gEffFragments1Vtx[] = { +#include "assets/objects/gameplay_keep/gEffFragments1Vtx.inc.c" +}; + +Gfx gEffFragments1DL[18] = { +#include "assets/objects/gameplay_keep/gEffFragments1DL.inc.c" +}; + +u64 gWitheredLeafTex[TEX_LEN(u64, gWitheredLeafTex_WIDTH, gWitheredLeafTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gWitheredLeafTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_fragments_1.h b/assets/objects/gameplay_keep/eff_fragments_1.h new file mode 100644 index 0000000000..74a1e61870 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fragments_1.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_EFF_FRAGMENTS_1_H +#define GAMEPLAY_KEEP_EFF_FRAGMENTS_1_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gEffFragments1Vtx[]; +extern Gfx gEffFragments1DL[18]; +#define gWitheredLeafTex_WIDTH 16 +#define gWitheredLeafTex_HEIGHT 16 +extern u64 gWitheredLeafTex[TEX_LEN(u64, gWitheredLeafTex_WIDTH, gWitheredLeafTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_fragments_2_model.c b/assets/objects/gameplay_keep/eff_fragments_2_model.c new file mode 100644 index 0000000000..f0104dbb6b --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fragments_2_model.c @@ -0,0 +1,10 @@ +#include "eff_fragments_2_model.h" +#include "gfx.h" + +Vtx gEffFragments2Vtx[] = { +#include "assets/objects/gameplay_keep/gEffFragments2Vtx.inc.c" +}; + +Gfx gEffFragments2DL[7] = { +#include "assets/objects/gameplay_keep/gEffFragments2DL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_fragments_2_model.h b/assets/objects/gameplay_keep/eff_fragments_2_model.h new file mode 100644 index 0000000000..7ebe54340c --- /dev/null +++ b/assets/objects/gameplay_keep/eff_fragments_2_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_EFF_FRAGMENTS_2_MODEL_H +#define GAMEPLAY_KEEP_EFF_FRAGMENTS_2_MODEL_H + +#include "ultra64.h" + +extern Vtx gEffFragments2Vtx[]; +extern Gfx gEffFragments2DL[7]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_hitmark.c b/assets/objects/gameplay_keep/eff_hitmark.c new file mode 100644 index 0000000000..09b18b726a --- /dev/null +++ b/assets/objects/gameplay_keep/eff_hitmark.c @@ -0,0 +1,106 @@ +#include "eff_hitmark.h" +#include "gfx.h" + +u64 gEffHitMark1Tex[TEX_LEN(u64, gEffHitMark1Tex_WIDTH, gEffHitMark1Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark1Tex.i4.inc.c" +}; + +u64 gEffHitMark2Tex[TEX_LEN(u64, gEffHitMark2Tex_WIDTH, gEffHitMark2Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark2Tex.i4.inc.c" +}; + +u64 gEffHitMark3Tex[TEX_LEN(u64, gEffHitMark3Tex_WIDTH, gEffHitMark3Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark3Tex.i4.inc.c" +}; + +u64 gEffHitMark4Tex[TEX_LEN(u64, gEffHitMark4Tex_WIDTH, gEffHitMark4Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark4Tex.i4.inc.c" +}; + +u64 gEffHitMark5Tex[TEX_LEN(u64, gEffHitMark5Tex_WIDTH, gEffHitMark5Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark5Tex.i4.inc.c" +}; + +u64 gEffHitMark6Tex[TEX_LEN(u64, gEffHitMark6Tex_WIDTH, gEffHitMark6Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark6Tex.i4.inc.c" +}; + +u64 gEffHitMark7Tex[TEX_LEN(u64, gEffHitMark7Tex_WIDTH, gEffHitMark7Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark7Tex.i4.inc.c" +}; + +u64 gEffHitMark8Tex[TEX_LEN(u64, gEffHitMark8Tex_WIDTH, gEffHitMark8Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark8Tex.i4.inc.c" +}; + +u64 gEffHitMark9Tex[TEX_LEN(u64, gEffHitMark9Tex_WIDTH, gEffHitMark9Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark9Tex.i4.inc.c" +}; + +u64 gEffHitMark10Tex[TEX_LEN(u64, gEffHitMark10Tex_WIDTH, gEffHitMark10Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark10Tex.i4.inc.c" +}; + +u64 gEffHitMark11Tex[TEX_LEN(u64, gEffHitMark11Tex_WIDTH, gEffHitMark11Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark11Tex.i4.inc.c" +}; + +u64 gEffHitMark12Tex[TEX_LEN(u64, gEffHitMark12Tex_WIDTH, gEffHitMark12Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark12Tex.i4.inc.c" +}; + +u64 gEffHitMark13Tex[TEX_LEN(u64, gEffHitMark13Tex_WIDTH, gEffHitMark13Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark13Tex.i4.inc.c" +}; + +u64 gEffHitMark14Tex[TEX_LEN(u64, gEffHitMark14Tex_WIDTH, gEffHitMark14Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark14Tex.i4.inc.c" +}; + +u64 gEffHitMark15Tex[TEX_LEN(u64, gEffHitMark15Tex_WIDTH, gEffHitMark15Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark15Tex.i4.inc.c" +}; + +u64 gEffHitMark16Tex[TEX_LEN(u64, gEffHitMark16Tex_WIDTH, gEffHitMark16Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark16Tex.i4.inc.c" +}; + +u64 gEffHitMark17Tex[TEX_LEN(u64, gEffHitMark17Tex_WIDTH, gEffHitMark17Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark17Tex.i4.inc.c" +}; + +u64 gEffHitMark18Tex[TEX_LEN(u64, gEffHitMark18Tex_WIDTH, gEffHitMark18Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark18Tex.i4.inc.c" +}; + +u64 gEffHitMark19Tex[TEX_LEN(u64, gEffHitMark19Tex_WIDTH, gEffHitMark19Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark19Tex.i4.inc.c" +}; + +u64 gEffHitMark20Tex[TEX_LEN(u64, gEffHitMark20Tex_WIDTH, gEffHitMark20Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark20Tex.i4.inc.c" +}; + +u64 gEffHitMark21Tex[TEX_LEN(u64, gEffHitMark21Tex_WIDTH, gEffHitMark21Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark21Tex.i4.inc.c" +}; + +u64 gEffHitMark22Tex[TEX_LEN(u64, gEffHitMark22Tex_WIDTH, gEffHitMark22Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark22Tex.i4.inc.c" +}; + +u64 gEffHitMark23Tex[TEX_LEN(u64, gEffHitMark23Tex_WIDTH, gEffHitMark23Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark23Tex.i4.inc.c" +}; + +u64 gEffHitMark24Tex[TEX_LEN(u64, gEffHitMark24Tex_WIDTH, gEffHitMark24Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffHitMark24Tex.i4.inc.c" +}; + +Gfx gEffHitMarkDL[11] = { +#include "assets/objects/gameplay_keep/gEffHitMarkDL.inc.c" +}; + +Vtx gEffHitMarkVtx[] = { +#include "assets/objects/gameplay_keep/gEffHitMarkVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_hitmark.h b/assets/objects/gameplay_keep/eff_hitmark.h new file mode 100644 index 0000000000..7a5e072053 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_hitmark.h @@ -0,0 +1,82 @@ +#ifndef GAMEPLAY_KEEP_EFF_HITMARK_H +#define GAMEPLAY_KEEP_EFF_HITMARK_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffHitMark1Tex_WIDTH 32 +#define gEffHitMark1Tex_HEIGHT 24 +extern u64 gEffHitMark1Tex[TEX_LEN(u64, gEffHitMark1Tex_WIDTH, gEffHitMark1Tex_HEIGHT, 4)]; +#define gEffHitMark2Tex_WIDTH 32 +#define gEffHitMark2Tex_HEIGHT 24 +extern u64 gEffHitMark2Tex[TEX_LEN(u64, gEffHitMark2Tex_WIDTH, gEffHitMark2Tex_HEIGHT, 4)]; +#define gEffHitMark3Tex_WIDTH 32 +#define gEffHitMark3Tex_HEIGHT 24 +extern u64 gEffHitMark3Tex[TEX_LEN(u64, gEffHitMark3Tex_WIDTH, gEffHitMark3Tex_HEIGHT, 4)]; +#define gEffHitMark4Tex_WIDTH 32 +#define gEffHitMark4Tex_HEIGHT 24 +extern u64 gEffHitMark4Tex[TEX_LEN(u64, gEffHitMark4Tex_WIDTH, gEffHitMark4Tex_HEIGHT, 4)]; +#define gEffHitMark5Tex_WIDTH 32 +#define gEffHitMark5Tex_HEIGHT 24 +extern u64 gEffHitMark5Tex[TEX_LEN(u64, gEffHitMark5Tex_WIDTH, gEffHitMark5Tex_HEIGHT, 4)]; +#define gEffHitMark6Tex_WIDTH 32 +#define gEffHitMark6Tex_HEIGHT 24 +extern u64 gEffHitMark6Tex[TEX_LEN(u64, gEffHitMark6Tex_WIDTH, gEffHitMark6Tex_HEIGHT, 4)]; +#define gEffHitMark7Tex_WIDTH 32 +#define gEffHitMark7Tex_HEIGHT 24 +extern u64 gEffHitMark7Tex[TEX_LEN(u64, gEffHitMark7Tex_WIDTH, gEffHitMark7Tex_HEIGHT, 4)]; +#define gEffHitMark8Tex_WIDTH 32 +#define gEffHitMark8Tex_HEIGHT 24 +extern u64 gEffHitMark8Tex[TEX_LEN(u64, gEffHitMark8Tex_WIDTH, gEffHitMark8Tex_HEIGHT, 4)]; +#define gEffHitMark9Tex_WIDTH 32 +#define gEffHitMark9Tex_HEIGHT 24 +extern u64 gEffHitMark9Tex[TEX_LEN(u64, gEffHitMark9Tex_WIDTH, gEffHitMark9Tex_HEIGHT, 4)]; +#define gEffHitMark10Tex_WIDTH 32 +#define gEffHitMark10Tex_HEIGHT 24 +extern u64 gEffHitMark10Tex[TEX_LEN(u64, gEffHitMark10Tex_WIDTH, gEffHitMark10Tex_HEIGHT, 4)]; +#define gEffHitMark11Tex_WIDTH 32 +#define gEffHitMark11Tex_HEIGHT 24 +extern u64 gEffHitMark11Tex[TEX_LEN(u64, gEffHitMark11Tex_WIDTH, gEffHitMark11Tex_HEIGHT, 4)]; +#define gEffHitMark12Tex_WIDTH 32 +#define gEffHitMark12Tex_HEIGHT 24 +extern u64 gEffHitMark12Tex[TEX_LEN(u64, gEffHitMark12Tex_WIDTH, gEffHitMark12Tex_HEIGHT, 4)]; +#define gEffHitMark13Tex_WIDTH 32 +#define gEffHitMark13Tex_HEIGHT 24 +extern u64 gEffHitMark13Tex[TEX_LEN(u64, gEffHitMark13Tex_WIDTH, gEffHitMark13Tex_HEIGHT, 4)]; +#define gEffHitMark14Tex_WIDTH 32 +#define gEffHitMark14Tex_HEIGHT 24 +extern u64 gEffHitMark14Tex[TEX_LEN(u64, gEffHitMark14Tex_WIDTH, gEffHitMark14Tex_HEIGHT, 4)]; +#define gEffHitMark15Tex_WIDTH 32 +#define gEffHitMark15Tex_HEIGHT 24 +extern u64 gEffHitMark15Tex[TEX_LEN(u64, gEffHitMark15Tex_WIDTH, gEffHitMark15Tex_HEIGHT, 4)]; +#define gEffHitMark16Tex_WIDTH 32 +#define gEffHitMark16Tex_HEIGHT 24 +extern u64 gEffHitMark16Tex[TEX_LEN(u64, gEffHitMark16Tex_WIDTH, gEffHitMark16Tex_HEIGHT, 4)]; +#define gEffHitMark17Tex_WIDTH 32 +#define gEffHitMark17Tex_HEIGHT 24 +extern u64 gEffHitMark17Tex[TEX_LEN(u64, gEffHitMark17Tex_WIDTH, gEffHitMark17Tex_HEIGHT, 4)]; +#define gEffHitMark18Tex_WIDTH 32 +#define gEffHitMark18Tex_HEIGHT 24 +extern u64 gEffHitMark18Tex[TEX_LEN(u64, gEffHitMark18Tex_WIDTH, gEffHitMark18Tex_HEIGHT, 4)]; +#define gEffHitMark19Tex_WIDTH 32 +#define gEffHitMark19Tex_HEIGHT 24 +extern u64 gEffHitMark19Tex[TEX_LEN(u64, gEffHitMark19Tex_WIDTH, gEffHitMark19Tex_HEIGHT, 4)]; +#define gEffHitMark20Tex_WIDTH 32 +#define gEffHitMark20Tex_HEIGHT 24 +extern u64 gEffHitMark20Tex[TEX_LEN(u64, gEffHitMark20Tex_WIDTH, gEffHitMark20Tex_HEIGHT, 4)]; +#define gEffHitMark21Tex_WIDTH 32 +#define gEffHitMark21Tex_HEIGHT 24 +extern u64 gEffHitMark21Tex[TEX_LEN(u64, gEffHitMark21Tex_WIDTH, gEffHitMark21Tex_HEIGHT, 4)]; +#define gEffHitMark22Tex_WIDTH 32 +#define gEffHitMark22Tex_HEIGHT 24 +extern u64 gEffHitMark22Tex[TEX_LEN(u64, gEffHitMark22Tex_WIDTH, gEffHitMark22Tex_HEIGHT, 4)]; +#define gEffHitMark23Tex_WIDTH 32 +#define gEffHitMark23Tex_HEIGHT 24 +extern u64 gEffHitMark23Tex[TEX_LEN(u64, gEffHitMark23Tex_WIDTH, gEffHitMark23Tex_HEIGHT, 4)]; +#define gEffHitMark24Tex_WIDTH 32 +#define gEffHitMark24Tex_HEIGHT 24 +extern u64 gEffHitMark24Tex[TEX_LEN(u64, gEffHitMark24Tex_WIDTH, gEffHitMark24Tex_HEIGHT, 4)]; +extern Gfx gEffHitMarkDL[11]; +extern Vtx gEffHitMarkVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_ice_fragments.c b/assets/objects/gameplay_keep/eff_ice_fragments.c new file mode 100644 index 0000000000..d852fda39b --- /dev/null +++ b/assets/objects/gameplay_keep/eff_ice_fragments.c @@ -0,0 +1,15 @@ +#include "eff_ice_fragments.h" +#include "gameplay_keep_0x32090.h" +#include "gfx.h" + +Vtx gEffIceFragmentVtx[] = { +#include "assets/objects/gameplay_keep/gEffIceFragmentVtx.inc.c" +}; + +Gfx gEffIceFragment1DL[31] = { +#include "assets/objects/gameplay_keep/gEffIceFragment1DL.inc.c" +}; + +Gfx gEffIceFragment2DL[30] = { +#include "assets/objects/gameplay_keep/gEffIceFragment2DL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_ice_fragments.h b/assets/objects/gameplay_keep/eff_ice_fragments.h new file mode 100644 index 0000000000..856769aca5 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_ice_fragments.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_EFF_ICE_FRAGMENTS_H +#define GAMEPLAY_KEEP_EFF_ICE_FRAGMENTS_H + +#include "ultra64.h" + +extern Vtx gEffIceFragmentVtx[]; +extern Gfx gEffIceFragment1DL[31]; +extern Gfx gEffIceFragment2DL[30]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_lightning.c b/assets/objects/gameplay_keep/eff_lightning.c new file mode 100644 index 0000000000..a9a41f6be2 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_lightning.c @@ -0,0 +1,42 @@ +#include "eff_lightning.h" +#include "gfx.h" + +u64 gEffLightning1Tex[TEX_LEN(u64, gEffLightning1Tex_WIDTH, gEffLightning1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning1Tex.i8.inc.c" +}; + +u64 gEffLightning2Tex[TEX_LEN(u64, gEffLightning2Tex_WIDTH, gEffLightning2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning2Tex.i8.inc.c" +}; + +u64 gEffLightning3Tex[TEX_LEN(u64, gEffLightning3Tex_WIDTH, gEffLightning3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning3Tex.i8.inc.c" +}; + +u64 gEffLightning4Tex[TEX_LEN(u64, gEffLightning4Tex_WIDTH, gEffLightning4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning4Tex.i8.inc.c" +}; + +u64 gEffLightning5Tex[TEX_LEN(u64, gEffLightning5Tex_WIDTH, gEffLightning5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning5Tex.i8.inc.c" +}; + +u64 gEffLightning6Tex[TEX_LEN(u64, gEffLightning6Tex_WIDTH, gEffLightning6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning6Tex.i8.inc.c" +}; + +u64 gEffLightning7Tex[TEX_LEN(u64, gEffLightning7Tex_WIDTH, gEffLightning7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning7Tex.i8.inc.c" +}; + +u64 gEffLightning8Tex[TEX_LEN(u64, gEffLightning8Tex_WIDTH, gEffLightning8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffLightning8Tex.i8.inc.c" +}; + +Gfx gEffLightningDL[13] = { +#include "assets/objects/gameplay_keep/gEffLightningDL.inc.c" +}; + +Vtx gEffLightningVtx[] = { +#include "assets/objects/gameplay_keep/gEffLightningVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_lightning.h b/assets/objects/gameplay_keep/eff_lightning.h new file mode 100644 index 0000000000..4fb96dce75 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_lightning.h @@ -0,0 +1,34 @@ +#ifndef GAMEPLAY_KEEP_EFF_LIGHTNING_H +#define GAMEPLAY_KEEP_EFF_LIGHTNING_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffLightning1Tex_WIDTH 16 +#define gEffLightning1Tex_HEIGHT 96 +extern u64 gEffLightning1Tex[TEX_LEN(u64, gEffLightning1Tex_WIDTH, gEffLightning1Tex_HEIGHT, 8)]; +#define gEffLightning2Tex_WIDTH 16 +#define gEffLightning2Tex_HEIGHT 96 +extern u64 gEffLightning2Tex[TEX_LEN(u64, gEffLightning2Tex_WIDTH, gEffLightning2Tex_HEIGHT, 8)]; +#define gEffLightning3Tex_WIDTH 16 +#define gEffLightning3Tex_HEIGHT 96 +extern u64 gEffLightning3Tex[TEX_LEN(u64, gEffLightning3Tex_WIDTH, gEffLightning3Tex_HEIGHT, 8)]; +#define gEffLightning4Tex_WIDTH 16 +#define gEffLightning4Tex_HEIGHT 96 +extern u64 gEffLightning4Tex[TEX_LEN(u64, gEffLightning4Tex_WIDTH, gEffLightning4Tex_HEIGHT, 8)]; +#define gEffLightning5Tex_WIDTH 16 +#define gEffLightning5Tex_HEIGHT 96 +extern u64 gEffLightning5Tex[TEX_LEN(u64, gEffLightning5Tex_WIDTH, gEffLightning5Tex_HEIGHT, 8)]; +#define gEffLightning6Tex_WIDTH 16 +#define gEffLightning6Tex_HEIGHT 96 +extern u64 gEffLightning6Tex[TEX_LEN(u64, gEffLightning6Tex_WIDTH, gEffLightning6Tex_HEIGHT, 8)]; +#define gEffLightning7Tex_WIDTH 16 +#define gEffLightning7Tex_HEIGHT 96 +extern u64 gEffLightning7Tex[TEX_LEN(u64, gEffLightning7Tex_WIDTH, gEffLightning7Tex_HEIGHT, 8)]; +#define gEffLightning8Tex_WIDTH 16 +#define gEffLightning8Tex_HEIGHT 96 +extern u64 gEffLightning8Tex[TEX_LEN(u64, gEffLightning8Tex_WIDTH, gEffLightning8Tex_HEIGHT, 8)]; +extern Gfx gEffLightningDL[13]; +extern Vtx gEffLightningVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_magma_bubble.c b/assets/objects/gameplay_keep/eff_magma_bubble.c new file mode 100644 index 0000000000..da8c144251 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_magma_bubble.c @@ -0,0 +1,42 @@ +#include "eff_magma_bubble.h" +#include "gfx.h" + +u64 gEffMagmaBubble1Tex[TEX_LEN(u64, gEffMagmaBubble1Tex_WIDTH, gEffMagmaBubble1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble1Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble2Tex[TEX_LEN(u64, gEffMagmaBubble2Tex_WIDTH, gEffMagmaBubble2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble2Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble3Tex[TEX_LEN(u64, gEffMagmaBubble3Tex_WIDTH, gEffMagmaBubble3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble3Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble4Tex[TEX_LEN(u64, gEffMagmaBubble4Tex_WIDTH, gEffMagmaBubble4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble4Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble5Tex[TEX_LEN(u64, gEffMagmaBubble5Tex_WIDTH, gEffMagmaBubble5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble5Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble6Tex[TEX_LEN(u64, gEffMagmaBubble6Tex_WIDTH, gEffMagmaBubble6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble6Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble7Tex[TEX_LEN(u64, gEffMagmaBubble7Tex_WIDTH, gEffMagmaBubble7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble7Tex.ia8.inc.c" +}; + +u64 gEffMagmaBubble8Tex[TEX_LEN(u64, gEffMagmaBubble8Tex_WIDTH, gEffMagmaBubble8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubble8Tex.ia8.inc.c" +}; + +Gfx gEffMagmaBubbleDL[12] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubbleDL.inc.c" +}; + +Vtx gEffMagmaBubbleVtx[] = { +#include "assets/objects/gameplay_keep/gEffMagmaBubbleVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_magma_bubble.h b/assets/objects/gameplay_keep/eff_magma_bubble.h new file mode 100644 index 0000000000..0752bcbb2d --- /dev/null +++ b/assets/objects/gameplay_keep/eff_magma_bubble.h @@ -0,0 +1,34 @@ +#ifndef GAMEPLAY_KEEP_EFF_MAGMA_BUBBLE_H +#define GAMEPLAY_KEEP_EFF_MAGMA_BUBBLE_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffMagmaBubble1Tex_WIDTH 16 +#define gEffMagmaBubble1Tex_HEIGHT 24 +extern u64 gEffMagmaBubble1Tex[TEX_LEN(u64, gEffMagmaBubble1Tex_WIDTH, gEffMagmaBubble1Tex_HEIGHT, 8)]; +#define gEffMagmaBubble2Tex_WIDTH 16 +#define gEffMagmaBubble2Tex_HEIGHT 24 +extern u64 gEffMagmaBubble2Tex[TEX_LEN(u64, gEffMagmaBubble2Tex_WIDTH, gEffMagmaBubble2Tex_HEIGHT, 8)]; +#define gEffMagmaBubble3Tex_WIDTH 16 +#define gEffMagmaBubble3Tex_HEIGHT 24 +extern u64 gEffMagmaBubble3Tex[TEX_LEN(u64, gEffMagmaBubble3Tex_WIDTH, gEffMagmaBubble3Tex_HEIGHT, 8)]; +#define gEffMagmaBubble4Tex_WIDTH 16 +#define gEffMagmaBubble4Tex_HEIGHT 24 +extern u64 gEffMagmaBubble4Tex[TEX_LEN(u64, gEffMagmaBubble4Tex_WIDTH, gEffMagmaBubble4Tex_HEIGHT, 8)]; +#define gEffMagmaBubble5Tex_WIDTH 16 +#define gEffMagmaBubble5Tex_HEIGHT 24 +extern u64 gEffMagmaBubble5Tex[TEX_LEN(u64, gEffMagmaBubble5Tex_WIDTH, gEffMagmaBubble5Tex_HEIGHT, 8)]; +#define gEffMagmaBubble6Tex_WIDTH 16 +#define gEffMagmaBubble6Tex_HEIGHT 24 +extern u64 gEffMagmaBubble6Tex[TEX_LEN(u64, gEffMagmaBubble6Tex_WIDTH, gEffMagmaBubble6Tex_HEIGHT, 8)]; +#define gEffMagmaBubble7Tex_WIDTH 16 +#define gEffMagmaBubble7Tex_HEIGHT 24 +extern u64 gEffMagmaBubble7Tex[TEX_LEN(u64, gEffMagmaBubble7Tex_WIDTH, gEffMagmaBubble7Tex_HEIGHT, 8)]; +#define gEffMagmaBubble8Tex_WIDTH 16 +#define gEffMagmaBubble8Tex_HEIGHT 24 +extern u64 gEffMagmaBubble8Tex[TEX_LEN(u64, gEffMagmaBubble8Tex_WIDTH, gEffMagmaBubble8Tex_HEIGHT, 8)]; +extern Gfx gEffMagmaBubbleDL[12]; +extern Vtx gEffMagmaBubbleVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_shockwave.c b/assets/objects/gameplay_keep/eff_shockwave.c new file mode 100644 index 0000000000..e6ab55b7c3 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_shockwave.c @@ -0,0 +1,14 @@ +#include "eff_shockwave.h" +#include "gfx.h" + +u64 gEffShockwaveTex[TEX_LEN(u64, gEffShockwaveTex_WIDTH, gEffShockwaveTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffShockwaveTex.i8.inc.c" +}; + +Gfx gEffShockwaveDL[14] = { +#include "assets/objects/gameplay_keep/gEffShockwaveDL.inc.c" +}; + +Vtx gGameplayKeepVtx_01A120[] = { +#include "assets/objects/gameplay_keep/gGameplayKeepVtx_01A120.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_shockwave.h b/assets/objects/gameplay_keep/eff_shockwave.h new file mode 100644 index 0000000000..4aaaa64b68 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_shockwave.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_EFF_SHOCKWAVE_H +#define GAMEPLAY_KEEP_EFF_SHOCKWAVE_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffShockwaveTex_WIDTH 64 +#define gEffShockwaveTex_HEIGHT 64 +extern u64 gEffShockwaveTex[TEX_LEN(u64, gEffShockwaveTex_WIDTH, gEffShockwaveTex_HEIGHT, 8)]; +extern Gfx gEffShockwaveDL[14]; +extern Vtx gGameplayKeepVtx_01A120[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_spark_model.c b/assets/objects/gameplay_keep/eff_spark_model.c new file mode 100644 index 0000000000..cc11ec3f9b --- /dev/null +++ b/assets/objects/gameplay_keep/eff_spark_model.c @@ -0,0 +1,10 @@ +#include "eff_spark_model.h" +#include "gfx.h" + +Gfx gEffSparkDL[12] = { +#include "assets/objects/gameplay_keep/gEffSparkDL.inc.c" +}; + +Vtx gEffSparkVtx[] = { +#include "assets/objects/gameplay_keep/gEffSparkVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_spark_model.h b/assets/objects/gameplay_keep/eff_spark_model.h new file mode 100644 index 0000000000..6b86819a89 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_spark_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_EFF_SPARK_MODEL_H +#define GAMEPLAY_KEEP_EFF_SPARK_MODEL_H + +#include "ultra64.h" + +extern Gfx gEffSparkDL[12]; +extern Vtx gEffSparkVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_spark_textures.c b/assets/objects/gameplay_keep/eff_spark_textures.c new file mode 100644 index 0000000000..251f900ab9 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_spark_textures.c @@ -0,0 +1,17 @@ +#include "eff_spark_textures.h" + +u64 gEffSpark1Tex[TEX_LEN(u64, gEffSpark1Tex_WIDTH, gEffSpark1Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffSpark1Tex.i4.inc.c" +}; + +u64 gEffSpark2Tex[TEX_LEN(u64, gEffSpark2Tex_WIDTH, gEffSpark2Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffSpark2Tex.i4.inc.c" +}; + +u64 gEffSpark3Tex[TEX_LEN(u64, gEffSpark3Tex_WIDTH, gEffSpark3Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffSpark3Tex.i4.inc.c" +}; + +u64 gEffSpark4Tex[TEX_LEN(u64, gEffSpark4Tex_WIDTH, gEffSpark4Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffSpark4Tex.i4.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_spark_textures.h b/assets/objects/gameplay_keep/eff_spark_textures.h new file mode 100644 index 0000000000..1b1f0528d3 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_spark_textures.h @@ -0,0 +1,20 @@ +#ifndef GAMEPLAY_KEEP_EFF_SPARK_TEXTURES_H +#define GAMEPLAY_KEEP_EFF_SPARK_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffSpark1Tex_WIDTH 32 +#define gEffSpark1Tex_HEIGHT 32 +extern u64 gEffSpark1Tex[TEX_LEN(u64, gEffSpark1Tex_WIDTH, gEffSpark1Tex_HEIGHT, 4)]; +#define gEffSpark2Tex_WIDTH 32 +#define gEffSpark2Tex_HEIGHT 32 +extern u64 gEffSpark2Tex[TEX_LEN(u64, gEffSpark2Tex_WIDTH, gEffSpark2Tex_HEIGHT, 4)]; +#define gEffSpark3Tex_WIDTH 32 +#define gEffSpark3Tex_HEIGHT 32 +extern u64 gEffSpark3Tex[TEX_LEN(u64, gEffSpark3Tex_WIDTH, gEffSpark3Tex_HEIGHT, 4)]; +#define gEffSpark4Tex_WIDTH 32 +#define gEffSpark4Tex_HEIGHT 32 +extern u64 gEffSpark4Tex[TEX_LEN(u64, gEffSpark4Tex_WIDTH, gEffSpark4Tex_HEIGHT, 4)]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_sparkles.c b/assets/objects/gameplay_keep/eff_sparkles.c new file mode 100644 index 0000000000..9f5751498b --- /dev/null +++ b/assets/objects/gameplay_keep/eff_sparkles.c @@ -0,0 +1,14 @@ +#include "eff_sparkles.h" +#include "gfx.h" + +Vtx gEffSparklesVtx[] = { +#include "assets/objects/gameplay_keep/gEffSparklesVtx.inc.c" +}; + +Gfx gEffSparklesDL[12] = { +#include "assets/objects/gameplay_keep/gEffSparklesDL.inc.c" +}; + +u64 gEffSparklesTex[TEX_LEN(u64, gEffSparklesTex_WIDTH, gEffSparklesTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffSparklesTex.i4.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_sparkles.h b/assets/objects/gameplay_keep/eff_sparkles.h new file mode 100644 index 0000000000..b112b24e82 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_sparkles.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_EFF_SPARKLES_H +#define GAMEPLAY_KEEP_EFF_SPARKLES_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gEffSparklesVtx[]; +extern Gfx gEffSparklesDL[12]; +#define gEffSparklesTex_WIDTH 16 +#define gEffSparklesTex_HEIGHT 16 +extern u64 gEffSparklesTex[TEX_LEN(u64, gEffSparklesTex_WIDTH, gEffSparklesTex_HEIGHT, 4)]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_water_ripple.c b/assets/objects/gameplay_keep/eff_water_ripple.c new file mode 100644 index 0000000000..da79dd9158 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_water_ripple.c @@ -0,0 +1,14 @@ +#include "eff_water_ripple.h" +#include "gfx.h" + +u64 gEffWaterRippleTex[TEX_LEN(u64, gEffWaterRippleTex_WIDTH, gEffWaterRippleTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterRippleTex.i8.inc.c" +}; + +Gfx gEffWaterRippleDL[12] = { +#include "assets/objects/gameplay_keep/gEffWaterRippleDL.inc.c" +}; + +Vtx gEffWaterRippleVtx[] = { +#include "assets/objects/gameplay_keep/gEffWaterRippleVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_water_ripple.h b/assets/objects/gameplay_keep/eff_water_ripple.h new file mode 100644 index 0000000000..50c5342481 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_water_ripple.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_EFF_WATER_RIPPLE_H +#define GAMEPLAY_KEEP_EFF_WATER_RIPPLE_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffWaterRippleTex_WIDTH 64 +#define gEffWaterRippleTex_HEIGHT 64 +extern u64 gEffWaterRippleTex[TEX_LEN(u64, gEffWaterRippleTex_WIDTH, gEffWaterRippleTex_HEIGHT, 8)]; +extern Gfx gEffWaterRippleDL[12]; +extern Vtx gEffWaterRippleVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/eff_water_splash.c b/assets/objects/gameplay_keep/eff_water_splash.c new file mode 100644 index 0000000000..5fddbc952b --- /dev/null +++ b/assets/objects/gameplay_keep/eff_water_splash.c @@ -0,0 +1,42 @@ +#include "eff_water_splash.h" +#include "gfx.h" + +u64 gEffWaterSplash1Tex[TEX_LEN(u64, gEffWaterSplash1Tex_WIDTH, gEffWaterSplash1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash1Tex.i8.inc.c" +}; + +u64 gEffWaterSplash2Tex[TEX_LEN(u64, gEffWaterSplash2Tex_WIDTH, gEffWaterSplash2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash2Tex.i8.inc.c" +}; + +u64 gEffWaterSplash3Tex[TEX_LEN(u64, gEffWaterSplash3Tex_WIDTH, gEffWaterSplash3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash3Tex.i8.inc.c" +}; + +u64 gEffWaterSplash4Tex[TEX_LEN(u64, gEffWaterSplash4Tex_WIDTH, gEffWaterSplash4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash4Tex.i8.inc.c" +}; + +u64 gEffWaterSplash5Tex[TEX_LEN(u64, gEffWaterSplash5Tex_WIDTH, gEffWaterSplash5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash5Tex.i8.inc.c" +}; + +u64 gEffWaterSplash6Tex[TEX_LEN(u64, gEffWaterSplash6Tex_WIDTH, gEffWaterSplash6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash6Tex.i8.inc.c" +}; + +u64 gEffWaterSplash7Tex[TEX_LEN(u64, gEffWaterSplash7Tex_WIDTH, gEffWaterSplash7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash7Tex.i8.inc.c" +}; + +u64 gEffWaterSplash8Tex[TEX_LEN(u64, gEffWaterSplash8Tex_WIDTH, gEffWaterSplash8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffWaterSplash8Tex.i8.inc.c" +}; + +Gfx gEffWaterSplashDL[12] = { +#include "assets/objects/gameplay_keep/gEffWaterSplashDL.inc.c" +}; + +Vtx gEffWaterSplashVtx[] = { +#include "assets/objects/gameplay_keep/gEffWaterSplashVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/eff_water_splash.h b/assets/objects/gameplay_keep/eff_water_splash.h new file mode 100644 index 0000000000..4d058c8de0 --- /dev/null +++ b/assets/objects/gameplay_keep/eff_water_splash.h @@ -0,0 +1,34 @@ +#ifndef GAMEPLAY_KEEP_EFF_WATER_SPLASH_H +#define GAMEPLAY_KEEP_EFF_WATER_SPLASH_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffWaterSplash1Tex_WIDTH 32 +#define gEffWaterSplash1Tex_HEIGHT 40 +extern u64 gEffWaterSplash1Tex[TEX_LEN(u64, gEffWaterSplash1Tex_WIDTH, gEffWaterSplash1Tex_HEIGHT, 8)]; +#define gEffWaterSplash2Tex_WIDTH 32 +#define gEffWaterSplash2Tex_HEIGHT 40 +extern u64 gEffWaterSplash2Tex[TEX_LEN(u64, gEffWaterSplash2Tex_WIDTH, gEffWaterSplash2Tex_HEIGHT, 8)]; +#define gEffWaterSplash3Tex_WIDTH 32 +#define gEffWaterSplash3Tex_HEIGHT 40 +extern u64 gEffWaterSplash3Tex[TEX_LEN(u64, gEffWaterSplash3Tex_WIDTH, gEffWaterSplash3Tex_HEIGHT, 8)]; +#define gEffWaterSplash4Tex_WIDTH 32 +#define gEffWaterSplash4Tex_HEIGHT 40 +extern u64 gEffWaterSplash4Tex[TEX_LEN(u64, gEffWaterSplash4Tex_WIDTH, gEffWaterSplash4Tex_HEIGHT, 8)]; +#define gEffWaterSplash5Tex_WIDTH 32 +#define gEffWaterSplash5Tex_HEIGHT 40 +extern u64 gEffWaterSplash5Tex[TEX_LEN(u64, gEffWaterSplash5Tex_WIDTH, gEffWaterSplash5Tex_HEIGHT, 8)]; +#define gEffWaterSplash6Tex_WIDTH 32 +#define gEffWaterSplash6Tex_HEIGHT 40 +extern u64 gEffWaterSplash6Tex[TEX_LEN(u64, gEffWaterSplash6Tex_WIDTH, gEffWaterSplash6Tex_HEIGHT, 8)]; +#define gEffWaterSplash7Tex_WIDTH 32 +#define gEffWaterSplash7Tex_HEIGHT 40 +extern u64 gEffWaterSplash7Tex[TEX_LEN(u64, gEffWaterSplash7Tex_WIDTH, gEffWaterSplash7Tex_HEIGHT, 8)]; +#define gEffWaterSplash8Tex_WIDTH 32 +#define gEffWaterSplash8Tex_HEIGHT 40 +extern u64 gEffWaterSplash8Tex[TEX_LEN(u64, gEffWaterSplash8Tex_WIDTH, gEffWaterSplash8Tex_HEIGHT, 8)]; +extern Gfx gEffWaterSplashDL[12]; +extern Vtx gEffWaterSplashVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/fairy_anim.c b/assets/objects/gameplay_keep/fairy_anim.c new file mode 100644 index 0000000000..9c95ce50dc --- /dev/null +++ b/assets/objects/gameplay_keep/fairy_anim.c @@ -0,0 +1,13 @@ +#include "fairy_anim.h" + +s16 gFairyFrameData[] = { +#include "assets/objects/gameplay_keep/gFairyFrameData.inc.c" +}; + +JointIndex gFairyJointIndices[] = { +#include "assets/objects/gameplay_keep/gFairyJointIndices.inc.c" +}; + +AnimationHeader gFairyAnim = { +#include "assets/objects/gameplay_keep/gFairyAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/fairy_anim.h b/assets/objects/gameplay_keep/fairy_anim.h new file mode 100644 index 0000000000..b12979445c --- /dev/null +++ b/assets/objects/gameplay_keep/fairy_anim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_FAIRY_ANIM_H +#define GAMEPLAY_KEEP_FAIRY_ANIM_H + +#include "animation.h" + +extern s16 gFairyFrameData[]; +extern JointIndex gFairyJointIndices[]; +extern AnimationHeader gFairyAnim; + +#endif diff --git a/assets/objects/gameplay_keep/fairy_skel.c b/assets/objects/gameplay_keep/fairy_skel.c new file mode 100644 index 0000000000..cb39f8a715 --- /dev/null +++ b/assets/objects/gameplay_keep/fairy_skel.c @@ -0,0 +1,129 @@ +#include "fairy_skel.h" +#include "circle_glow_textures.h" +#include "animation.h" +#include "array_count.h" +#include "gfx.h" + +u64 gFairyWingTex[TEX_LEN(u64, gFairyWingTex_WIDTH, gFairyWingTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gFairyWingTex.i8.inc.c" +}; + +Vtx gFairyWing1Vtx[] = { +#include "assets/objects/gameplay_keep/gFairyWing1Vtx.inc.c" +}; + +Gfx gFairyWing1DL[17] = { +#include "assets/objects/gameplay_keep/gFairyWing1DL.inc.c" +}; + +Vtx gFairyWing2Vtx[] = { +#include "assets/objects/gameplay_keep/gFairyWing2Vtx.inc.c" +}; + +Gfx gFairyWing2DL[17] = { +#include "assets/objects/gameplay_keep/gFairyWing2DL.inc.c" +}; + +Vtx gFairyWing3Vtx[] = { +#include "assets/objects/gameplay_keep/gFairyWing3Vtx.inc.c" +}; + +Gfx gFairyWing3DL[17] = { +#include "assets/objects/gameplay_keep/gFairyWing3DL.inc.c" +}; + +Vtx gFairyWing4Vtx[] = { +#include "assets/objects/gameplay_keep/gFairyWing4Vtx.inc.c" +}; + +Gfx gFairyWing4DL[17] = { +#include "assets/objects/gameplay_keep/gFairyWing4DL.inc.c" +}; + +Vtx gGlowCircleVtx[] = { +#include "assets/objects/gameplay_keep/gGlowCircleVtx.inc.c" +}; + +Gfx gGlowCircleTextureLoadDL[8] = { +#include "assets/objects/gameplay_keep/gGlowCircleTextureLoadDL.inc.c" +}; + +Gfx gGlowCircleDL[4] = { +#include "assets/objects/gameplay_keep/gGlowCircleDL.inc.c" +}; + +Gfx gGlowCircleSmallDL[45] = { +#include "assets/objects/gameplay_keep/gGlowCircleSmallDL.inc.c" +}; + +Vtx gGlowCircleSmallVtx[] = { +#include "assets/objects/gameplay_keep/gGlowCircleSmallVtx.inc.c" +}; + +u64 gUnusedFairyWingTex[TEX_LEN(u64, gUnusedFairyWingTex_WIDTH, gUnusedFairyWingTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedFairyWingTex.rgba16.inc.c" +}; + +StandardLimb gFairySkelLimb_0 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_0.inc.c" +}; + +StandardLimb gFairySkelLimb_1 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_1.inc.c" +}; + +StandardLimb gFairySkelLimb_2 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_2.inc.c" +}; + +StandardLimb gFairySkelLimb_3 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_3.inc.c" +}; + +StandardLimb gFairySkelLimb_4 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_4.inc.c" +}; + +StandardLimb gFairySkelLimb_5 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_5.inc.c" +}; + +StandardLimb gFairySkelLimb_6 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_6.inc.c" +}; + +StandardLimb gFairySkelLimb_7 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_7.inc.c" +}; + +StandardLimb gFairySkelLimb_8 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_8.inc.c" +}; + +StandardLimb gFairySkelLimb_9 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_9.inc.c" +}; + +StandardLimb gFairySkelLimb_10 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_10.inc.c" +}; + +StandardLimb gFairySkelLimb_11 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_11.inc.c" +}; + +StandardLimb gFairySkelLimb_12 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_12.inc.c" +}; + +StandardLimb gFairySkelLimb_13 = { +#include "assets/objects/gameplay_keep/gFairySkelLimb_13.inc.c" +}; + +void* gFairyLimbs[] = { +#include "assets/objects/gameplay_keep/gFairyLimbs.inc.c" +}; + +SkeletonHeader gFairySkel = { +#include "assets/objects/gameplay_keep/gFairySkel.inc.c" +}; diff --git a/assets/objects/gameplay_keep/fairy_skel.h b/assets/objects/gameplay_keep/fairy_skel.h new file mode 100644 index 0000000000..6b5816eeca --- /dev/null +++ b/assets/objects/gameplay_keep/fairy_skel.h @@ -0,0 +1,62 @@ +#ifndef GAMEPLAY_KEEP_FAIRY_SKEL_H +#define GAMEPLAY_KEEP_FAIRY_SKEL_H + +#include "tex_len.h" +#include "ultra64.h" +#include "animation.h" + +#define gFairyWingTex_WIDTH 32 +#define gFairyWingTex_HEIGHT 64 +extern u64 gFairyWingTex[TEX_LEN(u64, gFairyWingTex_WIDTH, gFairyWingTex_HEIGHT, 8)]; +extern Vtx gFairyWing1Vtx[]; +extern Gfx gFairyWing1DL[17]; +extern Vtx gFairyWing2Vtx[]; +extern Gfx gFairyWing2DL[17]; +extern Vtx gFairyWing3Vtx[]; +extern Gfx gFairyWing3DL[17]; +extern Vtx gFairyWing4Vtx[]; +extern Gfx gFairyWing4DL[17]; +extern Vtx gGlowCircleVtx[]; +extern Gfx gGlowCircleTextureLoadDL[8]; +extern Gfx gGlowCircleDL[4]; +extern Gfx gGlowCircleSmallDL[45]; +extern Vtx gGlowCircleSmallVtx[]; +#define gUnusedFairyWingTex_WIDTH 32 +#define gUnusedFairyWingTex_HEIGHT 64 +extern u64 gUnusedFairyWingTex[TEX_LEN(u64, gUnusedFairyWingTex_WIDTH, gUnusedFairyWingTex_HEIGHT, 16)]; +extern StandardLimb gFairySkelLimb_0; +extern StandardLimb gFairySkelLimb_1; +extern StandardLimb gFairySkelLimb_2; +extern StandardLimb gFairySkelLimb_3; +extern StandardLimb gFairySkelLimb_4; +extern StandardLimb gFairySkelLimb_5; +extern StandardLimb gFairySkelLimb_6; +extern StandardLimb gFairySkelLimb_7; +extern StandardLimb gFairySkelLimb_8; +extern StandardLimb gFairySkelLimb_9; +extern StandardLimb gFairySkelLimb_10; +extern StandardLimb gFairySkelLimb_11; +extern StandardLimb gFairySkelLimb_12; +extern StandardLimb gFairySkelLimb_13; +extern void* gFairyLimbs[]; +typedef enum FairySkelLimb { + /* 0 */ FAIRY_LIMB_NONE, + /* 1 */ FAIRY_LIMB_0, + /* 2 */ FAIRY_LIMB_1, + /* 3 */ FAIRY_LIMB_2, + /* 4 */ FAIRY_LIMB_3, + /* 5 */ FAIRY_LIMB_4, + /* 6 */ FAIRY_LIMB_5, + /* 7 */ FAIRY_LIMB_6, + /* 8 */ FAIRY_LIMB_7, + /* 9 */ FAIRY_LIMB_8, + /* 10 */ FAIRY_LIMB_9, + /* 11 */ FAIRY_LIMB_10, + /* 12 */ FAIRY_LIMB_11, + /* 13 */ FAIRY_LIMB_12, + /* 14 */ FAIRY_LIMB_13, + /* 15 */ FAIRY_LIMB_MAX +} FairySkelLimb; +extern SkeletonHeader gFairySkel; + +#endif diff --git a/assets/objects/gameplay_keep/flat_block_model.c b/assets/objects/gameplay_keep/flat_block_model.c new file mode 100644 index 0000000000..e85f66b5cb --- /dev/null +++ b/assets/objects/gameplay_keep/flat_block_model.c @@ -0,0 +1,11 @@ +#include "flat_block_model.h" +#include "gameplay_keep_0x42530.h" +#include "gfx.h" + +Vtx gFlatBlockVtx[] = { +#include "assets/objects/gameplay_keep/gFlatBlockVtx.inc.c" +}; + +Gfx gFlatBlockDL[23] = { +#include "assets/objects/gameplay_keep/gFlatBlockDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/flat_block_model.h b/assets/objects/gameplay_keep/flat_block_model.h new file mode 100644 index 0000000000..4673479aab --- /dev/null +++ b/assets/objects/gameplay_keep/flat_block_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_FLAT_BLOCK_MODEL_H +#define GAMEPLAY_KEEP_FLAT_BLOCK_MODEL_H + +#include "ultra64.h" + +extern Vtx gFlatBlockVtx[]; +extern Gfx gFlatBlockDL[23]; + +#endif diff --git a/assets/objects/gameplay_keep/flat_rot_block_model.c b/assets/objects/gameplay_keep/flat_rot_block_model.c new file mode 100644 index 0000000000..4b561aefe2 --- /dev/null +++ b/assets/objects/gameplay_keep/flat_rot_block_model.c @@ -0,0 +1,11 @@ +#include "flat_rot_block_model.h" +#include "gameplay_keep_0x42530.h" +#include "gfx.h" + +Vtx gFlatRotBlockVtx[] = { +#include "assets/objects/gameplay_keep/gFlatRotBlockVtx.inc.c" +}; + +Gfx gFlatRotBlockDL[22] = { +#include "assets/objects/gameplay_keep/gFlatRotBlockDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/flat_rot_block_model.h b/assets/objects/gameplay_keep/flat_rot_block_model.h new file mode 100644 index 0000000000..bae717a341 --- /dev/null +++ b/assets/objects/gameplay_keep/flat_rot_block_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_FLAT_ROT_BLOCK_MODEL_H +#define GAMEPLAY_KEEP_FLAT_ROT_BLOCK_MODEL_H + +#include "ultra64.h" + +extern Vtx gFlatRotBlockVtx[]; +extern Gfx gFlatRotBlockDL[22]; + +#endif diff --git a/assets/objects/gameplay_keep/gArrow1_Anim.c b/assets/objects/gameplay_keep/gArrow1_Anim.c new file mode 100644 index 0000000000..1d501954a4 --- /dev/null +++ b/assets/objects/gameplay_keep/gArrow1_Anim.c @@ -0,0 +1,13 @@ +#include "gArrow1_Anim.h" + +s16 gArrow1_FrameData[] = { +#include "assets/objects/gameplay_keep/gArrow1_FrameData.inc.c" +}; + +JointIndex gArrow1_JointIndices[] = { +#include "assets/objects/gameplay_keep/gArrow1_JointIndices.inc.c" +}; + +AnimationHeader gArrow1_Anim = { +#include "assets/objects/gameplay_keep/gArrow1_Anim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gArrow1_Anim.h b/assets/objects/gameplay_keep/gArrow1_Anim.h new file mode 100644 index 0000000000..2d9577baf5 --- /dev/null +++ b/assets/objects/gameplay_keep/gArrow1_Anim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_GARROW1_ANIM_H +#define GAMEPLAY_KEEP_GARROW1_ANIM_H + +#include "animation.h" + +extern s16 gArrow1_FrameData[]; +extern JointIndex gArrow1_JointIndices[]; +extern AnimationHeader gArrow1_Anim; + +#endif diff --git a/assets/objects/gameplay_keep/gArrow2_Anim.c b/assets/objects/gameplay_keep/gArrow2_Anim.c new file mode 100644 index 0000000000..bb341136db --- /dev/null +++ b/assets/objects/gameplay_keep/gArrow2_Anim.c @@ -0,0 +1,13 @@ +#include "gArrow2_Anim.h" + +s16 gArrow2_FrameData[] = { +#include "assets/objects/gameplay_keep/gArrow2_FrameData.inc.c" +}; + +JointIndex gArrow2_JointIndices[] = { +#include "assets/objects/gameplay_keep/gArrow2_JointIndices.inc.c" +}; + +AnimationHeader gArrow2_Anim = { +#include "assets/objects/gameplay_keep/gArrow2_Anim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gArrow2_Anim.h b/assets/objects/gameplay_keep/gArrow2_Anim.h new file mode 100644 index 0000000000..ab0442ce39 --- /dev/null +++ b/assets/objects/gameplay_keep/gArrow2_Anim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_GARROW2_ANIM_H +#define GAMEPLAY_KEEP_GARROW2_ANIM_H + +#include "animation.h" + +extern s16 gArrow2_FrameData[]; +extern JointIndex gArrow2_JointIndices[]; +extern AnimationHeader gArrow2_Anim; + +#endif diff --git a/assets/objects/gameplay_keep/gBugCrawlAnim.c b/assets/objects/gameplay_keep/gBugCrawlAnim.c new file mode 100644 index 0000000000..1c34abcd9f --- /dev/null +++ b/assets/objects/gameplay_keep/gBugCrawlAnim.c @@ -0,0 +1,13 @@ +#include "gBugCrawlAnim.h" + +s16 gBugCrawlFrameData[] = { +#include "assets/objects/gameplay_keep/gBugCrawlFrameData.inc.c" +}; + +JointIndex gBugCrawlJointIndices[] = { +#include "assets/objects/gameplay_keep/gBugCrawlJointIndices.inc.c" +}; + +AnimationHeader gBugCrawlAnim = { +#include "assets/objects/gameplay_keep/gBugCrawlAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gBugCrawlAnim.h b/assets/objects/gameplay_keep/gBugCrawlAnim.h new file mode 100644 index 0000000000..554e80178a --- /dev/null +++ b/assets/objects/gameplay_keep/gBugCrawlAnim.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_GBUGCRAWLANIM_H +#define GAMEPLAY_KEEP_GBUGCRAWLANIM_H + +#include "ultra64.h" +#include "animation.h" + +extern s16 gBugCrawlFrameData[]; +extern JointIndex gBugCrawlJointIndices[]; +extern AnimationHeader gBugCrawlAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.c b/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.c new file mode 100644 index 0000000000..4d5db4d36c --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.c @@ -0,0 +1,13 @@ +#include "gDoorAdultOpeningLeftAnim.h" + +s16 gDoorAdultOpeningLeftFrameData[] = { +#include "assets/objects/gameplay_keep/gDoorAdultOpeningLeftFrameData.inc.c" +}; + +JointIndex gDoorAdultOpeningLeftJointIndices[] = { +#include "assets/objects/gameplay_keep/gDoorAdultOpeningLeftJointIndices.inc.c" +}; + +AnimationHeader gDoorAdultOpeningLeftAnim = { +#include "assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.h b/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.h new file mode 100644 index 0000000000..8bab724e4e --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_GDOORADULTOPENINGLEFTANIM_H +#define GAMEPLAY_KEEP_GDOORADULTOPENINGLEFTANIM_H + +#include "animation.h" + +extern s16 gDoorAdultOpeningLeftFrameData[]; +extern JointIndex gDoorAdultOpeningLeftJointIndices[]; +extern AnimationHeader gDoorAdultOpeningLeftAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.c b/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.c new file mode 100644 index 0000000000..c5e171b86a --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.c @@ -0,0 +1,13 @@ +#include "gDoorAdultOpeningRightAnim.h" + +s16 gDoorAdultOpeningRightFrameData[] = { +#include "assets/objects/gameplay_keep/gDoorAdultOpeningRightFrameData.inc.c" +}; + +JointIndex gDoorAdultOpeningRightJointIndices[] = { +#include "assets/objects/gameplay_keep/gDoorAdultOpeningRightJointIndices.inc.c" +}; + +AnimationHeader gDoorAdultOpeningRightAnim = { +#include "assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.h b/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.h new file mode 100644 index 0000000000..b444b93ff0 --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_DOOR_ADULT_OPENING_RIGHT_ANIM_H +#define GAMEPLAY_KEEP_DOOR_ADULT_OPENING_RIGHT_ANIM_H + +#include "animation.h" + +extern s16 gDoorAdultOpeningRightFrameData[]; +extern JointIndex gDoorAdultOpeningRightJointIndices[]; +extern AnimationHeader gDoorAdultOpeningRightAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.c b/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.c new file mode 100644 index 0000000000..e2b340858a --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.c @@ -0,0 +1,13 @@ +#include "gDoorChildOpeningLeftAnim.h" + +s16 gDoorChildOpeningLeftFrameData[] = { +#include "assets/objects/gameplay_keep/gDoorChildOpeningLeftFrameData.inc.c" +}; + +JointIndex gDoorChildOpeningLeftJointIndices[] = { +#include "assets/objects/gameplay_keep/gDoorChildOpeningLeftJointIndices.inc.c" +}; + +AnimationHeader gDoorChildOpeningLeftAnim = { +#include "assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.h b/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.h new file mode 100644 index 0000000000..295b87edd1 --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_DOOR_CHILD_OPENING_LEFT_ANIM_H +#define GAMEPLAY_KEEP_DOOR_CHILD_OPENING_LEFT_ANIM_H + +#include "animation.h" + +extern s16 gDoorChildOpeningLeftFrameData[]; +extern JointIndex gDoorChildOpeningLeftJointIndices[]; +extern AnimationHeader gDoorChildOpeningLeftAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.c b/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.c new file mode 100644 index 0000000000..79af410047 --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.c @@ -0,0 +1,13 @@ +#include "gDoorChildOpeningRightAnim.h" + +s16 gDoorChildOpeningRightFrameData[] = { +#include "assets/objects/gameplay_keep/gDoorChildOpeningRightFrameData.inc.c" +}; + +JointIndex gDoorChildOpeningRightJointIndices[] = { +#include "assets/objects/gameplay_keep/gDoorChildOpeningRightJointIndices.inc.c" +}; + +AnimationHeader gDoorChildOpeningRightAnim = { +#include "assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.h b/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.h new file mode 100644 index 0000000000..6476396339 --- /dev/null +++ b/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_GDOORCHILDOPENINGRIGHTANIM_H +#define GAMEPLAY_KEEP_GDOORCHILDOPENINGRIGHTANIM_H + +#include "animation.h" + +extern s16 gDoorChildOpeningRightFrameData[]; +extern JointIndex gDoorChildOpeningRightJointIndices[]; +extern AnimationHeader gDoorChildOpeningRightAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gFishInWaterAnim.c b/assets/objects/gameplay_keep/gFishInWaterAnim.c new file mode 100644 index 0000000000..10c6afb9f1 --- /dev/null +++ b/assets/objects/gameplay_keep/gFishInWaterAnim.c @@ -0,0 +1,13 @@ +#include "gFishInWaterAnim.h" + +s16 gFishInWaterFrameData[] = { +#include "assets/objects/gameplay_keep/gFishInWaterFrameData.inc.c" +}; + +JointIndex gFishInWaterJointIndices[] = { +#include "assets/objects/gameplay_keep/gFishInWaterJointIndices.inc.c" +}; + +AnimationHeader gFishInWaterAnim = { +#include "assets/objects/gameplay_keep/gFishInWaterAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gFishInWaterAnim.h b/assets/objects/gameplay_keep/gFishInWaterAnim.h new file mode 100644 index 0000000000..956d54c2ba --- /dev/null +++ b/assets/objects/gameplay_keep/gFishInWaterAnim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_GFISHINWATERANIM_H +#define GAMEPLAY_KEEP_GFISHINWATERANIM_H + +#include "animation.h" + +extern s16 gFishInWaterFrameData[]; +extern JointIndex gFishInWaterJointIndices[]; +extern AnimationHeader gFishInWaterAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gFishOutOfWaterAnim.c b/assets/objects/gameplay_keep/gFishOutOfWaterAnim.c new file mode 100644 index 0000000000..7579f0ca93 --- /dev/null +++ b/assets/objects/gameplay_keep/gFishOutOfWaterAnim.c @@ -0,0 +1,13 @@ +#include "gFishOutOfWaterAnim.h" + +s16 gFishOutOfWaterFrameData[] = { +#include "assets/objects/gameplay_keep/gFishOutOfWaterFrameData.inc.c" +}; + +JointIndex gFishOutOfWaterJointIndices[] = { +#include "assets/objects/gameplay_keep/gFishOutOfWaterJointIndices.inc.c" +}; + +AnimationHeader gFishOutOfWaterAnim = { +#include "assets/objects/gameplay_keep/gFishOutOfWaterAnim.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gFishOutOfWaterAnim.h b/assets/objects/gameplay_keep/gFishOutOfWaterAnim.h new file mode 100644 index 0000000000..e96f710391 --- /dev/null +++ b/assets/objects/gameplay_keep/gFishOutOfWaterAnim.h @@ -0,0 +1,10 @@ +#ifndef GAMEPLAY_KEEP_GFISHOUTOFWATERANIM_H +#define GAMEPLAY_KEEP_GFISHOUTOFWATERANIM_H + +#include "animation.h" + +extern s16 gFishOutOfWaterFrameData[]; +extern JointIndex gFishOutOfWaterJointIndices[]; +extern AnimationHeader gFishOutOfWaterAnim; + +#endif diff --git a/assets/objects/gameplay_keep/gLargerCubeCol.c b/assets/objects/gameplay_keep/gLargerCubeCol.c new file mode 100644 index 0000000000..24477a8607 --- /dev/null +++ b/assets/objects/gameplay_keep/gLargerCubeCol.c @@ -0,0 +1,24 @@ +#include "gLargerCubeCol.h" +#include "array_count.h" +#include "camera.h" +#include "bgcheck.h" + +BgCamInfo gLargerCubeBgCamList[] = { +#include "assets/objects/gameplay_keep/gLargerCubeBgCamList.inc.c" +}; + +SurfaceType gLargerCubeSurfaceTypes[] = { +#include "assets/objects/gameplay_keep/gLargerCubeSurfaceTypes.inc.c" +}; + +CollisionPoly gLargerCubePolyList[] = { +#include "assets/objects/gameplay_keep/gLargerCubePolyList.inc.c" +}; + +Vec3s gLargerCubeVtxList[] = { +#include "assets/objects/gameplay_keep/gLargerCubeVtxList.inc.c" +}; + +CollisionHeader gLargerCubeCol = { +#include "assets/objects/gameplay_keep/gLargerCubeCol.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gLargerCubeCol.h b/assets/objects/gameplay_keep/gLargerCubeCol.h new file mode 100644 index 0000000000..765f5be9f1 --- /dev/null +++ b/assets/objects/gameplay_keep/gLargerCubeCol.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_GLARGERCUBECOL_H +#define GAMEPLAY_KEEP_GLARGERCUBECOL_H + +#include "bgcheck.h" + +extern BgCamInfo gLargerCubeBgCamList[]; +extern SurfaceType gLargerCubeSurfaceTypes[]; +extern CollisionPoly gLargerCubePolyList[]; +extern Vec3s gLargerCubeVtxList[]; +extern CollisionHeader gLargerCubeCol; + +#endif diff --git a/assets/objects/gameplay_keep/gLargerFlatBlockCol.c b/assets/objects/gameplay_keep/gLargerFlatBlockCol.c new file mode 100644 index 0000000000..e154764934 --- /dev/null +++ b/assets/objects/gameplay_keep/gLargerFlatBlockCol.c @@ -0,0 +1,23 @@ +#include "gLargerFlatBlockCol.h" +#include "array_count.h" +#include "camera.h" + +BgCamInfo gLargerFlatBlockBgCamList[] = { +#include "assets/objects/gameplay_keep/gLargerFlatBlockBgCamList.inc.c" +}; + +SurfaceType gLargerFlatBlockSurfaceTypes[] = { +#include "assets/objects/gameplay_keep/gLargerFlatBlockSurfaceTypes.inc.c" +}; + +CollisionPoly gLargerFlatBlockPolyList[] = { +#include "assets/objects/gameplay_keep/gLargerFlatBlockPolyList.inc.c" +}; + +Vec3s gLargerFlatBlockVtxList[] = { +#include "assets/objects/gameplay_keep/gLargerFlatBlockVtxList.inc.c" +}; + +CollisionHeader gLargerFlatBlockCol = { +#include "assets/objects/gameplay_keep/gLargerFlatBlockCol.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gLargerFlatBlockCol.h b/assets/objects/gameplay_keep/gLargerFlatBlockCol.h new file mode 100644 index 0000000000..c03b2084fa --- /dev/null +++ b/assets/objects/gameplay_keep/gLargerFlatBlockCol.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_GLARGERFLATBLOCKCOL_H +#define GAMEPLAY_KEEP_GLARGERFLATBLOCKCOL_H + +#include "bgcheck.h" + +extern BgCamInfo gLargerFlatBlockBgCamList[]; +extern SurfaceType gLargerFlatBlockSurfaceTypes[]; +extern CollisionPoly gLargerFlatBlockPolyList[]; +extern Vec3s gLargerFlatBlockVtxList[]; +extern CollisionHeader gLargerFlatBlockCol; + +#endif diff --git a/assets/objects/gameplay_keep/gTallBlockCol.c b/assets/objects/gameplay_keep/gTallBlockCol.c new file mode 100644 index 0000000000..2ba1f5f92c --- /dev/null +++ b/assets/objects/gameplay_keep/gTallBlockCol.c @@ -0,0 +1,24 @@ +#include "gTallBlockCol.h" +#include "bgcheck.h" +#include "array_count.h" +#include "camera.h" + +BgCamInfo gTallBlockBgCamList[] = { +#include "assets/objects/gameplay_keep/gTallBlockBgCamList.inc.c" +}; + +SurfaceType gTallBlockSurfaceTypes[] = { +#include "assets/objects/gameplay_keep/gTallBlockSurfaceTypes.inc.c" +}; + +CollisionPoly gTallBlockPolyList[] = { +#include "assets/objects/gameplay_keep/gTallBlockPolyList.inc.c" +}; + +Vec3s gTallBlockVtxList[] = { +#include "assets/objects/gameplay_keep/gTallBlockVtxList.inc.c" +}; + +CollisionHeader gTallBlockCol = { +#include "assets/objects/gameplay_keep/gTallBlockCol.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gTallBlockCol.h b/assets/objects/gameplay_keep/gTallBlockCol.h new file mode 100644 index 0000000000..ca3b6031d2 --- /dev/null +++ b/assets/objects/gameplay_keep/gTallBlockCol.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_GTALLBLOCKCOL_H +#define GAMEPLAY_KEEP_GTALLBLOCKCOL_H + +#include "bgcheck.h" + +extern BgCamInfo gTallBlockBgCamList[]; +extern SurfaceType gTallBlockSurfaceTypes[]; +extern CollisionPoly gTallBlockPolyList[]; +extern Vec3s gTallBlockVtxList[]; +extern CollisionHeader gTallBlockCol; + +#endif diff --git a/assets/objects/gameplay_keep/gWideTallBlockCol.c b/assets/objects/gameplay_keep/gWideTallBlockCol.c new file mode 100644 index 0000000000..4176c4c4fb --- /dev/null +++ b/assets/objects/gameplay_keep/gWideTallBlockCol.c @@ -0,0 +1,24 @@ +#include "gWideTallBlockCol.h" +#include "array_count.h" +#include "camera.h" +#include "bgcheck.h" + +BgCamInfo gWideTallBlockBgCamList[] = { +#include "assets/objects/gameplay_keep/gWideTallBlockBgCamList.inc.c" +}; + +SurfaceType gWideTallBlockSurfaceTypes[] = { +#include "assets/objects/gameplay_keep/gWideTallBlockSurfaceTypes.inc.c" +}; + +CollisionPoly gWideTallBlockPolyList[] = { +#include "assets/objects/gameplay_keep/gWideTallBlockPolyList.inc.c" +}; + +Vec3s gWideTallBlockVtxList[] = { +#include "assets/objects/gameplay_keep/gWideTallBlockVtxList.inc.c" +}; + +CollisionHeader gWideTallBlockCol = { +#include "assets/objects/gameplay_keep/gWideTallBlockCol.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gWideTallBlockCol.h b/assets/objects/gameplay_keep/gWideTallBlockCol.h new file mode 100644 index 0000000000..b272034885 --- /dev/null +++ b/assets/objects/gameplay_keep/gWideTallBlockCol.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_GWIDETALLBLOCKCOL_H +#define GAMEPLAY_KEEP_GWIDETALLBLOCKCOL_H + +#include "bgcheck.h" + +extern BgCamInfo gWideTallBlockBgCamList[]; +extern SurfaceType gWideTallBlockSurfaceTypes[]; +extern CollisionPoly gWideTallBlockPolyList[]; +extern Vec3s gWideTallBlockVtxList[]; +extern CollisionHeader gWideTallBlockCol; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep.h b/assets/objects/gameplay_keep/gameplay_keep.h new file mode 100644 index 0000000000..b3cd325f0c --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep.h @@ -0,0 +1,145 @@ +#ifndef GAMEPLAY_KEEP_H +#define GAMEPLAY_KEEP_H + +#include "hilite_textures.h" +#include "link_textures.h" +#include "player_pause_joint_tables.h" +#include "player_anim_headers.h" +#include "debug_models.h" +#include "gArrow1_Anim.h" +#include "gArrow2_Anim.h" +#include "arrow_skel.h" +#include "unk_eff_blure_tex.h" +#include "bomb_body.h" +#include "bomb_cap.h" +#include "bombchu_body.h" +#include "eff_bomb_explosion.h" +#include "eff_fragments_1.h" +#include "boomerang.h" +#include "compass_arrow.h" +#if OOT_REGION != REGION_EU +#include "gameplay_keep_ntsc_0xC880.h" +#endif +#include "lock_on_arrow.h" +#include "hilite3_tex.h" +#include "eff_fragments_2_model.h" +#if OOT_REGION != REGION_EU +#include "gameplay_keep_ntsc_0xCE60.h" +#endif +#include "shopkeeper_controls_tex.h" +#include "rock_fragments_model.h" +#include "rock_fragments_tex.h" +#include "gDoorChildOpeningLeftAnim.h" +#include "gDoorChildOpeningRightAnim.h" +#include "door_skel.h" +#include "gDoorAdultOpeningRightAnim.h" +#include "eff_dust.h" +#include "eff_flash.h" +#include "spin_attack.h" +#include "gameplay_keep_0x13700.h" +#include "fairy_anim.h" +#include "fairy_skel.h" +#include "gameplay_keep_0x16A50.h" +#include "hilite4_tex.h" +#include "gameplay_keep_0x173D0.h" +#include "gFishOutOfWaterAnim.h" +#include "gameplay_keep_0x18610.h" +#include "gFishInWaterAnim.h" +#include "eff_shockwave.h" +#include "eff_bubble.h" +#include "eff_fire_footprint.h" +#include "unused_bubbles.h" +#include "lens_mask_tex.h" +#include "eff_hitmark.h" +#include "gameplay_keep_0x21810.h" +#include "eff_magma_bubble.h" +#include "eff_water_ripple.h" +#include "eff_spark_model.h" +#include "eff_water_splash.h" +#include "unknown_eff_stone.h" +#include "eff_lightning.h" +#include "eff_enemy_death_flame.h" +#include "gameplay_keep_0x32090.h" +#include "gameplay_keep_0x33090.h" +#include "eff_ice_fragments.h" +#include "gameplay_keep_0x33910.h" +#include "gBugCrawlAnim.h" +#include "bug_skel.h" +#include "cuttable_shrub.h" +#include "lens_flare.h" +#include "eff_sparkles.h" +#include "hover_boots_circle.h" +#include "moon.h" +#include "gameplay_keep_0x38FB0.h" +#if OOT_REGION != REGION_EU +#include "gameplay_keep_ntsc_0x39850.h" +#include "unused_bomb_icon_model_ntsc.h" +#include "unused_heart_icon_model_ntsc.h" +#include "unused_arrow_icon_model_ntsc.h" +#endif +#include "gLargerCubeCol.h" +#include "liftable_rock_model.h" +#include "gameplay_keep_0x39710.h" +#include "gWideTallBlockCol.h" +#include "flat_block_model.h" +#include "gTallBlockCol.h" +#include "gameplay_keep_0x39DF0.h" +#include "small_flat_block_col.h" +#include "flat_rot_block_model.h" +#include "gLargerFlatBlockCol.h" +#include "small_cube_model.h" +#include "small_cube_col.h" +#include "tree_stump_model.h" +#include "grass_blades_model.h" +#include "gameplay_keep_0x3AC30.h" +#include "heart_piece_interior_model.h" +#include "gameplay_keep_0x3B1E0.h" +#if OOT_REGION != REGION_EU +#include "gameplay_keep_ntsc_0x3C610.h" +#include "unused_heart_container_icon_model_ntsc.h" +#endif +#include "rectangular_sign_model.h" +#include "directional_sign_model.h" +#include "gameplay_keep_0x3C870.h" +#if OOT_REGION != REGION_EU +#include "gameplay_keep_ntsc_0x3FD80.h" +#endif +#include "drop_recovery_heart_tex.h" +#if OOT_REGION != REGION_EU +#include "unused_heart_piece_icon_tex_ntsc.h" +#endif +#include "item_drop_dl.h" +#include "gameplay_keep_0x3F140.h" +#include "rupee.h" +#if OOT_REGION != REGION_EU +#include "item_drops_ntsc.h" +#endif +#include "rupee_light_red_tex.h" +#if OOT_REGION != REGION_EU +#include "gameplay_keep_ntsc_0x46A40.h" +#endif +#include "gameplay_keep_0x42530.h" +#include "gameplay_keep_0x43530.h" +#include "gameplay_keep_0x44530.h" +#include "gameplay_keep_0x45530.h" +#include "gameplay_keep_0x45D30.h" +#include "sign_textures.h" +#include "raindrop_model.h" +#include "shadow_foot.h" +#include "shadow_circle.h" +#include "shadow_horse.h" +#include "gameplay_keep_0x49F20.h" +#include "gameplay_keep_0x4A090.h" +#include "sun_textures.h" +#include "sun_evening_textures.h" +#include "gameplay_keep_0x4D160.h" +#include "lock_on_reticle.h" +#include "eff_fire.h" +#include "gameplay_keep_0x4E660.h" +#include "gameplay_keep_0x515B0.h" +#include "dust_textures.h" +#include "circle_glow_textures.h" +#include "gameplay_keep_0x55DB0.h" +#include "eff_spark_textures.h" + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x13700.c b/assets/objects/gameplay_keep/gameplay_keep_0x13700.c new file mode 100644 index 0000000000..ce20bdb126 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x13700.c @@ -0,0 +1,18 @@ +#include "gameplay_keep_0x13700.h" +#include "gfx.h" + +u64 gEffUnknown2Tex[TEX_LEN(u64, gEffUnknown2Tex_WIDTH, gEffUnknown2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown2Tex.i8.inc.c" +}; + +u64 gEffUnknown3Tex[TEX_LEN(u64, gEffUnknown3Tex_WIDTH, gEffUnknown3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown3Tex.i8.inc.c" +}; + +Vtx gUnusedBeamBladeVtx[] = { +#include "assets/objects/gameplay_keep/gUnusedBeamBladeVtx.inc.c" +}; + +Gfx gUnusedBeamBladeDL[37] = { +#include "assets/objects/gameplay_keep/gUnusedBeamBladeDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x13700.h b/assets/objects/gameplay_keep/gameplay_keep_0x13700.h new file mode 100644 index 0000000000..0be46d522f --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x13700.h @@ -0,0 +1,16 @@ +#ifndef GAMEPLAY_KEEP_0x13700_H +#define GAMEPLAY_KEEP_0x13700_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffUnknown2Tex_WIDTH 32 +#define gEffUnknown2Tex_HEIGHT 64 +extern u64 gEffUnknown2Tex[TEX_LEN(u64, gEffUnknown2Tex_WIDTH, gEffUnknown2Tex_HEIGHT, 8)]; +#define gEffUnknown3Tex_WIDTH 32 +#define gEffUnknown3Tex_HEIGHT 64 +extern u64 gEffUnknown3Tex[TEX_LEN(u64, gEffUnknown3Tex_WIDTH, gEffUnknown3Tex_HEIGHT, 8)]; +extern Vtx gUnusedBeamBladeVtx[]; +extern Gfx gUnusedBeamBladeDL[37]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x16A50.c b/assets/objects/gameplay_keep/gameplay_keep_0x16A50.c new file mode 100644 index 0000000000..97a2ab7565 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x16A50.c @@ -0,0 +1,9 @@ +#include "gameplay_keep_0x16A50.h" + +u64 gUnknownCircle3Tex[TEX_LEN(u64, gUnknownCircle3Tex_WIDTH, gUnknownCircle3Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gUnknownCircle3Tex.i4.inc.c" +}; + +u64 gUnknownCircle4Tex[TEX_LEN(u64, gUnknownCircle4Tex_WIDTH, gUnknownCircle4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownCircle4Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x16A50.h b/assets/objects/gameplay_keep/gameplay_keep_0x16A50.h new file mode 100644 index 0000000000..f776aa9415 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x16A50.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_0x16A50_H +#define GAMEPLAY_KEEP_0x16A50_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownCircle3Tex_WIDTH 16 +#define gUnknownCircle3Tex_HEIGHT 16 +extern u64 gUnknownCircle3Tex[TEX_LEN(u64, gUnknownCircle3Tex_WIDTH, gUnknownCircle3Tex_HEIGHT, 4)]; +#define gUnknownCircle4Tex_WIDTH 16 +#define gUnknownCircle4Tex_HEIGHT 16 +extern u64 gUnknownCircle4Tex[TEX_LEN(u64, gUnknownCircle4Tex_WIDTH, gUnknownCircle4Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x173D0.c b/assets/objects/gameplay_keep/gameplay_keep_0x173D0.c new file mode 100644 index 0000000000..6d4fe6f8c6 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x173D0.c @@ -0,0 +1,18 @@ +#include "gameplay_keep_0x173D0.h" +#include "gfx.h" + +u64 gEffUnknown4Tex[TEX_LEN(u64, gEffUnknown4Tex_WIDTH, gEffUnknown4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown4Tex.i8.inc.c" +}; + +u64 gEffUnknown5Tex[TEX_LEN(u64, gEffUnknown5Tex_WIDTH, gEffUnknown5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown5Tex.i8.inc.c" +}; + +Vtx gEffFireCircleVtx[] = { +#include "assets/objects/gameplay_keep/gEffFireCircleVtx.inc.c" +}; + +Gfx gEffFireCircleDL[30] = { +#include "assets/objects/gameplay_keep/gEffFireCircleDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x173D0.h b/assets/objects/gameplay_keep/gameplay_keep_0x173D0.h new file mode 100644 index 0000000000..b619eceaba --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x173D0.h @@ -0,0 +1,16 @@ +#ifndef GAMEPLAY_KEEP_0x173D0_H +#define GAMEPLAY_KEEP_0x173D0_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffUnknown4Tex_WIDTH 32 +#define gEffUnknown4Tex_HEIGHT 64 +extern u64 gEffUnknown4Tex[TEX_LEN(u64, gEffUnknown4Tex_WIDTH, gEffUnknown4Tex_HEIGHT, 8)]; +#define gEffUnknown5Tex_WIDTH 32 +#define gEffUnknown5Tex_HEIGHT 64 +extern u64 gEffUnknown5Tex[TEX_LEN(u64, gEffUnknown5Tex_WIDTH, gEffUnknown5Tex_HEIGHT, 8)]; +extern Vtx gEffFireCircleVtx[]; +extern Gfx gEffFireCircleDL[30]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x18610.c b/assets/objects/gameplay_keep/gameplay_keep_0x18610.c new file mode 100644 index 0000000000..07aad27e6c --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x18610.c @@ -0,0 +1,67 @@ +#include "gameplay_keep_0x18610.h" +#include "array_count.h" +#include "gfx.h" + +Vtx gameplay_keep_Vtx_018610[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_018610.inc.c" +}; + +Vtx gameplay_keep_Vtx_018650[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_018650.inc.c" +}; + +Vtx gameplay_keep_Vtx_018750[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_018750.inc.c" +}; + +Gfx gameplay_keep_0188B0_DL[20] = { +#include "assets/objects/gameplay_keep/gameplay_keep_0188B0_DL.inc.c" +}; + +Gfx gameplay_keep_018950_DL[35] = { +#include "assets/objects/gameplay_keep/gameplay_keep_018950_DL.inc.c" +}; + +Gfx gameplay_keep_018A68_DL[35] = { +#include "assets/objects/gameplay_keep/gameplay_keep_018A68_DL.inc.c" +}; + +u64 gFishTailTex[TEX_LEN(u64, gFishTailTex_WIDTH, gFishTailTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gFishTailTex.rgba16.inc.c" +}; + +u64 gFishBodyTex[TEX_LEN(u64, gFishBodyTex_WIDTH, gFishBodyTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gFishBodyTex.rgba16.inc.c" +}; + +StandardLimb gFishSkelLimb_0 = { +#include "assets/objects/gameplay_keep/gFishSkelLimb_0.inc.c" +}; + +StandardLimb gFishSkelLimb_1 = { +#include "assets/objects/gameplay_keep/gFishSkelLimb_1.inc.c" +}; + +StandardLimb gFishSkelLimb_2 = { +#include "assets/objects/gameplay_keep/gFishSkelLimb_2.inc.c" +}; + +StandardLimb gFishSkelLimb_3 = { +#include "assets/objects/gameplay_keep/gFishSkelLimb_3.inc.c" +}; + +StandardLimb gFishSkelLimb_4 = { +#include "assets/objects/gameplay_keep/gFishSkelLimb_4.inc.c" +}; + +StandardLimb gFishSkelLimb_5 = { +#include "assets/objects/gameplay_keep/gFishSkelLimb_5.inc.c" +}; + +void* gFishLimbs[] = { +#include "assets/objects/gameplay_keep/gFishLimbs.inc.c" +}; + +FlexSkeletonHeader gFishSkel = { +#include "assets/objects/gameplay_keep/gFishSkel.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x18610.h b/assets/objects/gameplay_keep/gameplay_keep_0x18610.h new file mode 100644 index 0000000000..fe2edbc658 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x18610.h @@ -0,0 +1,39 @@ +#ifndef GAMEPLAY_KEEP_0x18610_H +#define GAMEPLAY_KEEP_0x18610_H + +#include "tex_len.h" +#include "ultra64.h" +#include "animation.h" + +extern Vtx gameplay_keep_Vtx_018610[]; +extern Vtx gameplay_keep_Vtx_018650[]; +extern Vtx gameplay_keep_Vtx_018750[]; +extern Gfx gameplay_keep_0188B0_DL[20]; +extern Gfx gameplay_keep_018950_DL[35]; +extern Gfx gameplay_keep_018A68_DL[35]; +#define gFishTailTex_WIDTH 16 +#define gFishTailTex_HEIGHT 16 +extern u64 gFishTailTex[TEX_LEN(u64, gFishTailTex_WIDTH, gFishTailTex_HEIGHT, 16)]; +#define gFishBodyTex_WIDTH 32 +#define gFishBodyTex_HEIGHT 8 +extern u64 gFishBodyTex[TEX_LEN(u64, gFishBodyTex_WIDTH, gFishBodyTex_HEIGHT, 16)]; +extern StandardLimb gFishSkelLimb_0; +extern StandardLimb gFishSkelLimb_1; +extern StandardLimb gFishSkelLimb_2; +extern StandardLimb gFishSkelLimb_3; +extern StandardLimb gFishSkelLimb_4; +extern StandardLimb gFishSkelLimb_5; +extern void* gFishLimbs[]; +typedef enum FishSkelLimb { + /* 0 */ FISH_LIMB_NONE, + /* 1 */ FISH_LIMB_0, + /* 2 */ FISH_LIMB_1, + /* 3 */ FISH_LIMB_2, + /* 4 */ FISH_LIMB_3, + /* 5 */ FISH_LIMB_4, + /* 6 */ FISH_LIMB_5, + /* 7 */ FISH_LIMB_MAX +} FishSkelLimb; +extern FlexSkeletonHeader gFishSkel; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x21810.c b/assets/objects/gameplay_keep/gameplay_keep_0x21810.c new file mode 100644 index 0000000000..104dc63ce1 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x21810.c @@ -0,0 +1,13 @@ +#include "gameplay_keep_0x21810.h" + +u64 gEffUnknown6Tex[TEX_LEN(u64, gEffUnknown6Tex_WIDTH, gEffUnknown6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown6Tex.i8.inc.c" +}; + +u64 gEffFleckTex[TEX_LEN(u64, gEffFleckTex_WIDTH, gEffFleckTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gEffFleckTex.i4.inc.c" +}; + +u64 gEffUnknown8Tex[TEX_LEN(u64, gEffUnknown8Tex_WIDTH, gEffUnknown8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown8Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x21810.h b/assets/objects/gameplay_keep/gameplay_keep_0x21810.h new file mode 100644 index 0000000000..f105776ebd --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x21810.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_0x21810_H +#define GAMEPLAY_KEEP_0x21810_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffUnknown6Tex_WIDTH 32 +#define gEffUnknown6Tex_HEIGHT 64 +extern u64 gEffUnknown6Tex[TEX_LEN(u64, gEffUnknown6Tex_WIDTH, gEffUnknown6Tex_HEIGHT, 8)]; +#define gEffFleckTex_WIDTH 64 +#define gEffFleckTex_HEIGHT 64 +extern u64 gEffFleckTex[TEX_LEN(u64, gEffFleckTex_WIDTH, gEffFleckTex_HEIGHT, 4)]; +#define gEffUnknown8Tex_WIDTH 64 +#define gEffUnknown8Tex_HEIGHT 64 +extern u64 gEffUnknown8Tex[TEX_LEN(u64, gEffUnknown8Tex_WIDTH, gEffUnknown8Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x32090.c b/assets/objects/gameplay_keep/gameplay_keep_0x32090.c new file mode 100644 index 0000000000..532d5b3f22 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x32090.c @@ -0,0 +1,17 @@ +#include "gameplay_keep_0x32090.h" + +u64 gEffUnknown9Tex[TEX_LEN(u64, gEffUnknown9Tex_WIDTH, gEffUnknown9Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown9Tex.i8.inc.c" +}; + +u64 gEffUnknown10Tex[TEX_LEN(u64, gEffUnknown10Tex_WIDTH, gEffUnknown10Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown10Tex.i8.inc.c" +}; + +u64 gEffUnknown11Tex[TEX_LEN(u64, gEffUnknown11Tex_WIDTH, gEffUnknown11Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown11Tex.i8.inc.c" +}; + +u64 gEffUnknown12Tex[TEX_LEN(u64, gEffUnknown12Tex_WIDTH, gEffUnknown12Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown12Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x32090.h b/assets/objects/gameplay_keep/gameplay_keep_0x32090.h new file mode 100644 index 0000000000..d3b6472e8e --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x32090.h @@ -0,0 +1,20 @@ +#ifndef GAMEPLAY_KEEP_0x32090_H +#define GAMEPLAY_KEEP_0x32090_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffUnknown9Tex_WIDTH 32 +#define gEffUnknown9Tex_HEIGHT 32 +extern u64 gEffUnknown9Tex[TEX_LEN(u64, gEffUnknown9Tex_WIDTH, gEffUnknown9Tex_HEIGHT, 8)]; +#define gEffUnknown10Tex_WIDTH 32 +#define gEffUnknown10Tex_HEIGHT 32 +extern u64 gEffUnknown10Tex[TEX_LEN(u64, gEffUnknown10Tex_WIDTH, gEffUnknown10Tex_HEIGHT, 8)]; +#define gEffUnknown11Tex_WIDTH 32 +#define gEffUnknown11Tex_HEIGHT 32 +extern u64 gEffUnknown11Tex[TEX_LEN(u64, gEffUnknown11Tex_WIDTH, gEffUnknown11Tex_HEIGHT, 8)]; +#define gEffUnknown12Tex_WIDTH 32 +#define gEffUnknown12Tex_HEIGHT 32 +extern u64 gEffUnknown12Tex[TEX_LEN(u64, gEffUnknown12Tex_WIDTH, gEffUnknown12Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x33090.c b/assets/objects/gameplay_keep/gameplay_keep_0x33090.c new file mode 100644 index 0000000000..637fb4e8c7 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x33090.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_0x33090.h" + +u64 gUnknownWoodBoardTex[TEX_LEN(u64, gUnknownWoodBoardTex_WIDTH, gUnknownWoodBoardTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownWoodBoardTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x33090.h b/assets/objects/gameplay_keep/gameplay_keep_0x33090.h new file mode 100644 index 0000000000..9057495b6d --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x33090.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x33090_H +#define GAMEPLAY_KEEP_0x33090_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownWoodBoardTex_WIDTH 32 +#define gUnknownWoodBoardTex_HEIGHT 32 +extern u64 gUnknownWoodBoardTex[TEX_LEN(u64, gUnknownWoodBoardTex_WIDTH, gUnknownWoodBoardTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x33910.c b/assets/objects/gameplay_keep/gameplay_keep_0x33910.c new file mode 100644 index 0000000000..6600ba78b1 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x33910.c @@ -0,0 +1,11 @@ +#include "gameplay_keep_0x33910.h" +#include "gameplay_keep_0x32090.h" +#include "gfx.h" + +Vtx gEffIceFragment3Vtx[] = { +#include "assets/objects/gameplay_keep/gEffIceFragment3Vtx.inc.c" +}; + +Gfx gEffIceFragment3DL[46] = { +#include "assets/objects/gameplay_keep/gEffIceFragment3DL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x33910.h b/assets/objects/gameplay_keep/gameplay_keep_0x33910.h new file mode 100644 index 0000000000..f72f68ce8e --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x33910.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_0x33910_H +#define GAMEPLAY_KEEP_0x33910_H + +#include "ultra64.h" + +extern Vtx gEffIceFragment3Vtx[]; +extern Gfx gEffIceFragment3DL[46]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.c b/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.c new file mode 100644 index 0000000000..eaa26e0fa4 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_0x38FB0.h" + +u64 gUnknownCircle6Tex[TEX_LEN(u64, gUnknownCircle6Tex_WIDTH, gUnknownCircle6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownCircle6Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.h b/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.h new file mode 100644 index 0000000000..4b5e741557 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x38FB0_H +#define GAMEPLAY_KEEP_0x38FB0_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownCircle6Tex_WIDTH 32 +#define gUnknownCircle6Tex_HEIGHT 32 +extern u64 gUnknownCircle6Tex[TEX_LEN(u64, gUnknownCircle6Tex_WIDTH, gUnknownCircle6Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x39710.c b/assets/objects/gameplay_keep/gameplay_keep_0x39710.c new file mode 100644 index 0000000000..d24bda1fe3 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x39710.c @@ -0,0 +1,11 @@ +#include "gameplay_keep_0x39710.h" +#include "gameplay_keep_0x42530.h" +#include "gfx.h" + +Vtx gUnusedRockRectangularPrism1Vtx[] = { +#include "assets/objects/gameplay_keep/gUnusedRockRectangularPrism1Vtx.inc.c" +}; + +Gfx gUnusedRockRectangularPrism1DL[22] = { +#include "assets/objects/gameplay_keep/gUnusedRockRectangularPrism1DL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x39710.h b/assets/objects/gameplay_keep/gameplay_keep_0x39710.h new file mode 100644 index 0000000000..86d446b897 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x39710.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_0x39710_H +#define GAMEPLAY_KEEP_0x39710_H + +#include "ultra64.h" + +extern Vtx gUnusedRockRectangularPrism1Vtx[]; +extern Gfx gUnusedRockRectangularPrism1DL[22]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.c b/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.c new file mode 100644 index 0000000000..2feba37bf0 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.c @@ -0,0 +1,11 @@ +#include "gameplay_keep_0x39DF0.h" +#include "gameplay_keep_0x42530.h" +#include "gfx.h" + +Vtx gUnusedRockRectangularPrism3Vtx[] = { +#include "assets/objects/gameplay_keep/gUnusedRockRectangularPrism3Vtx.inc.c" +}; + +Gfx gUnusedRockRectangularPrism3DL[22] = { +#include "assets/objects/gameplay_keep/gUnusedRockRectangularPrism3DL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.h b/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.h new file mode 100644 index 0000000000..6838727fe6 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_0x39DF0_H +#define GAMEPLAY_KEEP_0x39DF0_H + +#include "ultra64.h" + +extern Vtx gUnusedRockRectangularPrism3Vtx[]; +extern Gfx gUnusedRockRectangularPrism3DL[22]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.c b/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.c new file mode 100644 index 0000000000..9efe6e3c21 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_0x3AC30.h" + +u64 gHeartShapeTex[TEX_LEN(u64, gHeartShapeTex_WIDTH, gHeartShapeTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gHeartShapeTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.h b/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.h new file mode 100644 index 0000000000..e9311fb9cb --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x3AC30_H +#define GAMEPLAY_KEEP_0x3AC30_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gHeartShapeTex_WIDTH 16 +#define gHeartShapeTex_HEIGHT 16 +extern u64 gHeartShapeTex[TEX_LEN(u64, gHeartShapeTex_WIDTH, gHeartShapeTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.c b/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.c new file mode 100644 index 0000000000..cba3fbd614 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.c @@ -0,0 +1,21 @@ +#include "gameplay_keep_0x3B1E0.h" +#include "rupee.h" +#include "rupee_light_red_tex.h" +#include "hilite_textures.h" +#include "gfx.h" + +Vtx gHeartPieceExteriorVtx[] = { +#include "assets/objects/gameplay_keep/gHeartPieceExteriorVtx.inc.c" +}; + +Vtx gHeartContainerInteriorVtx[] = { +#include "assets/objects/gameplay_keep/gHeartContainerInteriorVtx.inc.c" +}; + +Gfx gHeartPieceExteriorDL[39] = { +#include "assets/objects/gameplay_keep/gHeartPieceExteriorDL.inc.c" +}; + +Gfx gHeartContainerInteriorDL[33] = { +#include "assets/objects/gameplay_keep/gHeartContainerInteriorDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.h b/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.h new file mode 100644 index 0000000000..4ab9f3d1e1 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x3B1E0_H +#define GAMEPLAY_KEEP_0x3B1E0_H + +#include "ultra64.h" + +extern Vtx gHeartPieceExteriorVtx[]; +extern Vtx gHeartContainerInteriorVtx[]; +extern Gfx gHeartPieceExteriorDL[39]; +extern Gfx gHeartContainerInteriorDL[33]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3C870.c b/assets/objects/gameplay_keep/gameplay_keep_0x3C870.c new file mode 100644 index 0000000000..b50544a93b --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3C870.c @@ -0,0 +1,17 @@ +#include "gameplay_keep_0x3C870.h" + +u64 gDropArrows2Tex[TEX_LEN(u64, gDropArrows2Tex_WIDTH, gDropArrows2Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropArrows2Tex.rgba16.inc.c" +}; + +u64 gDropArrows1Tex[TEX_LEN(u64, gDropArrows1Tex_WIDTH, gDropArrows1Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropArrows1Tex.rgba16.inc.c" +}; + +u64 gDropArrows3Tex[TEX_LEN(u64, gDropArrows3Tex_WIDTH, gDropArrows3Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropArrows3Tex.rgba16.inc.c" +}; + +u64 gDropBombTex[TEX_LEN(u64, gDropBombTex_WIDTH, gDropBombTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropBombTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3C870.h b/assets/objects/gameplay_keep/gameplay_keep_0x3C870.h new file mode 100644 index 0000000000..0a8518db03 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3C870.h @@ -0,0 +1,20 @@ +#ifndef GAMEPLAY_KEEP_0x3C870_H +#define GAMEPLAY_KEEP_0x3C870_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gDropArrows2Tex_WIDTH 32 +#define gDropArrows2Tex_HEIGHT 32 +extern u64 gDropArrows2Tex[TEX_LEN(u64, gDropArrows2Tex_WIDTH, gDropArrows2Tex_HEIGHT, 16)]; +#define gDropArrows1Tex_WIDTH 32 +#define gDropArrows1Tex_HEIGHT 32 +extern u64 gDropArrows1Tex[TEX_LEN(u64, gDropArrows1Tex_WIDTH, gDropArrows1Tex_HEIGHT, 16)]; +#define gDropArrows3Tex_WIDTH 32 +#define gDropArrows3Tex_HEIGHT 32 +extern u64 gDropArrows3Tex[TEX_LEN(u64, gDropArrows3Tex_WIDTH, gDropArrows3Tex_HEIGHT, 16)]; +#define gDropBombTex_WIDTH 32 +#define gDropBombTex_HEIGHT 32 +extern u64 gDropBombTex[TEX_LEN(u64, gDropBombTex_WIDTH, gDropBombTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3F140.c b/assets/objects/gameplay_keep/gameplay_keep_0x3F140.c new file mode 100644 index 0000000000..a0f8b9a363 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3F140.c @@ -0,0 +1,26 @@ +#include "gameplay_keep_0x3F140.h" +#include "gfx.h" + +u64 gDropKeySmallTex[TEX_LEN(u64, gDropKeySmallTex_WIDTH, gDropKeySmallTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropKeySmallTex.rgba16.inc.c" +}; + +u64 gDropMagicSmallTex[TEX_LEN(u64, gDropMagicSmallTex_WIDTH, gDropMagicSmallTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropMagicSmallTex.rgba16.inc.c" +}; + +u64 gDropDekuNutTex[TEX_LEN(u64, gDropDekuNutTex_WIDTH, gDropDekuNutTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropDekuNutTex.rgba16.inc.c" +}; + +u64 gDropDekuSeedsTex[TEX_LEN(u64, gDropDekuSeedsTex_WIDTH, gDropDekuSeedsTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropDekuSeedsTex.rgba16.inc.c" +}; + +u64 gDropDekuStickTex[TEX_LEN(u64, gDropDekuStickTex_WIDTH, gDropDekuStickTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropDekuStickTex.rgba16.inc.c" +}; + +u64 gDropMagicLargeTex[TEX_LEN(u64, gDropMagicLargeTex_WIDTH, gDropMagicLargeTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gDropMagicLargeTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x3F140.h b/assets/objects/gameplay_keep/gameplay_keep_0x3F140.h new file mode 100644 index 0000000000..4c991fef37 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x3F140.h @@ -0,0 +1,26 @@ +#ifndef GAMEPLAY_KEEP_0x3F140_H +#define GAMEPLAY_KEEP_0x3F140_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gDropKeySmallTex_WIDTH 32 +#define gDropKeySmallTex_HEIGHT 32 +extern u64 gDropKeySmallTex[TEX_LEN(u64, gDropKeySmallTex_WIDTH, gDropKeySmallTex_HEIGHT, 16)]; +#define gDropMagicSmallTex_WIDTH 32 +#define gDropMagicSmallTex_HEIGHT 32 +extern u64 gDropMagicSmallTex[TEX_LEN(u64, gDropMagicSmallTex_WIDTH, gDropMagicSmallTex_HEIGHT, 16)]; +#define gDropDekuNutTex_WIDTH 32 +#define gDropDekuNutTex_HEIGHT 32 +extern u64 gDropDekuNutTex[TEX_LEN(u64, gDropDekuNutTex_WIDTH, gDropDekuNutTex_HEIGHT, 16)]; +#define gDropDekuSeedsTex_WIDTH 32 +#define gDropDekuSeedsTex_HEIGHT 32 +extern u64 gDropDekuSeedsTex[TEX_LEN(u64, gDropDekuSeedsTex_WIDTH, gDropDekuSeedsTex_HEIGHT, 16)]; +#define gDropDekuStickTex_WIDTH 32 +#define gDropDekuStickTex_HEIGHT 32 +extern u64 gDropDekuStickTex[TEX_LEN(u64, gDropDekuStickTex_WIDTH, gDropDekuStickTex_HEIGHT, 16)]; +#define gDropMagicLargeTex_WIDTH 32 +#define gDropMagicLargeTex_HEIGHT 32 +extern u64 gDropMagicLargeTex[TEX_LEN(u64, gDropMagicLargeTex_WIDTH, gDropMagicLargeTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x42530.c b/assets/objects/gameplay_keep/gameplay_keep_0x42530.c new file mode 100644 index 0000000000..775c03fd9b --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x42530.c @@ -0,0 +1,9 @@ +#include "gameplay_keep_0x42530.h" + +u64 gUnknownStone1Tex[TEX_LEN(u64, gUnknownStone1Tex_WIDTH, gUnknownStone1Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnknownStone1Tex.rgba16.inc.c" +}; + +u64 gUnknownStone2Tex[TEX_LEN(u64, gUnknownStone2Tex_WIDTH, gUnknownStone2Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnknownStone2Tex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x42530.h b/assets/objects/gameplay_keep/gameplay_keep_0x42530.h new file mode 100644 index 0000000000..c5148c83f7 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x42530.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_0x42530_H +#define GAMEPLAY_KEEP_0x42530_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownStone1Tex_WIDTH 32 +#define gUnknownStone1Tex_HEIGHT 32 +extern u64 gUnknownStone1Tex[TEX_LEN(u64, gUnknownStone1Tex_WIDTH, gUnknownStone1Tex_HEIGHT, 16)]; +#define gUnknownStone2Tex_WIDTH 32 +#define gUnknownStone2Tex_HEIGHT 32 +extern u64 gUnknownStone2Tex[TEX_LEN(u64, gUnknownStone2Tex_WIDTH, gUnknownStone2Tex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x43530.c b/assets/objects/gameplay_keep/gameplay_keep_0x43530.c new file mode 100644 index 0000000000..1dbdda90ce --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x43530.c @@ -0,0 +1,9 @@ +#include "gameplay_keep_0x43530.h" + +u64 gUnusedTreeStumpTopTex[TEX_LEN(u64, gUnusedTreeStumpTopTex_WIDTH, gUnusedTreeStumpTopTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedTreeStumpTopTex.rgba16.inc.c" +}; + +u64 gUnusedTreeStumpBarkTex[TEX_LEN(u64, gUnusedTreeStumpBarkTex_WIDTH, gUnusedTreeStumpBarkTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedTreeStumpBarkTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x43530.h b/assets/objects/gameplay_keep/gameplay_keep_0x43530.h new file mode 100644 index 0000000000..7905c51c0b --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x43530.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_0x43530_H +#define GAMEPLAY_KEEP_0x43530_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnusedTreeStumpTopTex_WIDTH 32 +#define gUnusedTreeStumpTopTex_HEIGHT 32 +extern u64 gUnusedTreeStumpTopTex[TEX_LEN(u64, gUnusedTreeStumpTopTex_WIDTH, gUnusedTreeStumpTopTex_HEIGHT, 16)]; +#define gUnusedTreeStumpBarkTex_WIDTH 32 +#define gUnusedTreeStumpBarkTex_HEIGHT 32 +extern u64 gUnusedTreeStumpBarkTex[TEX_LEN(u64, gUnusedTreeStumpBarkTex_WIDTH, gUnusedTreeStumpBarkTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x44530.c b/assets/objects/gameplay_keep/gameplay_keep_0x44530.c new file mode 100644 index 0000000000..9fdc083942 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x44530.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_0x44530.h" + +u64 gUnusedGrassBladesTex[TEX_LEN(u64, gUnusedGrassBladesTex_WIDTH, gUnusedGrassBladesTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedGrassBladesTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x44530.h b/assets/objects/gameplay_keep/gameplay_keep_0x44530.h new file mode 100644 index 0000000000..71c276bd0a --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x44530.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x44530_H +#define GAMEPLAY_KEEP_0x44530_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnusedGrassBladesTex_WIDTH 64 +#define gUnusedGrassBladesTex_HEIGHT 32 +extern u64 gUnusedGrassBladesTex[TEX_LEN(u64, gUnusedGrassBladesTex_WIDTH, gUnusedGrassBladesTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x45530.c b/assets/objects/gameplay_keep/gameplay_keep_0x45530.c new file mode 100644 index 0000000000..e63b71579f --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x45530.c @@ -0,0 +1,6 @@ +#include "gameplay_keep_0x45530.h" + +u64 gUnusedStoneHookshotTargetTex[TEX_LEN(u64, gUnusedStoneHookshotTargetTex_WIDTH, + gUnusedStoneHookshotTargetTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedStoneHookshotTargetTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x45530.h b/assets/objects/gameplay_keep/gameplay_keep_0x45530.h new file mode 100644 index 0000000000..9c5ecb6db5 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x45530.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x45530_H +#define GAMEPLAY_KEEP_0x45530_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnusedStoneHookshotTargetTex_WIDTH 32 +#define gUnusedStoneHookshotTargetTex_HEIGHT 32 +extern u64 gUnusedStoneHookshotTargetTex[TEX_LEN(u64, gUnusedStoneHookshotTargetTex_WIDTH, gUnusedStoneHookshotTargetTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x45D30.c b/assets/objects/gameplay_keep/gameplay_keep_0x45D30.c new file mode 100644 index 0000000000..201bbb7bab --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x45D30.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_0x45D30.h" + +u64 gUnknownStone3Tex[TEX_LEN(u64, gUnknownStone3Tex_WIDTH, gUnknownStone3Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnknownStone3Tex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x45D30.h b/assets/objects/gameplay_keep/gameplay_keep_0x45D30.h new file mode 100644 index 0000000000..b5bd9d9a17 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x45D30.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x45D30_H +#define GAMEPLAY_KEEP_0x45D30_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownStone3Tex_WIDTH 32 +#define gUnknownStone3Tex_HEIGHT 32 +extern u64 gUnknownStone3Tex[TEX_LEN(u64, gUnknownStone3Tex_WIDTH, gUnknownStone3Tex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x49F20.c b/assets/objects/gameplay_keep/gameplay_keep_0x49F20.c new file mode 100644 index 0000000000..0da1c074a1 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x49F20.c @@ -0,0 +1,11 @@ +#include "gameplay_keep_0x49F20.h" +#include "gameplay_keep_0x4A090.h" +#include "gfx.h" + +Vtx gDungeonDoorVtx[] = { +#include "assets/objects/gameplay_keep/gDungeonDoorVtx.inc.c" +}; + +Gfx gDungeonDoorDL[21] = { +#include "assets/objects/gameplay_keep/gDungeonDoorDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x49F20.h b/assets/objects/gameplay_keep/gameplay_keep_0x49F20.h new file mode 100644 index 0000000000..4cca482c7b --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x49F20.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_0x49F20_H +#define GAMEPLAY_KEEP_0x49F20_H + +#include "ultra64.h" + +extern Vtx gDungeonDoorVtx[]; +extern Gfx gDungeonDoorDL[21]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x4A090.c b/assets/objects/gameplay_keep/gameplay_keep_0x4A090.c new file mode 100644 index 0000000000..719f0d5054 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x4A090.c @@ -0,0 +1,18 @@ +#include "gameplay_keep_0x4A090.h" +#include "gfx.h" + +u64 gDoorMetalBarsTex[TEX_LEN(u64, gDoorMetalBarsTex_WIDTH, gDoorMetalBarsTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDoorMetalBarsTex.ia8.inc.c" +}; + +Vtx gDoorMetalBarsVtx[] = { +#include "assets/objects/gameplay_keep/gDoorMetalBarsVtx.inc.c" +}; + +Gfx gDoorMetalBarsDL[18] = { +#include "assets/objects/gameplay_keep/gDoorMetalBarsDL.inc.c" +}; + +u64 gGenericDungeonDoorTex[TEX_LEN(u64, gGenericDungeonDoorTex_WIDTH, gGenericDungeonDoorTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gGenericDungeonDoorTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x4A090.h b/assets/objects/gameplay_keep/gameplay_keep_0x4A090.h new file mode 100644 index 0000000000..532ccd4089 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x4A090.h @@ -0,0 +1,16 @@ +#ifndef GAMEPLAY_KEEP_0x4A090_H +#define GAMEPLAY_KEEP_0x4A090_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gDoorMetalBarsTex_WIDTH 32 +#define gDoorMetalBarsTex_HEIGHT 128 +extern u64 gDoorMetalBarsTex[TEX_LEN(u64, gDoorMetalBarsTex_WIDTH, gDoorMetalBarsTex_HEIGHT, 8)]; +extern Vtx gDoorMetalBarsVtx[]; +extern Gfx gDoorMetalBarsDL[18]; +#define gGenericDungeonDoorTex_WIDTH 32 +#define gGenericDungeonDoorTex_HEIGHT 64 +extern u64 gGenericDungeonDoorTex[TEX_LEN(u64, gGenericDungeonDoorTex_WIDTH, gGenericDungeonDoorTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x4D160.c b/assets/objects/gameplay_keep/gameplay_keep_0x4D160.c new file mode 100644 index 0000000000..24daaeefe5 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x4D160.c @@ -0,0 +1,24 @@ +#include "gameplay_keep_0x4D160.h" +#include "sun_textures.h" +#include "sun_evening_textures.h" +#include "gfx.h" + +Gfx gKokiriDustMoteMaterialDL[9] = { +#include "assets/objects/gameplay_keep/gKokiriDustMoteMaterialDL.inc.c" +}; + +Gfx gKokiriDustMoteModelDL[3] = { +#include "assets/objects/gameplay_keep/gKokiriDustMoteModelDL.inc.c" +}; + +Gfx gSunDL[49] = { +#include "assets/objects/gameplay_keep/gSunDL.inc.c" +}; + +Vtx gSunVtx[] = { +#include "assets/objects/gameplay_keep/gSunVtx.inc.c" +}; + +Vtx gKokiriDustMoteModelVtx[] = { +#include "assets/objects/gameplay_keep/gKokiriDustMoteModelVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x4D160.h b/assets/objects/gameplay_keep/gameplay_keep_0x4D160.h new file mode 100644 index 0000000000..9f5c5c52de --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x4D160.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_0x4D160_H +#define GAMEPLAY_KEEP_0x4D160_H + +#include "ultra64.h" + +extern Gfx gKokiriDustMoteMaterialDL[9]; +extern Gfx gKokiriDustMoteModelDL[3]; +extern Gfx gSunDL[49]; +extern Vtx gSunVtx[]; +extern Vtx gKokiriDustMoteModelVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x4E660.c b/assets/objects/gameplay_keep/gameplay_keep_0x4E660.c new file mode 100644 index 0000000000..e028802748 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x4E660.c @@ -0,0 +1,38 @@ +#include "gameplay_keep_0x4E660.h" +#include "gfx.h" + +Vtx gUnusedUnknownShape1Vtx[] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape1Vtx.inc.c" +}; + +Gfx gUnusedUnknownShape1DL[112] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape1DL.inc.c" +}; + +Gfx gUnusedUnknownShape1RefDL[2] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape1RefDL.inc.c" +}; + +Vtx gUnusedUnknownShape2Vtx[] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape2Vtx.inc.c" +}; + +Gfx gUnusedUnknownShape2DL[100] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape2DL.inc.c" +}; + +Gfx gUnusedUnknownShape2RefDL[2] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape2RefDL.inc.c" +}; + +Vtx gUnusedUnknownShape3Vtx[] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape3Vtx.inc.c" +}; + +Gfx gUnusedUnknownShape3DL[99] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape3DL.inc.c" +}; + +Gfx gUnusedUnknownShape3RefDL[2] = { +#include "assets/objects/gameplay_keep/gUnusedUnknownShape3RefDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x4E660.h b/assets/objects/gameplay_keep/gameplay_keep_0x4E660.h new file mode 100644 index 0000000000..d90bbf1c00 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x4E660.h @@ -0,0 +1,16 @@ +#ifndef GAMEPLAY_KEEP_0x4E660_H +#define GAMEPLAY_KEEP_0x4E660_H + +#include "ultra64.h" + +extern Vtx gUnusedUnknownShape1Vtx[]; +extern Gfx gUnusedUnknownShape1DL[112]; +extern Gfx gUnusedUnknownShape1RefDL[2]; +extern Vtx gUnusedUnknownShape2Vtx[]; +extern Gfx gUnusedUnknownShape2DL[100]; +extern Gfx gUnusedUnknownShape2RefDL[2]; +extern Vtx gUnusedUnknownShape3Vtx[]; +extern Gfx gUnusedUnknownShape3DL[99]; +extern Gfx gUnusedUnknownShape3RefDL[2]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x515B0.c b/assets/objects/gameplay_keep/gameplay_keep_0x515B0.c new file mode 100644 index 0000000000..d441d4f625 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x515B0.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_0x515B0.h" + +u64 gUnusedUpsideDownZeldaTex[TEX_LEN(u64, gUnusedUpsideDownZeldaTex_WIDTH, gUnusedUpsideDownZeldaTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnusedUpsideDownZeldaTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x515B0.h b/assets/objects/gameplay_keep/gameplay_keep_0x515B0.h new file mode 100644 index 0000000000..d98229fdb2 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x515B0.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_0x515B0_H +#define GAMEPLAY_KEEP_0x515B0_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnusedUpsideDownZeldaTex_WIDTH 64 +#define gUnusedUpsideDownZeldaTex_HEIGHT 32 +extern u64 gUnusedUpsideDownZeldaTex[TEX_LEN(u64, gUnusedUpsideDownZeldaTex_WIDTH, gUnusedUpsideDownZeldaTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.c b/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.c new file mode 100644 index 0000000000..c235d0902b --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.c @@ -0,0 +1,9 @@ +#include "gameplay_keep_0x55DB0.h" + +u64 gEffBubble1Tex[TEX_LEN(u64, gEffBubble1Tex_WIDTH, gEffBubble1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffBubble1Tex.i8.inc.c" +}; + +u64 gEffBubble2Tex[TEX_LEN(u64, gEffBubble2Tex_WIDTH, gEffBubble2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffBubble2Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h b/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h new file mode 100644 index 0000000000..5295437347 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_0x55DB0_H +#define GAMEPLAY_KEEP_0x55DB0_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffBubble1Tex_WIDTH 16 +#define gEffBubble1Tex_HEIGHT 16 +extern u64 gEffBubble1Tex[TEX_LEN(u64, gEffBubble1Tex_WIDTH, gEffBubble1Tex_HEIGHT, 8)]; +#define gEffBubble2Tex_WIDTH 16 +#define gEffBubble2Tex_HEIGHT 16 +extern u64 gEffBubble2Tex[TEX_LEN(u64, gEffBubble2Tex_WIDTH, gEffBubble2Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.c b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.c new file mode 100644 index 0000000000..05beb5200d --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.c @@ -0,0 +1,12 @@ +#include "gameplay_keep_ntsc_0x39850.h" +#include "gameplay_keep_0x32090.h" +#include "gameplay_keep_0x38FB0.h" +#include "gfx.h" + +Vtx gameplay_keep_Vtx_039850[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_039850.inc.c" +}; + +Gfx gGameplayKeepDL_39890[27] = { +#include "assets/objects/gameplay_keep/gGameplayKeepDL_39890.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.h b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.h new file mode 100644 index 0000000000..7afb06908a --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_NTSC_0x39850_H +#define GAMEPLAY_KEEP_NTSC_0x39850_H + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gameplay_keep_Vtx_039850[]; +extern Gfx gGameplayKeepDL_39890[27]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.c b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.c new file mode 100644 index 0000000000..e15374a1cc --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.c @@ -0,0 +1,20 @@ +#include "gameplay_keep_ntsc_0x3C610.h" +#include "gameplay_keep_ntsc_0x46A40.h" +#include "hilite_textures.h" +#include "gfx.h" + +Vtx gameplay_keep_Vtx_03C610[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_03C610.inc.c" +}; + +Vtx gameplay_keep_Vtx_03CB10[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_03CB10.inc.c" +}; + +Gfx gGameplayKeepDL_3CFD0[39] = { +#include "assets/objects/gameplay_keep/gGameplayKeepDL_3CFD0.inc.c" +}; + +Gfx gGameplayKeepDL_3D108[34] = { +#include "assets/objects/gameplay_keep/gGameplayKeepDL_3D108.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.h b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.h new file mode 100644 index 0000000000..51465e8b1c --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_NTSC_0x3C610_H +#define GAMEPLAY_KEEP_NTSC_0x3C610_H + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gameplay_keep_Vtx_03C610[]; +extern Vtx gameplay_keep_Vtx_03CB10[]; +extern Gfx gGameplayKeepDL_3CFD0[39]; +extern Gfx gGameplayKeepDL_3D108[34]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.c b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.c new file mode 100644 index 0000000000..0d5a5aad53 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.c @@ -0,0 +1,9 @@ +#include "gameplay_keep_ntsc_0x3FD80.h" + +u64 gUnusedBombchuIconTex[TEX_LEN(u64, gUnusedBombchuIconTex_WIDTH, gUnusedBombchuIconTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedBombchuIconTex.rgba16.inc.c" +}; + +u64 gGameplayKeepTex_40580[TEX_LEN(u64, gGameplayKeepTex_40580_WIDTH, gGameplayKeepTex_40580_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gGameplayKeepTex_40580.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.h b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.h new file mode 100644 index 0000000000..d9cadcb861 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_NTSC_0x3FD80_H +#define GAMEPLAY_KEEP_NTSC_0x3FD80_H + +#include "tex_len.h" +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +#define gUnusedBombchuIconTex_WIDTH 32 +#define gUnusedBombchuIconTex_HEIGHT 32 +extern u64 gUnusedBombchuIconTex[TEX_LEN(u64, gUnusedBombchuIconTex_WIDTH, gUnusedBombchuIconTex_HEIGHT, 16)]; +#define gGameplayKeepTex_40580_WIDTH 32 +#define gGameplayKeepTex_40580_HEIGHT 32 +extern u64 gGameplayKeepTex_40580[TEX_LEN(u64, gGameplayKeepTex_40580_WIDTH, gGameplayKeepTex_40580_HEIGHT, 16)]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.c b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.c new file mode 100644 index 0000000000..815a904ff5 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.c @@ -0,0 +1,14 @@ +#include "gameplay_keep_ntsc_0x46A40.h" + +u64 gGameplayKeepTex_46A40[TEX_LEN(u64, gGameplayKeepTex_46A40_WIDTH, gGameplayKeepTex_46A40_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gGameplayKeepTex_46A40.rgba16.inc.c" +}; + +u64 gUnusedHeartContainerIconTex[TEX_LEN(u64, gUnusedHeartContainerIconTex_WIDTH, gUnusedHeartContainerIconTex_HEIGHT, + 16)] = { +#include "assets/objects/gameplay_keep/gUnusedHeartContainerIconTex.rgba16.inc.c" +}; + +u64 gUnusedTreeBarkTex[TEX_LEN(u64, gUnusedTreeBarkTex_WIDTH, gUnusedTreeBarkTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedTreeBarkTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.h b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.h new file mode 100644 index 0000000000..7b8e2d5c1e --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_NTSC_0x46A40 +#define GAMEPLAY_KEEP_NTSC_0x46A40 + +#include "tex_len.h" +#include "ultra64.h" + +#define gGameplayKeepTex_46A40_WIDTH 4 +#define gGameplayKeepTex_46A40_HEIGHT 4 +extern u64 gGameplayKeepTex_46A40[TEX_LEN(u64, gGameplayKeepTex_46A40_WIDTH, gGameplayKeepTex_46A40_HEIGHT, 16)]; +#define gUnusedHeartContainerIconTex_WIDTH 32 +#define gUnusedHeartContainerIconTex_HEIGHT 32 +extern u64 gUnusedHeartContainerIconTex[TEX_LEN(u64, gUnusedHeartContainerIconTex_WIDTH, gUnusedHeartContainerIconTex_HEIGHT, 16)]; +#define gUnusedTreeBarkTex_WIDTH 32 +#define gUnusedTreeBarkTex_HEIGHT 32 +extern u64 gUnusedTreeBarkTex[TEX_LEN(u64, gUnusedTreeBarkTex_WIDTH, gUnusedTreeBarkTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.c b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.c new file mode 100644 index 0000000000..5c716135bf --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.c @@ -0,0 +1,12 @@ +#include "gameplay_keep_ntsc_0xC880.h" +#include "gameplay_keep_ntsc_0xCE60.h" +#include "gfx.h" +#include "region.h" + +Vtx gameplay_keep_Vtx_00C880[] = { +#include "assets/objects/gameplay_keep/gameplay_keep_Vtx_00C880.inc.c" +}; + +Gfx gGameplayKeepDL_C8B0[14] = { +#include "assets/objects/gameplay_keep/gGameplayKeepDL_C8B0.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.h b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.h new file mode 100644 index 0000000000..1d265d2953 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_NTSC_0xC880 +#define GAMEPLAY_KEEP_NTSC_0xC880 + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gameplay_keep_Vtx_00C880[]; +extern Gfx gGameplayKeepDL_C8B0[14]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.c b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.c new file mode 100644 index 0000000000..6b67fe0dba --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.c @@ -0,0 +1,5 @@ +#include "gameplay_keep_ntsc_0xCE60.h" + +u64 gGameplayKeepTex_CE60[TEX_LEN(u64, gGameplayKeepTex_CE60_WIDTH, gGameplayKeepTex_CE60_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gGameplayKeepTex_CE60.ia8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.h b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.h new file mode 100644 index 0000000000..a1b1f276d4 --- /dev/null +++ b/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_NTSC_0xCE60 +#define GAMEPLAY_KEEP_NTSC_0xCE60 + +#include "tex_len.h" +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +#define gGameplayKeepTex_CE60_WIDTH 32 +#define gGameplayKeepTex_CE60_HEIGHT 32 +extern u64 gGameplayKeepTex_CE60[TEX_LEN(u64, gGameplayKeepTex_CE60_WIDTH, gGameplayKeepTex_CE60_HEIGHT, 8)]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/grass_blades_model.c b/assets/objects/gameplay_keep/grass_blades_model.c new file mode 100644 index 0000000000..1109349caa --- /dev/null +++ b/assets/objects/gameplay_keep/grass_blades_model.c @@ -0,0 +1,11 @@ +#include "grass_blades_model.h" +#include "gameplay_keep_0x44530.h" +#include "gfx.h" + +Vtx gGrassBladesVtx[] = { +#include "assets/objects/gameplay_keep/gGrassBladesVtx.inc.c" +}; + +Gfx gGrassBladesDL[21] = { +#include "assets/objects/gameplay_keep/gGrassBladesDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/grass_blades_model.h b/assets/objects/gameplay_keep/grass_blades_model.h new file mode 100644 index 0000000000..5f3e48d26f --- /dev/null +++ b/assets/objects/gameplay_keep/grass_blades_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_GRASS_BLADES_MODEL_H +#define GAMEPLAY_KEEP_GRASS_BLADES_MODEL_H + +#include "ultra64.h" + +extern Vtx gGrassBladesVtx[]; +extern Gfx gGrassBladesDL[21]; + +#endif diff --git a/assets/objects/gameplay_keep/heart_piece_interior_model.c b/assets/objects/gameplay_keep/heart_piece_interior_model.c new file mode 100644 index 0000000000..6ecaa3145b --- /dev/null +++ b/assets/objects/gameplay_keep/heart_piece_interior_model.c @@ -0,0 +1,12 @@ +#include "heart_piece_interior_model.h" +#include "gameplay_keep_0x3AC30.h" +#include "gameplay_keep_0x32090.h" +#include "gfx.h" + +Vtx gHeartPieceInteriorVtx[] = { +#include "assets/objects/gameplay_keep/gHeartPieceInteriorVtx.inc.c" +}; + +Gfx gHeartPieceInteriorDL[53] = { +#include "assets/objects/gameplay_keep/gHeartPieceInteriorDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/heart_piece_interior_model.h b/assets/objects/gameplay_keep/heart_piece_interior_model.h new file mode 100644 index 0000000000..30f8ca44b4 --- /dev/null +++ b/assets/objects/gameplay_keep/heart_piece_interior_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_HEART_PIECE_INTERIOR_MODEL_H +#define GAMEPLAY_KEEP_HEART_PIECE_INTERIOR_MODEL_H + +#include "ultra64.h" + +extern Vtx gHeartPieceInteriorVtx[]; +extern Gfx gHeartPieceInteriorDL[53]; + +#endif diff --git a/assets/objects/gameplay_keep/hilite3_tex.c b/assets/objects/gameplay_keep/hilite3_tex.c new file mode 100644 index 0000000000..d2b5e6ec43 --- /dev/null +++ b/assets/objects/gameplay_keep/hilite3_tex.c @@ -0,0 +1,6 @@ +#include "hilite3_tex.h" +#include "gfx.h" + +u64 gHilite3Tex[TEX_LEN(u64, gHilite3Tex_WIDTH, gHilite3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gHilite3Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/hilite3_tex.h b/assets/objects/gameplay_keep/hilite3_tex.h new file mode 100644 index 0000000000..959892dde4 --- /dev/null +++ b/assets/objects/gameplay_keep/hilite3_tex.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_HILITE3_TEX_H +#define GAMEPLAY_KEEP_HILITE3_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gHilite3Tex_WIDTH 8 +#define gHilite3Tex_HEIGHT 8 +extern u64 gHilite3Tex[TEX_LEN(u64, gHilite3Tex_WIDTH, gHilite3Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/hilite4_tex.c b/assets/objects/gameplay_keep/hilite4_tex.c new file mode 100644 index 0000000000..499a2b5b98 --- /dev/null +++ b/assets/objects/gameplay_keep/hilite4_tex.c @@ -0,0 +1,5 @@ +#include "hilite4_tex.h" + +u64 gHilite4Tex[TEX_LEN(u64, gHilite4Tex_WIDTH, gHilite4Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gHilite4Tex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/hilite4_tex.h b/assets/objects/gameplay_keep/hilite4_tex.h new file mode 100644 index 0000000000..5725ada2cb --- /dev/null +++ b/assets/objects/gameplay_keep/hilite4_tex.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_HILITE4_TEX_H +#define GAMEPLAY_KEEP_HILITE4_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gHilite4Tex_WIDTH 32 +#define gHilite4Tex_HEIGHT 32 +extern u64 gHilite4Tex[TEX_LEN(u64, gHilite4Tex_WIDTH, gHilite4Tex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/hilite_textures.c b/assets/objects/gameplay_keep/hilite_textures.c new file mode 100644 index 0000000000..1d047357e1 --- /dev/null +++ b/assets/objects/gameplay_keep/hilite_textures.c @@ -0,0 +1,9 @@ +#include "hilite_textures.h" + +u64 gHilite1Tex[TEX_LEN(u64, gHilite1Tex_WIDTH, gHilite1Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gHilite1Tex.rgba16.inc.c" +}; + +u64 gHilite2Tex[TEX_LEN(u64, gHilite2Tex_WIDTH, gHilite2Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gHilite2Tex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/hilite_textures.h b/assets/objects/gameplay_keep/hilite_textures.h new file mode 100644 index 0000000000..d3f070cd7d --- /dev/null +++ b/assets/objects/gameplay_keep/hilite_textures.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_HILITE_TEXTURES_H +#define GAMEPLAY_KEEP_HILITE_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gHilite1Tex_WIDTH 16 +#define gHilite1Tex_HEIGHT 16 +extern u64 gHilite1Tex[TEX_LEN(u64, gHilite1Tex_WIDTH, gHilite1Tex_HEIGHT, 16)]; +#define gHilite2Tex_WIDTH 16 +#define gHilite2Tex_HEIGHT 16 +extern u64 gHilite2Tex[TEX_LEN(u64, gHilite2Tex_WIDTH, gHilite2Tex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/hover_boots_circle.c b/assets/objects/gameplay_keep/hover_boots_circle.c new file mode 100644 index 0000000000..37f68fd298 --- /dev/null +++ b/assets/objects/gameplay_keep/hover_boots_circle.c @@ -0,0 +1,18 @@ +#include "hover_boots_circle.h" +#include "gfx.h" + +u64 gEffUnknown13Tex[TEX_LEN(u64, gEffUnknown13Tex_WIDTH, gEffUnknown13Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown13Tex.i8.inc.c" +}; + +u64 gEffUnknown14Tex[TEX_LEN(u64, gEffUnknown14Tex_WIDTH, gEffUnknown14Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnknown14Tex.i8.inc.c" +}; + +Vtx gHoverBootsCircleVtx[] = { +#include "assets/objects/gameplay_keep/gHoverBootsCircleVtx.inc.c" +}; + +Gfx gHoverBootsCircleDL[26] = { +#include "assets/objects/gameplay_keep/gHoverBootsCircleDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/hover_boots_circle.h b/assets/objects/gameplay_keep/hover_boots_circle.h new file mode 100644 index 0000000000..16db4a2ac6 --- /dev/null +++ b/assets/objects/gameplay_keep/hover_boots_circle.h @@ -0,0 +1,16 @@ +#ifndef GAMEPLAY_KEEP_HOVER_BOOTS_CIRCLE_H +#define GAMEPLAY_KEEP_HOVER_BOOTS_CIRCLE_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffUnknown13Tex_WIDTH 16 +#define gEffUnknown13Tex_HEIGHT 32 +extern u64 gEffUnknown13Tex[TEX_LEN(u64, gEffUnknown13Tex_WIDTH, gEffUnknown13Tex_HEIGHT, 8)]; +#define gEffUnknown14Tex_WIDTH 16 +#define gEffUnknown14Tex_HEIGHT 32 +extern u64 gEffUnknown14Tex[TEX_LEN(u64, gEffUnknown14Tex_WIDTH, gEffUnknown14Tex_HEIGHT, 8)]; +extern Vtx gHoverBootsCircleVtx[]; +extern Gfx gHoverBootsCircleDL[26]; + +#endif diff --git a/assets/objects/gameplay_keep/item_drop_dl.c b/assets/objects/gameplay_keep/item_drop_dl.c new file mode 100644 index 0000000000..88808e66f1 --- /dev/null +++ b/assets/objects/gameplay_keep/item_drop_dl.c @@ -0,0 +1,11 @@ +#include "item_drop_dl.h" +#include "gfx.h" +#include "region.h" + +Gfx gItemDropDL[17] = { +#include "assets/objects/gameplay_keep/gItemDropDL.inc.c" +}; + +Vtx gItemDropVtx[] = { +#include "assets/objects/gameplay_keep/gItemDropVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/item_drop_dl.h b/assets/objects/gameplay_keep/item_drop_dl.h new file mode 100644 index 0000000000..6caaa6863b --- /dev/null +++ b/assets/objects/gameplay_keep/item_drop_dl.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_ITEM_DROP_DL_H +#define GAMEPLAY_KEEP_ITEM_DROP_DL_H + +#include "ultra64.h" + +extern Gfx gItemDropDL[17]; +extern Vtx gItemDropVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/item_drops_ntsc.c b/assets/objects/gameplay_keep/item_drops_ntsc.c new file mode 100644 index 0000000000..ad409fd0c6 --- /dev/null +++ b/assets/objects/gameplay_keep/item_drops_ntsc.c @@ -0,0 +1,13 @@ +#include "item_drops_ntsc.h" + +u64 gUnusedHeartIconTex[TEX_LEN(u64, gUnusedHeartIconTex_WIDTH, gUnusedHeartIconTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedHeartIconTex.rgba16.inc.c" +}; + +u64 gUnusedBombIconTex[TEX_LEN(u64, gUnusedBombIconTex_WIDTH, gUnusedBombIconTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedBombIconTex.rgba16.inc.c" +}; + +u64 gUnusedArrowIconTex[TEX_LEN(u64, gUnusedArrowIconTex_WIDTH, gUnusedArrowIconTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedArrowIconTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/item_drops_ntsc.h b/assets/objects/gameplay_keep/item_drops_ntsc.h new file mode 100644 index 0000000000..15e90e0809 --- /dev/null +++ b/assets/objects/gameplay_keep/item_drops_ntsc.h @@ -0,0 +1,20 @@ +#ifndef GAMEPLAY_KEEP_ITEM_DROPS_NTSC_H +#define GAMEPLAY_KEEP_ITEM_DROPS_NTSC_H + +#include "tex_len.h" +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +#define gUnusedHeartIconTex_WIDTH 32 +#define gUnusedHeartIconTex_HEIGHT 32 +extern u64 gUnusedHeartIconTex[TEX_LEN(u64, gUnusedHeartIconTex_WIDTH, gUnusedHeartIconTex_HEIGHT, 16)]; +#define gUnusedBombIconTex_WIDTH 32 +#define gUnusedBombIconTex_HEIGHT 32 +extern u64 gUnusedBombIconTex[TEX_LEN(u64, gUnusedBombIconTex_WIDTH, gUnusedBombIconTex_HEIGHT, 16)]; +#define gUnusedArrowIconTex_WIDTH 32 +#define gUnusedArrowIconTex_HEIGHT 32 +extern u64 gUnusedArrowIconTex[TEX_LEN(u64, gUnusedArrowIconTex_WIDTH, gUnusedArrowIconTex_HEIGHT, 16)]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/lens_flare.c b/assets/objects/gameplay_keep/lens_flare.c new file mode 100644 index 0000000000..dce719ed30 --- /dev/null +++ b/assets/objects/gameplay_keep/lens_flare.c @@ -0,0 +1,22 @@ +#include "lens_flare.h" +#include "gfx.h" + +u64 gLensFlareCircleTex[TEX_LEN(u64, gLensFlareCircleTex_WIDTH, gLensFlareCircleTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gLensFlareCircleTex.i4.inc.c" +}; + +u64 gLensFlareRingTex[TEX_LEN(u64, gLensFlareRingTex_WIDTH, gLensFlareRingTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gLensFlareRingTex.i4.inc.c" +}; + +Gfx gLensFlareCircleDL[13] = { +#include "assets/objects/gameplay_keep/gLensFlareCircleDL.inc.c" +}; + +Gfx gLensFlareRingDL[13] = { +#include "assets/objects/gameplay_keep/gLensFlareRingDL.inc.c" +}; + +Vtx gLensFlareVtx[] = { +#include "assets/objects/gameplay_keep/gLensFlareVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/lens_flare.h b/assets/objects/gameplay_keep/lens_flare.h new file mode 100644 index 0000000000..7c1fb6bab9 --- /dev/null +++ b/assets/objects/gameplay_keep/lens_flare.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_LENS_FLARE_H +#define GAMEPLAY_KEEP_LENS_FLARE_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gLensFlareCircleTex_WIDTH 64 +#define gLensFlareCircleTex_HEIGHT 64 +extern u64 gLensFlareCircleTex[TEX_LEN(u64, gLensFlareCircleTex_WIDTH, gLensFlareCircleTex_HEIGHT, 4)]; +#define gLensFlareRingTex_WIDTH 64 +#define gLensFlareRingTex_HEIGHT 64 +extern u64 gLensFlareRingTex[TEX_LEN(u64, gLensFlareRingTex_WIDTH, gLensFlareRingTex_HEIGHT, 4)]; +extern Gfx gLensFlareCircleDL[13]; +extern Gfx gLensFlareRingDL[13]; +extern Vtx gLensFlareVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/lens_mask_tex.c b/assets/objects/gameplay_keep/lens_mask_tex.c new file mode 100644 index 0000000000..a59ddbbdbc --- /dev/null +++ b/assets/objects/gameplay_keep/lens_mask_tex.c @@ -0,0 +1,5 @@ +#include "lens_mask_tex.h" + +u64 gLensOfTruthMaskTex[TEX_LEN(u64, gLensOfTruthMaskTex_WIDTH, gLensOfTruthMaskTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gLensOfTruthMaskTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/lens_mask_tex.h b/assets/objects/gameplay_keep/lens_mask_tex.h new file mode 100644 index 0000000000..18a48d4b20 --- /dev/null +++ b/assets/objects/gameplay_keep/lens_mask_tex.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_LENS_MASK_TEX_H +#define GAMEPLAY_KEEP_LENS_MASK_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gLensOfTruthMaskTex_WIDTH 64 +#define gLensOfTruthMaskTex_HEIGHT 64 +extern u64 gLensOfTruthMaskTex[TEX_LEN(u64, gLensOfTruthMaskTex_WIDTH, gLensOfTruthMaskTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/liftable_rock_model.c b/assets/objects/gameplay_keep/liftable_rock_model.c new file mode 100644 index 0000000000..d48dda9552 --- /dev/null +++ b/assets/objects/gameplay_keep/liftable_rock_model.c @@ -0,0 +1,11 @@ +#include "liftable_rock_model.h" +#include "gameplay_keep_0x42530.h" +#include "gfx.h" + +Vtx gLiftableRockVtx[] = { +#include "assets/objects/gameplay_keep/gLiftableRockVtx.inc.c" +}; + +Gfx gLiftableRockDL[22] = { +#include "assets/objects/gameplay_keep/gLiftableRockDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/liftable_rock_model.h b/assets/objects/gameplay_keep/liftable_rock_model.h new file mode 100644 index 0000000000..3d7499a55a --- /dev/null +++ b/assets/objects/gameplay_keep/liftable_rock_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_LIFTABLE_ROCK_MODEL_H +#define GAMEPLAY_KEEP_LIFTABLE_ROCK_MODEL_H + +#include "ultra64.h" + +extern Vtx gLiftableRockVtx[]; +extern Gfx gLiftableRockDL[22]; + +#endif diff --git a/assets/objects/gameplay_keep/link_textures.c b/assets/objects/gameplay_keep/link_textures.c new file mode 100644 index 0000000000..3564006310 --- /dev/null +++ b/assets/objects/gameplay_keep/link_textures.c @@ -0,0 +1,33 @@ +#include "link_textures.h" + +u64 gHylianShieldDesignTex[TEX_LEN(u64, gHylianShieldDesignTex_WIDTH, gHylianShieldDesignTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gHylianShieldDesignTex.rgba16.inc.c" +}; + +u64 gOcarinaofTimeDesignTex[TEX_LEN(u64, gOcarinaofTimeDesignTex_WIDTH, gOcarinaofTimeDesignTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gOcarinaofTimeDesignTex.rgba16.inc.c" +}; + +u64 gBottleGlassTex[TEX_LEN(u64, gBottleGlassTex_WIDTH, gBottleGlassTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gBottleGlassTex.rgba16.inc.c" +}; + +u64 gDekuStickTex[TEX_LEN(u64, gDekuStickTex_WIDTH, gDekuStickTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gDekuStickTex.i8.inc.c" +}; + +u64 gLinkHairTex[TEX_LEN(u64, gLinkHairTex_WIDTH, gLinkHairTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gLinkHairTex.rgba16.inc.c" +}; + +u64 gLinkTunic1Tex[TEX_LEN(u64, gLinkTunic1Tex_WIDTH, gLinkTunic1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gLinkTunic1Tex.i8.inc.c" +}; + +u64 gLinkTunic2Tex[TEX_LEN(u64, gLinkTunic2Tex_WIDTH, gLinkTunic2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gLinkTunic2Tex.i8.inc.c" +}; + +u64 gLinkTunic3Tex[TEX_LEN(u64, gLinkTunic3Tex_WIDTH, gLinkTunic3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gLinkTunic3Tex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/link_textures.h b/assets/objects/gameplay_keep/link_textures.h new file mode 100644 index 0000000000..1b69ed135c --- /dev/null +++ b/assets/objects/gameplay_keep/link_textures.h @@ -0,0 +1,32 @@ +#ifndef GAMEPLAY_KEEP_LINK_TEXTURES_H +#define GAMEPLAY_KEEP_LINK_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gHylianShieldDesignTex_WIDTH 32 +#define gHylianShieldDesignTex_HEIGHT 64 +extern u64 gHylianShieldDesignTex[TEX_LEN(u64, gHylianShieldDesignTex_WIDTH, gHylianShieldDesignTex_HEIGHT, 16)]; +#define gOcarinaofTimeDesignTex_WIDTH 32 +#define gOcarinaofTimeDesignTex_HEIGHT 16 +extern u64 gOcarinaofTimeDesignTex[TEX_LEN(u64, gOcarinaofTimeDesignTex_WIDTH, gOcarinaofTimeDesignTex_HEIGHT, 16)]; +#define gBottleGlassTex_WIDTH 16 +#define gBottleGlassTex_HEIGHT 16 +extern u64 gBottleGlassTex[TEX_LEN(u64, gBottleGlassTex_WIDTH, gBottleGlassTex_HEIGHT, 16)]; +#define gDekuStickTex_WIDTH 8 +#define gDekuStickTex_HEIGHT 8 +extern u64 gDekuStickTex[TEX_LEN(u64, gDekuStickTex_WIDTH, gDekuStickTex_HEIGHT, 8)]; +#define gLinkHairTex_WIDTH 16 +#define gLinkHairTex_HEIGHT 16 +extern u64 gLinkHairTex[TEX_LEN(u64, gLinkHairTex_WIDTH, gLinkHairTex_HEIGHT, 16)]; +#define gLinkTunic1Tex_WIDTH 16 +#define gLinkTunic1Tex_HEIGHT 16 +extern u64 gLinkTunic1Tex[TEX_LEN(u64, gLinkTunic1Tex_WIDTH, gLinkTunic1Tex_HEIGHT, 8)]; +#define gLinkTunic2Tex_WIDTH 16 +#define gLinkTunic2Tex_HEIGHT 32 +extern u64 gLinkTunic2Tex[TEX_LEN(u64, gLinkTunic2Tex_WIDTH, gLinkTunic2Tex_HEIGHT, 8)]; +#define gLinkTunic3Tex_WIDTH 16 +#define gLinkTunic3Tex_HEIGHT 16 +extern u64 gLinkTunic3Tex[TEX_LEN(u64, gLinkTunic3Tex_WIDTH, gLinkTunic3Tex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/lock_on_arrow.c b/assets/objects/gameplay_keep/lock_on_arrow.c new file mode 100644 index 0000000000..32c1e1345a --- /dev/null +++ b/assets/objects/gameplay_keep/lock_on_arrow.c @@ -0,0 +1,11 @@ +#include "lock_on_arrow.h" +#include "hilite3_tex.h" +#include "gfx.h" + +Vtx gLockOnArrowVtx[] = { +#include "assets/objects/gameplay_keep/gLockOnArrowVtx.inc.c" +}; + +Gfx gLockOnArrowDL[34] = { +#include "assets/objects/gameplay_keep/gLockOnArrowDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/lock_on_arrow.h b/assets/objects/gameplay_keep/lock_on_arrow.h new file mode 100644 index 0000000000..2cadbdaaed --- /dev/null +++ b/assets/objects/gameplay_keep/lock_on_arrow.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_LOCK_ON_ARROW_H +#define GAMEPLAY_KEEP_LOCK_ON_ARROW_H + +#include "ultra64.h" + +extern Vtx gLockOnArrowVtx[]; +extern Gfx gLockOnArrowDL[34]; + +#endif diff --git a/assets/objects/gameplay_keep/lock_on_reticle.c b/assets/objects/gameplay_keep/lock_on_reticle.c new file mode 100644 index 0000000000..df6b21361b --- /dev/null +++ b/assets/objects/gameplay_keep/lock_on_reticle.c @@ -0,0 +1,10 @@ +#include "lock_on_reticle.h" +#include "gfx.h" + +Gfx gLockOnReticleTriangleDL[3] = { +#include "assets/objects/gameplay_keep/gLockOnReticleTriangleDL.inc.c" +}; + +Vtx gLockOnReticleTriangleVtx[] = { +#include "assets/objects/gameplay_keep/gLockOnReticleTriangleVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/lock_on_reticle.h b/assets/objects/gameplay_keep/lock_on_reticle.h new file mode 100644 index 0000000000..d4bc12a9dd --- /dev/null +++ b/assets/objects/gameplay_keep/lock_on_reticle.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_LOCK_ON_RETICLE_H +#define GAMEPLAY_KEEP_LOCK_ON_RETICLE_H + +#include "ultra64.h" + +extern Gfx gLockOnReticleTriangleDL[3]; +extern Vtx gLockOnReticleTriangleVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/moon.c b/assets/objects/gameplay_keep/moon.c new file mode 100644 index 0000000000..124e9733df --- /dev/null +++ b/assets/objects/gameplay_keep/moon.c @@ -0,0 +1,14 @@ +#include "moon.h" +#include "gfx.h" + +u64 gMoonTex[TEX_LEN(u64, gMoonTex_WIDTH, gMoonTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gMoonTex.ia8.inc.c" +}; + +Gfx gMoonDL[14] = { +#include "assets/objects/gameplay_keep/gMoonDL.inc.c" +}; + +Vtx gMoonVtx[] = { +#include "assets/objects/gameplay_keep/gMoonVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/moon.h b/assets/objects/gameplay_keep/moon.h new file mode 100644 index 0000000000..5adc4755b4 --- /dev/null +++ b/assets/objects/gameplay_keep/moon.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_MOON_H +#define GAMEPLAY_KEEP_MOON_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gMoonTex_WIDTH 64 +#define gMoonTex_HEIGHT 64 +extern u64 gMoonTex[TEX_LEN(u64, gMoonTex_WIDTH, gMoonTex_HEIGHT, 8)]; +extern Gfx gMoonDL[14]; +extern Vtx gMoonVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/player_anim_headers.c b/assets/objects/gameplay_keep/player_anim_headers.c new file mode 100644 index 0000000000..2fa2072a3d --- /dev/null +++ b/assets/objects/gameplay_keep/player_anim_headers.c @@ -0,0 +1,2294 @@ +#include "player_anim_headers.h" +#include "assets/misc/link_animetion/link_animetion.h" + +LinkAnimationHeader gPlayerAnim_clink_demo_DDbox_open = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_DDbox_open.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_Tbox_open = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_Tbox_open.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_atozusari = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_atozusari.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_bashi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_bashi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_doorA_link = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_doorA_link.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_doorB_link = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_doorB_link.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_futtobi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_futtobi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_get1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_get1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_get2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_get2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_get3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_get3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_goto_future = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_goto_future.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_koutai = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_koutai.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_koutai_kennuki = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_koutai_kennuki.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_koutai_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_koutai_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_mimawasi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_mimawasi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_mimawasi_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_mimawasi_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_miokuri = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_miokuri.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_miokuri_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_miokuri_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_nozoki = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_nozoki.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_return_to_future = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_return_to_future.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_standup = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_standup.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_demo_standup_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_demo_standup_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_endAL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_endAL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_endAR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_endAR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_endBL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_endBL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_endBR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_endBR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_startA = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_startA.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_startB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_startB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_upL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_upL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_climb_upR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_climb_upR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_normal_defense_ALL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_normal_defense_ALL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_op3_negaeri = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_op3_negaeri.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_op3_okiagari = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_op3_okiagari.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_op3_tatiagari = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_op3_tatiagari.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_op3_wait1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_op3_wait1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_op3_wait2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_op3_wait2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_clink_op3_wait3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_clink_op3_wait3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_d_link_imanodare = { +#include "assets/objects/gameplay_keep/gPlayerAnim_d_link_imanodare.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_d_link_orooro = { +#include "assets/objects/gameplay_keep/gPlayerAnim_d_link_orooro.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_d_link_orowait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_d_link_orowait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_demo_link_nwait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_demo_link_nwait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_demo_link_orosuu = { +#include "assets/objects/gameplay_keep/gPlayerAnim_demo_link_orosuu.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_demo_link_tewatashi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_demo_link_tewatashi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_demo_link_twait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_demo_link_twait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_kolink_odoroki_demo = { +#include "assets/objects/gameplay_keep/gPlayerAnim_kolink_odoroki_demo.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_LLside_kiru_endL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_LLside_kiru_endL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_LLside_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_LLside_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_LRside_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_LRside_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_LRside_kiru_finsh_endL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_LRside_kiru_finsh_endL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lnormal_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lnormal_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lnormal_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lnormal_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lpierce_kiru_endL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lpierce_kiru_endL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lpierce_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lpierce_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lrolling_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lrolling_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lside_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lside_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Lside_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Lside_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Rside_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Rside_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_Rside_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_Rside_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_anchor2fighter = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_anchor2fighter.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_back_brake = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_back_brake.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_back_hitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_back_hitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_back_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_back_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_bom_side_walkL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_bom_side_walkL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_bom_side_walkR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_bom_side_walkR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_defense_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_defense_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_defense_long_hitL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_defense_long_hitL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_defense_long_hitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_defense_long_hitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_front_hitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_front_hitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_jump_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_jump_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_landingR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_landingR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_normal_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_normal_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_pierce_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_pierce_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_pierce_kiru_finsh_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_pierce_kiru_finsh_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_power_kiru_wait_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_power_kiru_wait_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_rolling_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_rolling_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_side_walkL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_side_walkL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_side_walkR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_side_walkR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002578 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002578.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitL2defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitL2defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitL2defense_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitL2defense_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitL_defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitL_defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitL_defense_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitL_defense_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_0025A8 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_0025A8.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitL_pierce_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitL_pierce_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_0025B8 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_0025B8.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitR2defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitR2defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitR2defense_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitR2defense_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitR_defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitR_defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitR_defense_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitR_defense_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_0025E8 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_0025E8.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_anchor_waitR_pierce_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_anchor_waitR_pierce_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_catch = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_catch.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throwL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throwL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throwR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throwR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002610 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002610.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throw_side_walkL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throw_side_walkL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throw_side_walkR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throw_side_walkR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throw_wait2waitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throw_wait2waitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throw_waitL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throw_waitL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_boom_throw_waitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_boom_throw_waitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_bug_in = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_bug_in.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_bug_miss = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_bug_miss.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_bug_out = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_bug_out.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_drink_demo.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_drink_demo_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_drink_demo_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_drink_demo_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_fish_in = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_fish_in.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_fish_miss = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_fish_miss.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_fish_out = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_fish_out.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_read = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_read.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bottle_read_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bottle_read_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_bow_ready = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_bow_ready.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_bow_shoot = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_bow_shoot.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_bow_shoot_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_bow_shoot_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_bow_shoot_next = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_bow_shoot_next.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_bow_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_bow_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_defense_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_defense_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_side_runL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_side_runL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_side_runR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_side_runR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_side_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_side_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_bow_walk2ready = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_bow_walk2ready.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_child_tunnel_door = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_child_tunnel_door.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_child_tunnel_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_child_tunnel_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_child_tunnel_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_child_tunnel_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_DDbox_open = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_DDbox_open.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_Tbox_open = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_Tbox_open.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_back_to_past = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_back_to_past.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_baru_op1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_baru_op1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_baru_op2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_baru_op2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_baru_op3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_baru_op3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_bikkuri = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_bikkuri.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_doorA_link = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_doorA_link.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_doorA_link_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_doorA_link_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_doorB_link = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_doorB_link.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_doorB_link_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_doorB_link_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_furimuki2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_furimuki2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_furimuki2_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_furimuki2_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_furimuki = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_furimuki.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_get_itemA = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_get_itemA.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_get_itemB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_get_itemB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_goma_furimuki = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_goma_furimuki.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_gurad = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_gurad.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_gurad_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_gurad_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_jibunmiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_jibunmiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kakeyori = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kakeyori.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_mimawasi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kakeyori_mimawasi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_miokuri = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kakeyori_miokuri.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_miokuri_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kakeyori_miokuri_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kakeyori_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kaoage = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kaoage.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kaoage_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kaoage_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kenmiru1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kenmiru1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kenmiru1_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kenmiru1_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kenmiru2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kenmiru2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kenmiru2_modori = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kenmiru2_modori.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kenmiru2_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kenmiru2_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_kousan = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_kousan.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_look_hand = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_look_hand.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_look_hand_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_look_hand_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_nozokikomi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_nozokikomi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_nozokikomi_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_nozokikomi_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_return_to_past = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_return_to_past.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002840 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002840.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_sita_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_sita_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_ue = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_ue.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_ue_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_ue_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_warp = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_warp.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_zeldamiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_zeldamiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_demo_zeldamiru_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_demo_zeldamiru_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_derth_rebirth = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_derth_rebirth.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LLside_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LLside_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LLside_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LLside_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LRside_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LRside_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LRside_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_LRside_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lnormal_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lnormal_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lnormal_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lnormal_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpierce_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpierce_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpierce_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpierce_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_jump_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_jump_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_jump_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_jump_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_jump_kiru_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_jump_kiru_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_side_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_kiru_side_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_kiru_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_kiru_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_wait_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_kiru_wait_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lpower_kiru_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lrolling_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lrolling_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lrolling_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lrolling_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_jump = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_jump.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_jump_endL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_jump_endL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_jump_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_jump_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Lside_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_jump = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_jump.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_jump_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_jump_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_jump_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_jump_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Rside_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Wrolling_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Wrolling_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_Wrolling_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_Wrolling_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_backturn_jump = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_backturn_jump.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_backturn_jump_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_backturn_jump_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_backturn_jump_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_backturn_jump_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_damage_run = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_damage_run.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_damage_run_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_damage_run_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_defense_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_defense_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_defense_long_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_defense_long_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_defense_long_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_defense_long_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_defense_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_defense_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_fighter2long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_fighter2long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_front_jump = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_front_jump.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_front_jump_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_front_jump_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_front_jump_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_front_jump_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_heavy_run_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_heavy_run_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_jump_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_jump_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_jump_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_jump_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_jump_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_jump_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_jump_rollkiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_jump_rollkiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_landing_roll_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_landing_roll_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_normal2fighter = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_normal2fighter.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002A78 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002A78.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_normal_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_normal_kiru_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_normal_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_normal_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_normal_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_pierce_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_pierce_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru_finsh = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_pierce_kiru_finsh.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru_finsh_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_pierce_kiru_finsh_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_jump_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_jump_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002AD0 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002AD0.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_side_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_kiru_side_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_startL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_kiru_startL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_kiru_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_kiru_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_wait_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_kiru_wait_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_power_kiru_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_reboundR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_reboundR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_rebound = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_rebound.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_rebound_longR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_rebound_longR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_rebound_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_rebound_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_rolling_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_rolling_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_rolling_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_rolling_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_run = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_run.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_run_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_run_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002B48 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002B48.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002B50 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002B50.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_side_walkL_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_side_walkL_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_side_walkR_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_side_walkR_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_side_walk_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_side_walk_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_turn_kiruL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruL_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_turn_kiruL_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_turn_kiruR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruR_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_turn_kiruR_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_upper_kiruR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_upper_kiruR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_upper_pierce_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_upper_pierce_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_upper_pierce_kiru_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_upper_pierce_kiru_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_wait2waitL_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_wait2waitL_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_wait2waitR_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_wait2waitR_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_waitL2wait_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_waitL2wait_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_waitL_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_waitL_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_waitR2wait_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_waitR2wait_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_waitR_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_waitR_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002BD8 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002BD8.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_wait_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_wait_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_walk_endL_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_walk_endL_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_walk_endR_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_walk_endR_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fighter_walk_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fighter_walk_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_fish_catch = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_fish_catch.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_fish_catch_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_fish_catch_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_reel_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_reel_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_reel_left = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_reel_left.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_reel_right = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_reel_right.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_reel_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_reel_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_throw = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_throw.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_fishing_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_fishing_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_hit_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_hit_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_hit_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_hit_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_long2free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_long2free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_long2long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_long2long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_normal2long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_normal2long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_side_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_side_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_side_hit_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_side_hit_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hammer_side_hit_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hammer_side_hit_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hatto_demo = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hatto_demo.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_fly_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_fly_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_fly_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_fly_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_shot_ready = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_shot_ready.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_side_runL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_side_runL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_side_runR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_side_runR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_side_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_side_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_hook_walk2ready = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_hook_walk2ready.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_last_hit_motion1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_last_hit_motion1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_last_hit_motion2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_last_hit_motion2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_honoo1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_honoo1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_honoo2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_honoo2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_honoo3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_honoo3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_kaze1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_kaze1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_kaze2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_kaze2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_kaze3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_kaze3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_tamashii1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_tamashii1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_tamashii2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_tamashii2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_tamashii3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_tamashii3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_tame = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_tame.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_magic_tame_kaijyo = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_magic_tame_kaijyo.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_100step_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_100step_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_150step_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_150step_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_250jump_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_250jump_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_002D50 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_002D50.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_45_turn = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_45_turn.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_45_turn_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_45_turn_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_hold2upL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_hold2upL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_sideL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_sideL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_sideR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_sideR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_startA = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_startA.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_startB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_startB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_upL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_upL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_upR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_Fclimb_upR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_brake = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_brake.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_brake_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_brake_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_downA = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_downA.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_downB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_downB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_down_wake = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_down_wake.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_run = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_run.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_shitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_shitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_shit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_shit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_back_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_back_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_backspace = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_backspace.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_box_kick = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_box_kick.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_carryB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_carryB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_carryB_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_carryB_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_carryB_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_carryB_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_check = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_check.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_check_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_check_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_check_end_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_check_end_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_check_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_check_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_check_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_check_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_check_wait_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_check_wait_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_endAL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_endAL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_endAR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_endAR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_endBL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_endBL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_endBR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_endBR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_startA = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_startA.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_startB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_startB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_upL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_upL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_upR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_upR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_climb_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_climb_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_damage_run_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_damage_run_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_end_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_end_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_kiru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_kiru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_defense_wait_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_defense_wait_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_down_slope_slip.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_down_slope_slip_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip_end_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_down_slope_slip_end_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip_end_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_down_slope_slip_end_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_electric_shock = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_electric_shock.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_electric_shock_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_electric_shock_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_fall = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_fall.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_fall_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_fall_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_fall_up_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_fall_up_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_fall_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_fall_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_fighter2free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_fighter2free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_free2bom = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_free2bom.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_free2fighter_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_free2fighter_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_free2freeB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_free2freeB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_free2free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_free2free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_front_downA = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_front_downA.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_front_downB = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_front_downB.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_front_down_wake = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_front_down_wake.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_front_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_front_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_front_shitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_front_shitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_front_shit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_front_shit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_give_other = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_give_other.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_hang_up_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_hang_up_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_heavy_carry = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_heavy_carry.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_heavy_carry_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_heavy_carry_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_heavy_run = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_heavy_run.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_heavy_run_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_heavy_run_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_hip_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_hip_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_hip_down_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_hip_down_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_hip_down_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_hip_down_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_ice_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_ice_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump2landing = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump2landing.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_hold = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_climb_hold.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_hold_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_climb_hold_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_climb_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_up_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_climb_up_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_climb_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_wait_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_climb_wait_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_jump_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_jump_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_landing = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_landing.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_landing_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_landing_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_landing_roll = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_landing_roll.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_landing_roll_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_landing_roll_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_landing_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_landing_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_light_bom = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_light_bom.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_light_bom_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_light_bom_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_long2bom = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_long2bom.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_nocarry_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_nocarry_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_nocarry_free_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_nocarry_free_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_nocarry_free_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_nocarry_free_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_normal2bom = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_normal2bom.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_normal2fighter = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_normal2fighter.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_normal2fighter_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_normal2fighter_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_normal2free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_normal2free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_okarina_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_okarina_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_okarina_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_okarina_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_okarina_swing = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_okarina_swing.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pull_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pull_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pull_end_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pull_end_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pull_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pull_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pull_start_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pull_start_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pulling = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pulling.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pulling_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pulling_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_push_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_push_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_push_fall = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_push_fall.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_push_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_push_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_push_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_push_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_push_wait_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_push_wait_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_pushing = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_pushing.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_put = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_put.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_put_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_put_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_re_dead_attack = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_re_dead_attack.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_re_dead_attack_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_re_dead_attack_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_rebound = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_rebound.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_run = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_run.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_run_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_run_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_run_jump = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_run_jump.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_run_jump_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_run_jump_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_run_jump_water_fall = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_run_jump_water_fall.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_run_jump_water_fall_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_run_jump_water_fall_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_short_landing = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_short_landing.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_short_landing_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_short_landing_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_side_walkL_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_side_walkL_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_side_walkR_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_side_walkR_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_side_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_side_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_side_walk_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_side_walk_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_take_out = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_take_out.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_talk_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_talk_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_talk_free_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_talk_free_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_talk_navi = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_talk_navi.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_talk_navi_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_talk_navi_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_throw = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_throw.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_throw_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_throw_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_up_slope_slip.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_up_slope_slip_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip_end_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_up_slope_slip_end_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip_end_long = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_up_slope_slip_end_long.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait2waitL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait2waitL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait2waitR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait2waitR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitF_typeA_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitF_typeA_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitF_typeB_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitF_typeB_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitF_typeC_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitF_typeC_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitL2wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitL2wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitL_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitL_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitR2wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitR2wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_waitR_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_waitR_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait_typeA_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait_typeA_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait_typeB_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait_typeB_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wait_typeC_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wait_typeC_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_wakeup = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_wakeup.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_walk_endL = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_walk_endL.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_walk_endL_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_walk_endL_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_walk_endR = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_walk_endR.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_walk_endR_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_walk_endR_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_normal_walk_free = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_normal_walk_free.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_okarina_warp_goal = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_okarina_warp_goal.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_okiru_demo = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_okiru_demo.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_shagamu_demo = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_shagamu_demo.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_silver_carry = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_silver_carry.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_silver_throw = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_silver_throw.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_silver_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_silver_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_Lside_swim = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_Lside_swim.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_Rside_swim = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_Rside_swim.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_back_swim = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_back_swim.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_land2swim_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_land2swim_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_15step_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_15step_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_dead = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_dead.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_deep_end = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_deep_end.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_deep_start = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_deep_start.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_get = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_get.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_hit = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_hit.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_swim_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_swim_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_swimer_wait2swim_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_swimer_wait2swim_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_fastrun = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_fastrun.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_fastrun_muti = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_fastrun_muti.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_jump100 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_jump100.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_jump200 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_jump200.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_slowrun = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_slowrun.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_slowrun_muti = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_slowrun_muti.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_stand = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_stand.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_stop = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_stop.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_walk2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_walk2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_walk = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_walk.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_anim_walk_muti = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_anim_walk_muti.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_left_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_left_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_left_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_left_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_right_down = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_right_down.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_right_up = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_right_up.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_stop_muti = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_stop_muti.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_wait_1 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_wait_1.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_wait_2 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_wait_2.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_uma_wait_3 = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_uma_wait_3.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_waitF_heat1_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_waitF_heat1_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_waitF_heat2_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_waitF_heat2_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_waitF_itemA_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_waitF_itemA_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_waitF_itemB_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_waitF_itemB_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_waitF_typeD_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_waitF_typeD_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_heat1_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_heat1_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_heat2_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_heat2_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_itemA_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_itemA_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_itemB_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_itemB_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_itemC_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_itemC_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_itemD1_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_itemD1_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_itemD2_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_itemD2_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_link_wait_typeD_20f = { +#include "assets/objects/gameplay_keep/gPlayerAnim_link_wait_typeD_20f.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_lkt_nwait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_lkt_nwait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_nw_modoru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_nw_modoru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_o_get_ato = { +#include "assets/objects/gameplay_keep/gPlayerAnim_o_get_ato.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_o_get_mae = { +#include "assets/objects/gameplay_keep/gPlayerAnim_o_get_mae.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_om_get = { +#include "assets/objects/gameplay_keep/gPlayerAnim_om_get.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_om_get_mae = { +#include "assets/objects/gameplay_keep/gPlayerAnim_om_get_mae.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_sude_nwait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_sude_nwait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_1kyoro = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_1kyoro.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_2kyoro = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_2kyoro.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_bouzen = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_bouzen.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_hajikareru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_hajikareru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_kamaeru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_kamaeru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_ken_miru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_ken_miru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_kennasi_w = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_kennasi_w.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_kw = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_kw.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_mukinaoru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_mukinaoru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_okarina_get = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_okarina_get.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_L_sagaru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_L_sagaru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_Link_ha = { +#include "assets/objects/gameplay_keep/gPlayerAnim_Link_ha.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_Link_m_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_Link_m_wait.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_Link_miageru = { +#include "assets/objects/gameplay_keep/gPlayerAnim_Link_miageru.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_Link_muku = { +#include "assets/objects/gameplay_keep/gPlayerAnim_Link_muku.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_Link_otituku_w = { +#include "assets/objects/gameplay_keep/gPlayerAnim_Link_otituku_w.inc.c" +}; + +LinkAnimationHeader gPlayerAnim_Link_ue_wait = { +#include "assets/objects/gameplay_keep/gPlayerAnim_Link_ue_wait.inc.c" +}; diff --git a/assets/objects/gameplay_keep/player_anim_headers.h b/assets/objects/gameplay_keep/player_anim_headers.h new file mode 100644 index 0000000000..6ae47645fa --- /dev/null +++ b/assets/objects/gameplay_keep/player_anim_headers.h @@ -0,0 +1,580 @@ +#ifndef GAMEPLAY_KEEP_PLAYER_ANIM_HEADERS_H +#define GAMEPLAY_KEEP_PLAYER_ANIM_HEADERS_H + +#include "animation.h" + +extern LinkAnimationHeader gPlayerAnim_clink_demo_DDbox_open; +extern LinkAnimationHeader gPlayerAnim_clink_demo_Tbox_open; +extern LinkAnimationHeader gPlayerAnim_clink_demo_atozusari; +extern LinkAnimationHeader gPlayerAnim_clink_demo_bashi; +extern LinkAnimationHeader gPlayerAnim_clink_demo_doorA_link; +extern LinkAnimationHeader gPlayerAnim_clink_demo_doorB_link; +extern LinkAnimationHeader gPlayerAnim_clink_demo_futtobi; +extern LinkAnimationHeader gPlayerAnim_clink_demo_get1; +extern LinkAnimationHeader gPlayerAnim_clink_demo_get2; +extern LinkAnimationHeader gPlayerAnim_clink_demo_get3; +extern LinkAnimationHeader gPlayerAnim_clink_demo_goto_future; +extern LinkAnimationHeader gPlayerAnim_clink_demo_koutai; +extern LinkAnimationHeader gPlayerAnim_clink_demo_koutai_kennuki; +extern LinkAnimationHeader gPlayerAnim_clink_demo_koutai_wait; +extern LinkAnimationHeader gPlayerAnim_clink_demo_mimawasi; +extern LinkAnimationHeader gPlayerAnim_clink_demo_mimawasi_wait; +extern LinkAnimationHeader gPlayerAnim_clink_demo_miokuri; +extern LinkAnimationHeader gPlayerAnim_clink_demo_miokuri_wait; +extern LinkAnimationHeader gPlayerAnim_clink_demo_nozoki; +extern LinkAnimationHeader gPlayerAnim_clink_demo_return_to_future; +extern LinkAnimationHeader gPlayerAnim_clink_demo_standup; +extern LinkAnimationHeader gPlayerAnim_clink_demo_standup_wait; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_endAL; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_endAR; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_endBL; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_endBR; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_startA; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_startB; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_upL; +extern LinkAnimationHeader gPlayerAnim_clink_normal_climb_upR; +extern LinkAnimationHeader gPlayerAnim_clink_normal_defense_ALL; +extern LinkAnimationHeader gPlayerAnim_clink_op3_negaeri; +extern LinkAnimationHeader gPlayerAnim_clink_op3_okiagari; +extern LinkAnimationHeader gPlayerAnim_clink_op3_tatiagari; +extern LinkAnimationHeader gPlayerAnim_clink_op3_wait1; +extern LinkAnimationHeader gPlayerAnim_clink_op3_wait2; +extern LinkAnimationHeader gPlayerAnim_clink_op3_wait3; +extern LinkAnimationHeader gPlayerAnim_d_link_imanodare; +extern LinkAnimationHeader gPlayerAnim_d_link_orooro; +extern LinkAnimationHeader gPlayerAnim_d_link_orowait; +extern LinkAnimationHeader gPlayerAnim_demo_link_nwait; +extern LinkAnimationHeader gPlayerAnim_demo_link_orosuu; +extern LinkAnimationHeader gPlayerAnim_demo_link_tewatashi; +extern LinkAnimationHeader gPlayerAnim_demo_link_twait; +extern LinkAnimationHeader gPlayerAnim_kolink_odoroki_demo; +extern LinkAnimationHeader gPlayerAnim_link_anchor_LLside_kiru_endL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_LLside_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_LRside_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_LRside_kiru_finsh_endL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lnormal_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lnormal_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lpierce_kiru_endL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lpierce_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lrolling_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lside_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Lside_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Rside_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_Rside_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_anchor2fighter; +extern LinkAnimationHeader gPlayerAnim_link_anchor_back_brake; +extern LinkAnimationHeader gPlayerAnim_link_anchor_back_hitR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_back_walk; +extern LinkAnimationHeader gPlayerAnim_link_anchor_bom_side_walkL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_bom_side_walkR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_defense_hit; +extern LinkAnimationHeader gPlayerAnim_link_anchor_defense_long_hitL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_defense_long_hitR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_front_hitR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_jump_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_landingR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_normal_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_pierce_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_pierce_kiru_finsh_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_power_kiru_wait_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_rolling_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_side_walkL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_side_walkR; +extern LinkAnimationHeader gPlayerAnim_002578; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitL2defense; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitL2defense_long; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitL; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitL_defense; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitL_defense_wait; +extern LinkAnimationHeader gPlayerAnim_0025A8; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitL_pierce_kiru; +extern LinkAnimationHeader gPlayerAnim_0025B8; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitR2defense; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitR2defense_long; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitR; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitR_defense; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitR_defense_wait; +extern LinkAnimationHeader gPlayerAnim_0025E8; +extern LinkAnimationHeader gPlayerAnim_link_anchor_waitR_pierce_kiru; +extern LinkAnimationHeader gPlayerAnim_link_boom_catch; +extern LinkAnimationHeader gPlayerAnim_link_boom_throwL; +extern LinkAnimationHeader gPlayerAnim_link_boom_throwR; +extern LinkAnimationHeader gPlayerAnim_002610; +extern LinkAnimationHeader gPlayerAnim_link_boom_throw_side_walkL; +extern LinkAnimationHeader gPlayerAnim_link_boom_throw_side_walkR; +extern LinkAnimationHeader gPlayerAnim_link_boom_throw_wait2waitR; +extern LinkAnimationHeader gPlayerAnim_link_boom_throw_waitL; +extern LinkAnimationHeader gPlayerAnim_link_boom_throw_waitR; +extern LinkAnimationHeader gPlayerAnim_link_bottle_bug_in; +extern LinkAnimationHeader gPlayerAnim_link_bottle_bug_miss; +extern LinkAnimationHeader gPlayerAnim_link_bottle_bug_out; +extern LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo; +extern LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo_end; +extern LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo_start; +extern LinkAnimationHeader gPlayerAnim_link_bottle_drink_demo_wait; +extern LinkAnimationHeader gPlayerAnim_link_bottle_fish_in; +extern LinkAnimationHeader gPlayerAnim_link_bottle_fish_miss; +extern LinkAnimationHeader gPlayerAnim_link_bottle_fish_out; +extern LinkAnimationHeader gPlayerAnim_link_bottle_read; +extern LinkAnimationHeader gPlayerAnim_link_bottle_read_end; +extern LinkAnimationHeader gPlayerAnim_link_bow_bow_ready; +extern LinkAnimationHeader gPlayerAnim_link_bow_bow_shoot; +extern LinkAnimationHeader gPlayerAnim_link_bow_bow_shoot_end; +extern LinkAnimationHeader gPlayerAnim_link_bow_bow_shoot_next; +extern LinkAnimationHeader gPlayerAnim_link_bow_bow_wait; +extern LinkAnimationHeader gPlayerAnim_link_bow_defense; +extern LinkAnimationHeader gPlayerAnim_link_bow_defense_wait; +extern LinkAnimationHeader gPlayerAnim_link_bow_side_runL; +extern LinkAnimationHeader gPlayerAnim_link_bow_side_runR; +extern LinkAnimationHeader gPlayerAnim_link_bow_side_walk; +extern LinkAnimationHeader gPlayerAnim_link_bow_walk2ready; +extern LinkAnimationHeader gPlayerAnim_link_child_tunnel_door; +extern LinkAnimationHeader gPlayerAnim_link_child_tunnel_end; +extern LinkAnimationHeader gPlayerAnim_link_child_tunnel_start; +extern LinkAnimationHeader gPlayerAnim_link_demo_DDbox_open; +extern LinkAnimationHeader gPlayerAnim_link_demo_Tbox_open; +extern LinkAnimationHeader gPlayerAnim_link_demo_back_to_past; +extern LinkAnimationHeader gPlayerAnim_link_demo_baru_op1; +extern LinkAnimationHeader gPlayerAnim_link_demo_baru_op2; +extern LinkAnimationHeader gPlayerAnim_link_demo_baru_op3; +extern LinkAnimationHeader gPlayerAnim_link_demo_bikkuri; +extern LinkAnimationHeader gPlayerAnim_link_demo_doorA_link; +extern LinkAnimationHeader gPlayerAnim_link_demo_doorA_link_free; +extern LinkAnimationHeader gPlayerAnim_link_demo_doorB_link; +extern LinkAnimationHeader gPlayerAnim_link_demo_doorB_link_free; +extern LinkAnimationHeader gPlayerAnim_link_demo_furimuki2; +extern LinkAnimationHeader gPlayerAnim_link_demo_furimuki2_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_furimuki; +extern LinkAnimationHeader gPlayerAnim_link_demo_get_itemA; +extern LinkAnimationHeader gPlayerAnim_link_demo_get_itemB; +extern LinkAnimationHeader gPlayerAnim_link_demo_goma_furimuki; +extern LinkAnimationHeader gPlayerAnim_link_demo_gurad; +extern LinkAnimationHeader gPlayerAnim_link_demo_gurad_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_jibunmiru; +extern LinkAnimationHeader gPlayerAnim_link_demo_kakeyori; +extern LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_mimawasi; +extern LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_miokuri; +extern LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_miokuri_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_kakeyori_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_kaoage; +extern LinkAnimationHeader gPlayerAnim_link_demo_kaoage_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_kenmiru1; +extern LinkAnimationHeader gPlayerAnim_link_demo_kenmiru1_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_kenmiru2; +extern LinkAnimationHeader gPlayerAnim_link_demo_kenmiru2_modori; +extern LinkAnimationHeader gPlayerAnim_link_demo_kenmiru2_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_kousan; +extern LinkAnimationHeader gPlayerAnim_link_demo_look_hand; +extern LinkAnimationHeader gPlayerAnim_link_demo_look_hand_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_nozokikomi; +extern LinkAnimationHeader gPlayerAnim_link_demo_nozokikomi_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_return_to_past; +extern LinkAnimationHeader gPlayerAnim_002840; +extern LinkAnimationHeader gPlayerAnim_link_demo_sita_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_ue; +extern LinkAnimationHeader gPlayerAnim_link_demo_ue_wait; +extern LinkAnimationHeader gPlayerAnim_link_demo_warp; +extern LinkAnimationHeader gPlayerAnim_link_demo_zeldamiru; +extern LinkAnimationHeader gPlayerAnim_link_demo_zeldamiru_wait; +extern LinkAnimationHeader gPlayerAnim_link_derth_rebirth; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LLside_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_LRside_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lnormal_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpierce_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_jump_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_jump_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_jump_kiru_hit; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_side_walk; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_start; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_wait; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_wait_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lpower_kiru_walk; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lrolling_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lrolling_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_jump; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_jump_endL; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_jump_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Lside_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_jump; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_jump_endR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_jump_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Rside_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Wrolling_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_Wrolling_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_backturn_jump; +extern LinkAnimationHeader gPlayerAnim_link_fighter_backturn_jump_endR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_backturn_jump_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_damage_run; +extern LinkAnimationHeader gPlayerAnim_link_fighter_damage_run_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_defense; +extern LinkAnimationHeader gPlayerAnim_link_fighter_defense_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_defense_long_hit; +extern LinkAnimationHeader gPlayerAnim_link_fighter_defense_long_wait; +extern LinkAnimationHeader gPlayerAnim_link_fighter_defense_wait; +extern LinkAnimationHeader gPlayerAnim_link_fighter_fighter2long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_front_jump; +extern LinkAnimationHeader gPlayerAnim_link_fighter_front_jump_endR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_front_jump_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_heavy_run_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_jump_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_jump_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_jump_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_jump_rollkiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_landing_roll_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_normal2fighter; +extern LinkAnimationHeader gPlayerAnim_002A78; +extern LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_endR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_normal_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru_finsh; +extern LinkAnimationHeader gPlayerAnim_link_fighter_pierce_kiru_finsh_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_jump_kiru_end; +extern LinkAnimationHeader gPlayerAnim_002AD0; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_side_walk; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_startL; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_start; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_wait; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_wait_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_power_kiru_walk; +extern LinkAnimationHeader gPlayerAnim_link_fighter_reboundR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_rebound; +extern LinkAnimationHeader gPlayerAnim_link_fighter_rebound_longR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_rebound_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_rolling_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_rolling_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_run; +extern LinkAnimationHeader gPlayerAnim_link_fighter_run_long; +extern LinkAnimationHeader gPlayerAnim_002B48; +extern LinkAnimationHeader gPlayerAnim_002B50; +extern LinkAnimationHeader gPlayerAnim_link_fighter_side_walkL_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_side_walkR_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_side_walk_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruL; +extern LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruL_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_turn_kiruR_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_upper_kiruR; +extern LinkAnimationHeader gPlayerAnim_link_fighter_upper_pierce_kiru; +extern LinkAnimationHeader gPlayerAnim_link_fighter_upper_pierce_kiru_end; +extern LinkAnimationHeader gPlayerAnim_link_fighter_wait2waitL_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_wait2waitR_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_waitL2wait_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_waitL_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_waitR2wait_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_waitR_long; +extern LinkAnimationHeader gPlayerAnim_002BD8; +extern LinkAnimationHeader gPlayerAnim_link_fighter_wait_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_walk_endL_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_walk_endR_long; +extern LinkAnimationHeader gPlayerAnim_link_fighter_walk_long; +extern LinkAnimationHeader gPlayerAnim_link_fishing_fish_catch; +extern LinkAnimationHeader gPlayerAnim_link_fishing_fish_catch_end; +extern LinkAnimationHeader gPlayerAnim_link_fishing_reel_down; +extern LinkAnimationHeader gPlayerAnim_link_fishing_reel_left; +extern LinkAnimationHeader gPlayerAnim_link_fishing_reel_right; +extern LinkAnimationHeader gPlayerAnim_link_fishing_reel_up; +extern LinkAnimationHeader gPlayerAnim_link_fishing_throw; +extern LinkAnimationHeader gPlayerAnim_link_fishing_wait; +extern LinkAnimationHeader gPlayerAnim_link_hammer_hit; +extern LinkAnimationHeader gPlayerAnim_link_hammer_hit_endR; +extern LinkAnimationHeader gPlayerAnim_link_hammer_hit_end; +extern LinkAnimationHeader gPlayerAnim_link_hammer_long2free; +extern LinkAnimationHeader gPlayerAnim_link_hammer_long2long; +extern LinkAnimationHeader gPlayerAnim_link_hammer_normal2long; +extern LinkAnimationHeader gPlayerAnim_link_hammer_side_hit; +extern LinkAnimationHeader gPlayerAnim_link_hammer_side_hit_endR; +extern LinkAnimationHeader gPlayerAnim_link_hammer_side_hit_end; +extern LinkAnimationHeader gPlayerAnim_link_hatto_demo; +extern LinkAnimationHeader gPlayerAnim_link_hook_fly_start; +extern LinkAnimationHeader gPlayerAnim_link_hook_fly_wait; +extern LinkAnimationHeader gPlayerAnim_link_hook_shot_ready; +extern LinkAnimationHeader gPlayerAnim_link_hook_side_runL; +extern LinkAnimationHeader gPlayerAnim_link_hook_side_runR; +extern LinkAnimationHeader gPlayerAnim_link_hook_side_walk; +extern LinkAnimationHeader gPlayerAnim_link_hook_wait; +extern LinkAnimationHeader gPlayerAnim_link_hook_walk2ready; +extern LinkAnimationHeader gPlayerAnim_link_last_hit_motion1; +extern LinkAnimationHeader gPlayerAnim_link_last_hit_motion2; +extern LinkAnimationHeader gPlayerAnim_link_magic_honoo1; +extern LinkAnimationHeader gPlayerAnim_link_magic_honoo2; +extern LinkAnimationHeader gPlayerAnim_link_magic_honoo3; +extern LinkAnimationHeader gPlayerAnim_link_magic_kaze1; +extern LinkAnimationHeader gPlayerAnim_link_magic_kaze2; +extern LinkAnimationHeader gPlayerAnim_link_magic_kaze3; +extern LinkAnimationHeader gPlayerAnim_link_magic_tamashii1; +extern LinkAnimationHeader gPlayerAnim_link_magic_tamashii2; +extern LinkAnimationHeader gPlayerAnim_link_magic_tamashii3; +extern LinkAnimationHeader gPlayerAnim_link_magic_tame; +extern LinkAnimationHeader gPlayerAnim_link_magic_tame_kaijyo; +extern LinkAnimationHeader gPlayerAnim_link_normal_100step_up; +extern LinkAnimationHeader gPlayerAnim_link_normal_150step_up; +extern LinkAnimationHeader gPlayerAnim_link_normal_250jump_start; +extern LinkAnimationHeader gPlayerAnim_002D50; +extern LinkAnimationHeader gPlayerAnim_link_normal_45_turn; +extern LinkAnimationHeader gPlayerAnim_link_normal_45_turn_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_hold2upL; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_sideL; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_sideR; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_startA; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_startB; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_upL; +extern LinkAnimationHeader gPlayerAnim_link_normal_Fclimb_upR; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_brake; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_brake_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_downA; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_downB; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_down_wake; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_hit; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_run; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_shitR; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_shit; +extern LinkAnimationHeader gPlayerAnim_link_normal_back_walk; +extern LinkAnimationHeader gPlayerAnim_link_normal_backspace; +extern LinkAnimationHeader gPlayerAnim_link_normal_box_kick; +extern LinkAnimationHeader gPlayerAnim_link_normal_carryB; +extern LinkAnimationHeader gPlayerAnim_link_normal_carryB_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_carryB_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_check; +extern LinkAnimationHeader gPlayerAnim_link_normal_check_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_check_end_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_check_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_check_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_check_wait_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_down; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_endAL; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_endAR; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_endBL; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_endBR; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_startA; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_startB; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_upL; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_upR; +extern LinkAnimationHeader gPlayerAnim_link_normal_climb_up; +extern LinkAnimationHeader gPlayerAnim_link_normal_damage_run_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_end_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_hit; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_kiru; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_defense_wait_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip; +extern LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip_end_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_down_slope_slip_end_long; +extern LinkAnimationHeader gPlayerAnim_link_normal_electric_shock; +extern LinkAnimationHeader gPlayerAnim_link_normal_electric_shock_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_fall; +extern LinkAnimationHeader gPlayerAnim_link_normal_fall_up; +extern LinkAnimationHeader gPlayerAnim_link_normal_fall_up_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_fall_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_fighter2free; +extern LinkAnimationHeader gPlayerAnim_link_normal_free2bom; +extern LinkAnimationHeader gPlayerAnim_link_normal_free2fighter_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_free2freeB; +extern LinkAnimationHeader gPlayerAnim_link_normal_free2free; +extern LinkAnimationHeader gPlayerAnim_link_normal_front_downA; +extern LinkAnimationHeader gPlayerAnim_link_normal_front_downB; +extern LinkAnimationHeader gPlayerAnim_link_normal_front_down_wake; +extern LinkAnimationHeader gPlayerAnim_link_normal_front_hit; +extern LinkAnimationHeader gPlayerAnim_link_normal_front_shitR; +extern LinkAnimationHeader gPlayerAnim_link_normal_front_shit; +extern LinkAnimationHeader gPlayerAnim_link_normal_give_other; +extern LinkAnimationHeader gPlayerAnim_link_normal_hang_up_down; +extern LinkAnimationHeader gPlayerAnim_link_normal_heavy_carry; +extern LinkAnimationHeader gPlayerAnim_link_normal_heavy_carry_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_heavy_run; +extern LinkAnimationHeader gPlayerAnim_link_normal_heavy_run_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_hip_down; +extern LinkAnimationHeader gPlayerAnim_link_normal_hip_down_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_hip_down_long; +extern LinkAnimationHeader gPlayerAnim_link_normal_ice_down; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump2landing; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_hold; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_hold_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_up; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_up_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_climb_wait_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_jump_up; +extern LinkAnimationHeader gPlayerAnim_link_normal_landing; +extern LinkAnimationHeader gPlayerAnim_link_normal_landing_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_landing_roll; +extern LinkAnimationHeader gPlayerAnim_link_normal_landing_roll_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_landing_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_light_bom; +extern LinkAnimationHeader gPlayerAnim_link_normal_light_bom_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_long2bom; +extern LinkAnimationHeader gPlayerAnim_link_normal_nocarry_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_nocarry_free_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_nocarry_free_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_normal2bom; +extern LinkAnimationHeader gPlayerAnim_link_normal_normal2fighter; +extern LinkAnimationHeader gPlayerAnim_link_normal_normal2fighter_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_normal2free; +extern LinkAnimationHeader gPlayerAnim_link_normal_okarina_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_okarina_start; +extern LinkAnimationHeader gPlayerAnim_link_normal_okarina_swing; +extern LinkAnimationHeader gPlayerAnim_link_normal_pull_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_pull_end_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_pull_start; +extern LinkAnimationHeader gPlayerAnim_link_normal_pull_start_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_pulling; +extern LinkAnimationHeader gPlayerAnim_link_normal_pulling_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_push_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_push_fall; +extern LinkAnimationHeader gPlayerAnim_link_normal_push_start; +extern LinkAnimationHeader gPlayerAnim_link_normal_push_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_push_wait_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_pushing; +extern LinkAnimationHeader gPlayerAnim_link_normal_put; +extern LinkAnimationHeader gPlayerAnim_link_normal_put_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_re_dead_attack; +extern LinkAnimationHeader gPlayerAnim_link_normal_re_dead_attack_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_rebound; +extern LinkAnimationHeader gPlayerAnim_link_normal_run; +extern LinkAnimationHeader gPlayerAnim_link_normal_run_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_run_jump; +extern LinkAnimationHeader gPlayerAnim_link_normal_run_jump_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_run_jump_water_fall; +extern LinkAnimationHeader gPlayerAnim_link_normal_run_jump_water_fall_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_short_landing; +extern LinkAnimationHeader gPlayerAnim_link_normal_short_landing_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_side_walkL_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_side_walkR_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_side_walk; +extern LinkAnimationHeader gPlayerAnim_link_normal_side_walk_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_take_out; +extern LinkAnimationHeader gPlayerAnim_link_normal_talk_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_talk_free_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_talk_navi; +extern LinkAnimationHeader gPlayerAnim_link_normal_talk_navi_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_throw; +extern LinkAnimationHeader gPlayerAnim_link_normal_throw_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip; +extern LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip_end; +extern LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip_end_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_up_slope_slip_end_long; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait2waitL; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait2waitR; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitF_typeA_20f; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitF_typeB_20f; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitF_typeC_20f; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitL2wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitL_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitR2wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_waitR_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait_typeA_20f; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait_typeB_20f; +extern LinkAnimationHeader gPlayerAnim_link_normal_wait_typeC_20f; +extern LinkAnimationHeader gPlayerAnim_link_normal_wakeup; +extern LinkAnimationHeader gPlayerAnim_link_normal_walk; +extern LinkAnimationHeader gPlayerAnim_link_normal_walk_endL; +extern LinkAnimationHeader gPlayerAnim_link_normal_walk_endL_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_walk_endR; +extern LinkAnimationHeader gPlayerAnim_link_normal_walk_endR_free; +extern LinkAnimationHeader gPlayerAnim_link_normal_walk_free; +extern LinkAnimationHeader gPlayerAnim_link_okarina_warp_goal; +extern LinkAnimationHeader gPlayerAnim_link_okiru_demo; +extern LinkAnimationHeader gPlayerAnim_link_shagamu_demo; +extern LinkAnimationHeader gPlayerAnim_link_silver_carry; +extern LinkAnimationHeader gPlayerAnim_link_silver_throw; +extern LinkAnimationHeader gPlayerAnim_link_silver_wait; +extern LinkAnimationHeader gPlayerAnim_link_swimer_Lside_swim; +extern LinkAnimationHeader gPlayerAnim_link_swimer_Rside_swim; +extern LinkAnimationHeader gPlayerAnim_link_swimer_back_swim; +extern LinkAnimationHeader gPlayerAnim_link_swimer_land2swim_wait; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_15step_up; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_dead; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_deep_end; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_deep_start; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_down; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_get; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_hit; +extern LinkAnimationHeader gPlayerAnim_link_swimer_swim_wait; +extern LinkAnimationHeader gPlayerAnim_link_swimer_wait2swim_wait; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_fastrun; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_fastrun_muti; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_jump100; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_jump200; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_slowrun; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_slowrun_muti; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_stand; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_stop; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_walk2; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_walk; +extern LinkAnimationHeader gPlayerAnim_link_uma_anim_walk_muti; +extern LinkAnimationHeader gPlayerAnim_link_uma_left_down; +extern LinkAnimationHeader gPlayerAnim_link_uma_left_up; +extern LinkAnimationHeader gPlayerAnim_link_uma_right_down; +extern LinkAnimationHeader gPlayerAnim_link_uma_right_up; +extern LinkAnimationHeader gPlayerAnim_link_uma_stop_muti; +extern LinkAnimationHeader gPlayerAnim_link_uma_wait_1; +extern LinkAnimationHeader gPlayerAnim_link_uma_wait_2; +extern LinkAnimationHeader gPlayerAnim_link_uma_wait_3; +extern LinkAnimationHeader gPlayerAnim_link_waitF_heat1_20f; +extern LinkAnimationHeader gPlayerAnim_link_waitF_heat2_20f; +extern LinkAnimationHeader gPlayerAnim_link_waitF_itemA_20f; +extern LinkAnimationHeader gPlayerAnim_link_waitF_itemB_20f; +extern LinkAnimationHeader gPlayerAnim_link_waitF_typeD_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_heat1_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_heat2_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_itemA_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_itemB_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_itemC_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_itemD1_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_itemD2_20f; +extern LinkAnimationHeader gPlayerAnim_link_wait_typeD_20f; +extern LinkAnimationHeader gPlayerAnim_lkt_nwait; +extern LinkAnimationHeader gPlayerAnim_nw_modoru; +extern LinkAnimationHeader gPlayerAnim_o_get_ato; +extern LinkAnimationHeader gPlayerAnim_o_get_mae; +extern LinkAnimationHeader gPlayerAnim_om_get; +extern LinkAnimationHeader gPlayerAnim_om_get_mae; +extern LinkAnimationHeader gPlayerAnim_sude_nwait; +extern LinkAnimationHeader gPlayerAnim_L_1kyoro; +extern LinkAnimationHeader gPlayerAnim_L_2kyoro; +extern LinkAnimationHeader gPlayerAnim_L_bouzen; +extern LinkAnimationHeader gPlayerAnim_L_hajikareru; +extern LinkAnimationHeader gPlayerAnim_L_kamaeru; +extern LinkAnimationHeader gPlayerAnim_L_ken_miru; +extern LinkAnimationHeader gPlayerAnim_L_kennasi_w; +extern LinkAnimationHeader gPlayerAnim_L_kw; +extern LinkAnimationHeader gPlayerAnim_L_mukinaoru; +extern LinkAnimationHeader gPlayerAnim_L_okarina_get; +extern LinkAnimationHeader gPlayerAnim_L_sagaru; +extern LinkAnimationHeader gPlayerAnim_Link_ha; +extern LinkAnimationHeader gPlayerAnim_Link_m_wait; +extern LinkAnimationHeader gPlayerAnim_Link_miageru; +extern LinkAnimationHeader gPlayerAnim_Link_muku; +extern LinkAnimationHeader gPlayerAnim_Link_otituku_w; +extern LinkAnimationHeader gPlayerAnim_Link_ue_wait; + +#endif diff --git a/assets/objects/gameplay_keep/player_pause_joint_tables.c b/assets/objects/gameplay_keep/player_pause_joint_tables.c new file mode 100644 index 0000000000..79873a0016 --- /dev/null +++ b/assets/objects/gameplay_keep/player_pause_joint_tables.c @@ -0,0 +1,21 @@ +#include "player_pause_joint_tables.h" + +Vec3s gLinkPauseChildJointTable[] = { +#include "assets/objects/gameplay_keep/gLinkPauseChildJointTable.inc.c" +}; + +Vec3s gLinkPauseChildDekuShieldJointTable[] = { +#include "assets/objects/gameplay_keep/gLinkPauseChildDekuShieldJointTable.inc.c" +}; + +Vec3s gLinkPauseAdultBgsJointTable[] = { +#include "assets/objects/gameplay_keep/gLinkPauseAdultBgsJointTable.inc.c" +}; + +Vec3s gLinkPauseAdultJointTable[] = { +#include "assets/objects/gameplay_keep/gLinkPauseAdultJointTable.inc.c" +}; + +Vec3s gLinkPauseAdultShieldJointTable[] = { +#include "assets/objects/gameplay_keep/gLinkPauseAdultShieldJointTable.inc.c" +}; diff --git a/assets/objects/gameplay_keep/player_pause_joint_tables.h b/assets/objects/gameplay_keep/player_pause_joint_tables.h new file mode 100644 index 0000000000..42cbb16c3e --- /dev/null +++ b/assets/objects/gameplay_keep/player_pause_joint_tables.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_PLAYER_PAUSE_JOINT_TABLES_H +#define GAMEPLAY_KEEP_PLAYER_PAUSE_JOINT_TABLES_H + +#include "z_math.h" + +extern Vec3s gLinkPauseChildJointTable[]; +extern Vec3s gLinkPauseChildDekuShieldJointTable[]; +extern Vec3s gLinkPauseAdultBgsJointTable[]; +extern Vec3s gLinkPauseAdultJointTable[]; +extern Vec3s gLinkPauseAdultShieldJointTable[]; + +#endif diff --git a/assets/objects/gameplay_keep/raindrop_model.c b/assets/objects/gameplay_keep/raindrop_model.c new file mode 100644 index 0000000000..5e70ebe832 --- /dev/null +++ b/assets/objects/gameplay_keep/raindrop_model.c @@ -0,0 +1,10 @@ +#include "raindrop_model.h" +#include "gfx.h" + +Vtx gRaindropVtx[] = { +#include "assets/objects/gameplay_keep/gRaindropVtx.inc.c" +}; + +Gfx gRaindropDL[4] = { +#include "assets/objects/gameplay_keep/gRaindropDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/raindrop_model.h b/assets/objects/gameplay_keep/raindrop_model.h new file mode 100644 index 0000000000..d5ef914b46 --- /dev/null +++ b/assets/objects/gameplay_keep/raindrop_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_RAINDROP_MODEL_H +#define GAMEPLAY_KEEP_RAINDROP_MODEL_H + +#include "ultra64.h" + +extern Vtx gRaindropVtx[]; +extern Gfx gRaindropDL[4]; + +#endif diff --git a/assets/objects/gameplay_keep/rectangular_sign_model.c b/assets/objects/gameplay_keep/rectangular_sign_model.c new file mode 100644 index 0000000000..abcb5ff760 --- /dev/null +++ b/assets/objects/gameplay_keep/rectangular_sign_model.c @@ -0,0 +1,11 @@ +#include "rectangular_sign_model.h" +#include "sign_textures.h" +#include "gfx.h" + +Vtx gSignRectangularVtx[] = { +#include "assets/objects/gameplay_keep/gSignRectangularVtx.inc.c" +}; + +Gfx gSignRectangularDL[81] = { +#include "assets/objects/gameplay_keep/gSignRectangularDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/rectangular_sign_model.h b/assets/objects/gameplay_keep/rectangular_sign_model.h new file mode 100644 index 0000000000..4d21377bdc --- /dev/null +++ b/assets/objects/gameplay_keep/rectangular_sign_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_RECTANGULAR_SIGN_MODEL_H +#define GAMEPLAY_KEEP_RECTANGULAR_SIGN_MODEL_H + +#include "ultra64.h" + +extern Vtx gSignRectangularVtx[]; +extern Gfx gSignRectangularDL[81]; + +#endif diff --git a/assets/objects/gameplay_keep/rock_fragments_model.c b/assets/objects/gameplay_keep/rock_fragments_model.c new file mode 100644 index 0000000000..7498e7b560 --- /dev/null +++ b/assets/objects/gameplay_keep/rock_fragments_model.c @@ -0,0 +1,19 @@ +#include "rock_fragments_model.h" +#include "rock_fragments_tex.h" +#include "gfx.h" + +Vtx gUnusedRockFragmentVtx[] = { +#include "assets/objects/gameplay_keep/gUnusedRockFragmentVtx.inc.c" +}; + +Gfx gUnusedRockFragmentDL[32] = { +#include "assets/objects/gameplay_keep/gUnusedRockFragmentDL.inc.c" +}; + +Gfx gBoulderFragmentsDL[27] = { +#include "assets/objects/gameplay_keep/gBoulderFragmentsDL.inc.c" +}; + +Vtx gBoulderFragmentsVtx[] = { +#include "assets/objects/gameplay_keep/gBoulderFragmentsVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/rock_fragments_model.h b/assets/objects/gameplay_keep/rock_fragments_model.h new file mode 100644 index 0000000000..70e1c70df8 --- /dev/null +++ b/assets/objects/gameplay_keep/rock_fragments_model.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_ROCK_FRAGMENTS_MODEL_H +#define GAMEPLAY_KEEP_ROCK_FRAGMENTS_MODEL_H + +#include "ultra64.h" + +extern Vtx gUnusedRockFragmentVtx[]; +extern Gfx gUnusedRockFragmentDL[32]; +extern Gfx gBoulderFragmentsDL[27]; +extern Vtx gBoulderFragmentsVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/rock_fragments_tex.c b/assets/objects/gameplay_keep/rock_fragments_tex.c new file mode 100644 index 0000000000..c548202352 --- /dev/null +++ b/assets/objects/gameplay_keep/rock_fragments_tex.c @@ -0,0 +1,9 @@ +#include "rock_fragments_tex.h" + +u64 gRockFragment1Tex[TEX_LEN(u64, gRockFragment1Tex_WIDTH, gRockFragment1Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRockFragment1Tex.rgba16.inc.c" +}; + +u64 gRockFragment2Tex[TEX_LEN(u64, gRockFragment2Tex_WIDTH, gRockFragment2Tex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRockFragment2Tex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/rock_fragments_tex.h b/assets/objects/gameplay_keep/rock_fragments_tex.h new file mode 100644 index 0000000000..3f32acc42c --- /dev/null +++ b/assets/objects/gameplay_keep/rock_fragments_tex.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_ROCK_FRAGMENTS_TEX_H +#define GAMEPLAY_KEEP_ROCK_FRAGMENTS_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gRockFragment1Tex_WIDTH 32 +#define gRockFragment1Tex_HEIGHT 32 +extern u64 gRockFragment1Tex[TEX_LEN(u64, gRockFragment1Tex_WIDTH, gRockFragment1Tex_HEIGHT, 16)]; +#define gRockFragment2Tex_WIDTH 32 +#define gRockFragment2Tex_HEIGHT 32 +extern u64 gRockFragment2Tex[TEX_LEN(u64, gRockFragment2Tex_WIDTH, gRockFragment2Tex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/rupee.c b/assets/objects/gameplay_keep/rupee.c new file mode 100644 index 0000000000..12cc880d93 --- /dev/null +++ b/assets/objects/gameplay_keep/rupee.c @@ -0,0 +1,35 @@ +#include "rupee.h" +#include "gfx.h" +#include "region.h" + +u64 gRupeeGreenTex[TEX_LEN(u64, gRupeeGreenTex_WIDTH, gRupeeGreenTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeeGreenTex.rgba16.inc.c" +}; + +u64 gRupeeBlueTex[TEX_LEN(u64, gRupeeBlueTex_WIDTH, gRupeeBlueTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeeBlueTex.rgba16.inc.c" +}; + +u64 gRupeeRedTex[TEX_LEN(u64, gRupeeRedTex_WIDTH, gRupeeRedTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeeRedTex.rgba16.inc.c" +}; + +u64 gRupeeOrangeTex[TEX_LEN(u64, gRupeeOrangeTex_WIDTH, gRupeeOrangeTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeeOrangeTex.rgba16.inc.c" +}; + +u64 gRupeePinkTex[TEX_LEN(u64, gRupeePinkTex_WIDTH, gRupeePinkTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeePinkTex.rgba16.inc.c" +}; + +u64 gRupeeSilverTex[TEX_LEN(u64, gRupeeSilverTex_WIDTH, gRupeeSilverTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeeSilverTex.rgba16.inc.c" +}; + +Vtx gRupeeVtx[] = { +#include "assets/objects/gameplay_keep/gRupeeVtx.inc.c" +}; + +Gfx gRupeeDL[26] = { +#include "assets/objects/gameplay_keep/gRupeeDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/rupee.h b/assets/objects/gameplay_keep/rupee.h new file mode 100644 index 0000000000..0502b50071 --- /dev/null +++ b/assets/objects/gameplay_keep/rupee.h @@ -0,0 +1,29 @@ +#ifndef GAMEPLAY_KEEP_RUPEE_H +#define GAMEPLAY_KEEP_RUPEE_H + +#include "tex_len.h" +#include "ultra64.h" +#include "region.h" + +#define gRupeeGreenTex_WIDTH 4 +#define gRupeeGreenTex_HEIGHT 4 +extern u64 gRupeeGreenTex[TEX_LEN(u64, gRupeeGreenTex_WIDTH, gRupeeGreenTex_HEIGHT, 16)]; +#define gRupeeBlueTex_WIDTH 4 +#define gRupeeBlueTex_HEIGHT 4 +extern u64 gRupeeBlueTex[TEX_LEN(u64, gRupeeBlueTex_WIDTH, gRupeeBlueTex_HEIGHT, 16)]; +#define gRupeeRedTex_WIDTH 4 +#define gRupeeRedTex_HEIGHT 4 +extern u64 gRupeeRedTex[TEX_LEN(u64, gRupeeRedTex_WIDTH, gRupeeRedTex_HEIGHT, 16)]; +#define gRupeeOrangeTex_WIDTH 4 +#define gRupeeOrangeTex_HEIGHT 4 +extern u64 gRupeeOrangeTex[TEX_LEN(u64, gRupeeOrangeTex_WIDTH, gRupeeOrangeTex_HEIGHT, 16)]; +#define gRupeePinkTex_WIDTH 4 +#define gRupeePinkTex_HEIGHT 4 +extern u64 gRupeePinkTex[TEX_LEN(u64, gRupeePinkTex_WIDTH, gRupeePinkTex_HEIGHT, 16)]; +#define gRupeeSilverTex_WIDTH 4 +#define gRupeeSilverTex_HEIGHT 4 +extern u64 gRupeeSilverTex[TEX_LEN(u64, gRupeeSilverTex_WIDTH, gRupeeSilverTex_HEIGHT, 16)]; +extern Vtx gRupeeVtx[]; +extern Gfx gRupeeDL[26]; + +#endif diff --git a/assets/objects/gameplay_keep/rupee_light_red_tex.c b/assets/objects/gameplay_keep/rupee_light_red_tex.c new file mode 100644 index 0000000000..a3210af872 --- /dev/null +++ b/assets/objects/gameplay_keep/rupee_light_red_tex.c @@ -0,0 +1,5 @@ +#include "rupee_light_red_tex.h" + +u64 gRupeeLightRedTex[TEX_LEN(u64, gRupeeLightRedTex_WIDTH, gRupeeLightRedTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gRupeeLightRedTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/rupee_light_red_tex.h b/assets/objects/gameplay_keep/rupee_light_red_tex.h new file mode 100644 index 0000000000..e668f72e80 --- /dev/null +++ b/assets/objects/gameplay_keep/rupee_light_red_tex.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_RUPEE_LIGHT_RED_TEX_H +#define GAMEPLAY_KEEP_RUPEE_LIGHT_RED_TEX_H + +#include "tex_len.h" +#include "ultra64.h" +#include "region.h" + +#define gRupeeLightRedTex_WIDTH 4 +#define gRupeeLightRedTex_HEIGHT 4 +extern u64 gRupeeLightRedTex[TEX_LEN(u64, gRupeeLightRedTex_WIDTH, gRupeeLightRedTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/shadow_circle.c b/assets/objects/gameplay_keep/shadow_circle.c new file mode 100644 index 0000000000..a8bb184cd4 --- /dev/null +++ b/assets/objects/gameplay_keep/shadow_circle.c @@ -0,0 +1,14 @@ +#include "shadow_circle.h" +#include "gfx.h" + +Gfx gCircleShadowDL[10] = { +#include "assets/objects/gameplay_keep/gCircleShadowDL.inc.c" +}; + +Vtx gCircleShadowVtx[] = { +#include "assets/objects/gameplay_keep/gCircleShadowVtx.inc.c" +}; + +u64 gCircleShadowTex[TEX_LEN(u64, gCircleShadowTex_WIDTH, gCircleShadowTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gCircleShadowTex.ia16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/shadow_circle.h b/assets/objects/gameplay_keep/shadow_circle.h new file mode 100644 index 0000000000..c7ee59b6e5 --- /dev/null +++ b/assets/objects/gameplay_keep/shadow_circle.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_SHADOW_CIRCLE_H +#define GAMEPLAY_KEEP_SHADOW_CIRCLE_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Gfx gCircleShadowDL[10]; +extern Vtx gCircleShadowVtx[]; +#define gCircleShadowTex_WIDTH 32 +#define gCircleShadowTex_HEIGHT 32 +extern u64 gCircleShadowTex[TEX_LEN(u64, gCircleShadowTex_WIDTH, gCircleShadowTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/shadow_foot.c b/assets/objects/gameplay_keep/shadow_foot.c new file mode 100644 index 0000000000..85209d0bf4 --- /dev/null +++ b/assets/objects/gameplay_keep/shadow_foot.c @@ -0,0 +1,14 @@ +#include "shadow_foot.h" +#include "gfx.h" + +Gfx gFootShadowDL[12] = { +#include "assets/objects/gameplay_keep/gFootShadowDL.inc.c" +}; + +Vtx gFootShadowVtx[] = { +#include "assets/objects/gameplay_keep/gFootShadowVtx.inc.c" +}; + +u64 gFootShadowTex[TEX_LEN(u64, gFootShadowTex_WIDTH, gFootShadowTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gFootShadowTex.ia16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/shadow_foot.h b/assets/objects/gameplay_keep/shadow_foot.h new file mode 100644 index 0000000000..f6f10f3a43 --- /dev/null +++ b/assets/objects/gameplay_keep/shadow_foot.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_SHADOW_FOOT_H +#define GAMEPLAY_KEEP_SHADOW_FOOT_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Gfx gFootShadowDL[12]; +extern Vtx gFootShadowVtx[]; +#define gFootShadowTex_WIDTH 32 +#define gFootShadowTex_HEIGHT 64 +extern u64 gFootShadowTex[TEX_LEN(u64, gFootShadowTex_WIDTH, gFootShadowTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/shadow_horse.c b/assets/objects/gameplay_keep/shadow_horse.c new file mode 100644 index 0000000000..0b79b2c212 --- /dev/null +++ b/assets/objects/gameplay_keep/shadow_horse.c @@ -0,0 +1,14 @@ +#include "shadow_horse.h" +#include "gfx.h" + +Vtx gHorseShadowVtx[] = { +#include "assets/objects/gameplay_keep/gHorseShadowVtx.inc.c" +}; + +Gfx gHorseShadowDL[10] = { +#include "assets/objects/gameplay_keep/gHorseShadowDL.inc.c" +}; + +u64 gHorseShadowTex[TEX_LEN(u64, gHorseShadowTex_WIDTH, gHorseShadowTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gHorseShadowTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/shadow_horse.h b/assets/objects/gameplay_keep/shadow_horse.h new file mode 100644 index 0000000000..1bfe1416d7 --- /dev/null +++ b/assets/objects/gameplay_keep/shadow_horse.h @@ -0,0 +1,13 @@ +#ifndef GAMEPLAY_KEEP_SHADOW_HORSE_H +#define GAMEPLAY_KEEP_SHADOW_HORSE_H + +#include "tex_len.h" +#include "ultra64.h" + +extern Vtx gHorseShadowVtx[]; +extern Gfx gHorseShadowDL[10]; +#define gHorseShadowTex_WIDTH 16 +#define gHorseShadowTex_HEIGHT 64 +extern u64 gHorseShadowTex[TEX_LEN(u64, gHorseShadowTex_WIDTH, gHorseShadowTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/shopkeeper_controls_tex.c b/assets/objects/gameplay_keep/shopkeeper_controls_tex.c new file mode 100644 index 0000000000..b6a072accc --- /dev/null +++ b/assets/objects/gameplay_keep/shopkeeper_controls_tex.c @@ -0,0 +1,14 @@ +#include "shopkeeper_controls_tex.h" +#include "region.h" + +u64 gSelectionCursorTex[TEX_LEN(u64, gSelectionCursorTex_WIDTH, gSelectionCursorTex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSelectionCursorTex.ia4.inc.c" +}; + +u64 gControlStickTex[TEX_LEN(u64, gControlStickTex_WIDTH, gControlStickTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gControlStickTex.ia8.inc.c" +}; + +u64 gArrowCursorTex[TEX_LEN(u64, gArrowCursorTex_WIDTH, gArrowCursorTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gArrowCursorTex.ia8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/shopkeeper_controls_tex.h b/assets/objects/gameplay_keep/shopkeeper_controls_tex.h new file mode 100644 index 0000000000..65b7403588 --- /dev/null +++ b/assets/objects/gameplay_keep/shopkeeper_controls_tex.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_SHOPKEEPER_CONTROLS_TEX_H +#define GAMEPLAY_KEEP_SHOPKEEPER_CONTROLS_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gSelectionCursorTex_WIDTH 16 +#define gSelectionCursorTex_HEIGHT 16 +extern u64 gSelectionCursorTex[TEX_LEN(u64, gSelectionCursorTex_WIDTH, gSelectionCursorTex_HEIGHT, 4)]; +#define gControlStickTex_WIDTH 16 +#define gControlStickTex_HEIGHT 16 +extern u64 gControlStickTex[TEX_LEN(u64, gControlStickTex_WIDTH, gControlStickTex_HEIGHT, 8)]; +#define gArrowCursorTex_WIDTH 16 +#define gArrowCursorTex_HEIGHT 24 +extern u64 gArrowCursorTex[TEX_LEN(u64, gArrowCursorTex_WIDTH, gArrowCursorTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/sign_textures.c b/assets/objects/gameplay_keep/sign_textures.c new file mode 100644 index 0000000000..ec64664725 --- /dev/null +++ b/assets/objects/gameplay_keep/sign_textures.c @@ -0,0 +1,17 @@ +#include "sign_textures.h" + +u64 gSignRectangularSideTex[TEX_LEN(u64, gSignRectangularSideTex_WIDTH, gSignRectangularSideTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gSignRectangularSideTex.rgba16.inc.c" +}; + +u64 gSignRectangularFrontTex[TEX_LEN(u64, gSignRectangularFrontTex_WIDTH, gSignRectangularFrontTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gSignRectangularFrontTex.rgba16.inc.c" +}; + +u64 gSignPostWoodTex[TEX_LEN(u64, gSignPostWoodTex_WIDTH, gSignPostWoodTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gSignPostWoodTex.rgba16.inc.c" +}; + +u64 gSignLetteringTex[TEX_LEN(u64, gSignLetteringTex_WIDTH, gSignLetteringTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gSignLetteringTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/sign_textures.h b/assets/objects/gameplay_keep/sign_textures.h new file mode 100644 index 0000000000..e8137083b5 --- /dev/null +++ b/assets/objects/gameplay_keep/sign_textures.h @@ -0,0 +1,20 @@ +#ifndef GAMEPLAY_KEEP_SIGN_TEXTURES_H +#define GAMEPLAY_KEEP_SIGN_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gSignRectangularSideTex_WIDTH 32 +#define gSignRectangularSideTex_HEIGHT 16 +extern u64 gSignRectangularSideTex[TEX_LEN(u64, gSignRectangularSideTex_WIDTH, gSignRectangularSideTex_HEIGHT, 16)]; +#define gSignRectangularFrontTex_WIDTH 32 +#define gSignRectangularFrontTex_HEIGHT 16 +extern u64 gSignRectangularFrontTex[TEX_LEN(u64, gSignRectangularFrontTex_WIDTH, gSignRectangularFrontTex_HEIGHT, 16)]; +#define gSignPostWoodTex_WIDTH 64 +#define gSignPostWoodTex_HEIGHT 8 +extern u64 gSignPostWoodTex[TEX_LEN(u64, gSignPostWoodTex_WIDTH, gSignPostWoodTex_HEIGHT, 16)]; +#define gSignLetteringTex_WIDTH 64 +#define gSignLetteringTex_HEIGHT 32 +extern u64 gSignLetteringTex[TEX_LEN(u64, gSignLetteringTex_WIDTH, gSignLetteringTex_HEIGHT, 16)]; + +#endif diff --git a/assets/objects/gameplay_keep/small_cube_col.c b/assets/objects/gameplay_keep/small_cube_col.c new file mode 100644 index 0000000000..8f590f0037 --- /dev/null +++ b/assets/objects/gameplay_keep/small_cube_col.c @@ -0,0 +1,23 @@ +#include "small_cube_col.h" +#include "array_count.h" +#include "camera.h" + +BgCamInfo gSmallerCubeBgCamList[] = { +#include "assets/objects/gameplay_keep/gSmallerCubeBgCamList.inc.c" +}; + +SurfaceType gSmallerCubeSurfaceTypes[] = { +#include "assets/objects/gameplay_keep/gSmallerCubeSurfaceTypes.inc.c" +}; + +CollisionPoly gSmallerCubePolyList[] = { +#include "assets/objects/gameplay_keep/gSmallerCubePolyList.inc.c" +}; + +Vec3s gSmallerCubeVtxList[] = { +#include "assets/objects/gameplay_keep/gSmallerCubeVtxList.inc.c" +}; + +CollisionHeader gSmallerCubeCol = { +#include "assets/objects/gameplay_keep/gSmallerCubeCol.inc.c" +}; diff --git a/assets/objects/gameplay_keep/small_cube_col.h b/assets/objects/gameplay_keep/small_cube_col.h new file mode 100644 index 0000000000..2988eaa6fd --- /dev/null +++ b/assets/objects/gameplay_keep/small_cube_col.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_SMALL_CUBE_COL_H +#define GAMEPLAY_KEEP_SMALL_CUBE_COL_H + +#include "bgcheck.h" + +extern BgCamInfo gSmallerCubeBgCamList[]; +extern SurfaceType gSmallerCubeSurfaceTypes[]; +extern CollisionPoly gSmallerCubePolyList[]; +extern Vec3s gSmallerCubeVtxList[]; +extern CollisionHeader gSmallerCubeCol; + +#endif diff --git a/assets/objects/gameplay_keep/small_cube_model.c b/assets/objects/gameplay_keep/small_cube_model.c new file mode 100644 index 0000000000..364c3398ef --- /dev/null +++ b/assets/objects/gameplay_keep/small_cube_model.c @@ -0,0 +1,11 @@ +#include "small_cube_model.h" +#include "gameplay_keep_0x42530.h" +#include "gfx.h" + +Vtx gSmallCubeVtx[] = { +#include "assets/objects/gameplay_keep/gSmallCubeVtx.inc.c" +}; + +Gfx gSmallCubeDL[23] = { +#include "assets/objects/gameplay_keep/gSmallCubeDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/small_cube_model.h b/assets/objects/gameplay_keep/small_cube_model.h new file mode 100644 index 0000000000..be45b4e476 --- /dev/null +++ b/assets/objects/gameplay_keep/small_cube_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_SMALL_CUBE_MODEL_H +#define GAMEPLAY_KEEP_SMALL_CUBE_MODEL_H + +#include "ultra64.h" + +extern Vtx gSmallCubeVtx[]; +extern Gfx gSmallCubeDL[23]; + +#endif diff --git a/assets/objects/gameplay_keep/small_flat_block_col.c b/assets/objects/gameplay_keep/small_flat_block_col.c new file mode 100644 index 0000000000..63ed9b2ebb --- /dev/null +++ b/assets/objects/gameplay_keep/small_flat_block_col.c @@ -0,0 +1,23 @@ +#include "small_flat_block_col.h" +#include "array_count.h" +#include "camera.h" + +BgCamInfo gSmallerFlatBlockBgCamList[] = { +#include "assets/objects/gameplay_keep/gSmallerFlatBlockBgCamList.inc.c" +}; + +SurfaceType gSmallerFlatBlockSurfaceTypes[] = { +#include "assets/objects/gameplay_keep/gSmallerFlatBlockSurfaceTypes.inc.c" +}; + +CollisionPoly gSmallerFlatBlockPolyList[] = { +#include "assets/objects/gameplay_keep/gSmallerFlatBlockPolyList.inc.c" +}; + +Vec3s gSmallerFlatBlockVtxList[] = { +#include "assets/objects/gameplay_keep/gSmallerFlatBlockVtxList.inc.c" +}; + +CollisionHeader gSmallerFlatBlockCol = { +#include "assets/objects/gameplay_keep/gSmallerFlatBlockCol.inc.c" +}; diff --git a/assets/objects/gameplay_keep/small_flat_block_col.h b/assets/objects/gameplay_keep/small_flat_block_col.h new file mode 100644 index 0000000000..6d91254950 --- /dev/null +++ b/assets/objects/gameplay_keep/small_flat_block_col.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_SMALL_FLAT_BLOCK_COL_H +#define GAMEPLAY_KEEP_SMALL_FLAT_BLOCK_COL_H + +#include "bgcheck.h" + +extern BgCamInfo gSmallerFlatBlockBgCamList[]; +extern SurfaceType gSmallerFlatBlockSurfaceTypes[]; +extern CollisionPoly gSmallerFlatBlockPolyList[]; +extern Vec3s gSmallerFlatBlockVtxList[]; +extern CollisionHeader gSmallerFlatBlockCol; + +#endif diff --git a/assets/objects/gameplay_keep/spin_attack.c b/assets/objects/gameplay_keep/spin_attack.c new file mode 100644 index 0000000000..0151e94750 --- /dev/null +++ b/assets/objects/gameplay_keep/spin_attack.c @@ -0,0 +1,58 @@ +#include "spin_attack.h" +#include "gfx.h" + +u64 gSpinAttackFireTex[TEX_LEN(u64, gSpinAttackFireTex_WIDTH, gSpinAttackFireTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gSpinAttackFireTex.i8.inc.c" +}; + +u64 gSpinAttackMagicTex[TEX_LEN(u64, gSpinAttackMagicTex_WIDTH, gSpinAttackMagicTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gSpinAttackMagicTex.i8.inc.c" +}; + +Vtx gSpinAttack1Vtx[] = { +#include "assets/objects/gameplay_keep/gSpinAttack1Vtx.inc.c" +}; + +Vtx gSpinAttack2Vtx[] = { +#include "assets/objects/gameplay_keep/gSpinAttack2Vtx.inc.c" +}; + +Gfx gSpinAttack1DL[36] = { +#include "assets/objects/gameplay_keep/gSpinAttack1DL.inc.c" +}; + +Gfx gSpinAttack2DL[36] = { +#include "assets/objects/gameplay_keep/gSpinAttack2DL.inc.c" +}; + +Vtx gSpinAttack3Vtx[] = { +#include "assets/objects/gameplay_keep/gSpinAttack3Vtx.inc.c" +}; + +Vtx gSpinAttack4Vtx[] = { +#include "assets/objects/gameplay_keep/gSpinAttack4Vtx.inc.c" +}; + +Gfx gSpinAttack3DL[36] = { +#include "assets/objects/gameplay_keep/gSpinAttack3DL.inc.c" +}; + +Gfx gSpinAttack4DL[36] = { +#include "assets/objects/gameplay_keep/gSpinAttack4DL.inc.c" +}; + +u64 gSpinAttackCharging1Tex[TEX_LEN(u64, gSpinAttackCharging1Tex_WIDTH, gSpinAttackCharging1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gSpinAttackCharging1Tex.i8.inc.c" +}; + +u64 gSpinAttackCharging2Tex[TEX_LEN(u64, gSpinAttackCharging2Tex_WIDTH, gSpinAttackCharging2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gSpinAttackCharging2Tex.i8.inc.c" +}; + +Vtx gSpinAttackChargingVtx[] = { +#include "assets/objects/gameplay_keep/gSpinAttackChargingVtx.inc.c" +}; + +Gfx gSpinAttackChargingDL[29] = { +#include "assets/objects/gameplay_keep/gSpinAttackChargingDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/spin_attack.h b/assets/objects/gameplay_keep/spin_attack.h new file mode 100644 index 0000000000..39fc727cd3 --- /dev/null +++ b/assets/objects/gameplay_keep/spin_attack.h @@ -0,0 +1,30 @@ +#ifndef GAMEPLAY_KEEP_SPIN_ATTACK_H +#define GAMEPLAY_KEEP_SPIN_ATTACK_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gSpinAttackFireTex_WIDTH 64 +#define gSpinAttackFireTex_HEIGHT 32 +extern u64 gSpinAttackFireTex[TEX_LEN(u64, gSpinAttackFireTex_WIDTH, gSpinAttackFireTex_HEIGHT, 8)]; +#define gSpinAttackMagicTex_WIDTH 64 +#define gSpinAttackMagicTex_HEIGHT 32 +extern u64 gSpinAttackMagicTex[TEX_LEN(u64, gSpinAttackMagicTex_WIDTH, gSpinAttackMagicTex_HEIGHT, 8)]; +extern Vtx gSpinAttack1Vtx[]; +extern Vtx gSpinAttack2Vtx[]; +extern Gfx gSpinAttack1DL[36]; +extern Gfx gSpinAttack2DL[36]; +extern Vtx gSpinAttack3Vtx[]; +extern Vtx gSpinAttack4Vtx[]; +extern Gfx gSpinAttack3DL[36]; +extern Gfx gSpinAttack4DL[36]; +#define gSpinAttackCharging1Tex_WIDTH 32 +#define gSpinAttackCharging1Tex_HEIGHT 32 +extern u64 gSpinAttackCharging1Tex[TEX_LEN(u64, gSpinAttackCharging1Tex_WIDTH, gSpinAttackCharging1Tex_HEIGHT, 8)]; +#define gSpinAttackCharging2Tex_WIDTH 32 +#define gSpinAttackCharging2Tex_HEIGHT 32 +extern u64 gSpinAttackCharging2Tex[TEX_LEN(u64, gSpinAttackCharging2Tex_WIDTH, gSpinAttackCharging2Tex_HEIGHT, 8)]; +extern Vtx gSpinAttackChargingVtx[]; +extern Gfx gSpinAttackChargingDL[29]; + +#endif diff --git a/assets/objects/gameplay_keep/sun_evening_textures.c b/assets/objects/gameplay_keep/sun_evening_textures.c new file mode 100644 index 0000000000..1d8791c927 --- /dev/null +++ b/assets/objects/gameplay_keep/sun_evening_textures.c @@ -0,0 +1,15 @@ +#include "sun_evening_textures.h" + +u64 gSunEvening1Tex[TEX_LEN(u64, gSunEvening1Tex_WIDTH, gSunEvening1Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSunEvening1Tex.i4.inc.c" +}; + +u64 gSunEvening2Tex[TEX_LEN(u64, gSunEvening2Tex_WIDTH, gSunEvening2Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSunEvening2Tex.i4.inc.c" +}; + +u64 gSunEvening3Tex[TEX_LEN(u64, gSunEvening3Tex_WIDTH, gSunEvening3Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSunEvening3Tex.i4.inc.c" +}; + +u8 gameplay_keep_zeros_04D140[32] = { 0 }; diff --git a/assets/objects/gameplay_keep/sun_evening_textures.h b/assets/objects/gameplay_keep/sun_evening_textures.h new file mode 100644 index 0000000000..bfc5525a11 --- /dev/null +++ b/assets/objects/gameplay_keep/sun_evening_textures.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_SUN_EVENING_TEXTURES_H +#define GAMEPLAY_KEEP_SUN_EVENING_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gSunEvening1Tex_WIDTH 64 +#define gSunEvening1Tex_HEIGHT 31 +extern u64 gSunEvening1Tex[TEX_LEN(u64, gSunEvening1Tex_WIDTH, gSunEvening1Tex_HEIGHT, 4)]; +#define gSunEvening2Tex_WIDTH 64 +#define gSunEvening2Tex_HEIGHT 16 +extern u64 gSunEvening2Tex[TEX_LEN(u64, gSunEvening2Tex_WIDTH, gSunEvening2Tex_HEIGHT, 4)]; +#define gSunEvening3Tex_WIDTH 64 +#define gSunEvening3Tex_HEIGHT 16 +extern u64 gSunEvening3Tex[TEX_LEN(u64, gSunEvening3Tex_WIDTH, gSunEvening3Tex_HEIGHT, 4)]; + +#endif diff --git a/assets/objects/gameplay_keep/sun_textures.c b/assets/objects/gameplay_keep/sun_textures.c new file mode 100644 index 0000000000..3e07774fb5 --- /dev/null +++ b/assets/objects/gameplay_keep/sun_textures.c @@ -0,0 +1,15 @@ +#include "sun_textures.h" + +u64 gSun1Tex[TEX_LEN(u64, gSun1Tex_WIDTH, gSun1Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSun1Tex.i4.inc.c" +}; + +u64 gSun2Tex[TEX_LEN(u64, gSun2Tex_WIDTH, gSun2Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSun2Tex.i4.inc.c" +}; + +u64 gSun3Tex[TEX_LEN(u64, gSun3Tex_WIDTH, gSun3Tex_HEIGHT, 4)] = { +#include "assets/objects/gameplay_keep/gSun3Tex.i4.inc.c" +}; + +u8 gameplay_keep_zeros_04C940[32] = { 0 }; diff --git a/assets/objects/gameplay_keep/sun_textures.h b/assets/objects/gameplay_keep/sun_textures.h new file mode 100644 index 0000000000..4c4e61823d --- /dev/null +++ b/assets/objects/gameplay_keep/sun_textures.h @@ -0,0 +1,17 @@ +#ifndef GAMEPLAY_KEEP_SUN_TEXTURES_H +#define GAMEPLAY_KEEP_SUN_TEXTURES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gSun1Tex_WIDTH 64 +#define gSun1Tex_HEIGHT 31 +extern u64 gSun1Tex[TEX_LEN(u64, gSun1Tex_WIDTH, gSun1Tex_HEIGHT, 4)]; +#define gSun2Tex_WIDTH 64 +#define gSun2Tex_HEIGHT 16 +extern u64 gSun2Tex[TEX_LEN(u64, gSun2Tex_WIDTH, gSun2Tex_HEIGHT, 4)]; +#define gSun3Tex_WIDTH 64 +#define gSun3Tex_HEIGHT 16 +extern u64 gSun3Tex[TEX_LEN(u64, gSun3Tex_WIDTH, gSun3Tex_HEIGHT, 4)]; + +#endif diff --git a/assets/objects/gameplay_keep/tree_stump_model.c b/assets/objects/gameplay_keep/tree_stump_model.c new file mode 100644 index 0000000000..a3456d62c7 --- /dev/null +++ b/assets/objects/gameplay_keep/tree_stump_model.c @@ -0,0 +1,11 @@ +#include "tree_stump_model.h" +#include "gameplay_keep_0x43530.h" +#include "gfx.h" + +Vtx gTreeStumpVtx[] = { +#include "assets/objects/gameplay_keep/gTreeStumpVtx.inc.c" +}; + +Gfx gTreeStumpDL[34] = { +#include "assets/objects/gameplay_keep/gTreeStumpDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/tree_stump_model.h b/assets/objects/gameplay_keep/tree_stump_model.h new file mode 100644 index 0000000000..818baf4cad --- /dev/null +++ b/assets/objects/gameplay_keep/tree_stump_model.h @@ -0,0 +1,9 @@ +#ifndef GAMEPLAY_KEEP_TREE_STUMP_MODEL_H +#define GAMEPLAY_KEEP_TREE_STUMP_MODEL_H + +#include "ultra64.h" + +extern Vtx gTreeStumpVtx[]; +extern Gfx gTreeStumpDL[34]; + +#endif diff --git a/assets/objects/gameplay_keep/unk_eff_blure_tex.c b/assets/objects/gameplay_keep/unk_eff_blure_tex.c new file mode 100644 index 0000000000..e6443d1bd5 --- /dev/null +++ b/assets/objects/gameplay_keep/unk_eff_blure_tex.c @@ -0,0 +1,5 @@ +#include "unk_eff_blure_tex.h" + +u64 gUnknownEffBlureTex[TEX_LEN(u64, gUnknownEffBlureTex_WIDTH, gUnknownEffBlureTex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffBlureTex.i8.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unk_eff_blure_tex.h b/assets/objects/gameplay_keep/unk_eff_blure_tex.h new file mode 100644 index 0000000000..6734cceb31 --- /dev/null +++ b/assets/objects/gameplay_keep/unk_eff_blure_tex.h @@ -0,0 +1,11 @@ +#ifndef GAMEPLAY_KEEP_UNK_EFF_BLURE_TEX_H +#define GAMEPLAY_KEEP_UNK_EFF_BLURE_TEX_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownEffBlureTex_WIDTH 64 +#define gUnknownEffBlureTex_HEIGHT 32 +extern u64 gUnknownEffBlureTex[TEX_LEN(u64, gUnknownEffBlureTex_WIDTH, gUnknownEffBlureTex_HEIGHT, 8)]; + +#endif diff --git a/assets/objects/gameplay_keep/unknown_eff_stone.c b/assets/objects/gameplay_keep/unknown_eff_stone.c new file mode 100644 index 0000000000..30c5487a79 --- /dev/null +++ b/assets/objects/gameplay_keep/unknown_eff_stone.c @@ -0,0 +1,42 @@ +#include "unknown_eff_stone.h" +#include "gfx.h" + +u64 gUnknownEffStone1Tex[TEX_LEN(u64, gUnknownEffStone1Tex_WIDTH, gUnknownEffStone1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone1Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone2Tex[TEX_LEN(u64, gUnknownEffStone2Tex_WIDTH, gUnknownEffStone2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone2Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone3Tex[TEX_LEN(u64, gUnknownEffStone3Tex_WIDTH, gUnknownEffStone3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone3Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone4Tex[TEX_LEN(u64, gUnknownEffStone4Tex_WIDTH, gUnknownEffStone4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone4Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone5Tex[TEX_LEN(u64, gUnknownEffStone5Tex_WIDTH, gUnknownEffStone5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone5Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone6Tex[TEX_LEN(u64, gUnknownEffStone6Tex_WIDTH, gUnknownEffStone6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone6Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone7Tex[TEX_LEN(u64, gUnknownEffStone7Tex_WIDTH, gUnknownEffStone7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone7Tex.ia8.inc.c" +}; + +u64 gUnknownEffStone8Tex[TEX_LEN(u64, gUnknownEffStone8Tex_WIDTH, gUnknownEffStone8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gUnknownEffStone8Tex.ia8.inc.c" +}; + +Gfx gUnknownEffStoneDL[12] = { +#include "assets/objects/gameplay_keep/gUnknownEffStoneDL.inc.c" +}; + +Vtx gUnknownEffStoneVtx[] = { +#include "assets/objects/gameplay_keep/gUnknownEffStoneVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unknown_eff_stone.h b/assets/objects/gameplay_keep/unknown_eff_stone.h new file mode 100644 index 0000000000..78deb0f9e8 --- /dev/null +++ b/assets/objects/gameplay_keep/unknown_eff_stone.h @@ -0,0 +1,34 @@ +#ifndef GAMEPLAY_KEEP_UNKNOWN_EFF_STONE_H +#define GAMEPLAY_KEEP_UNKNOWN_EFF_STONE_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gUnknownEffStone1Tex_WIDTH 32 +#define gUnknownEffStone1Tex_HEIGHT 32 +extern u64 gUnknownEffStone1Tex[TEX_LEN(u64, gUnknownEffStone1Tex_WIDTH, gUnknownEffStone1Tex_HEIGHT, 8)]; +#define gUnknownEffStone2Tex_WIDTH 32 +#define gUnknownEffStone2Tex_HEIGHT 32 +extern u64 gUnknownEffStone2Tex[TEX_LEN(u64, gUnknownEffStone2Tex_WIDTH, gUnknownEffStone2Tex_HEIGHT, 8)]; +#define gUnknownEffStone3Tex_WIDTH 32 +#define gUnknownEffStone3Tex_HEIGHT 32 +extern u64 gUnknownEffStone3Tex[TEX_LEN(u64, gUnknownEffStone3Tex_WIDTH, gUnknownEffStone3Tex_HEIGHT, 8)]; +#define gUnknownEffStone4Tex_WIDTH 32 +#define gUnknownEffStone4Tex_HEIGHT 32 +extern u64 gUnknownEffStone4Tex[TEX_LEN(u64, gUnknownEffStone4Tex_WIDTH, gUnknownEffStone4Tex_HEIGHT, 8)]; +#define gUnknownEffStone5Tex_WIDTH 32 +#define gUnknownEffStone5Tex_HEIGHT 32 +extern u64 gUnknownEffStone5Tex[TEX_LEN(u64, gUnknownEffStone5Tex_WIDTH, gUnknownEffStone5Tex_HEIGHT, 8)]; +#define gUnknownEffStone6Tex_WIDTH 32 +#define gUnknownEffStone6Tex_HEIGHT 32 +extern u64 gUnknownEffStone6Tex[TEX_LEN(u64, gUnknownEffStone6Tex_WIDTH, gUnknownEffStone6Tex_HEIGHT, 8)]; +#define gUnknownEffStone7Tex_WIDTH 32 +#define gUnknownEffStone7Tex_HEIGHT 32 +extern u64 gUnknownEffStone7Tex[TEX_LEN(u64, gUnknownEffStone7Tex_WIDTH, gUnknownEffStone7Tex_HEIGHT, 8)]; +#define gUnknownEffStone8Tex_WIDTH 32 +#define gUnknownEffStone8Tex_HEIGHT 32 +extern u64 gUnknownEffStone8Tex[TEX_LEN(u64, gUnknownEffStone8Tex_WIDTH, gUnknownEffStone8Tex_HEIGHT, 8)]; +extern Gfx gUnknownEffStoneDL[12]; +extern Vtx gUnknownEffStoneVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.c b/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.c new file mode 100644 index 0000000000..bf1ec33d42 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.c @@ -0,0 +1,11 @@ +#include "unused_arrow_icon_model_ntsc.h" +#include "item_drops_ntsc.h" +#include "gfx.h" + +Vtx gUnusedArrowIconVtx[] = { +#include "assets/objects/gameplay_keep/gUnusedArrowIconVtx.inc.c" +}; + +Gfx gUnusedArrowIconDL[17] = { +#include "assets/objects/gameplay_keep/gUnusedArrowIconDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.h b/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.h new file mode 100644 index 0000000000..3a98bdfc86 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_UNUSED_ARROW_ICON_MODEL_NTSC_H +#define GAMEPLAY_KEEP_UNUSED_ARROW_ICON_MODEL_NTSC_H + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gUnusedArrowIconVtx[]; +extern Gfx gUnusedArrowIconDL[17]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.c b/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.c new file mode 100644 index 0000000000..a2382e6ea6 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.c @@ -0,0 +1,11 @@ +#include "unused_bomb_icon_model_ntsc.h" +#include "item_drops_ntsc.h" +#include "gfx.h" + +Vtx gUnusedBombIconVtx[] = { +#include "assets/objects/gameplay_keep/gUnusedBombIconVtx.inc.c" +}; + +Gfx gUnusedBombIconDL[17] = { +#include "assets/objects/gameplay_keep/gUnusedBombIconDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.h b/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.h new file mode 100644 index 0000000000..c811b1c727 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_UNUSED_BOMB_ICON_MODEL_NTSC_H +#define GAMEPLAY_KEEP_UNUSED_BOMB_ICON_MODEL_NTSC_H + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gUnusedBombIconVtx[]; +extern Gfx gUnusedBombIconDL[17]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/unused_bubbles.c b/assets/objects/gameplay_keep/unused_bubbles.c new file mode 100644 index 0000000000..dcedf4f5e6 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_bubbles.c @@ -0,0 +1,42 @@ +#include "unused_bubbles.h" +#include "gfx.h" + +u64 gEffUnusedBubbles1Tex[TEX_LEN(u64, gEffUnusedBubbles1Tex_WIDTH, gEffUnusedBubbles1Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles1Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles2Tex[TEX_LEN(u64, gEffUnusedBubbles2Tex_WIDTH, gEffUnusedBubbles2Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles2Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles3Tex[TEX_LEN(u64, gEffUnusedBubbles3Tex_WIDTH, gEffUnusedBubbles3Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles3Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles4Tex[TEX_LEN(u64, gEffUnusedBubbles4Tex_WIDTH, gEffUnusedBubbles4Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles4Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles5Tex[TEX_LEN(u64, gEffUnusedBubbles5Tex_WIDTH, gEffUnusedBubbles5Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles5Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles6Tex[TEX_LEN(u64, gEffUnusedBubbles6Tex_WIDTH, gEffUnusedBubbles6Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles6Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles7Tex[TEX_LEN(u64, gEffUnusedBubbles7Tex_WIDTH, gEffUnusedBubbles7Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles7Tex.ia8.inc.c" +}; + +u64 gEffUnusedBubbles8Tex[TEX_LEN(u64, gEffUnusedBubbles8Tex_WIDTH, gEffUnusedBubbles8Tex_HEIGHT, 8)] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubbles8Tex.ia8.inc.c" +}; + +Gfx gEffUnusedBubblesDL[14] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubblesDL.inc.c" +}; + +Vtx gEffUnusedBubblesVtx[] = { +#include "assets/objects/gameplay_keep/gEffUnusedBubblesVtx.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unused_bubbles.h b/assets/objects/gameplay_keep/unused_bubbles.h new file mode 100644 index 0000000000..6f28bc1f90 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_bubbles.h @@ -0,0 +1,34 @@ +#ifndef GAMEPLAY_KEEP_UNUSED_BUBBLES_H +#define GAMEPLAY_KEEP_UNUSED_BUBBLES_H + +#include "tex_len.h" +#include "ultra64.h" + +#define gEffUnusedBubbles1Tex_WIDTH 32 +#define gEffUnusedBubbles1Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles1Tex[TEX_LEN(u64, gEffUnusedBubbles1Tex_WIDTH, gEffUnusedBubbles1Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles2Tex_WIDTH 32 +#define gEffUnusedBubbles2Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles2Tex[TEX_LEN(u64, gEffUnusedBubbles2Tex_WIDTH, gEffUnusedBubbles2Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles3Tex_WIDTH 32 +#define gEffUnusedBubbles3Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles3Tex[TEX_LEN(u64, gEffUnusedBubbles3Tex_WIDTH, gEffUnusedBubbles3Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles4Tex_WIDTH 32 +#define gEffUnusedBubbles4Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles4Tex[TEX_LEN(u64, gEffUnusedBubbles4Tex_WIDTH, gEffUnusedBubbles4Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles5Tex_WIDTH 32 +#define gEffUnusedBubbles5Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles5Tex[TEX_LEN(u64, gEffUnusedBubbles5Tex_WIDTH, gEffUnusedBubbles5Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles6Tex_WIDTH 32 +#define gEffUnusedBubbles6Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles6Tex[TEX_LEN(u64, gEffUnusedBubbles6Tex_WIDTH, gEffUnusedBubbles6Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles7Tex_WIDTH 32 +#define gEffUnusedBubbles7Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles7Tex[TEX_LEN(u64, gEffUnusedBubbles7Tex_WIDTH, gEffUnusedBubbles7Tex_HEIGHT, 8)]; +#define gEffUnusedBubbles8Tex_WIDTH 32 +#define gEffUnusedBubbles8Tex_HEIGHT 32 +extern u64 gEffUnusedBubbles8Tex[TEX_LEN(u64, gEffUnusedBubbles8Tex_WIDTH, gEffUnusedBubbles8Tex_HEIGHT, 8)]; +extern Gfx gEffUnusedBubblesDL[14]; +extern Vtx gEffUnusedBubblesVtx[]; + +#endif diff --git a/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.c b/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.c new file mode 100644 index 0000000000..0299b05ca9 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.c @@ -0,0 +1,11 @@ +#include "unused_heart_container_icon_model_ntsc.h" +#include "gameplay_keep_ntsc_0x46A40.h" +#include "gfx.h" + +Vtx gUnusedHeartContainerIconVtx[] = { +#include "assets/objects/gameplay_keep/gUnusedHeartContainerIconVtx.inc.c" +}; + +Gfx gUnusedHeartContainerIconDL[17] = { +#include "assets/objects/gameplay_keep/gUnusedHeartContainerIconDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.h b/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.h new file mode 100644 index 0000000000..4bc380b34a --- /dev/null +++ b/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_UNUSED_HEART_CONTAINER_ICON_MODEL_NTSC_H +#define GAMEPLAY_KEEP_UNUSED_HEART_CONTAINER_ICON_MODEL_NTSC_H + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gUnusedHeartContainerIconVtx[]; +extern Gfx gUnusedHeartContainerIconDL[17]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.c b/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.c new file mode 100644 index 0000000000..018bb9de95 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.c @@ -0,0 +1,11 @@ +#include "unused_heart_icon_model_ntsc.h" +#include "item_drops_ntsc.h" +#include "gfx.h" + +Vtx gUnusedHeartIconVtx[] = { +#include "assets/objects/gameplay_keep/gUnusedHeartIconVtx.inc.c" +}; + +Gfx gUnusedHeartIconDL[17] = { +#include "assets/objects/gameplay_keep/gUnusedHeartIconDL.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.h b/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.h new file mode 100644 index 0000000000..657a8f24ba --- /dev/null +++ b/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.h @@ -0,0 +1,12 @@ +#ifndef GAMEPLAY_KEEP_UNUSED_HEART_ICON_MODEL_NTSC_H +#define GAMEPLAY_KEEP_UNUSED_HEART_ICON_MODEL_NTSC_H + +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +extern Vtx gUnusedHeartIconVtx[]; +extern Gfx gUnusedHeartIconDL[17]; +#endif + +#endif diff --git a/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.c b/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.c new file mode 100644 index 0000000000..9b34ac2b27 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.c @@ -0,0 +1,5 @@ +#include "unused_heart_piece_icon_tex_ntsc.h" + +u64 gUnusedHeartPieceIconTex[TEX_LEN(u64, gUnusedHeartPieceIconTex_WIDTH, gUnusedHeartPieceIconTex_HEIGHT, 16)] = { +#include "assets/objects/gameplay_keep/gUnusedHeartPieceIconTex.rgba16.inc.c" +}; diff --git a/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.h b/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.h new file mode 100644 index 0000000000..ed4e24f0b2 --- /dev/null +++ b/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.h @@ -0,0 +1,14 @@ +#ifndef GAMEPLAY_KEEP_UNUSED_HEART_PIECE_ICON_TEX_NTSC_H +#define GAMEPLAY_KEEP_UNUSED_HEART_PIECE_ICON_TEX_NTSC_H + +#include "tex_len.h" +#include "ultra64.h" +#include "region.h" + +#if OOT_REGION != REGION_EU +#define gUnusedHeartPieceIconTex_WIDTH 32 +#define gUnusedHeartPieceIconTex_HEIGHT 32 +extern u64 gUnusedHeartPieceIconTex[TEX_LEN(u64, gUnusedHeartPieceIconTex_WIDTH, gUnusedHeartPieceIconTex_HEIGHT, 16)]; +#endif + +#endif diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml index ce2c7fb7d4..b8e20ab429 100644 --- a/assets/xml/objects/gameplay_keep.xml +++ b/assets/xml/objects/gameplay_keep.xml @@ -628,8 +628,8 @@ - - + + @@ -640,11 +640,11 @@ - - - - - + + + + + @@ -737,10 +737,10 @@ - - - - + + + + @@ -753,8 +753,8 @@ - - + + @@ -771,8 +771,8 @@ - - + + @@ -811,20 +811,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -836,26 +836,26 @@ - + - + - + - - - + + + - - - - - - + + + + + + @@ -1010,85 +1010,85 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1129,18 +1129,18 @@ - + - - + + - - + + - + @@ -1205,10 +1205,10 @@ - + - + @@ -1223,12 +1223,12 @@ - + - + @@ -1251,15 +1251,15 @@ - - - + + + - - + + diff --git a/assets/xml/objects/gameplay_keep_pal.xml b/assets/xml/objects/gameplay_keep_pal.xml index 9e792020bf..04387392fb 100644 --- a/assets/xml/objects/gameplay_keep_pal.xml +++ b/assets/xml/objects/gameplay_keep_pal.xml @@ -628,8 +628,8 @@ - - + + @@ -640,11 +640,11 @@ - - - - - + + + + + @@ -687,6 +687,7 @@ + @@ -728,10 +729,10 @@ - - - - + + + + @@ -744,8 +745,8 @@ - - + + @@ -762,8 +763,8 @@ - - + + @@ -802,20 +803,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -841,12 +842,12 @@ - - - - - - + + + + + + @@ -1001,85 +1002,85 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/spec b/spec/spec index fafd378adc..bb90b4ef15 100644 --- a/spec/spec +++ b/spec/spec @@ -3,6 +3,7 @@ */ #include "include/versions.h" +#include "include/region.h" beginseg name "makerom" @@ -996,7 +997,147 @@ beginseg name "gameplay_keep" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/hilite_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/link_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/player_pause_joint_tables.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/player_anim_headers.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/debug_models.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gArrow1_Anim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gArrow2_Anim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/arrow_skel.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unk_eff_blure_tex.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/bomb_body.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/bomb_cap.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/bombchu_body.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_bomb_explosion.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_fragments_1.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/boomerang.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/compass_arrow.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xC880.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/lock_on_arrow.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/hilite3_tex.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_fragments_2_model.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_ntsc_0xCE60.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/shopkeeper_controls_tex.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/rock_fragments_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/rock_fragments_tex.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/door_skel.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_dust.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_flash.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/spin_attack.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x13700.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/fairy_anim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/fairy_skel.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x16A50.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/hilite4_tex.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x173D0.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gFishOutOfWaterAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x18610.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gFishInWaterAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_shockwave.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_bubble.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_fire_footprint.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unused_bubbles.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/lens_mask_tex.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_hitmark.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x21810.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_magma_bubble.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_water_ripple.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_spark_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_water_splash.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unknown_eff_stone.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_lightning.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_enemy_death_flame.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x32090.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x33090.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_ice_fragments.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x33910.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gBugCrawlAnim.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/bug_skel.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/cuttable_shrub.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/lens_flare.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_sparkles.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/hover_boots_circle.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/moon.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x38FB0.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x39850.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unused_bomb_icon_model_ntsc.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unused_heart_icon_model_ntsc.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unused_arrow_icon_model_ntsc.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gLargerCubeCol.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/liftable_rock_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x39710.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gWideTallBlockCol.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/flat_block_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gTallBlockCol.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x39DF0.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/small_flat_block_col.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/flat_rot_block_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gLargerFlatBlockCol.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/small_cube_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/small_cube_col.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/tree_stump_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/grass_blades_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x3AC30.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/heart_piece_interior_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3C610.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unused_heart_container_icon_model_ntsc.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/rectangular_sign_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/directional_sign_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x3C870.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x3FD80.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/drop_recovery_heart_tex.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/unused_heart_piece_icon_tex_ntsc.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/item_drop_dl.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x3F140.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/rupee.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/item_drops_ntsc.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/rupee_light_red_tex.o" +#if OOT_REGION != REGION_EU + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_ntsc_0x46A40.o" +#endif + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x42530.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x43530.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x44530.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x45530.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x45D30.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/sign_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/raindrop_model.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/shadow_foot.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/shadow_circle.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/shadow_horse.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x49F20.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x4A090.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/sun_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/sun_evening_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x4D160.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/lock_on_reticle.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_fire.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x4E660.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x515B0.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/dust_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/circle_glow_textures.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/gameplay_keep_0x55DB0.o" + include "$(BUILD_DIR)/assets/objects/gameplay_keep/eff_spark_textures.o" number 4 endseg diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 7501925080..4a86cf25c5 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -31,7 +31,13 @@ #include "overlays/actors/ovl_Arms_Hook/z_arms_hook.h" #include "overlays/actors/ovl_En_Part/z_en_part.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" +#include "assets/objects/gameplay_keep/shadow_horse.h" +#include "assets/objects/gameplay_keep/shadow_foot.h" +#include "assets/objects/gameplay_keep/lock_on_reticle.h" +#include "assets/objects/gameplay_keep/lock_on_arrow.h" +#include "assets/objects/gameplay_keep/eff_flash.h" +#include "assets/objects/gameplay_keep/lens_mask_tex.h" #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_bdoor/object_bdoor.h" diff --git a/src/code/z_debug_display.c b/src/code/z_debug_display.c index 1481e22fe7..5f2131262e 100644 --- a/src/code/z_debug_display.c +++ b/src/code/z_debug_display.c @@ -4,7 +4,7 @@ #include "play_state.h" #include "debug_display.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/debug_models.h" typedef struct DebugDispObjectInfo { /* 0x00 */ s16 drawType; // indicates which draw function to use when displaying the object diff --git a/src/code/z_eff_blure.c b/src/code/z_eff_blure.c index a5df803229..fffef14751 100644 --- a/src/code/z_eff_blure.c +++ b/src/code/z_eff_blure.c @@ -9,7 +9,7 @@ #include "effect.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/unk_eff_blure_tex.h" void EffectBlure_AddVertex(EffectBlure* this, Vec3f* p1, Vec3f* p2) { EffectBlureElement* elem; diff --git a/src/code/z_eff_shield_particle.c b/src/code/z_eff_shield_particle.c index 051731fd87..f81d7d56c8 100644 --- a/src/code/z_eff_shield_particle.c +++ b/src/code/z_eff_shield_particle.c @@ -10,7 +10,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x38FB0.h" static Vtx sVertices[5] = { VTX(-32, -32, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF), diff --git a/src/code/z_eff_spark.c b/src/code/z_eff_spark.c index ae6a84c47d..9e02cbf4f8 100644 --- a/src/code/z_eff_spark.c +++ b/src/code/z_eff_spark.c @@ -9,7 +9,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x38FB0.h" // original name: "spark" void EffectSpark_Init(void* thisx, void* initParamsx) { diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 7b84c9bd38..e32c65a5b9 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -6,7 +6,18 @@ #include "z_lib.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gLargerCubeCol.h" +#include "assets/objects/gameplay_keep/small_flat_block_col.h" +#include "assets/objects/gameplay_keep/gLargerFlatBlockCol.h" +#include "assets/objects/gameplay_keep/small_cube_col.h" +#include "assets/objects/gameplay_keep/flat_block_model.h" +#include "assets/objects/gameplay_keep/flat_rot_block_model.h" +#include "assets/objects/gameplay_keep/small_cube_model.h" +#include "assets/objects/gameplay_keep/grass_blades_model.h" +#include "assets/objects/gameplay_keep/tree_stump_model.h" +#include "assets/objects/gameplay_keep/rectangular_sign_model.h" +#include "assets/objects/gameplay_keep/directional_sign_model.h" +#include "assets/objects/gameplay_keep/rock_fragments_model.h" #include "assets/objects/object_d_hsblock/object_d_hsblock.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 0a92bc66ce..3cddc6a9fd 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -19,7 +19,13 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/rupee.h" +#include "assets/objects/gameplay_keep/drop_recovery_heart_tex.h" +#include "assets/objects/gameplay_keep/item_drop_dl.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x3C870.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x3F140.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x3B1E0.h" +#include "assets/objects/gameplay_keep/heart_piece_interior_model.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-eu-mq-dbg:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128" \ "gc-us-mq:128 ique-cn:128 ntsc-1.0:128 ntsc-1.2:128" diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 5da43b4c22..5a944065b5 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -1,5 +1,5 @@ -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \ + "ique-cn:224 ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:240 pal-1.1:240" #include "libc64/qrand.h" #include "libu64/gfxprint.h" @@ -32,7 +32,12 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_lightning.h" +#include "assets/objects/gameplay_keep/eff_shockwave.h" +#include "assets/objects/gameplay_keep/raindrop_model.h" +#include "assets/objects/gameplay_keep/lens_flare.h" +#include "assets/objects/gameplay_keep/moon.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x4D160.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" typedef enum LightningBoltState { @@ -238,8 +243,8 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \ + "ique-cn:224 ntsc-1.0:208 ntsc-1.1:208 ntsc-1.2:208 pal-1.0:224 pal-1.1:224" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/code/z_lights.c b/src/code/z_lights.c index 4059faacaa..a2f3b39aa7 100644 --- a/src/code/z_lights.c +++ b/src/code/z_lights.c @@ -6,7 +6,7 @@ #include "light.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/fairy_skel.h" #define LIGHTS_BUFFER_SIZE 32 diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index c1bfd9e7c8..6624362288 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -17,7 +17,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/compass_arrow.h" #include "assets/textures/parameter_static/parameter_static.h" MapData* gMapData; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index d56eb84102..69d7b76d9e 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -13,7 +13,8 @@ #include "save.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/player_pause_joint_tables.h" +#include "assets/objects/gameplay_keep/player_anim_headers.h" #include "assets/objects/object_link_boy/object_link_boy.h" #include "assets/objects/object_link_child/object_link_child.h" diff --git a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c index cdda12ba15..f81b757a33 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c +++ b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c @@ -17,7 +17,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_haka_objects/object_haka_objects.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c index c86bc3abda..a1b2e46f76 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c +++ b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c @@ -17,7 +17,8 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fragments_2_model.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x173D0.h" #include "assets/objects/object_haka_objects/object_haka_objects.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c index 780f11f164..f9c3d10fd5 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c @@ -18,7 +18,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x173D0.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c index 1c6ca2164a..fd59ec7e57 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c @@ -19,7 +19,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x173D0.h" #include "assets/objects/object_hidan_objects/object_hidan_objects.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c index e06abd1114..613a1bf2ca 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c @@ -18,7 +18,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x49F20.h" #include "assets/objects/object_box/object_box.h" #include "assets/objects/object_mori_hineri1/object_mori_hineri1.h" #include "assets/objects/object_mori_hineri1a/object_mori_hineri1a.h" diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index 0c1ce9924d..ed0094b8b0 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -15,7 +15,7 @@ #include "light.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_syokudai/object_syokudai.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index 6bb72a6921..d3f827b696 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -19,7 +19,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_spot00_objects/object_spot00_objects.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index b1fffc4294..38b695cc06 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -30,7 +30,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_fd/object_fd.h" #define FLAGS \ diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 1cc37837f0..bfdad84ef8 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -31,8 +31,8 @@ #include "assets/objects/object_geff/object_geff.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \ - "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ique-cn:0 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index ec5ee705bf..07a89e6453 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -35,11 +35,14 @@ #include "save.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" +#include "assets/objects/gameplay_keep/eff_water_ripple.h" +#include "assets/objects/gameplay_keep/eff_shockwave.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_mo/object_mo.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:128" \ + "ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 23fccf40f3..f4cb18d303 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -30,10 +30,10 @@ #include "skin_matrix.h" #include "assets/objects/object_sst/object_sst.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x173D0.h" #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 pal-1.0:0 pal-1.1:0" + "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 49427c2096..e3de734e45 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -23,11 +23,11 @@ #include "save.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" #include "assets/objects/object_tw/object_tw.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:0 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" \ + "ique-cn:0 ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index afd2b6e50a..ed7821156e 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -26,7 +26,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h" #include "assets/objects/object_bv/object_bv.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:0" \ diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index 076c395093..bbc13c849b 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -23,7 +23,8 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_flash.h" +#include "assets/objects/gameplay_keep/fairy_skel.h" #include "assets/objects/object_demo_6k/object_demo_6k.h" #include "assets/objects/object_gnd_magic/object_gnd_magic.h" 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 b0594e2e53..0cfdf5835a 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -24,7 +24,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_flash.h" #include "assets/objects/object_efc_crystal_light/object_efc_crystal_light.h" #include "assets/objects/object_efc_fire_ball/object_efc_fire_ball.h" #include "assets/objects/object_efc_lgt_shower/object_efc_lgt_shower.h" 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 f12d54b9fc..088510d7a1 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -18,12 +18,14 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" +#include "assets/objects/gameplay_keep/eff_dust.h" +#include "assets/objects/gameplay_keep/eff_flash.h" #include "assets/objects/object_efc_star_field/object_efc_star_field.h" #include "assets/objects/object_toki_objects/object_toki_objects.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:0 pal-1.1:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \ + "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c index 565ea6adc4..0ec43809a7 100644 --- a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c +++ b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c @@ -18,7 +18,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/door_skel.h" #include "assets/objects/object_hidan_objects/object_hidan_objects.h" #include "assets/objects/object_mizu_objects/object_mizu_objects.h" #include "assets/objects/object_haka_door/object_haka_door.h" 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 3d0b9603dd..abbab207bc 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -25,7 +25,8 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x49F20.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x4A090.h" #include "assets/objects/object_gnd/object_gnd.h" #include "assets/objects/object_goma/object_goma.h" #include "assets/objects/object_ydan_objects/object_ydan_objects.h" diff --git a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c index 10875e547b..be6296eda3 100644 --- a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c +++ b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c @@ -17,7 +17,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_sparkles.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c index 5e518870e2..7bfb4d7d47 100644 --- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c +++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c @@ -18,7 +18,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_anubice/object_anubice.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 21d2bb6aa2..f883658f4a 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -20,7 +20,10 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/arrow_skel.h" +#include "assets/objects/gameplay_keep/gArrow1_Anim.h" +#include "assets/objects/gameplay_keep/gArrow2_Anim.h" +#include "assets/objects/gameplay_keep/eff_sparkles.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) @@ -107,7 +110,7 @@ void EnArrow_Init(Actor* thisx, PlayState* play) { if (this->actor.params <= ARROW_SEED) { if (this->actor.params <= ARROW_0E) { - SkelAnime_Init(play, &this->skelAnime, &gArrowSkel, &gArrow2Anim, NULL, NULL, 0); + SkelAnime_Init(play, &this->skelAnime, &gArrowSkel, &gArrow2_Anim, NULL, NULL, 0); } if (this->actor.params <= ARROW_NORMAL) { @@ -210,7 +213,7 @@ void EnArrow_Shoot(EnArrow* this, PlayState* play) { void func_809B3CEC(PlayState* play, EnArrow* this) { EnArrow_SetupAction(this, func_809B4640); - Animation_PlayOnce(&this->skelAnime, &gArrow1Anim); + Animation_PlayOnce(&this->skelAnime, &gArrow1_Anim); this->actor.world.rot.y += (s32)(24576.0f * (Rand_ZeroOne() - 0.5f)) + 0x8000; this->actor.velocity.y += (this->actor.speed * (0.4f + (0.4f * Rand_ZeroOne()))); this->actor.speed *= (0.04f + 0.3f * Rand_ZeroOne()); @@ -324,7 +327,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) { } } else if (this->touchedPoly) { EnArrow_SetupAction(this, func_809B45E0); - Animation_PlayOnce(&this->skelAnime, &gArrow2Anim); + Animation_PlayOnce(&this->skelAnime, &gArrow2_Anim); if (this->actor.params >= ARROW_NORMAL_LIT) { this->timer = 60; diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 50d01b999a..88a2de6c8b 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -22,7 +22,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_Bb/object_Bb.h" #define FLAGS \ 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 e5f590a14b..6238f17a66 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -19,7 +19,8 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/bomb_cap.h" +#include "assets/objects/gameplay_keep/bomb_body.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c index 8467c4e5a6..c2ab0160da 100644 --- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c +++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c @@ -15,7 +15,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/bombchu_body.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index c8254f1a86..18d35a395d 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -15,7 +15,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/boomerang.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 2cf9a677f0..5d3354820e 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -22,7 +22,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_flash.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index 37563cf728..332a29c93f 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -23,7 +23,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_bw/object_bw.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index dd2a3d45b7..a06c6efebc 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -14,7 +14,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" #include "assets/objects/object_dekubaba/object_dekubaba.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) 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 b4bdd073f4..ed44df927b 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -18,7 +18,11 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gDoorChildOpeningRightAnim.h" +#include "assets/objects/gameplay_keep/gDoorChildOpeningLeftAnim.h" +#include "assets/objects/gameplay_keep/gDoorAdultOpeningRightAnim.h" +#include "assets/objects/gameplay_keep/gDoorAdultOpeningLeftAnim.h" +#include "assets/objects/gameplay_keep/door_skel.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" #include "assets/objects/object_hidan_objects/object_hidan_objects.h" #include "assets/objects/object_mizu_objects/object_mizu_objects.h" 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 b40e670140..c882e0e973 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -27,7 +27,8 @@ #include "quest_hint.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/fairy_skel.h" +#include "assets/objects/gameplay_keep/fairy_anim.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index 6c232529e7..95bdbd2ee2 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -22,7 +22,9 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/item_drop_dl.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x3C870.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x3F140.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c index c9dd249402..99dc439ff4 100644 --- a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c +++ b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c @@ -17,7 +17,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/rupee.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index df2b2d2c59..d9c95c05d3 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -21,7 +21,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_fw/object_fw.h" #define FLAGS \ diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index 334fc24d35..8a6e38a08c 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -9,7 +9,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 8820c17de0..b65a6a92dd 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -26,7 +26,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_fhg/object_fhg.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index 9bc08c7a4c..f207e8a612 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -20,7 +20,9 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gFishInWaterAnim.h" +#include "assets/objects/gameplay_keep/gFishOutOfWaterAnim.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x18610.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index 80928b164e..d6ffe1e590 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -20,7 +20,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_fw/object_fw.h" #define FLAGS \ diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index cc03db16fc..5b04ca7426 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -29,7 +29,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/rupee.h" #include "assets/objects/object_tsubo/object_tsubo.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 733c8519aa..b4d86799d9 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -15,7 +15,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_oF1d_map/object_oF1d_map.h" #define FLAGS \ diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index 6718a23b64..dbf8e2b550 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -20,7 +20,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_oF1d_map/object_oF1d_map.h" #define FLAGS \ diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 7d58731365..f00a7b6de6 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -24,7 +24,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/rock_fragments_model.h" #include "assets/objects/object_goroiwa/object_goroiwa.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED 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 a98dca4837..c03f1d7d16 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -20,7 +20,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_gs/object_gs.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_DURING_OCARINA) diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index e9a7297091..3c6ebe9d03 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -22,7 +22,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index fcdeb0d10d..8d249f2d3e 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -22,7 +22,7 @@ #include "skin.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_horse.h" #include "assets/objects/object_horse_normal/object_horse_normal.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index fb0e54f101..d789b8b980 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -20,7 +20,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_En_Insect/z_en_insect.c b/src/overlays/actors/ovl_En_Insect/z_en_insect.c index 3c7cf47292..dff41dd86d 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -23,7 +23,8 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/bug_skel.h" +#include "assets/objects/gameplay_keep/gBugCrawlAnim.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index c0c05a65d0..519c03386b 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -25,7 +25,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/rectangular_sign_model.h" #include "assets/objects/object_kanban/object_kanban.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 64e7303371..c848b597dc 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -19,7 +19,7 @@ #include "save.h" #include "assets/objects/object_dekubaba/object_dekubaba.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index a4e5d5773f..dfde84fe60 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -21,7 +21,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/cuttable_shrub.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" #include "assets/objects/object_kusa/object_kusa.h" 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 8d9640a2ad..a2f2ace152 100644 --- a/src/overlays/actors/ovl_En_Light/z_en_light.c +++ b/src/overlays/actors/ovl_En_Light/z_en_light.c @@ -16,7 +16,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #define FLAGS 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 dd62fcabc8..c3fb11be1a 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 @@ -12,7 +12,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/spin_attack.h" #define FLAGS 0 diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 7b6656b50b..8e04931a50 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -19,7 +19,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shopkeeper_controls_tex.h" #include "assets/objects/object_ossan/object_ossan.h" #include "assets/objects/object_oF1d_map/object_oF1d_map.h" #include "assets/objects/object_os/object_os.h" diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index 249244b5d8..34ca4d2a89 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -20,7 +20,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_po_field/object_po_field.h" #define FLAGS \ diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 299b0df33a..fe82003ca3 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -23,7 +23,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_po_sisters/object_po_sisters.h" #define FLAGS \ 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 4d234504e8..a2ed4257c2 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -21,7 +21,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #include "assets/objects/object_tk/object_tk.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) diff --git a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c index d67c549234..ad7eb76dc5 100644 --- a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c +++ b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c @@ -19,7 +19,7 @@ #include "player.h" #include "assets/objects/object_fd/object_fd.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) 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 6dffc30ecd..f496a96f6a 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -26,7 +26,7 @@ #include "skin.h" #include "assets/objects/object_zl4/object_zl4.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_horse_zelda/object_horse_zelda.h" #include "assets/objects/object_horse_ganon/object_horse_ganon.h" #include "assets/objects/object_im/object_im.h" diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index 050942aac4..b8bc829e00 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -22,7 +22,7 @@ #include "player.h" #include "assets/objects/object_vm/object_vm.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_enemy_death_flame.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_UPDATE_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 0192c2cd28..2a63684f9c 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -19,7 +19,7 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/shadow_circle.h" #include "assets/objects/object_wallmaster/object_wallmaster.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index 13acab8d46..0368bba58d 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -17,7 +17,8 @@ #include "player.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_flash.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x32090.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) 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 78faf2c0dd..6f41073c4b 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -24,7 +24,7 @@ #include "play_state.h" #include "save.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/cuttable_shrub.h" #include "assets/objects/object_mamenoki/object_mamenoki.h" #define FLAGS ACTOR_FLAG_IGNORE_POINT_LIGHTS 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 ee56e5d203..ebeb54bdfd 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 @@ -16,7 +16,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x33910.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index a75c504b6f..4f1c201cd8 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -17,7 +17,7 @@ #include "z_lib.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #include "assets/objects/object_syokudai/object_syokudai.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) 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 5f8f580e4e..568f211473 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -22,7 +22,11 @@ #include "save.h" #include "assets/objects/object_demo_kekkai/object_demo_kekkai.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_lightning.h" +#include "assets/objects/gameplay_keep/sun_textures.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x4D160.h" +#include "assets/objects/gameplay_keep/dust_textures.h" +#include "assets/objects/gameplay_keep/eff_dust.h" #include "assets/objects/object_spot02_objects/object_spot02_objects.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0fe5048f20..9e752541b3 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -51,7 +51,9 @@ #include "save.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/player_anim_headers.h" +#include "assets/objects/gameplay_keep/hover_boots_circle.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x33910.h" #include "assets/objects/object_link_child/object_link_child.h" // Some player animations are played at this reduced speed, for reasons yet unclear. @@ -362,22 +364,22 @@ void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \ - "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64" \ + "ique-cn:128 ntsc-1.0:64 ntsc-1.1:64 ntsc-1.2:64 pal-1.0:64 pal-1.1:64" static s32 D_80858AA0; // TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving // data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ique-cn:192 ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ique-cn:128 ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" static s32 sSavedCurrentMask; static Vec3f sInteractWallCheckResult; static Input* sControlInput; #pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ique-cn:160 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" + "ique-cn:192 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" // .data diff --git a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c index aa9ae498eb..7ae5d611d1 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c +++ b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c @@ -14,7 +14,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_shockwave.h" #define rInnerColorR regs[0] #define rInnerColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c index f78c1e2f56..54cfc4e2fd 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c @@ -17,7 +17,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_bomb_explosion.h" #define EFFSSBOMB_LIFESPAN 20 diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c index 176f68acc1..ea6652aff9 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c @@ -15,7 +15,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_bomb_explosion.h" #define rScale regs[0] #define rTexIndex regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c index 49f3ace0c1..bf25e04fee 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c @@ -15,7 +15,8 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h" +#include "assets/objects/gameplay_keep/eff_bubble.h" #define rScale regs[0] diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c index 8e83ca9f11..173e89d470 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c @@ -14,7 +14,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_enemy_death_flame.h" #define rScale regs[0] #define rTextIdx regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c index 7bc0936907..a325828d3b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c @@ -15,7 +15,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/lens_flare.h" #define rScale regs[0] #define rPrimColorR regs[2] diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c index 5f6da1295f..39e625cbd4 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c @@ -12,7 +12,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/lens_flare.h" #define rScale regs[0] #define rTimer regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c index 1e7e3ca2ed..c07859177e 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c @@ -15,7 +15,8 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h" +#include "assets/objects/gameplay_keep/eff_bubble.h" #define rPrimColorR regs[0] #define rPrimColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c b/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c index f06b5f3031..ab94be61db 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c @@ -16,7 +16,8 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_dust.h" +#include "assets/objects/gameplay_keep/dust_textures.h" #define rPrimColorR regs[0] #define rPrimColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c index d632dfaa52..6ca632c689 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c @@ -14,7 +14,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #define rScaleMax regs[0] #define rScale regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c index d4b07ef730..0c49b89466 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c @@ -18,7 +18,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_ice_fragments.h" #define rLifespan regs[0] #define rYaw regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c index c9bfbe981a..d2a0a31327 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c @@ -13,7 +13,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x173D0.h" #define rUnused regs[3] // probably supposed to be an alpha #define rRadius regs[8] diff --git a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c index 8a5e416a6a..ba906e0e05 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c @@ -14,7 +14,7 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #define rScale regs[0] #define rLifespan regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c index 9fc9d920dd..862f7c020e 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c @@ -10,7 +10,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire_footprint.h" u32 EffectSsGFire_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx); void EffectSsGFire_Draw(PlayState* play, u32 index, EffectSs* this); diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c index b37136a18c..cae8127d76 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c @@ -11,7 +11,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_magma_bubble.h" u32 EffectSsGMagma_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx); void EffectSsGMagma_Draw(PlayState* play, u32 index, EffectSs* this); diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c index ef0565c8f8..8822faadb4 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c @@ -14,7 +14,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_water_ripple.h" #define rWaterBoxNum regs[0] #define rRadius regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c index 783224c9e0..3ee210f5ba 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c @@ -15,7 +15,8 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_spark_model.h" +#include "assets/objects/gameplay_keep/eff_spark_textures.h" #define rPrimColorR regs[0] #define rPrimColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c index 5995c1b563..606d49f0b7 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c @@ -10,7 +10,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_water_splash.h" //! @bug the reuse of regs[11] means that EffectSs_DrawGEffect will treat the type as an object slot (`rgObjectSlot`) // this ends up having no effect because the texture provided does not use segment 6 diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c index 550c4a08d3..278f2693f0 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c +++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c @@ -15,7 +15,8 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fragments_1.h" +#include "assets/objects/gameplay_keep/eff_fragments_2_model.h" #define rPitch regs[0] #define rYaw regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c index e1fa2a982e..9e36117534 100644 --- a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c +++ b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c @@ -14,7 +14,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_hitmark.h" #define rTexIndex regs[0] #define rType regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c index 4bad83b5f0..fa73d60db9 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c @@ -14,7 +14,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_ice_fragments.h" #define rLifespan regs[0] #define rYaw regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c index ce06859168..3b79d44a0b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c @@ -13,7 +13,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_fire.h" #define rAlpha regs[0] #define rScroll regs[2] diff --git a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c index a4093ead1b..4587968419 100644 --- a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c +++ b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c @@ -17,7 +17,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_sparkles.h" #define rRotSpeed regs[0] #define rYaw regs[1] 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 5e2ff3aaf0..60a119ca64 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 @@ -16,7 +16,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/eff_lightning.h" #define rPrimColorR regs[0] #define rPrimColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c index aecdd6c936..7cf282647e 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c @@ -17,7 +17,8 @@ #include "play_state.h" #include "player.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/gameplay_keep_0x55DB0.h" +#include "assets/objects/gameplay_keep/eff_bubble.h" #define rPrimColorR regs[0] #define rPrimColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c index 24e484c1ee..dcba6caa14 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c @@ -13,7 +13,7 @@ #include "effect.h" #include "play_state.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/unused_bubbles.h" #define rPrimColorR regs[0] #define rPrimColorG regs[1] diff --git a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c index bdd99e1e31..8d5605e763 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c @@ -16,7 +16,7 @@ #include "play_state.h" #include "skin_matrix.h" -#include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "assets/objects/gameplay_keep/unknown_eff_stone.h" #define rReg0 regs[0] diff --git a/tools/assets/extract/extase/__init__.py b/tools/assets/extract/extase/__init__.py index 029b20d214..066fdf7b0b 100644 --- a/tools/assets/extract/extase/__init__.py +++ b/tools/assets/extract/extase/__init__.py @@ -641,6 +641,11 @@ class File: self.source_h_path = source_path / f"{file_name}.h" def write_source(self): + def strip_extracted_prefix(path : Path) -> Path: + parts = path.parts + if parts[0] == "extracted": + return Path(*parts[2:]) # Skip first two parts + return path # Return original path if condition not met assert hasattr( self, "source_c_path" ), "set_source_path must be called before write_source" @@ -660,7 +665,7 @@ class File: referenced_file, ) assert hasattr(referenced_file, "source_h_path") - file_include_paths_complete.append(referenced_file.source_h_path) + file_include_paths_complete.append(strip_extracted_prefix(referenced_file.source_h_path)) # Same as file_include_paths_complete, # but paths that can be are made relative to the source C. diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt index 9f9c87599a..9ba73ee360 100644 --- a/tools/assets/extract/write_source.txt +++ b/tools/assets/extract/write_source.txt @@ -2,7 +2,6 @@ assets/misc/link_animetion/link_animetion.c assets/misc/z_select_static/z_select_static.c assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.c assets/objects/gameplay_field_keep/gameplay_field_keep.c -assets/objects/gameplay_keep/gameplay_keep.c assets/objects/object_ahg/object_ahg.c assets/objects/object_am/object_am.c assets/objects/object_ane/object_ane.c From 834b443bbb4dac9eda4c37272e07bf007dcc44c0 Mon Sep 17 00:00:00 2001 From: Josh Moody Date: Mon, 16 Feb 2026 16:09:47 -0700 Subject: [PATCH 17/27] Document spin attack (#2694) --- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 87 +++++++++++-------- .../actors/ovl_En_M_Thunder/z_en_m_thunder.h | 10 +-- 2 files changed, 54 insertions(+), 43 deletions(-) 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 c3fb11be1a..18ae3f1e84 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 @@ -16,6 +16,17 @@ #define FLAGS 0 +typedef enum EnMThunderSwordType { + /* 0 */ M_THUNDER_SWORD_MASTER, + /* 1 */ M_THUNDER_SWORD_KOKIRI, + /* 2 */ M_THUNDER_SWORD_GIANT +} EnMThunderSwordType; + +typedef enum EnMThunderAttackStrength { + /* 0 */ M_THUNDER_ATTACK_STRONG, + /* 1 */ M_THUNDER_ATTACK_WEAK +} EnMThunderAttackStrength; + void EnMThunder_Init(Actor* thisx, PlayState* play2); void EnMThunder_Destroy(Actor* thisx, PlayState* play); void EnMThunder_Update(Actor* thisx, PlayState* play); @@ -72,14 +83,14 @@ void EnMThunder_Init(Actor* thisx, PlayState* play2) { Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &D_80AA0420); - this->unk_1C7 = PARAMS_GET_S(this->actor.params, 0, 8) - 1; + this->swordType = PARAMS_GET_S(this->actor.params, 0, 8) - 1; Lights_PointNoGlowSetInfo(&this->lightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 255, 255, 255, 0); this->lightNode = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfo); this->collider.dim.radius = 0; this->collider.dim.height = 40; this->collider.dim.yShift = -20; - this->unk_1C4 = 8; + this->followPlayerTimer = 8; this->unk_1B4 = 0.0f; this->actor.world.pos = player->bodyPartsPos[PLAYER_BODYPART_WAIST]; this->unk_1AC = 0.0f; @@ -101,11 +112,11 @@ void EnMThunder_Init(Actor* thisx, PlayState* play2) { player->stateFlags2 &= ~PLAYER_STATE2_17; this->unk_1CA = 1; - this->collider.elem.atDmgInfo.dmgFlags = D_80AA044C[this->unk_1C7]; - this->unk_1C6 = 1; - this->unk_1C9 = ((this->unk_1C7 == 1) ? 2 : 4); + this->collider.elem.atDmgInfo.dmgFlags = D_80AA044C[this->swordType]; + this->attackStrength = M_THUNDER_ATTACK_WEAK; + this->targetScale = ((this->swordType == M_THUNDER_SWORD_KOKIRI) ? 2 : 4); func_80A9EFE0(this, func_80A9F9B4); - this->unk_1C4 = 8; + this->followPlayerTimer = 8; SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_ROLLING_CUT_LV1); this->unk_1AC = 1.0f; } else { @@ -163,7 +174,7 @@ void func_80A9F408(EnMThunder* this, PlayState* play) { !(Magic_RequestChange(play, PARAMS_GET_S(this->actor.params, 8, 8), MAGIC_CONSUME_WAIT_PREVIEW)))) { func_80A9F350(this, play); func_80A9EFE0(this, func_80A9F350); - this->unk_1C8 = 0; + this->chargeAlpha = 0; this->unk_1BC = 0.0; this->unk_1AC = 0.0f; return; @@ -195,17 +206,17 @@ void func_80A9F408(EnMThunder* this, PlayState* play) { gSaveContext.magicState = MAGIC_STATE_CONSUME_SETUP; } if (player->unk_858 < 0.85f) { - this->collider.elem.atDmgInfo.dmgFlags = D_80AA044C[this->unk_1C7]; - this->unk_1C6 = 1; - this->unk_1C9 = ((this->unk_1C7 == 1) ? 2 : 4); + this->collider.elem.atDmgInfo.dmgFlags = D_80AA044C[this->swordType]; + this->attackStrength = M_THUNDER_ATTACK_WEAK; + this->targetScale = ((this->swordType == M_THUNDER_SWORD_KOKIRI) ? 2 : 4); } else { - this->collider.elem.atDmgInfo.dmgFlags = D_80AA0458[this->unk_1C7]; - this->unk_1C6 = 0; - this->unk_1C9 = ((this->unk_1C7 == 1) ? 4 : 8); + this->collider.elem.atDmgInfo.dmgFlags = D_80AA0458[this->swordType]; + this->attackStrength = M_THUNDER_ATTACK_STRONG; + this->targetScale = ((this->swordType == M_THUNDER_SWORD_KOKIRI) ? 4 : 8); } func_80A9EFE0(this, func_80A9F9B4); - this->unk_1C4 = 8; + this->followPlayerTimer = 8; { static u16 sSfxIds[] = { @@ -215,7 +226,7 @@ void func_80A9F408(EnMThunder* this, PlayState* play) { NA_SE_IT_ROLLING_CUT_LV1, }; - SFX_PLAY_AT_POS(&player->actor.projectedPos, sSfxIds[this->unk_1C6]); + SFX_PLAY_AT_POS(&player->actor.projectedPos, sSfxIds[this->attackStrength]); } this->unk_1AC = 1.0f; @@ -232,19 +243,19 @@ void func_80A9F408(EnMThunder* this, PlayState* play) { } if (player->unk_858 > 0.15f) { - this->unk_1C8 = 255; + this->chargeAlpha = 255; if (this->actor.child == NULL) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EFF_DUST, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, this->actor.shape.rot.y, 0, - this->unk_1C7 + 2); + this->swordType + 2); } this->unk_1BC += ((((player->unk_858 - 0.15f) * 1.5f) - this->unk_1BC) * 0.5f); } else if (player->unk_858 > .1f) { - this->unk_1C8 = (s32)((player->unk_858 - .1f) * 255.0f * 20.0f); + this->chargeAlpha = (s32)((player->unk_858 - .1f) * 255.0f * 20.0f); this->unk_1AC = (player->unk_858 - .1f) * 10.0f; } else { - this->unk_1C8 = 0; + this->chargeAlpha = 0; } if (player->unk_858 > 0.85f) { @@ -261,11 +272,11 @@ void func_80A9F408(EnMThunder* this, PlayState* play) { } void func_80A9F938(EnMThunder* this, PlayState* play) { - if (this->unk_1C4 < 2) { - if (this->unk_1C8 < 40) { - this->unk_1C8 = 0; + if (this->followPlayerTimer < 2) { + if (this->chargeAlpha < 40) { + this->chargeAlpha = 0; } else { - this->unk_1C8 -= 40; + this->chargeAlpha -= 40; } } @@ -284,17 +295,17 @@ void func_80A9F9B4(EnMThunder* this, PlayState* play) { if (Math_StepToF(&this->unk_1AC, 0.0f, 1 / 16.0f)) { Actor_Kill(&this->actor); } else { - Math_SmoothStepToF(&this->actor.scale.x, (s32)this->unk_1C9, 0.6f, 0.8f, 0.0f); + Math_SmoothStepToF(&this->actor.scale.x, (s32)this->targetScale, 0.6f, 0.8f, 0.0f); Actor_SetScale(&this->actor, this->actor.scale.x); this->collider.dim.radius = (this->actor.scale.x * 25.0f); Collider_UpdateCylinder(&this->actor, &this->collider); CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); } - if (this->unk_1C4 > 0) { + if (this->followPlayerTimer > 0) { this->actor.world.pos.x = player->bodyPartsPos[PLAYER_BODYPART_WAIST].x; this->actor.world.pos.z = player->bodyPartsPos[PLAYER_BODYPART_WAIST].z; - this->unk_1C4--; + this->followPlayerTimer--; } if (this->unk_1AC > 0.6f) { @@ -337,9 +348,9 @@ void EnMThunder_Draw(Actor* thisx, PlayState* play2) { Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_en_m_thunder.c", 853); - switch (this->unk_1C6) { - case 0: - case 1: + switch (this->attackStrength) { + case M_THUNDER_ATTACK_STRONG: + case M_THUNDER_ATTACK_WEAK: gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, 0xFF - ((u8)(s32)(this->unk_1B4 * 30) & 0xFF), 0, 0x40, 0x20, 1, @@ -347,13 +358,13 @@ void EnMThunder_Draw(Actor* thisx, PlayState* play2) { break; } - switch (this->unk_1C6) { - case 0: + switch (this->attackStrength) { + case M_THUNDER_ATTACK_STRONG: gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 170, (u8)(this->unk_1B0 * 255)); gSPDisplayList(POLY_XLU_DISP++, gSpinAttack3DL); gSPDisplayList(POLY_XLU_DISP++, gSpinAttack4DL); break; - case 1: + case M_THUNDER_ATTACK_WEAK: gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 170, 255, 255, (u8)(this->unk_1B0 * 255)); gSPDisplayList(POLY_XLU_DISP++, gSpinAttack1DL); gSPDisplayList(POLY_XLU_DISP++, gSpinAttack2DL); @@ -362,18 +373,18 @@ void EnMThunder_Draw(Actor* thisx, PlayState* play2) { Matrix_Mult(&player->mf_9E0, MTXMODE_NEW); - switch (this->unk_1C7) { - case 1: + switch (this->swordType) { + case M_THUNDER_SWORD_KOKIRI: Matrix_Translate(0.0f, 220.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(-0.7f, -0.6f, -0.4f, MTXMODE_APPLY); Matrix_RotateX(16384.0f, MTXMODE_APPLY); break; - case 0: + case M_THUNDER_SWORD_MASTER: Matrix_Translate(0.0f, 300.0f, -100.0f, MTXMODE_APPLY); Matrix_Scale(-1.2f, -1.0f, -0.7f, MTXMODE_APPLY); Matrix_RotateX(16384.0f, MTXMODE_APPLY); break; - case 2: + case M_THUNDER_SWORD_GIANT: Matrix_Translate(200.0f, 350.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(-1.8f, -1.4f, -0.7f, MTXMODE_APPLY); Matrix_RotateX(16384.0f, MTXMODE_APPLY); @@ -382,12 +393,12 @@ void EnMThunder_Draw(Actor* thisx, PlayState* play2) { if (this->unk_1B8 >= 0.85f) { phi_f14 = (D_80AA046C[(play->gameplayFrames & 7)] * 6.0f) + 1.0f; - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 170, this->unk_1C8); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 170, this->chargeAlpha); gDPSetEnvColor(POLY_XLU_DISP++, 255, 100, 0, 128); phi_t1 = 0x28; } else { phi_f14 = (D_80AA046C[play->gameplayFrames & 7] * 2.0f) + 1.0f; - gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 170, 255, 255, this->unk_1C8); + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 170, 255, 255, this->chargeAlpha); gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 128); phi_t1 = 0x14; } diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.h b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.h index 7332cdcf21..dd1e2ce8bc 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.h +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.h @@ -20,11 +20,11 @@ typedef struct EnMThunder { /* 0x01B0 */ f32 unk_1B8; /* 0x01BC */ f32 unk_1BC; /* 0x01C0 */ EnMThunderActionFunc actionFunc; - /* 0x01C4 */ u16 unk_1C4; - /* 0x01C6 */ u8 unk_1C6; - /* 0x01C7 */ u8 unk_1C7; - /* 0x01C8 */ u8 unk_1C8; - /* 0x01C9 */ u8 unk_1C9; + /* 0x01C4 */ u16 followPlayerTimer; + /* 0x01C6 */ u8 attackStrength; // see `EnMThunderAttackStrength` + /* 0x01C7 */ u8 swordType; // see `EnMThunderSwordType` + /* 0x01C8 */ u8 chargeAlpha; + /* 0x01C9 */ u8 targetScale; /* 0x01CA */ u8 unk_1CA; } EnMThunder; // size = 0x01CC From 95495d221fb8c34b9903c7fa03870c2834bf5b2c Mon Sep 17 00:00:00 2001 From: mzxrules Date: Tue, 17 Feb 2026 04:31:54 -0500 Subject: [PATCH 18/27] Document SysCfb_GetFbPtr bug (#2586) * Document SysCfb_GetFbPtr bug * cleaner comment * fixes * change wording again --- src/code/graph.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/code/graph.c b/src/code/graph.c index 56fc7af60c..c6b5f3cb61 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -141,6 +141,13 @@ void Graph_InitTHGA(GraphicsContext* gfxCtx) { gfxCtx->overlayBuffer = pool->overlayBuffer; gfxCtx->workBuffer = pool->workBuffer; + //! @bug fbIdx is a signed integer that can overflow into the negatives. When compiled with a C99+ compiler or IDO, + //! the remainder operator will yield -1 for odd negative values of fbIdx. + //! This causes SysCfb_GetFbPtr to read beyond the bounds of an array when retrieving the framebuffer pointer, which + //! will likely crash the game. + //! + //! This isn't an issue in practice. In the worst case scenario with the game operating at a consistent 60 FPS, + //! it would take approximately 414.25 days of continuous operation for fbIdx to overflow. gfxCtx->curFrameBuffer = SysCfb_GetFbPtr(gfxCtx->fbIdx % 2); gfxCtx->unk_014 = 0; } From 7326d556dafcf289c948497df5c9364184ee5431 Mon Sep 17 00:00:00 2001 From: Tharo Date: Tue, 17 Feb 2026 11:00:11 +0000 Subject: [PATCH 19/27] Soundfont Compiler: Implement fine-tuning in the final tuning calculation (#2690) --- docs/audio/Soundfont_XML.md | 12 ++++++ tools/audio/soundfont.h | 11 ++++- tools/audio/soundfont_compiler.c | 69 +++++++++++++++++++++++++++----- tools/audio/xml.c | 14 +++++++ tools/audio/xml.h | 2 + 5 files changed, 95 insertions(+), 13 deletions(-) diff --git a/docs/audio/Soundfont_XML.md b/docs/audio/Soundfont_XML.md index c2d8a572ed..5e532c1206 100644 --- a/docs/audio/Soundfont_XML.md +++ b/docs/audio/Soundfont_XML.md @@ -147,6 +147,7 @@ Begins a new soundfont. Name="" SampleRate="[Sample Rate]" BaseNote="[Note Name]" + FineTune="[Fine Tune]" IsDD="[Bool]" Cached="[Bool]" /> @@ -158,6 +159,7 @@ Begins a new soundfont. - **Name**: The name of this sample. A sample with this name must be present in the samplebank used by the soundfont. - [Optional] **SampleRate**: An overriding sample rate for this sample. **Default comes from the sample file.** - [Optional] **BaseNote**: An overriding root key for this sample. **Default comes from the sample file.** + - [Optional] **FineTune**: An overriding fine tuning for this sample, in cents, in the range [-100, 100]. **Default comes from the sample file.** - [Optional] **IsDD**: Whether this sample is on the Disk Drive. The sample data will come from the samplebank `SampleBankDD`. **Default is `false`.** **NOTE this is not fully implemented, it should always be `false`.** - [Optional] **Cached**: Whether this sample should be added to the `usedSamples` cache. **Default is `false`.** @@ -187,6 +189,7 @@ Begins a new soundfont. Sample="" SampleRate="[Sample Rate]" BaseNote="[Note Name]" + FineTune="[Fine Tune]" /> ``` Defines a single sound effect. @@ -196,6 +199,7 @@ Begins a new soundfont. - **Sample**: The name of the sample associated with this effect. - [Optional] **SampleRate**: An overriding sample rate for this effect. **Default comes from the sample definition.** - [Optional] **BaseNote**: An overriding root key for this effect. **Default comes from the sample definition.** + - [Optional] **FineTune**: An overriding fine tuning for this effect, in cents, in the range [-100, 100]. **Default comes from the sample definition.** --- @@ -229,6 +233,7 @@ Begins a new soundfont. Sample="" SampleRate="[Sample Rate]" BaseNote="[Note Name]" + FineTune="[Fine Tune]" /> ``` Defines a single percussion range. @@ -244,6 +249,7 @@ Begins a new soundfont. - **Sample**: The name of the sample to use. - [Optional] **SampleRate**: An overriding sample rate for this sound. **Default comes from the sample definition.** - [Optional] **BaseNote**: An overriding root key for this sound. **Default comes from the sample definition.** + - [Optional] **FineTune**: An overriding fine tuning for this sound, in cents, in the range [-100, 100]. **Default comes from the sample definition.** --- @@ -275,16 +281,19 @@ Begins a new soundfont. Sample="" SampleRate="[Sample Rate]" BaseNote="[Note Name]" + FineTune="[Fine Tune]" RangeLo="[Note Name]" SampleLo="[Sample Name]" SampleRateLo="[Sample Rate]" BaseNoteLo="[Note Name]" + FineTuneLo="[Fine Tune]" RangeHi="[Note Name]" SampleHi="[Sample Name]" SampleRateHi="[Sample Rate]" BaseNoteHi="[Note Name]" + FineTuneHi="[Fine Tune]" /> ``` Defines an instrument. @@ -297,14 +306,17 @@ Begins a new soundfont. - **Sample**: The name of the middle sample to use for this instrument. - [Optional] **SampleRate**: Sample rate override for the middle sample. **Default is sourced from the sample properties.** - [Optional] **BaseNote**: Base note override for the middle sample. **Default is sourced from the sample properties.** + - [Optional] **FineTune**: Fine tuning override for the middle sample, in cents, in the range [-100, 100]. **Default is sourced from the sample properties.** - [Optional] **RangeLo**: The largest note for SampleLo. SampleLo will be used instead of Sample for keys in the range [0, RangeLo]. **If left unspecified, SampleLo must not be specified. If specified, SampleLo must be specified.** - [Optional] **SampleLo**: The name of the low sample to use for this instrument. - [Optional] **SampleRateLo**: Sample rate override for the low sample. **Default is sourced from the sample properties.** - [Optional] **BaseNoteLo**: Base note override for the low sample. **Default is sourced from the sample properties.** + - [Optional] **FineTuneLo**: Fine tuning override for the low sample, in cents, in the range [-100, 100]. **Default is sourced from the sample properties.** - [Optional] **RangeHi**: The smallest note for SampleHi. SampleHi will be used instead of Sample for keys in the range [RangeHi, 127]. **If left unspecified, SampleHi must not be specified. If specified, SampleHi must be specified.** - [Optional] **SampleHi**: The name of the high sample to use for this instrument. - [Optional] **SampleRateHi**: Sample rate override for the high sample. **Default is sourced from the sample properties.** - [Optional] **BaseNoteHi**: Base note override for the high sample. **Default is sourced from the sample properties.** + - [Optional] **FineTuneHi**: Fine tuning override for the high sample, in cents, in the range [-100, 100]. **Default is sourced from the sample properties.** --- diff --git a/tools/audio/soundfont.h b/tools/audio/soundfont.h index eeed712de2..28bf8fac5f 100644 --- a/tools/audio/soundfont.h +++ b/tools/audio/soundfont.h @@ -29,6 +29,7 @@ typedef struct sample_data { const char *name; double sample_rate; int8_t base_note; + int8_t fine_tune; bool is_dd; bool cached; aifc_data aifc; @@ -66,6 +67,9 @@ typedef struct instr_data { int8_t base_note_mid; int8_t base_note_lo; int8_t base_note_hi; + int8_t fine_tune_mid; + int8_t fine_tune_lo; + int8_t fine_tune_hi; envelope_data *envelope; uint16_t release; @@ -97,6 +101,7 @@ typedef struct drum_data { sample_data *sample; double sample_rate; int8_t base_note; + int8_t fine_tune; } drum_data; typedef struct sfx_data { @@ -107,6 +112,7 @@ typedef struct sfx_data { sample_data *sample; double sample_rate; int8_t base_note; + int8_t fine_tune; float tuning; } sfx_data; @@ -155,8 +161,9 @@ typedef struct { size_t match_padding_num; } soundfont; -#define NOTE_UNSET (INT8_MIN) -#define RELEASE_UNSET (UINT16_MAX) +#define NOTE_UNSET (INT8_MIN) +#define FINE_TUNE_UNSET (INT8_MIN) +#define RELEASE_UNSET (UINT16_MAX) envelope_data * sf_get_envelope(soundfont *sf, const char *name); diff --git a/tools/audio/soundfont_compiler.c b/tools/audio/soundfont_compiler.c index 4f9a5779c4..6a47d643b8 100644 --- a/tools/audio/soundfont_compiler.c +++ b/tools/audio/soundfont_compiler.c @@ -64,7 +64,7 @@ midinote_to_z64note(int note) * (with appropriate shifting such that the index for C4 results in 1.0) */ static float -calc_tuning(float sample_rate, int basenote) +calc_tuning(float sample_rate, int basenote, int8_t finetune) { static const float playback_sample_rate = 32000.0f; // Target samplerate in-game is 32KHz static const float pitch_frequencies[] = { @@ -199,7 +199,24 @@ calc_tuning(float sample_rate, int basenote) /* 0x7F */ 0.099213f, // PITCH_AF0 }; - return (sample_rate / playback_sample_rate) * pitch_frequencies[basenote]; + float tuning = (sample_rate / playback_sample_rate) * pitch_frequencies[basenote]; + if (finetune == 0) + return tuning; + + // Compute 2^(x / (12 * 100)) for 8-bit signed integer x + static const double fine_coeffs[5] = { + // Coefficients generated by sollya: + // fpminimax(1.00057778950655486^x, 4, [|SG...|], [-128,128], absolute, 2^(-24)); + // <= 1ulp + 1.0, + 5.776226171292365e-4, + 1.668239519858616e-7, + 3.213055863038328e-11, + 4.639919853633443e-15, + }; + float x = finetune; + tuning *= fine_coeffs[0] + x * (fine_coeffs[1] + x * (fine_coeffs[2] + x * (fine_coeffs[3] + x * fine_coeffs[4]))); + return tuning; } void @@ -317,16 +334,19 @@ read_instrs_info(soundfont *sf, xmlNodePtr instrs) { "Sample", true, xml_parse_c_identifier, offsetof(instr_data, sample_name_mid) }, { "BaseNote", true, xml_parse_note_number, offsetof(instr_data, base_note_mid) }, + { "FineTune", true, xml_parse_fine_tune, offsetof(instr_data, fine_tune_mid) }, { "SampleRate", true, xml_parse_double, offsetof(instr_data, sample_rate_mid) }, { "RangeLo", true, xml_parse_note_number, offsetof(instr_data, sample_low_end) }, { "SampleLo", true, xml_parse_c_identifier, offsetof(instr_data, sample_name_low) }, { "BaseNoteLo", true, xml_parse_note_number, offsetof(instr_data, base_note_lo) }, + { "FineTuneLo", true, xml_parse_fine_tune, offsetof(instr_data, fine_tune_lo) }, { "SampleRateLo", true, xml_parse_double, offsetof(instr_data, sample_rate_lo) }, { "RangeHi", true, xml_parse_note_number, offsetof(instr_data, sample_high_start)}, { "SampleHi", true, xml_parse_c_identifier, offsetof(instr_data, sample_name_high) }, { "BaseNoteHi", true, xml_parse_note_number, offsetof(instr_data, base_note_hi) }, + { "FineTuneHi", true, xml_parse_fine_tune, offsetof(instr_data, fine_tune_hi) }, { "SampleRateHi", true, xml_parse_double, offsetof(instr_data, sample_rate_hi) }, }; @@ -356,6 +376,9 @@ read_instrs_info(soundfont *sf, xmlNodePtr instrs) instr->base_note_mid = NOTE_UNSET; instr->base_note_lo = NOTE_UNSET; instr->base_note_hi = NOTE_UNSET; + instr->fine_tune_mid = FINE_TUNE_UNSET; + instr->fine_tune_lo = FINE_TUNE_UNSET; + instr->fine_tune_hi = FINE_TUNE_UNSET; instr->sample_rate_mid = -1.0; instr->sample_rate_lo = -1.0; instr->sample_rate_hi = -1.0; @@ -478,10 +501,13 @@ read_instrs_info(soundfont *sf, xmlNodePtr instrs) if (instr->base_note_lo == NOTE_UNSET) instr->base_note_lo = instr->sample_low->base_note; + if (instr->fine_tune_lo == FINE_TUNE_UNSET) + instr->fine_tune_lo = instr->sample_low->fine_tune; + if (instr->sample_rate_lo < 0.0) instr->sample_rate_lo = instr->sample_low->sample_rate; - instr->sample_low_tuning = calc_tuning(instr->sample_rate_lo, instr->base_note_lo); + instr->sample_low_tuning = calc_tuning(instr->sample_rate_lo, instr->base_note_lo, instr->fine_tune_lo); } instr->sample_mid = sample_data_forname(sf, instr->sample_name_mid); @@ -492,15 +518,18 @@ read_instrs_info(soundfont *sf, xmlNodePtr instrs) if (instr->base_note_mid == NOTE_UNSET) instr->base_note_mid = instr->sample_mid->base_note; + if (instr->fine_tune_mid == FINE_TUNE_UNSET) + instr->fine_tune_mid = instr->sample_mid->fine_tune; + if (instr->sample_rate_mid < 0.0) instr->sample_rate_mid = instr->sample_mid->sample_rate; - instr->sample_mid_tuning = calc_tuning(instr->sample_rate_mid, instr->base_note_mid); + instr->sample_mid_tuning = calc_tuning(instr->sample_rate_mid, instr->base_note_mid, instr->fine_tune_mid); // Some tuning values don't decompose properly into a samplerate and basenote, they must be accounted for here // for matching. So far this has only been seen for an Instrument mid sample. // NOTE: Keep in sync with the BAD_FLOATS list in extraction/tuning.py - if (f2i(instr->sample_mid_tuning) == 0x3E7319DF /* 0.237403377 */) // diff = 2^-24 + if (sf->matching && f2i(instr->sample_mid_tuning) == 0x3E7319DF /* 0.237403377 */) // diff = 2^-24 instr->sample_mid_tuning = i2f(0x3E7319E3 /* 0.237403437 */); if (instr->sample_name_high != NULL) { @@ -512,10 +541,13 @@ read_instrs_info(soundfont *sf, xmlNodePtr instrs) if (instr->base_note_hi == NOTE_UNSET) instr->base_note_hi = instr->sample_high->base_note; + if (instr->fine_tune_hi == FINE_TUNE_UNSET) + instr->fine_tune_hi = instr->sample_high->fine_tune; + if (instr->sample_rate_hi < 0.0) instr->sample_rate_hi = instr->sample_high->sample_rate; - instr->sample_high_tuning = calc_tuning(instr->sample_rate_hi, instr->base_note_hi); + instr->sample_high_tuning = calc_tuning(instr->sample_rate_hi, instr->base_note_hi, instr->fine_tune_hi); } // link @@ -544,6 +576,7 @@ read_drums_info(soundfont *sf, xmlNodePtr drums) { "Sample", false, xml_parse_c_identifier, offsetof(drum_data, sample_name) }, { "SampleRate", true, xml_parse_double, offsetof(drum_data, sample_rate) }, { "BaseNote", true, xml_parse_note_number, offsetof(drum_data, base_note) }, + { "FineTune", true, xml_parse_fine_tune, offsetof(drum_data, fine_tune) }, }; LL_FOREACH(xmlNodePtr, drum_node, drums->children) { @@ -560,6 +593,7 @@ read_drums_info(soundfont *sf, xmlNodePtr drums) drum->note_end = NOTE_UNSET; drum->sample_rate = -1; drum->base_note = NOTE_UNSET; + drum->fine_tune = FINE_TUNE_UNSET; drum->release = RELEASE_UNSET; if (drum_node->properties == NULL) { @@ -605,13 +639,16 @@ read_drums_info(soundfont *sf, xmlNodePtr drums) // set basenote if not overridden if (drum->base_note == NOTE_UNSET) { - if (drum->sample->aifc.has_inst) { + if (drum->sample->aifc.has_inst) drum->base_note = drum->sample->base_note; - } else { + else error("No basenote for drum (line %d)", drum_node->line); - } } + // set finetune if not overridden + if (drum->fine_tune == FINE_TUNE_UNSET) + drum->fine_tune = drum->sample->fine_tune; + // link link_drum: if (sf->drums == NULL) { @@ -633,6 +670,7 @@ read_sfx_info(soundfont *sf, xmlNodePtr effects) { "Sample", false, xml_parse_c_identifier, offsetof(sfx_data, sample_name)}, { "SampleRate", true, xml_parse_double, offsetof(sfx_data, sample_rate)}, { "BaseNote", true, xml_parse_note_number, offsetof(sfx_data, base_note) }, + { "FineTune", true, xml_parse_fine_tune, offsetof(sfx_data, fine_tune) }, }; LL_FOREACH(xmlNodePtr, sfx_node, effects->children) { @@ -652,6 +690,7 @@ read_sfx_info(soundfont *sf, xmlNodePtr effects) } else { sfx->sample_rate = -1; sfx->base_note = NOTE_UNSET; + sfx->fine_tune = FINE_TUNE_UNSET; xml_parse_node_by_spec(sfx, sfx_node, sfx_spec, ARRAY_COUNT(sfx_spec)); sfx->sample = sample_data_forname(sf, sfx->sample_name); @@ -662,10 +701,13 @@ read_sfx_info(soundfont *sf, xmlNodePtr effects) if (sfx->base_note == NOTE_UNSET) sfx->base_note = sfx->sample->base_note; + if (sfx->fine_tune == FINE_TUNE_UNSET) + sfx->fine_tune = sfx->sample->fine_tune; + if (sfx->sample_rate == -1) sfx->sample_rate = sfx->sample->sample_rate; - sfx->tuning = calc_tuning(sfx->sample_rate, sfx->base_note); + sfx->tuning = calc_tuning(sfx->sample_rate, sfx->base_note, sfx->fine_tune); } // link @@ -696,6 +738,7 @@ read_samples_info(soundfont *sf, xmlNodePtr samples) {"Name", false, xml_parse_c_identifier, offsetof(sample_data, name) }, { "SampleRate", true, xml_parse_double, offsetof(sample_data, sample_rate)}, { "BaseNote", true, xml_parse_note_number, offsetof(sample_data, base_note) }, + { "FineTune", true, xml_parse_fine_tune, offsetof(sample_data, fine_tune) }, { "IsDD", true, xml_parse_bool, offsetof(sample_data, is_dd) }, { "Cached", true, xml_parse_bool, offsetof(sample_data, cached) }, }; @@ -717,6 +760,7 @@ read_samples_info(soundfont *sf, xmlNodePtr samples) sample->sample_rate = -1.0; sample->base_note = NOTE_UNSET; + sample->fine_tune = FINE_TUNE_UNSET; sample->is_dd = defaults.is_dd; sample->cached = defaults.cached; @@ -740,6 +784,9 @@ read_samples_info(soundfont *sf, xmlNodePtr samples) error("No basenote for sample %s (line %d)", sample->name, sample_node->line); } + if (sample->fine_tune == FINE_TUNE_UNSET) + sample->fine_tune = sample->aifc.detune; + if (!sample->aifc.has_book) error("No vadpcm codebook for sample %s (line %d)", sample->name, sample_node->line); @@ -1403,7 +1450,7 @@ emit_c_drums(FILE *out, soundfont *sf) if (note > 127) note -= 128; - float tuning = calc_tuning(drum->sample_rate, note); + float tuning = calc_tuning(drum->sample_rate, note, drum->fine_tune); fprintf(out, " SF%d_%s_ENTRY(" F32_FMT "f),\n", sf->info.index, drum->name, tuning); } diff --git a/tools/audio/xml.c b/tools/audio/xml.c index 41f07a6454..54c0e661f4 100644 --- a/tools/audio/xml.c +++ b/tools/audio/xml.c @@ -235,6 +235,20 @@ err: error("Invalid note %s", value); } +/** + * Parse fine tuning in the range [-100, 100] + */ +void +xml_parse_fine_tune(const char *value, void *out) +{ + int v = xml_str_to_int(value); + if (v < -100 || v > 100) + error("Value %d out of range for fine tuning", v); + int8_t vs8 = v; + + copy_out(out, vs8); +} + void xml_parse_string(const char *value, void *out) { diff --git a/tools/audio/xml.h b/tools/audio/xml.h index dabfbcfefe..8e19000233 100644 --- a/tools/audio/xml.h +++ b/tools/audio/xml.h @@ -39,6 +39,8 @@ xml_parse_s8(const char *value, void *out); void xml_parse_note_number(const char *value, void *out); void +xml_parse_fine_tune(const char *value, void *out); +void xml_parse_string(const char *value, void *out); void xml_parse_c_identifier(const char *value, void *out); From a9a7045e0f85bdad5c9a97eba559fa4ace151fc2 Mon Sep 17 00:00:00 2001 From: Tharo Date: Tue, 17 Feb 2026 11:42:54 +0000 Subject: [PATCH 20/27] sampleconv: Improve WAV SMPL chunk handling, properly handle odd chunk sizes (#2689) * Read WAV SMPL chunks for note info when INST chunks are not available * Populate the SMPL chunk on conversion to wav * Properly handle unaligned (odd) WAV chunk sizes --- .../sampleconv/src/container/container.h | 4 +- tools/audio/sampleconv/src/container/wav.c | 53 ++++++++++++++++--- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/tools/audio/sampleconv/src/container/container.h b/tools/audio/sampleconv/src/container/container.h index 680b64012d..dae79344e6 100644 --- a/tools/audio/sampleconv/src/container/container.h +++ b/tools/audio/sampleconv/src/container/container.h @@ -62,8 +62,8 @@ typedef struct container_data { uint32_t num_samples; // also apparently called num_frames? but that's wrong // Instrument details - int8_t base_note; - int8_t fine_tune; + int8_t base_note; // [0, 127] + int8_t fine_tune; // [-50, 50] int8_t gain; int8_t key_low; int8_t key_hi; diff --git a/tools/audio/sampleconv/src/container/wav.c b/tools/audio/sampleconv/src/container/wav.c index ad345f76ed..60ed73e6a7 100644 --- a/tools/audio/sampleconv/src/container/wav.c +++ b/tools/audio/sampleconv/src/container/wav.c @@ -221,6 +221,25 @@ wav_read(container_data *out, const char *path, UNUSED bool matching) smpl.num_sample_loops = le32toh(smpl.num_sample_loops); smpl.sampler_data = le32toh(smpl.sampler_data); + if (!has_inst) { + // No INST chunk (yet, if there is one later it will take priority) + // Read the base note and fine tuning from the SMPL chunk. + // Note the INST and SMPL chunk use different representations for the fine tuning + // INST uses cents in [-50, 50] + // SMPL uses a fraction [0, 255] with 128 = 50 cents + // We use the INST format since AIFF uses that one + uint32_t base_note = smpl.unity_note; + // First scale down 128 -> 50, round to nearest + int32_t fine_tune = (smpl.fine_tune * 50 + 0x40) / 128; + // If the result is > 50, make it negative and adjust the base note + if (fine_tune > 50) { + base_note = (base_note - 1) % 128; + fine_tune = fine_tune - 100; + } + out->base_note = base_note; + out->fine_tune = fine_tune; + } + out->num_loops = smpl.num_sample_loops; out->loops = NULL; if (out->num_loops != 0) { @@ -342,13 +361,14 @@ wav_read(container_data *out, const char *path, UNUSED bool matching) } long read_size = ftell(in) - start - 8; + uint32_t aligned_chunk_size = (chunk_size + 1) & ~1; - if (read_size > chunk_size) + if (read_size > aligned_chunk_size) error("overran chunk"); else if (!skipped && read_size < chunk_size) warning("did not read entire %*s chunk: %lu vs %u", 4, cc4, read_size, chunk_size); - fseek(in, start + 8 + chunk_size, SEEK_SET); + fseek(in, start + 8 + aligned_chunk_size, SEEK_SET); } if (!has_fmt) @@ -361,8 +381,10 @@ wav_read(container_data *out, const char *path, UNUSED bool matching) } if (!has_inst) { - out->base_note = 60; // C4 - out->fine_tune = 0; + if (!has_smpl) { + out->base_note = 60; // C4 + out->fine_tune = 0; + } out->key_low = 0; out->key_hi = 127; out->vel_low = 0; @@ -452,13 +474,30 @@ wav_write(container_data *in, const char *path, bool matching) CHUNK_WRITE(out, &inst); CHUNK_END(out, chunk_start, htole32); + // INST and SMPL use a different representation for the fine tuning. + // INST represents it in cents in the range [-50, 50] + // SMPL represents it as a fraction in the range [0, 255] where 128 is 50 cents + // Our internal fine tuning follows the INST format, which AIFF also happens to agree with. + // When writing SMPL we need to convert to the fraction representation, which for + // positive fine tuning is simply a rescaling, while for negative fine tuning we need to + // adjust the base note to make the fine tuning positive first. + uint32_t smpl_unity_note = in->base_note; + uint32_t smpl_fine_tune = in->fine_tune; + if (in->fine_tune < 0) { + // [-50, -1] needs to increment unity_note and use the additive inverse mod 100 + smpl_unity_note = (smpl_unity_note + 1) % 128; + smpl_fine_tune = 100 + smpl_fine_tune; + } + // Rescale 0..50 to 0..128, round to nearest + smpl_fine_tune = (smpl_fine_tune * 128 + 25) / 50; + wav_smpl smpl = { .manufacturer = 0, .product = 0, - .sample_period = 0, - .unity_note = 0, + .sample_period = htole32(1000000000 / in->sample_rate), + .unity_note = htole32(smpl_unity_note), ._pad = {0, 0, 0}, - .fine_tune = 0, + .fine_tune = smpl_fine_tune, .format = 0, .offset = 0, .num_sample_loops = htole32(in->num_loops), From 3d4e8e32c37cedc0bef6159204ae23b6a342c7a1 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Tue, 17 Feb 2026 07:39:53 -0500 Subject: [PATCH 21/27] z_bg_haka_zou documentation pass (#2687) * document z_bg_haka_zou * suggestions * dragorn suggestions --- assets/xml/objects/object_haka_objects.xml | 12 +- assets/xml/objects/object_hakach_objects.xml | 6 +- .../actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c | 140 +++++++++--------- .../actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.h | 7 + 4 files changed, 90 insertions(+), 75 deletions(-) diff --git a/assets/xml/objects/object_haka_objects.xml b/assets/xml/objects/object_haka_objects.xml index 2325e663a8..615f67b3b5 100644 --- a/assets/xml/objects/object_haka_objects.xml +++ b/assets/xml/objects/object_haka_objects.xml @@ -60,16 +60,16 @@ - + - - - + + + - - + + diff --git a/assets/xml/objects/object_hakach_objects.xml b/assets/xml/objects/object_hakach_objects.xml index 92679bc8de..7a68751068 100644 --- a/assets/xml/objects/object_hakach_objects.xml +++ b/assets/xml/objects/object_hakach_objects.xml @@ -12,10 +12,10 @@ - + - + @@ -38,7 +38,7 @@ - + diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c index 40c5797627..f2218398ae 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c @@ -1,7 +1,7 @@ /* * File: z_bg_haka_zou.c * Overlay: ovl_Bg_Haka_Zou - * Description: Statue and Wall (Shadow Temple) + * Description: Bombable Shadow Temple themed objects */ #include "z_bg_haka_zou.h" @@ -20,26 +20,19 @@ #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED -typedef enum ShadowTempleAssetsType { - /* 0x0 */ STA_GIANT_BIRD_STATUE, - /* 0x1 */ STA_BOMBABLE_SKULL_WALL, - /* 0x2 */ STA_BOMBABLE_RUBBLE, - /* 0x3 */ STA_UNKNOWN -} ShadowTempleAssetsType; - void BgHakaZou_Init(Actor* thisx, PlayState* play); void BgHakaZou_Destroy(Actor* thisx, PlayState* play); void BgHakaZou_Update(Actor* thisx, PlayState* play); void BgHakaZou_Draw(Actor* thisx, PlayState* play); -void BgHakaZou_Wait(BgHakaZou* this, PlayState* play); -void func_80882BDC(BgHakaZou* this, PlayState* play); -void func_80883000(BgHakaZou* this, PlayState* play); -void func_80883104(BgHakaZou* this, PlayState* play); -void func_80883144(BgHakaZou* this, PlayState* play); -void func_80883254(BgHakaZou* this, PlayState* play); -void func_80883328(BgHakaZou* this, PlayState* play); -void func_808834D8(BgHakaZou* this, PlayState* play); +void BgHakaZou_WaitForObject(BgHakaZou* this, PlayState* play); +void BgHakaZou_CrumbleSkullWall(BgHakaZou* this, PlayState* play); +void BgHakaZou_WaitForHit(BgHakaZou* this, PlayState* play); +void BgHakaZou_IdleKill(BgHakaZou* this, PlayState* play); +void BgHakaZou_BirdStatueAnim_Explode(BgHakaZou* this, PlayState* play); +void BgHakaZou_BirdStatueAnim_Shear(BgHakaZou* this, PlayState* play); +void BgHakaZou_BirdStatueAnim_Topple(BgHakaZou* this, PlayState* play); +void BgHakaZou_BirdStatueAnim_Settle(BgHakaZou* this, PlayState* play); void BgHakaZou_DoNothing(BgHakaZou* this, PlayState* play); static ColliderCylinderInit sCylinderInit = { @@ -90,7 +83,7 @@ void BgHakaZou_Init(Actor* thisx, PlayState* play) { this->switchFlag = PARAMS_GET_U(thisx->params, 8, 8); thisx->params &= 0xFF; - if (thisx->params == STA_UNKNOWN) { + if (thisx->params == BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE) { Actor_SetScale(thisx, (Rand_ZeroOne() * 0.005f) + 0.025f); thisx->speed = Rand_ZeroOne(); @@ -105,36 +98,38 @@ void BgHakaZou_Init(Actor* thisx, PlayState* play) { DynaPolyActor_Init(&this->dyna, 0); - if (thisx->params == STA_GIANT_BIRD_STATUE) { + if (thisx->params == BGHAKAZOU_TYPE_GIANT_BIRD_STATUE) { thisx->cullingVolumeDistance = 2000.0f; thisx->cullingVolumeScale = 3000.0f; thisx->cullingVolumeDownward = 3000.0f; } } - this->requiredObjectSlot = (thisx->params == STA_BOMBABLE_RUBBLE) + this->requiredObjectSlot = (thisx->params == BGHAKAZOU_TYPE_BOMBABLE_RUBBLE) ? Object_GetSlot(&play->objectCtx, OBJECT_HAKACH_OBJECTS) : Object_GetSlot(&play->objectCtx, OBJECT_HAKA_OBJECTS); if (this->requiredObjectSlot < 0) { Actor_Kill(thisx); - } else if ((thisx->params != STA_UNKNOWN) && Flags_GetSwitch(play, this->switchFlag)) { - if (thisx->params != STA_GIANT_BIRD_STATUE) { + } else if (thisx->params != BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE && Flags_GetSwitch(play, this->switchFlag)) { + if (thisx->params != BGHAKAZOU_TYPE_GIANT_BIRD_STATUE) { + // Object has already been destroyed Actor_Kill(thisx); } else { + // Initialize the statue toppled over thisx->shape.rot.x = -0x4000; thisx->world.pos.z -= 80.0f; - thisx->world.pos.y -= 54.0f; + thisx->world.pos.y -= 40 + 14; } } - this->actionFunc = BgHakaZou_Wait; + this->actionFunc = BgHakaZou_WaitForObject; } void BgHakaZou_Destroy(Actor* thisx, PlayState* play) { BgHakaZou* this = (BgHakaZou*)thisx; - if (this->dyna.actor.params != STA_UNKNOWN) { + if (this->dyna.actor.params != BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE) { DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); Collider_DestroyCylinder(play, &this->collider); } @@ -165,48 +160,49 @@ void func_808828F4(BgHakaZou* this, PlayState* play) { } } -void BgHakaZou_Wait(BgHakaZou* this, PlayState* play) { - CollisionHeader* colHeader; +void BgHakaZou_WaitForObject(BgHakaZou* this, PlayState* play) { if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) { this->dyna.actor.objectSlot = this->requiredObjectSlot; this->dyna.actor.draw = BgHakaZou_Draw; - if (this->dyna.actor.params == STA_UNKNOWN) { - this->actionFunc = func_80882BDC; + if (this->dyna.actor.params == BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE) { + this->actionFunc = BgHakaZou_CrumbleSkullWall; } else { - Actor_SetObjectDependency(play, &this->dyna.actor); + CollisionHeader* colHeader; + Actor_SetObjectDependency(play, &this->dyna.actor); colHeader = NULL; - if (this->dyna.actor.params == STA_GIANT_BIRD_STATUE) { - CollisionHeader_GetVirtual(&object_haka_objects_Col_006F70, &colHeader); + if (this->dyna.actor.params == BGHAKAZOU_TYPE_GIANT_BIRD_STATUE) { + CollisionHeader_GetVirtual(&gShadowTempleBirdStatueCol, &colHeader); this->collider.dim.radius = 80; this->collider.dim.height = 100; this->collider.dim.yShift = -30; this->collider.dim.pos.x -= 56; this->collider.dim.pos.z += 56; this->dyna.actor.cullingVolumeScale = 1500.0f; - } else if (this->dyna.actor.params == STA_BOMBABLE_SKULL_WALL) { - CollisionHeader_GetVirtual(&object_haka_objects_Col_005E30, &colHeader); + } else if (this->dyna.actor.params == BGHAKAZOU_TYPE_BOMBABLE_SKULL_WALL) { + CollisionHeader_GetVirtual(&gShadowTempleSkullWallCol, &colHeader); this->collider.dim.yShift = -50; - } else { - CollisionHeader_GetVirtual(&gBotwBombSpotCol, &colHeader); + } else /* BGHAKAZOU_TYPE_BOMBABLE_RUBBLE */ { + CollisionHeader_GetVirtual(&gBotwBombableRubbleCol, &colHeader); this->collider.dim.radius = 55; this->collider.dim.height = 20; } this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); - if ((this->dyna.actor.params == STA_GIANT_BIRD_STATUE) && Flags_GetSwitch(play, this->switchFlag)) { + if ((this->dyna.actor.params == BGHAKAZOU_TYPE_GIANT_BIRD_STATUE) && + Flags_GetSwitch(play, this->switchFlag)) { this->actionFunc = BgHakaZou_DoNothing; } else { - this->actionFunc = func_80883000; + this->actionFunc = BgHakaZou_WaitForHit; } } } } -void func_80882BDC(BgHakaZou* this, PlayState* play) { +void BgHakaZou_CrumbleSkullWall(BgHakaZou* this, PlayState* play) { if (this->timer != 0) { this->timer--; } @@ -230,7 +226,7 @@ void func_80882BDC(BgHakaZou* this, PlayState* play) { } } -void func_80882CC4(BgHakaZou* this, PlayState* play) { +void BgHakaZou_SpawnSkullWallRubble(BgHakaZou* this, PlayState* play) { s32 i; s32 j; Vec3f actorSpawnPos; @@ -248,13 +244,14 @@ void func_80882CC4(BgHakaZou* this, PlayState* play) { actorSpawnPos.y = this->dyna.actor.world.pos.y + (i - 1) * 55; Actor_Spawn(&play->actorCtx, play, ACTOR_BG_HAKA_ZOU, actorSpawnPos.x, actorSpawnPos.y, actorSpawnPos.z, 0, - this->dyna.actor.shape.rot.y, 0, this->dyna.actor.params + 2); + this->dyna.actor.shape.rot.y, 0, + this->dyna.actor.params + 2); // this passes BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE into params func_800286CC(play, &actorSpawnPos, &sZeroVec, &sZeroVec, 1000, 50); } } } -void func_80882E54(BgHakaZou* this, PlayState* play) { +void BgHakaZou_SpawnRubbleParticles(BgHakaZou* this, PlayState* play) { Vec3f fragmentPos; s32 i; s32 j; @@ -264,44 +261,44 @@ void func_80882E54(BgHakaZou* this, PlayState* play) { fragmentPos.y = this->collider.dim.pos.y; fragmentPos.z = this->collider.dim.pos.z; - EffectSsHahen_SpawnBurst(play, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, gBotwBombSpotDL); + EffectSsHahen_SpawnBurst(play, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, gBotwBombableRubbleDL); for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { fragmentPos.x = this->collider.dim.pos.x + (((j * 2) - 1) * num); fragmentPos.z = this->collider.dim.pos.z + (((i * 2) - 1) * num); - EffectSsHahen_SpawnBurst(play, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, gBotwBombSpotDL); + EffectSsHahen_SpawnBurst(play, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, gBotwBombableRubbleDL); func_800286CC(play, &fragmentPos, &sZeroVec, &sZeroVec, 1000, 50); } } } -void func_80883000(BgHakaZou* this, PlayState* play) { +void BgHakaZou_WaitForHit(BgHakaZou* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { Flags_SetSwitch(play, this->switchFlag); - if (this->dyna.actor.params == STA_GIANT_BIRD_STATUE) { + if (this->dyna.actor.params == BGHAKAZOU_TYPE_GIANT_BIRD_STATUE) { this->timer = 20; - this->actionFunc = func_80883144; + this->actionFunc = BgHakaZou_BirdStatueAnim_Explode; OnePointCutscene_Init(play, 3400, 999, &this->dyna.actor, CAM_ID_MAIN); - } else if (this->dyna.actor.params == 2) { - func_80882E54(this, play); + } else if (this->dyna.actor.params == BGHAKAZOU_TYPE_BOMBABLE_RUBBLE) { + BgHakaZou_SpawnRubbleParticles(this, play); this->dyna.actor.draw = NULL; this->timer = 1; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_EXPLOSION); - this->actionFunc = func_80883104; - } else { - func_80882CC4(this, play); + this->actionFunc = BgHakaZou_IdleKill; + } else /* BGHAKAZOU_TYPE_BOMBABLE_SKULL_WALL */ { + BgHakaZou_SpawnSkullWallRubble(this, play); this->timer = 1; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_WALL_BROKEN); - this->actionFunc = func_80883104; + this->actionFunc = BgHakaZou_IdleKill; } } else { CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); } } -void func_80883104(BgHakaZou* this, PlayState* play) { +void BgHakaZou_IdleKill(BgHakaZou* this, PlayState* play) { if (this->timer != 0) { this->timer--; } @@ -311,7 +308,7 @@ void func_80883104(BgHakaZou* this, PlayState* play) { } } -void func_80883144(BgHakaZou* this, PlayState* play) { +void BgHakaZou_BirdStatueAnim_Explode(BgHakaZou* this, PlayState* play) { Vec3f explosionPos; if (this->timer != 0) { @@ -329,11 +326,11 @@ void func_80883144(BgHakaZou* this, PlayState* play) { if (this->timer == 0) { this->timer = 20; - this->actionFunc = func_80883254; + this->actionFunc = BgHakaZou_BirdStatueAnim_Shear; } } -void func_80883254(BgHakaZou* this, PlayState* play) { +void BgHakaZou_BirdStatueAnim_Shear(BgHakaZou* this, PlayState* play) { f32 moveDist = (Rand_ZeroOne() * 0.5f) + 0.5f; Math_StepToF(&this->dyna.actor.world.pos.z, this->dyna.actor.home.pos.z - 80.0f, 2.0f * moveDist); @@ -346,14 +343,14 @@ void func_80883254(BgHakaZou* this, PlayState* play) { if (this->timer == 0) { this->timer = 60; this->dyna.actor.world.rot.x = 8; - this->actionFunc = func_80883328; + this->actionFunc = BgHakaZou_BirdStatueAnim_Topple; } } else { func_808828F4(this, play); } } -void func_80883328(BgHakaZou* this, PlayState* play) { +void BgHakaZou_BirdStatueAnim_Topple(BgHakaZou* this, PlayState* play) { Vec3f effectPos; s32 i; s32 j; @@ -377,19 +374,30 @@ void func_80883328(BgHakaZou* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_STONE_BOUND); this->timer = 25; - this->actionFunc = func_808834D8; + this->actionFunc = BgHakaZou_BirdStatueAnim_Settle; } } -void func_808834D8(BgHakaZou* this, PlayState* play) { +void BgHakaZou_BirdStatueAnim_Settle(BgHakaZou* this, PlayState* play) { f32 moveDist; if (this->timer != 0) { this->timer--; } + // The idea is to shake the pillar up and down on alternate frames, with the magnitude of the shaking decreasing + // linearly as the timer approaches zero. With an even numbered starting timer, the pillar will go up one frame, + // down the next with the same magnitude, cancelling out any movement (except perhaps for some miniscule rounding + // error). However, the starting timer is set to 25, (an odd number). This skips the increment step and shifts the + // pillar down an extra -14.4 units. + // + // The programmer was likely aware of a discrepancy as BgHakaZou_Init subtracts 14 units to account for this + // (resulting in a 0.4 unit discrepancy between post animation and the next time the actor is reloaded). Lowering + // the statue 14 units causes the model to clip into the ground, but it is also enough to make the pillar low enough + // for Link to climb on top of it if the player is missing keys. + moveDist = (this->timer % 2) ? 15.0f : -15.0f; - this->dyna.actor.world.pos.y += ((this->timer & 0xFE) * 0.04f * moveDist); + this->dyna.actor.world.pos.y += ((this->timer & 0xFE) * (1.0f / 25) * moveDist); if (this->timer == 0) { this->actionFunc = BgHakaZou_DoNothing; @@ -404,17 +412,17 @@ void BgHakaZou_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); - if (this->dyna.actor.params == 3) { + if (this->dyna.actor.params == BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE) { Actor_MoveXZGravity(&this->dyna.actor); } } void BgHakaZou_Draw(Actor* thisx, PlayState* play) { static Gfx* dLists[] = { - object_haka_objects_DL_0064E0, - object_haka_objects_DL_005CE0, - gBotwBombSpotDL, - object_haka_objects_DL_005CE0, + gShadowTempleBirdStatueDL, + gShadowTempleSkullWallDL, + gBotwBombableRubbleDL, + gShadowTempleSkullWallDL, }; Gfx_DrawDListOpa(play, dLists[thisx->params]); diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.h b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.h index 1d4c4798d6..1f31cece45 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.h +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.h @@ -4,6 +4,13 @@ #include "ultra64.h" #include "actor.h" +typedef enum BgHakaZouType { + /* 0x0 */ BGHAKAZOU_TYPE_GIANT_BIRD_STATUE, + /* 0x1 */ BGHAKAZOU_TYPE_BOMBABLE_SKULL_WALL, + /* 0x2 */ BGHAKAZOU_TYPE_BOMBABLE_RUBBLE, + /* 0x3 */ BGHAKAZOU_TYPE_SKULL_WALL_RUBBLE +} BgHakaZouType; + struct BgHakaZou; typedef void (*BgHakaZouActionFunc)(struct BgHakaZou*, struct PlayState*); From 1884569a98abe175b60e61ffdb792fff5326e127 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Tue, 17 Feb 2026 10:09:54 -0500 Subject: [PATCH 22/27] bg_haka_trap documentation pass (#2683) * document pass on bg_haka_trap * formatting * suggestions * dragorn suggestions --- assets/xml/objects/object_haka_objects.xml | 26 +- .../actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c | 341 ++++++++++-------- .../actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.h | 20 +- 3 files changed, 224 insertions(+), 163 deletions(-) diff --git a/assets/xml/objects/object_haka_objects.xml b/assets/xml/objects/object_haka_objects.xml index 615f67b3b5..ac301fe500 100644 --- a/assets/xml/objects/object_haka_objects.xml +++ b/assets/xml/objects/object_haka_objects.xml @@ -70,34 +70,34 @@ - + - - + + - - + + - - - + + + - - + + - + - - + + diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c index afb0f19043..a91df648c1 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c +++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c @@ -1,7 +1,27 @@ /* * File: z_bg_haka_trap.c * Overlay: ovl_Bg_Haka_Trap - * Description: Shadow Temple Objects + * Description: Shadow Temple traps + * + * HAKA_TRAP_GUILLOTINE: + * A guillotine blade attached to a chain, drops from the ceiling. + * + * HAKA_TRAP_GUILLOTINE_FAST: (spawn only param) + * Enables a flag making the guillotine move faster. + * + * HAKA_TRAP_SPIKED_CRUSHER: + * A square shaped platform suspended by a chain with spikes underneath, intended to crush the player. A pushblock can + * be used to prevent it from decending completely. Rotating this actor may prevent correct hit detection of the block. + * + * HAKA_TRAP_SPIKED_WALL_EAST: + * HAKA_TRAP_SPIKED_WALL_WEST: + * + * Two wooden spike walls that come together to crush the player. The one to the east has extra holes to reveal the + * chest behind it. + * + * HAKA_TRAP_FAN_BLADE: + * A small fan blade that pushes the player away when turned on. `world.rot.z` is used to store the angular + * velocity of the fan */ #include "z_bg_haka_trap.h" @@ -26,20 +46,20 @@ void BgHakaTrap_Destroy(Actor* thisx, PlayState* play); void BgHakaTrap_Update(Actor* thisx, PlayState* play); void BgHakaTrap_Draw(Actor* thisx, PlayState* play); -void func_8087FFC0(BgHakaTrap* this, PlayState* play); -void func_808801B8(BgHakaTrap* this, PlayState* play); -void func_808802D8(BgHakaTrap* this, PlayState* play); -void func_80880484(BgHakaTrap* this, PlayState* play); -void func_808805C0(BgHakaTrap* this, PlayState* play); -void func_808806BC(BgHakaTrap* this, PlayState* play); -void func_808808F4(BgHakaTrap* this, PlayState* play); -void func_808809B0(BgHakaTrap* this, PlayState* play); -void func_808809E4(BgHakaTrap* this, PlayState* play, s16 arg2); -void func_80880AE8(BgHakaTrap* this, PlayState* play); -void func_80880C0C(BgHakaTrap* this, PlayState* play); -void func_80880D68(BgHakaTrap* this); +void BgHakaTrap_UpdateBodyColliderPos(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_SpikedWall_CloseIn(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_SpikedWall_Burn(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_Guillotine_Fall(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_Guillotine_Lift(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_SpikedCrusher_Fall(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_SpikedCrusher_Lift(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_FanBlade_Idle(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_PushPlayer(BgHakaTrap* this, PlayState* play, s16 angularVelocity); +void BgHakaTrap_FanBlade_ToggleFanGust(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_FanBlade_FullGust(BgHakaTrap* this, PlayState* play); +void BgHakaTrap_SpikedWall_UpdateCollider(BgHakaTrap* this); -static UNK_TYPE D_80880F30 = 0; +static s32 sIsSpikeWallBurning = false; ActorProfile Bg_Haka_Trap_Profile = { /**/ ACTOR_BG_HAKA_TRAP, @@ -73,7 +93,7 @@ static ColliderCylinderInit sCylinderInit = { { 30, 90, 0, { 0, 0, 0 } }, }; -static ColliderTrisElementInit sTrisElementsInit[] = { +static ColliderTrisElementInit sSpikedWallTrisElementsInit[] = { { { ELEM_MATERIAL_UNK0, @@ -98,7 +118,7 @@ static ColliderTrisElementInit sTrisElementsInit[] = { }, }; -static ColliderTrisInit sTrisInit = { +static ColliderTrisInit sSpikedWallTrisInit = { { COL_MATERIAL_NONE, AT_NONE, @@ -107,8 +127,8 @@ static ColliderTrisInit sTrisInit = { OC2_TYPE_2, COLSHAPE_TRIS, }, - ARRAY_COUNT(sTrisElementsInit), - sTrisElementsInit, + ARRAY_COUNT(sSpikedWallTrisElementsInit), + sSpikedWallTrisElementsInit, }; static CollisionCheckInfoInit sColChkInfoInit = { 0, 80, 100, MASS_IMMOVABLE }; @@ -118,7 +138,7 @@ static InitChainEntry sInitChain[] = { }; void BgHakaTrap_Init(Actor* thisx, PlayState* play) { - static UNK_TYPE D_80881014 = 0; + static s32 sSpikedCrusherFlip = false; BgHakaTrap* this = (BgHakaTrap*)thisx; s32 pad; CollisionHeader* colHeader = NULL; @@ -126,54 +146,65 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(thisx, sInitChain); thisx->params &= 0xFF; - if (thisx->params != HAKA_TRAP_PROPELLER) { + if (thisx->params != HAKA_TRAP_FAN_BLADE) { Collider_InitCylinder(play, &this->colliderCylinder); Collider_SetCylinder(play, &this->colliderCylinder, thisx, &sCylinderInit); - if ((thisx->params == HAKA_TRAP_GUILLOTINE_SLOW) || (thisx->params == HAKA_TRAP_GUILLOTINE_FAST)) { + if ((thisx->params == HAKA_TRAP_GUILLOTINE) || (thisx->params == HAKA_TRAP_GUILLOTINE_FAST)) { this->timer = 20; this->colliderCylinder.dim.yShift = 10; thisx->velocity.y = 0.1f; if (thisx->params == HAKA_TRAP_GUILLOTINE_FAST) { - thisx->params = HAKA_TRAP_GUILLOTINE_SLOW; - this->unk_16A = 1; + thisx->params = HAKA_TRAP_GUILLOTINE; + this->isGuillotineFast = true; } - this->actionFunc = func_80880484; + this->actionFunc = BgHakaTrap_Guillotine_Fall; } else { DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS); thisx->flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED; - if (thisx->params == HAKA_TRAP_SPIKED_BOX) { - CollisionHeader_GetVirtual(&object_haka_objects_Col_009CD0, &colHeader); + if (thisx->params == HAKA_TRAP_SPIKED_CRUSHER) { + CollisionHeader_GetVirtual(&gShadowTempleSpikedCrusherCol, &colHeader); this->timer = 30; - if (D_80881014 != 0) { - this->actionFunc = func_808808F4; - D_80881014 = 0; + // Instances alternate between starting off in the up or down position. + if (sSpikedCrusherFlip) { + this->actionFunc = BgHakaTrap_SpikedCrusher_Lift; + sSpikedCrusherFlip = false; } else { - D_80881014 = 1; - this->actionFunc = func_808806BC; + sSpikedCrusherFlip = true; + this->actionFunc = BgHakaTrap_SpikedCrusher_Fall; thisx->velocity.y = 0.5f; } - thisx->floorHeight = thisx->home.pos.y - 225.0f; - this->unk_16A = (thisx->floorHeight + 50.0f) - 25.0f; + // Assign the minimum height of the crusher. The crusher intentionally clips through the floor by 25 + // units to allow the spikes to pierce the floor + thisx->floorHeight = thisx->home.pos.y - (200 + 25); + + // Assigns the height the crusher rises on first "tug". The final -25 offset is missing in other + // calculations of this variable. + this->spikedCrusherStepY = (thisx->floorHeight + 50.0f) - 25.0f; this->colliderCylinder.dim.radius = 10; this->colliderCylinder.dim.height = 40; } else { - if (thisx->params == HAKA_TRAP_SPIKED_WALL) { - CollisionHeader_GetVirtual(&object_haka_objects_Col_0081D0, &colHeader); + if (thisx->params == HAKA_TRAP_SPIKED_WALL_EAST) { + CollisionHeader_GetVirtual(&gShadowTempleSpikedWallEastCol, &colHeader); + // Shift the home position toward the center of the room. This will become the target position that + // triggers the crush. thisx->home.pos.x -= 200.0f; - } else { + } else /* HAKA_TRAP_SPIKED_WALL_WEST */ { + // Shift the home position toward the center of the room. This will become the target position that + // triggers the crush. thisx->home.pos.x += 200.0f; - CollisionHeader_GetVirtual(&object_haka_objects_Col_008D10, &colHeader); + CollisionHeader_GetVirtual(&gShadowTempleSpikedWallWestCol, &colHeader); } Collider_InitTris(play, &this->spikesCollider); - Collider_SetTris(play, &this->spikesCollider, thisx, &sTrisInit, this->spikesColliderElements); + Collider_SetTris(play, &this->spikesCollider, thisx, &sSpikedWallTrisInit, + this->spikesColliderElements); this->colliderCylinder.dim.radius = 18; this->colliderCylinder.dim.height = 115; @@ -181,14 +212,15 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) { this->colliderCylinder.elem.atElemFlags &= ~ATELEM_SFX_NORMAL; this->colliderCylinder.elem.atElemFlags |= ATELEM_SFX_WOOD; - this->actionFunc = func_808801B8; + this->actionFunc = BgHakaTrap_SpikedWall_CloseIn; } this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, thisx, colHeader); } } else { + // Initialize HAKA_TRAP_FAN_BLADE this->timer = 40; - this->actionFunc = func_808809B0; + this->actionFunc = BgHakaTrap_FanBlade_Idle; thisx->cullingVolumeScale = 500.0f; } @@ -198,11 +230,11 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) { void BgHakaTrap_Destroy(Actor* thisx, PlayState* play) { BgHakaTrap* this = (BgHakaTrap*)thisx; - if (this->dyna.actor.params != HAKA_TRAP_PROPELLER) { - if (this->dyna.actor.params != HAKA_TRAP_GUILLOTINE_SLOW) { + if (this->dyna.actor.params != HAKA_TRAP_FAN_BLADE) { + if (this->dyna.actor.params != HAKA_TRAP_GUILLOTINE) { DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); - if ((this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL) || - (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_2)) { + if ((this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_EAST) || + (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_WEST)) { Collider_DestroyTris(play, &this->spikesCollider); } } @@ -210,61 +242,68 @@ void BgHakaTrap_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyCylinder(play, &this->colliderCylinder); } - Audio_StopSfxByPos(&this->unk_16C); + Audio_StopSfxByPos(&this->chainLiftSfxPos); } -void func_8087FFC0(BgHakaTrap* this, PlayState* play) { - f32 cosine; - Vec3f sp28; - f32 sine; - f32 zNonNegative; +// Updates body collider for HAKA_TRAP_GUILLOTINE, HAKA_TRAP_SPIKED_WALL_EAST, HAKA_TRAP_SPIKED_WALL_WEST +void BgHakaTrap_UpdateBodyColliderPos(BgHakaTrap* this, PlayState* play) { + f32 cos; + Vec3f colOff; + f32 sin; + f32 zSign; Player* player = GET_PLAYER(play); - Actor_WorldToActorCoords(&this->dyna.actor, &sp28, &player->actor.world.pos); + Actor_WorldToActorCoords(&this->dyna.actor, &colOff, &player->actor.world.pos); - sine = Math_SinS(this->dyna.actor.shape.rot.y); - cosine = Math_CosS(this->dyna.actor.shape.rot.y); - if (this->dyna.actor.params == HAKA_TRAP_GUILLOTINE_SLOW) { - sp28.x = CLAMP(sp28.x, -50.0f, 50.0f); - zNonNegative = (sp28.z >= 0.0f) ? 1.0f : -1.0f; - sp28.z = zNonNegative * -15.0f; + sin = Math_SinS(this->dyna.actor.shape.rot.y); + cos = Math_CosS(this->dyna.actor.shape.rot.y); + + if (this->dyna.actor.params == HAKA_TRAP_GUILLOTINE) { + colOff.x = CLAMP(colOff.x, -50.0f, 50.0f); + zSign = (colOff.z >= 0.0f) ? 1.0f : -1.0f; + colOff.z = zSign * -15.0f; } else { - sp28.x = -CLAMP(sp28.x, -162.0f, 162.0f); - zNonNegative = (sp28.z >= 0.0f) ? 1.0f : -1.0f; - sp28.z = zNonNegative * 15.0f; + colOff.x = -CLAMP(colOff.x, -162.0f, 162.0f); + zSign = (colOff.z >= 0.0f) ? 1.0f : -1.0f; + colOff.z = zSign * 15.0f; } - this->colliderCylinder.dim.pos.x = this->dyna.actor.world.pos.x + sp28.x * cosine + sp28.z * sine; - this->colliderCylinder.dim.pos.z = this->dyna.actor.world.pos.z + sp28.x * sine + sp28.z * cosine; + this->colliderCylinder.dim.pos.x = this->dyna.actor.world.pos.x + colOff.x * cos + colOff.z * sin; + this->colliderCylinder.dim.pos.z = this->dyna.actor.world.pos.z + colOff.x * sin + colOff.z * cos; } -void func_808801B8(BgHakaTrap* this, PlayState* play) { - static UNK_TYPE D_80881018 = 0; +#define BGHAKATRAP_SPIKEDWALL_HITEAST (1 << 0) +#define BGHAKATRAP_SPIKEDWALL_HITWEST (1 << 1) +#define BGHAKATRAP_SPIKEDWALL_CRUSH_PLAYER 4 + +void BgHakaTrap_SpikedWall_CloseIn(BgHakaTrap* this, PlayState* play) { + static s32 sSpikedWallFlags = 0; Player* player = GET_PLAYER(play); - if ((D_80880F30 == 0) && (!Player_InCsMode(play))) { + if (!sIsSpikeWallBurning && !Player_InCsMode(play)) { + // Step towards the home position. If we haven't reached it, play the sliding sfx if (!Math_StepToF(&this->dyna.actor.world.pos.x, this->dyna.actor.home.pos.x, 0.5f)) { Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_TRAP_OBJ_SLIDE - SFX_FLAG); - } else if (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL) { - D_80881018 |= 1; - } else if (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_2) { - D_80881018 |= 2; + } else if (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_EAST) { + sSpikedWallFlags |= BGHAKATRAP_SPIKEDWALL_HITEAST; + } else if (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_WEST) { + sSpikedWallFlags |= BGHAKATRAP_SPIKEDWALL_HITWEST; } } - func_8087FFC0(this, play); + BgHakaTrap_UpdateBodyColliderPos(this, play); if (this->spikesCollider.base.acFlags & AC_HIT) { this->timer = 20; - D_80880F30 = 1; - this->actionFunc = func_808802D8; - } else if (D_80881018 == 3) { - D_80881018 = 4; + sIsSpikeWallBurning = true; + this->actionFunc = BgHakaTrap_SpikedWall_Burn; + } else if (sSpikedWallFlags == (BGHAKATRAP_SPIKEDWALL_HITEAST | BGHAKATRAP_SPIKEDWALL_HITWEST)) { + sSpikedWallFlags = BGHAKATRAP_SPIKEDWALL_CRUSH_PLAYER; player->actor.bgCheckFlags |= BGCHECKFLAG_CRUSHED; } } -void func_808802D8(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_SpikedWall_Burn(BgHakaTrap* this, PlayState* play) { static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; Vec3f vector; f32 xScale; @@ -279,7 +318,7 @@ void func_808802D8(BgHakaTrap* this, PlayState* play) { for (i = 0; i < 2; i++) { f32 rand = Rand_ZeroOne(); - xScale = (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL) ? -30.0f : 30.0f; + xScale = (this->dyna.actor.params == HAKA_TRAP_SPIKED_WALL_EAST) ? -30.0f : 30.0f; vector.x = xScale * rand + this->dyna.actor.world.pos.x; vector.y = Rand_ZeroOne() * 10.0f + this->dyna.actor.world.pos.y + 30.0f; @@ -289,16 +328,16 @@ void func_808802D8(BgHakaTrap* this, PlayState* play) { } if (this->timer == 0) { - D_80880F30 = 0; + sIsSpikeWallBurning = false; Actor_Kill(&this->dyna.actor); } } -void func_80880484(BgHakaTrap* this, PlayState* play) { - s32 sp24; +void BgHakaTrap_Guillotine_Fall(BgHakaTrap* this, PlayState* play) { + s32 isDoneFalling; s32 timer; - if (this->unk_16A) { + if (this->isGuillotineFast) { this->dyna.actor.velocity.y *= 3.0f; } else { this->dyna.actor.velocity.y *= 2.0f; @@ -308,34 +347,35 @@ void func_80880484(BgHakaTrap* this, PlayState* play) { this->timer -= 1; } - sp24 = + isDoneFalling = Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 185.0f, this->dyna.actor.velocity.y); timer = this->timer; - if ((timer == 10 && !this->unk_16A) || (timer == 13 && this->unk_16A)) { + if ((timer == 10 && !this->isGuillotineFast) || (timer == 13 && this->isGuillotineFast)) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_GUILLOTINE_BOUND); } if (this->timer == 0) { this->dyna.actor.velocity.y = 0.0f; - this->timer = (this->unk_16A) ? 10 : 40; + this->timer = (this->isGuillotineFast) ? 10 : 40; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_GUILLOTINE_UP); - this->actionFunc = func_808805C0; + this->actionFunc = BgHakaTrap_Guillotine_Lift; } - func_8087FFC0(this, play); + BgHakaTrap_UpdateBodyColliderPos(this, play); - if (sp24 == 0) { + if (!isDoneFalling) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderCylinder.base); } } -void func_808805C0(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_Guillotine_Lift(BgHakaTrap* this, PlayState* play) { if (this->timer != 0) { this->timer--; } - if (this->unk_16A) { + if (this->isGuillotineFast) { + Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 27.0f); } else { if (this->timer > 20) { @@ -353,13 +393,13 @@ void func_808805C0(BgHakaTrap* this, PlayState* play) { this->timer = 20; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y; this->dyna.actor.velocity.y = 0.1f; - this->actionFunc = func_80880484; + this->actionFunc = BgHakaTrap_Guillotine_Fall; } - func_8087FFC0(this, play); + BgHakaTrap_UpdateBodyColliderPos(this, play); } -void func_808806BC(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_SpikedCrusher_Fall(BgHakaTrap* this, PlayState* play) { Vec3f vector; f32 floorHeight; f32 yIntersect; @@ -372,10 +412,17 @@ void func_808806BC(BgHakaTrap* this, PlayState* play) { this->timer--; } + // Perform a collision check for the "stone umbrella" block + // Because of the shape of the room and the size of the block we only need to check three positions, + // the center of the east edge, the centerpoint, and the center of the west edge of the crusher. + // + // The y coordinate is offset by 25 units, as the crusher is allowed to clip into the floor for visual effect. + vector.x = this->dyna.actor.world.pos.x + 90.0f; vector.y = (this->dyna.actor.world.pos.y + 1.0f) + 25.0f; vector.z = this->dyna.actor.world.pos.z; + // actor.floorHeight is storing the minimum y position of the crusher floorHeight = this->dyna.actor.floorHeight; for (i = 0; i < 3; i++) { @@ -403,77 +450,87 @@ void func_808806BC(BgHakaTrap* this, PlayState* play) { if (this->timer == 0) { this->dyna.actor.velocity.y = 0.0f; this->timer = 30; - this->unk_16A = (s16)this->dyna.actor.world.pos.y + 50.0f; - this->unk_16A = CLAMP_MAX(this->unk_16A, this->dyna.actor.home.pos.y); + this->spikedCrusherStepY = (s16)this->dyna.actor.world.pos.y + 50.0f; + this->spikedCrusherStepY = CLAMP_MAX(this->spikedCrusherStepY, this->dyna.actor.home.pos.y); - this->actionFunc = func_808808F4; + this->actionFunc = BgHakaTrap_SpikedCrusher_Lift; } } -void func_808808F4(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_SpikedCrusher_Lift(BgHakaTrap* this, PlayState* play) { if (this->timer != 0) { this->timer--; } if (this->timer > 20) { - this->unk_169 = Math_StepToF(&this->dyna.actor.world.pos.y, this->unk_16A, 15.0f); + this->isSpikedCrusherStationary = Math_StepToF(&this->dyna.actor.world.pos.y, this->spikedCrusherStepY, 15.0f); } else { - this->unk_169 = Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 20.0f); + this->isSpikedCrusherStationary = + Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 20.0f); } if (this->timer == 0) { this->timer = 30; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y; this->dyna.actor.velocity.y = 0.5f; - this->actionFunc = func_808806BC; + this->actionFunc = BgHakaTrap_SpikedCrusher_Fall; } } -void func_808809B0(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_FanBlade_Idle(BgHakaTrap* this, PlayState* play) { if (this->timer != 0) { this->timer -= 1; } if (this->timer == 0) { - this->actionFunc = func_80880AE8; + // this->timer = 0, which signals the fan to turn on and speed up + this->actionFunc = BgHakaTrap_FanBlade_ToggleFanGust; } } -void func_808809E4(BgHakaTrap* this, PlayState* play, s16 arg2) { +void BgHakaTrap_PushPlayer(BgHakaTrap* this, PlayState* play, s16 angularVelocity) { Player* player = GET_PLAYER(play); - Vec3f sp18; + Vec3f playerRelOff; - Actor_WorldToActorCoords(&this->dyna.actor, &sp18, &player->actor.world.pos); + Actor_WorldToActorCoords(&this->dyna.actor, &playerRelOff, &player->actor.world.pos); - if ((fabsf(sp18.x) < 70.0f) && (fabsf(sp18.y) < 100.0f) && (sp18.z < 500.0f) && + if ((fabsf(playerRelOff.x) < 70.0f) && (fabsf(playerRelOff.y) < 100.0f) && (playerRelOff.z < 500.0f) && (GET_PLAYER(play)->currentBoots != PLAYER_BOOTS_IRON)) { - player->pushedSpeed = ((500.0f - sp18.z) * 0.06f + 5.0f) * arg2 * (1.0f / 0x3A00) * (2.0f / 3.0f); + player->pushedSpeed = + ((500.0f - playerRelOff.z) * 0.06f + 5.0f) * angularVelocity * (1.0f / 0x3A00) * (2.0f / 3.0f); player->pushedYaw = this->dyna.actor.shape.rot.y; } } -void func_80880AE8(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_FanBlade_ToggleFanGust(BgHakaTrap* this, PlayState* play) { + // this->timer stores the current fan behavior. + // if 1, the fan is on and is ramping down to the off state. + // if 0, the fan is off and is ramping up to the full on state. + + // world.rot.z is the current angular velocity of the fan if (this->timer != 0) { + // Fan winds down if (Math_ScaledStepToS(&this->dyna.actor.world.rot.z, 0, this->dyna.actor.world.rot.z * 0.03f + 5.0f)) { this->timer = 40; - this->actionFunc = func_808809B0; + this->actionFunc = BgHakaTrap_FanBlade_Idle; } } else { + // Fan speeds up if (Math_ScaledStepToS(&this->dyna.actor.world.rot.z, 0x3A00, this->dyna.actor.world.rot.z * 0.03f + 5.0f)) { this->timer = 100; - this->actionFunc = func_80880C0C; + this->actionFunc = BgHakaTrap_FanBlade_FullGust; } } this->dyna.actor.shape.rot.z += this->dyna.actor.world.rot.z; - if (this->dyna.actor.world.rot.z >= 0x1801) { + if (this->dyna.actor.world.rot.z > 0x1800) { Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_WIND_TRAP - SFX_FLAG); } - func_808809E4(this, play, this->dyna.actor.world.rot.z); + BgHakaTrap_PushPlayer(this, play, this->dyna.actor.world.rot.z); } -void func_80880C0C(BgHakaTrap* this, PlayState* play) { +void BgHakaTrap_FanBlade_FullGust(BgHakaTrap* this, PlayState* play) { if (this->timer != 0) { this->timer--; } @@ -481,12 +538,13 @@ void func_80880C0C(BgHakaTrap* this, PlayState* play) { Actor_PlaySfx_Flagged(&this->dyna.actor, NA_SE_EV_WIND_TRAP - SFX_FLAG); if (this->timer == 0) { - this->timer = 1; - this->actionFunc = func_80880AE8; + this->timer = 1; // setting this signals the fan to turn off and slow down + this->actionFunc = BgHakaTrap_FanBlade_ToggleFanGust; } + // world.rot.z is the current angular velocity of the fan this->dyna.actor.shape.rot.z += this->dyna.actor.world.rot.z; - func_808809E4(this, play, this->dyna.actor.world.rot.z); + BgHakaTrap_PushPlayer(this, play, this->dyna.actor.world.rot.z); } void BgHakaTrap_Update(Actor* thisx, PlayState* play) { @@ -495,14 +553,14 @@ void BgHakaTrap_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); - if ((this->dyna.actor.params != HAKA_TRAP_PROPELLER) && (thisx->params != HAKA_TRAP_SPIKED_BOX)) { + if ((this->dyna.actor.params != HAKA_TRAP_FAN_BLADE) && (thisx->params != HAKA_TRAP_SPIKED_CRUSHER)) { this->colliderCylinder.dim.pos.y = actorPos->y; - if ((thisx->params == HAKA_TRAP_GUILLOTINE_SLOW) || (thisx->params == HAKA_TRAP_GUILLOTINE_FAST)) { + if ((thisx->params == HAKA_TRAP_GUILLOTINE) || (thisx->params == HAKA_TRAP_GUILLOTINE_FAST)) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderCylinder.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderCylinder.base); } else { - if (this->actionFunc == func_808801B8) { + if (this->actionFunc == BgHakaTrap_SpikedWall_CloseIn) { CollisionCheck_SetAC(play, &play->colChkCtx, &this->spikesCollider.base); } @@ -511,50 +569,49 @@ void BgHakaTrap_Update(Actor* thisx, PlayState* play) { } } -void func_80880D68(BgHakaTrap* this) { - Vec3f vec3; - Vec3f vec2; - Vec3f vec1; +void BgHakaTrap_SpikedWall_UpdateCollider(BgHakaTrap* this) { + Vec3f vtx[3]; - Matrix_MultVec3f(&sTrisElementsInit[0].dim.vtx[0], &vec1); - Matrix_MultVec3f(&sTrisElementsInit[0].dim.vtx[1], &vec2); - Matrix_MultVec3f(&sTrisElementsInit[0].dim.vtx[2], &vec3); - Collider_SetTrisVertices(&this->spikesCollider, 0, &vec1, &vec2, &vec3); + Matrix_MultVec3f(&sSpikedWallTrisElementsInit[0].dim.vtx[0], &vtx[0]); + Matrix_MultVec3f(&sSpikedWallTrisElementsInit[0].dim.vtx[1], &vtx[1]); + Matrix_MultVec3f(&sSpikedWallTrisElementsInit[0].dim.vtx[2], &vtx[2]); + Collider_SetTrisVertices(&this->spikesCollider, 0, &vtx[0], &vtx[1], &vtx[2]); - Matrix_MultVec3f(&sTrisElementsInit[1].dim.vtx[2], &vec2); - Collider_SetTrisVertices(&this->spikesCollider, 1, &vec1, &vec3, &vec2); + Matrix_MultVec3f(&sSpikedWallTrisElementsInit[1].dim.vtx[2], &vtx[1]); + Collider_SetTrisVertices(&this->spikesCollider, 1, &vtx[0], &vtx[2], &vtx[1]); } void BgHakaTrap_Draw(Actor* thisx, PlayState* play) { static Gfx* sDLists[5] = { - object_haka_objects_DL_007610, object_haka_objects_DL_009860, object_haka_objects_DL_007EF0, - object_haka_objects_DL_008A20, object_haka_objects_DL_0072C0, + gShadowTempleGuillotineDL, gShadowTempleSpikedCrusherDL, gShadowTempleSpikedWallEastDL, + gShadowTempleSpikedWallWestDL, gShadowTempleFanBladeDL, }; - static Color_RGBA8 D_8088103C = { 0, 0, 0, 0 }; + static Color_RGBA8 sFogBlack = { 0, 0, 0, 0 }; BgHakaTrap* this = (BgHakaTrap*)thisx; s32 pad; - Vec3f sp2C; - if (this->actionFunc == func_808802D8) { - func_80026230(play, &D_8088103C, this->timer + 20, 0x28); + if (this->actionFunc == BgHakaTrap_SpikedWall_Burn) { + func_80026230(play, &sFogBlack, this->timer + 20, 40); } Gfx_DrawDListOpa(play, sDLists[this->dyna.actor.params]); - if (this->actionFunc == func_808801B8) { - func_80880D68(this); + if (this->actionFunc == BgHakaTrap_SpikedWall_CloseIn) { + BgHakaTrap_SpikedWall_UpdateCollider(this); } - if (this->actionFunc == func_808802D8) { + if (this->actionFunc == BgHakaTrap_SpikedWall_Burn) { func_80026608(play); } - if ((this->actionFunc == func_808808F4) && !this->unk_169) { - sp2C.x = this->dyna.actor.world.pos.x; - sp2C.z = this->dyna.actor.world.pos.z; - sp2C.y = this->dyna.actor.world.pos.y + 110.0f; + if ((this->actionFunc == BgHakaTrap_SpikedCrusher_Lift) && !this->isSpikedCrusherStationary) { + Vec3f sfxPos; - SkinMatrix_Vec3fMtxFMultXYZ(&play->viewProjectionMtxF, &sp2C, &this->unk_16C); - Sfx_PlaySfxAtPos(&this->unk_16C, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG); + sfxPos.x = this->dyna.actor.world.pos.x; + sfxPos.z = this->dyna.actor.world.pos.z; + sfxPos.y = this->dyna.actor.world.pos.y + 110.0f; + + SkinMatrix_Vec3fMtxFMultXYZ(&play->viewProjectionMtxF, &sfxPos, &this->chainLiftSfxPos); + Sfx_PlaySfxAtPos(&this->chainLiftSfxPos, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.h b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.h index a75c877ed3..14c7c7a1a3 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.h +++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.h @@ -5,11 +5,11 @@ #include "actor.h" typedef enum HakaTrapType { - /* 0x00 */ HAKA_TRAP_GUILLOTINE_SLOW, - /* 0x01 */ HAKA_TRAP_SPIKED_BOX, - /* 0x02 */ HAKA_TRAP_SPIKED_WALL, - /* 0x03 */ HAKA_TRAP_SPIKED_WALL_2, - /* 0x04 */ HAKA_TRAP_PROPELLER, + /* 0x00 */ HAKA_TRAP_GUILLOTINE, + /* 0x01 */ HAKA_TRAP_SPIKED_CRUSHER, + /* 0x02 */ HAKA_TRAP_SPIKED_WALL_EAST, + /* 0x03 */ HAKA_TRAP_SPIKED_WALL_WEST, + /* 0x04 */ HAKA_TRAP_FAN_BLADE, /* 0x05 */ HAKA_TRAP_GUILLOTINE_FAST } HakaTrapType; @@ -21,9 +21,13 @@ typedef struct BgHakaTrap { /* 0x0000 */ DynaPolyActor dyna; /* 0x0164 */ BgHakaTrapActionFunc actionFunc; /* 0x0168 */ u8 timer; - /* 0x0169 */ u8 unk_169; - /* 0x016A */ s16 unk_16A; // used as boolean for HAKA_TRAP_GUILLOTINE_SLOW/FAST, s16 for HAKA_TRAP_SPIKED_BOX - /* 0x016C */ Vec3f unk_16C; + /* 0x0169 */ u8 isSpikedCrusherStationary; + /* 0x016A */ union { + s16 isGuillotineFast; // 0 slow, 1 fast + s16 spikedCrusherStepY; // when lifting the crusher, it will pause briefly at this height before being + // lifted to its maximum height + }; + /* 0x016C */ Vec3f chainLiftSfxPos; /* 0x0178 */ ColliderCylinder colliderCylinder; /* 0x01C4 */ ColliderTris spikesCollider; /* 0x01E4 */ ColliderTrisElement spikesColliderElements[2]; From b0a03cc1a4677a99ee6346a3c7f07b173df9d09e Mon Sep 17 00:00:00 2001 From: mzxrules Date: Wed, 18 Feb 2026 02:15:05 -0500 Subject: [PATCH 23/27] bg_haka_megane documentation pass (#2684) * document bg_haka_megane * BGHAKAMEGANE_TYPE_MAX * dragorn suggestion --- assets/xml/objects/object_haka_objects.xml | 54 +++++++++---------- assets/xml/objects/object_hakach_objects.xml | 14 ++--- .../ovl_Bg_Haka_Megane/z_bg_haka_megane.c | 49 +++++++++-------- .../ovl_Bg_Haka_Megane/z_bg_haka_megane.h | 18 ++++++- 4 files changed, 77 insertions(+), 58 deletions(-) diff --git a/assets/xml/objects/object_haka_objects.xml b/assets/xml/objects/object_haka_objects.xml index ac301fe500..7e0195e148 100644 --- a/assets/xml/objects/object_haka_objects.xml +++ b/assets/xml/objects/object_haka_objects.xml @@ -5,52 +5,52 @@ - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + @@ -148,7 +148,7 @@ - + diff --git a/assets/xml/objects/object_hakach_objects.xml b/assets/xml/objects/object_hakach_objects.xml index 7a68751068..73e1b8f52e 100644 --- a/assets/xml/objects/object_hakach_objects.xml +++ b/assets/xml/objects/object_hakach_objects.xml @@ -4,10 +4,10 @@ - + - + @@ -19,15 +19,15 @@ - + - + - + @@ -39,8 +39,8 @@ - - + + diff --git a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c index a0c3e37a58..d54e004208 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c +++ b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c @@ -1,7 +1,7 @@ /* * File: z_bg_haka_megane.c * Overlay: ovl_Bg_Haka_Megane - * Description: Shadow Temple Fake Walls + * Description: Shadow Temple and Bottom of the Well Lens of Truth objects */ #include "z_bg_haka_megane.h" @@ -19,8 +19,8 @@ void BgHakaMegane_Destroy(Actor* thisx, PlayState* play); void BgHakaMegane_Update(Actor* thisx, PlayState* play); void BgHakaMegane_Draw(Actor* thisx, PlayState* play); -void func_8087DB24(BgHakaMegane* this, PlayState* play); -void func_8087DBF0(BgHakaMegane* this, PlayState* play); +void BgHakaMegane_WaitForObject(BgHakaMegane* this, PlayState* play); +void BgHakaMegane_UpdateState(BgHakaMegane* this, PlayState* play); void BgHakaMegane_DoNothing(BgHakaMegane* this, PlayState* play); ActorProfile Bg_Haka_Megane_Profile = { @@ -39,28 +39,30 @@ static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; -static CollisionHeader* sCollisionHeaders[] = { - &gBotw1Col, - &gBotw2Col, +static CollisionHeader* sCollisionHeaders[BGHAKAMEGANE_TYPE_MAX] = { + &gBotwRoom0FakeWallsAndFloorsCol, + &gBotwRoom3ThreeFakeFloorsCol, NULL, - &object_haka_objects_Col_004330, - &object_haka_objects_Col_0044D0, + &gShadowTempleFakeCryptWallGlowingSkullCol, + &gShadowTempleFakeWallStrangeFaceCol, NULL, - &object_haka_objects_Col_004780, - &object_haka_objects_Col_004940, + &gShadowTempleRoom5FakeWallsCol, + &gShadowTempleRoom6FakeFloorCol, NULL, - &object_haka_objects_Col_004B00, + &gShadowTempleRoom10FakeWallCol, NULL, - &object_haka_objects_Col_004CC0, + &gShadowTempleRoom18FakeWallCol, NULL, }; -static Gfx* sDLists[] = { - gBotwFakeWallsAndFloorsDL, gBotwThreeFakeFloorsDL, gBotwHoleTrap2DL, - object_haka_objects_DL_0040F0, object_haka_objects_DL_0043B0, object_haka_objects_DL_001120, - object_haka_objects_DL_0045A0, object_haka_objects_DL_0047F0, object_haka_objects_DL_0018F0, - object_haka_objects_DL_0049B0, object_haka_objects_DL_003CF0, object_haka_objects_DL_004B70, - object_haka_objects_DL_002ED0, +static Gfx* sDLists[BGHAKAMEGANE_TYPE_MAX] = { + gBotwRoom0FakeWallsAndFloorsDL, gBotwRoom3ThreeFakeFloorsDL, + gBotwRoom5HiddenPlatformDL, gShadowTempleFakeCryptWallGlowingSkullDL, + gShadowTempleFakeWallStrangeFaceDL, gShadowTempleRoom3HiddenPlatformsDL, + gShadowTempleRoom5FakeWallsDL, gShadowTempleRoom6FakeFloorDL, + gShadowTempleRoom9HiddenPlatformsDL, gShadowTempleRoom10FakeWallDL, + gShadowTempleRoom15HiddenWallsDL, gShadowTempleRoom18FakeWallDL, + gShadowTempleRoom11HiddenObjectsDL, }; void BgHakaMegane_Init(Actor* thisx, PlayState* play) { @@ -78,7 +80,7 @@ void BgHakaMegane_Init(Actor* thisx, PlayState* play) { if (this->requiredObjectSlot < 0) { Actor_Kill(thisx); } else { - this->actionFunc = func_8087DB24; + this->actionFunc = BgHakaMegane_WaitForObject; } } @@ -88,16 +90,17 @@ void BgHakaMegane_Destroy(Actor* thisx, PlayState* play) { DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); } -void func_8087DB24(BgHakaMegane* this, PlayState* play) { +void BgHakaMegane_WaitForObject(BgHakaMegane* this, PlayState* play) { if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) { this->dyna.actor.objectSlot = this->requiredObjectSlot; this->dyna.actor.draw = BgHakaMegane_Draw; Actor_SetObjectDependency(play, &this->dyna.actor); + if (play->roomCtx.curRoom.lensMode != LENS_MODE_SHOW_ACTORS) { CollisionHeader* colHeader; CollisionHeader* collision; - this->actionFunc = func_8087DBF0; + this->actionFunc = BgHakaMegane_UpdateState; collision = sCollisionHeaders[this->dyna.actor.params]; if (collision != NULL) { CollisionHeader_GetVirtual(collision, &colHeader); @@ -109,7 +112,7 @@ void func_8087DB24(BgHakaMegane* this, PlayState* play) { } } -void func_8087DBF0(BgHakaMegane* this, PlayState* play) { +void BgHakaMegane_UpdateState(BgHakaMegane* this, PlayState* play) { Actor* thisx = &this->dyna.actor; if (play->actorCtx.lensActive) { @@ -139,7 +142,7 @@ void BgHakaMegane_Draw(Actor* thisx, PlayState* play) { Gfx_DrawDListOpa(play, sDLists[thisx->params]); } - if (thisx->params == 0) { + if (thisx->params == BGHAKAMEGANE_TYPE_BOTW_ROOM_0_FAKE) { Gfx_DrawDListXlu(play, gBotwBloodSplatterDL); } } diff --git a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.h b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.h index a50a74a27f..a4dbafa27d 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.h +++ b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.h @@ -4,6 +4,23 @@ #include "ultra64.h" #include "actor.h" +typedef enum BgHakaMeganeType { + /* 0 */ BGHAKAMEGANE_TYPE_BOTW_ROOM_0_FAKE, + /* 1 */ BGHAKAMEGANE_TYPE_BOTW_ROOM_3_FAKE, + /* 2 */ BGHAKAMEGANE_TYPE_BOTW_ROOM_5_HIDDEN, + /* 3 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_0_FAKE_WALL, + /* 4 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_2_FAKE_WALL, + /* 5 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_3_HIDDEN, + /* 6 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_5_FAKE, + /* 7 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_6_FAKE, + /* 8 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_9_HIDDEN, + /* 9 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_10_FAKE, + /* 10 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_15_HIDDEN, + /* 11 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_18_FAKE, + /* 12 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_11_HIDDEN, + /* 13 */ BGHAKAMEGANE_TYPE_MAX +} BgHakaMeganeType; + struct BgHakaMegane; typedef void (*BgHakaMeganeActionFunc)(struct BgHakaMegane*, struct PlayState*); @@ -13,7 +30,6 @@ typedef struct BgHakaMegane { /* 0x0164 */ BgHakaMeganeActionFunc actionFunc; /* 0x0168 */ char unk_168[0x1]; /* 0x0169 */ s8 requiredObjectSlot; - /* 0x016A */ char unk_16A[0x2]; } BgHakaMegane; // size = 0x016C #endif From 42242bdf882f238f6264882ee43bfb7f8b9076dd Mon Sep 17 00:00:00 2001 From: Gabriel Ravier Date: Wed, 18 Feb 2026 12:36:07 +0100 Subject: [PATCH 24/27] Document sys_freeze.[ch] (#2666) --- include/sys_freeze.h | 2 +- src/code/sys_freeze.c | 14 +++++++++++++- src/n64dd/z_n64dd.c | 6 +++--- src/overlays/gamestates/ovl_title/z_title.c | 4 ++-- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/include/sys_freeze.h b/include/sys_freeze.h index 0e033cacd9..6ccf6dca33 100644 --- a/include/sys_freeze.h +++ b/include/sys_freeze.h @@ -3,6 +3,6 @@ #include "attributes.h" -NORETURN void func_800D31A0(void); +NORETURN void Freeze_CurrentThread(void); #endif diff --git a/src/code/sys_freeze.c b/src/code/sys_freeze.c index 2957155559..e4e1dccd9b 100644 --- a/src/code/sys_freeze.c +++ b/src/code/sys_freeze.c @@ -4,7 +4,19 @@ #include "sys_freeze.h" #include "terminal.h" -NORETURN void func_800D31A0(void) { +/** + * Halts the calling thread forever (this neither destroys it nor affects other threads). + * This may be used to halt execution in the event of an irrecoverable error without triggering + * the crash screen or otherwise halting the rest of the programs, other threads will continue + * to run as normal. + * + * @note In practice, use of this function is very rare, only occuring in a few N64DD-related + * codepaths. In most cases where one needs to halt execution due to a critical error, + * it is more appropriate to use Fault_AddHangupAndCrash or related functions. + * + * @see Fault_AddHungupAndCrash + */ +NORETURN void Freeze_CurrentThread(void) { PRINTF(VT_FGCOL(RED) "\n**** Freeze!! ****\n" VT_RST); for (;;) { Sleep_Msec(1000); diff --git a/src/n64dd/z_n64dd.c b/src/n64dd/z_n64dd.c index 4c896b5873..c05bf3ad8b 100644 --- a/src/n64dd/z_n64dd.c +++ b/src/n64dd/z_n64dd.c @@ -143,7 +143,7 @@ s32 func_801C7098(void) { B_801D9D50.unk_00 = 10; phi_v1 = (&func_801C8000)(&B_801D9D50); if (phi_v1 < 0) { - func_800D31A0(); + Freeze_CurrentThread(); } return phi_v1; } @@ -375,7 +375,7 @@ s32 func_801C7818(void) { if (func_801C81C4() != 2) { func_801C761C(); - func_800D31A0(); + Freeze_CurrentThread(); return -3; } @@ -411,7 +411,7 @@ void func_801C7920(s32 arg0, void* arg1, s32 arg2) { } B_801D9D50.unk_00 = 7; if ((&func_801C8000)(&B_801D9D50) != 0) { - func_800D31A0(); + Freeze_CurrentThread(); } } diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index 907fdb886c..a17bd0f4d8 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -203,7 +203,7 @@ void ConsoleLogo_Destroy(GameState* thisx) { #if PLATFORM_N64 if (this->unk_1E0) { if (func_801C7818() != 0) { - func_800D31A0(); + Freeze_CurrentThread(); } func_801C7268(); } @@ -223,7 +223,7 @@ void ConsoleLogo_Init(GameState* thisx) { #if PLATFORM_N64 if ((D_80121210 != 0) && (D_80121211 != 0) && (D_80121212 == 0)) { if (func_801C7658() != 0) { - func_800D31A0(); + Freeze_CurrentThread(); } this->unk_1E0 = true; } else { From 7e445cde73641c184a0b9f8dcf309d5d5eba65b8 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Fri, 20 Feb 2026 09:23:49 +0100 Subject: [PATCH 25/27] EnBox params macros (#2696) --- src/overlays/actors/ovl_En_Box/z_en_box.c | 22 +++++++++++----------- src/overlays/actors/ovl_En_Box/z_en_box.h | 6 ++++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index c3e37e868a..adb65c23c8 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -129,7 +129,7 @@ void EnBox_Init(Actor* thisx, PlayState* play2) { DynaPoly_DisableCeilingCollision(play, &play->colCtx.dyna, this->dyna.bgId); this->movementFlags = 0; - this->type = PARAMS_GET_U(thisx->params, 12, 4); + this->type = ENBOX_GET_TYPE(thisx); this->iceSmokeTimer = 0; this->unk_1FB = ENBOX_STATE_0; this->dyna.actor.gravity = -5.5f; @@ -138,7 +138,7 @@ void EnBox_Init(Actor* thisx, PlayState* play2) { if (play) {} // helps the compiler store play2 into s1 - if (Flags_GetTreasure(play, PARAMS_GET_U(this->dyna.actor.params, 0, 5))) { + if (Flags_GetTreasure(play, ENBOX_GET_TREASURE_FLAG(&this->dyna.actor))) { this->alpha = 255; this->iceSmokeTimer = 100; EnBox_SetupAction(this, EnBox_Open); @@ -285,7 +285,7 @@ void EnBox_Fall(EnBox* this, PlayState* play) { } void EnBox_FallOnSwitchFlag(EnBox* this, PlayState* play) { - s32 treasureFlag = PARAMS_GET_U(this->dyna.actor.params, 0, 5); + s32 treasureFlag = ENBOX_GET_TREASURE_FLAG(&this->dyna.actor); if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { Actor_SetClosestSecretDistance(&this->dyna.actor, play); @@ -304,7 +304,7 @@ void EnBox_FallOnSwitchFlag(EnBox* this, PlayState* play) { // used for types 9, 10 void func_809C9700(EnBox* this, PlayState* play) { - s32 treasureFlag = PARAMS_GET_U(this->dyna.actor.params, 0, 5); + s32 treasureFlag = ENBOX_GET_TREASURE_FLAG(&this->dyna.actor); Player* player = GET_PLAYER(play); if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { @@ -341,7 +341,7 @@ void func_809C9700(EnBox* this, PlayState* play) { } void EnBox_AppearOnSwitchFlag(EnBox* this, PlayState* play) { - s32 treasureFlag = PARAMS_GET_U(this->dyna.actor.params, 0, 5); + s32 treasureFlag = ENBOX_GET_TREASURE_FLAG(&this->dyna.actor); if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { Actor_SetClosestSecretDistance(&this->dyna.actor, play); @@ -355,7 +355,7 @@ void EnBox_AppearOnSwitchFlag(EnBox* this, PlayState* play) { } void EnBox_AppearOnRoomClear(EnBox* this, PlayState* play) { - s32 treasureFlag = PARAMS_GET_U(this->dyna.actor.params, 0, 5); + s32 treasureFlag = ENBOX_GET_TREASURE_FLAG(&this->dyna.actor); if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { Actor_SetClosestSecretDistance(&this->dyna.actor, play); @@ -437,16 +437,16 @@ void EnBox_WaitOpen(EnBox* this, PlayState* play) { Audio_PlayFanfare(NA_BGM_OPEN_TRE_BOX | 0x900); } } - PRINTF("Actor_Environment_Tbox_On() %d\n", PARAMS_GET_U(this->dyna.actor.params, 0, 5)); - Flags_SetTreasure(play, PARAMS_GET_U(this->dyna.actor.params, 0, 5)); + PRINTF("Actor_Environment_Tbox_On() %d\n", ENBOX_GET_TREASURE_FLAG(&this->dyna.actor)); + Flags_SetTreasure(play, ENBOX_GET_TREASURE_FLAG(&this->dyna.actor)); } else { player = GET_PLAYER(play); Actor_WorldToActorCoords(&this->dyna.actor, &sp4C, &player->actor.world.pos); if (sp4C.z > -50.0f && sp4C.z < 0.0f && fabsf(sp4C.y) < 10.0f && fabsf(sp4C.x) < 20.0f && Player_IsFacingActor(&this->dyna.actor, 0x3000, play)) { - Actor_OfferGetItemNearby(&this->dyna.actor, play, -PARAMS_GET_U(this->dyna.actor.params, 5, 7)); + Actor_OfferGetItemNearby(&this->dyna.actor, play, -ENBOX_GET_GET_ITEM_ID(&this->dyna.actor)); } - if (Flags_GetTreasure(play, PARAMS_GET_U(this->dyna.actor.params, 0, 5))) { + if (Flags_GetTreasure(play, ENBOX_GET_TREASURE_FLAG(&this->dyna.actor))) { EnBox_SetupAction(this, EnBox_Open); } } @@ -556,7 +556,7 @@ void EnBox_Update(Actor* thisx, PlayState* play) { Actor_SetFocus(&this->dyna.actor, 40.0f); } - if (PARAMS_GET_U(this->dyna.actor.params, 5, 7) == GI_ICE_TRAP && this->actionFunc == EnBox_Open && + if (ENBOX_GET_GET_ITEM_ID(&this->dyna.actor) == GI_ICE_TRAP && this->actionFunc == EnBox_Open && this->skelanime.curFrame > 45 && this->iceSmokeTimer < 100) { EnBox_SpawnIceSmoke(this, play); } diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.h b/src/overlays/actors/ovl_En_Box/z_en_box.h index 7bea0c4787..3b8f167eb3 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.h +++ b/src/overlays/actors/ovl_En_Box/z_en_box.h @@ -7,6 +7,12 @@ #define ENBOX_TREASURE_FLAG_UNK_MIN 20 #define ENBOX_TREASURE_FLAG_UNK_MAX 32 +#define ENBOX_GET_TYPE(thisx) PARAMS_GET_U((thisx)->params, 12, 4) +#define ENBOX_GET_GET_ITEM_ID(thisx) PARAMS_GET_U((thisx)->params, 5, 7) +#define ENBOX_GET_TREASURE_FLAG(thisx) PARAMS_GET_U((thisx)->params, 0, 5) + +#define ENBOX_PARAMS(type, getItemId, treasureFlag) (((type) << 12) | ((getItemId) << 5) | (treasureFlag)) + struct EnBox; typedef void (*EnBoxActionFunc)(struct EnBox*, struct PlayState*); From 155e957634940c501ff94bd06642b0b4f7652b6e Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Sat, 21 Feb 2026 02:51:38 -0500 Subject: [PATCH 26/27] Child Ruto Actions Part 4: Sapphire platform (#2618) * Child Ruto Actions Part 4: Sapphire platform * One more function rename --- include/save.h | 4 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c | 4 +- .../actors/ovl_Demo_Effect/z_demo_effect.c | 2 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 175 +++++++++--------- src/overlays/actors/ovl_En_Ru1/z_en_ru1.h | 16 +- 5 files changed, 102 insertions(+), 99 deletions(-) diff --git a/include/save.h b/include/save.h index 20ee760aac..a6c40f85f9 100644 --- a/include/save.h +++ b/include/save.h @@ -895,8 +895,8 @@ typedef enum LinkAge { #define INFTABLE_142 0x142 #define INFTABLE_143 0x143 #define INFTABLE_144 0x144 -#define INFTABLE_145 0x145 -#define INFTABLE_146 0x146 +#define INFTABLE_RUTO_HAS_SAPPHIRE 0x145 +#define INFTABLE_RUTO_ABDUCTED 0x146 #define INFTABLE_147 0x147 #define INFTABLE_160 0x160 #define INFTABLE_161 0x161 diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c index 89b34075ea..426fe0b217 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c @@ -105,7 +105,7 @@ s32 BgBdanObjects_GetProperty(BgBdanObjects* this, s32 arg1) { case JABU_OBJECTS_GET_PROP_CAM_SETTING_NORMAL0: return this->cameraSetting == CAM_SET_NORMAL0; case JABU_OBJECTS_GET_PROP_WATCHED_BIGOCTO_INTRO_CUTSCENE: - return GET_INFTABLE(INFTABLE_146); + return GET_INFTABLE(INFTABLE_RUTO_ABDUCTED); case JABU_OBJECTS_GET_PROP_CAM_SETTING_DUNGEON1: return this->cameraSetting == CAM_SET_DUNGEON1; default: @@ -125,7 +125,7 @@ void BgBdanObjects_SetProperty(BgBdanObjects* this, s32 arg1) { this->cameraSetting = CAM_SET_DUNGEON0; break; case JABU_OBJECTS_SET_PROP_WATCHED_BIGOCTO_INTRO_CUTSCENE: - SET_INFTABLE(INFTABLE_146); + SET_INFTABLE(INFTABLE_RUTO_ABDUCTED); break; default: PRINTF(T("Bg_Bdan_Objects_Set_Contact_Ru1\nそんな送信モードは無い%d!!!!!!!!\n", 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 0cfdf5835a..cea51edbf5 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -504,7 +504,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->jewel.isPositionInit = 0; DemoEffect_InitJewel(play, this); Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_BOSS); - if ((play->sceneId == SCENE_JABU_JABU) && GET_INFTABLE(INFTABLE_145)) { + if ((play->sceneId == SCENE_JABU_JABU) && GET_INFTABLE(INFTABLE_RUTO_HAS_SAPPHIRE)) { Actor_Kill(&this->actor); return; } diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index 8ce2e814ab..f19ec51bbf 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -73,14 +73,14 @@ void func_80AEEE34(EnRu1* this, PlayState* play); void func_80AEEE9C(EnRu1* this, PlayState* play); void func_80AEEF08(EnRu1* this, PlayState* play); void func_80AEEF5C(EnRu1* this, PlayState* play); -void func_80AEF9D8(EnRu1* this, PlayState* play); -void func_80AEFA2C(EnRu1* this, PlayState* play); -void func_80AEFAAC(EnRu1* this, PlayState* play); -void func_80AEFB04(EnRu1* this, PlayState* play); -void func_80AEFB68(EnRu1* this, PlayState* play); -void func_80AEFCE8(EnRu1* this, PlayState* play); -void func_80AEFBC8(EnRu1* this, PlayState* play); -void func_80AEFC24(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_ThrownOntoPlatform(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_Retrieving(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_Holding(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_DoneHolding(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_MissionAccomplished(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_Waiting(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_ReadyToGoHome(EnRu1* this, PlayState* play); +void EnRu1_SapphireRoom_BeingAbducted(EnRu1* this, PlayState* play); void func_80AEFECC(EnRu1* this, PlayState* play); void func_80AEFF40(EnRu1* this, PlayState* play); @@ -143,7 +143,7 @@ static s32 sUnused = 0; #include "z_en_ru1_cutscene_data.inc.c" -static u32 D_80AF1938 = 0; +static u32 sReachedForSapphire = 0; static EnRu1ActionFunc sActionFuncs[] = { EnRu1_Fountain_GazingAtLink, // ENRU1_ACTION_FOUNTAIN_GAZING_AT_LINK @@ -182,14 +182,14 @@ static EnRu1ActionFunc sActionFuncs[] = { func_80AEEE9C, // ENRU1_ACTION_33 func_80AEEF08, // ENRU1_ACTION_34 func_80AEEF5C, // ENRU1_ACTION_35 - func_80AEF9D8, // ENRU1_ACTION_36 - func_80AEFA2C, // ENRU1_ACTION_37 - func_80AEFAAC, // ENRU1_ACTION_38 - func_80AEFB04, // ENRU1_ACTION_39 - func_80AEFB68, // ENRU1_ACTION_40 - func_80AEFCE8, // ENRU1_ACTION_41 - func_80AEFBC8, // ENRU1_ACTION_42 - func_80AEFC24, // ENRU1_ACTION_43 + EnRu1_SapphireRoom_ThrownOntoPlatform, // ENRU1_ACTION_THROWN_ONTO_SAPPHIRE_PLATFORM + EnRu1_SapphireRoom_Retrieving, // ENRU1_ACTION_RETRIEVING_SAPPHIRE + EnRu1_SapphireRoom_Holding, // ENRU1_ACTION_HOLDING_SAPPHIRE + EnRu1_SapphireRoom_DoneHolding, // ENRU1_ACTION_DONE_HOLDING_SAPPHIRE + EnRu1_SapphireRoom_MissionAccomplished, // ENRU1_ACTION_MISSION_ACCOMPLISHED + EnRu1_SapphireRoom_Waiting, // ENRU1_ACTION_WAITING_IN_SAPPHIRE_ROOM + EnRu1_SapphireRoom_ReadyToGoHome, // ENRU1_ACTION_READY_TO_GO_HOME + EnRu1_SapphireRoom_BeingAbducted, // ENRU1_ACTION_BEING_ABDUCTED func_80AEFECC, // ENRU1_ACTION_44 func_80AEFF40, // ENRU1_ACTION_45 }; @@ -411,13 +411,13 @@ int func_80AEB174(PlayState* play) { return (Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play); } -s32 func_80AEB1B4(PlayState* play) { +s32 EnRu1_IsTextboxClosing(PlayState* play) { return Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING; } #if DEBUG_FEATURES void func_80AEB1D8(EnRu1* this) { - this->action = ENRU1_ACTION_36; + this->action = ENRU1_ACTION_THROWN_ONTO_SAPPHIRE_PLATFORM; this->drawConfig = ENRU1_DRAW_NOTHING; this->actor.velocity.x = 0.0f; this->actor.velocity.y = 0.0f; @@ -465,17 +465,17 @@ s32 EnRu1_UpdateSkelAnime(EnRu1* this) { } } -void func_80AEB364(EnRu1* this, PlayState* play) { +void EnRu1_WalkTowardSapphire(EnRu1* this, PlayState* play) { this->skelAnime.movementFlags |= ANIM_FLAG_UPDATE_XZ; AnimTaskQueue_AddActorMovement(play, &this->actor, &this->skelAnime, 1.0f); } -void func_80AEB3A4(EnRu1* this, PlayState* play) { +void EnRu1_StartWalkingTowardSapphire(EnRu1* this, PlayState* play) { this->skelAnime.movementFlags |= ANIM_FLAG_UPDATE_XZ; - func_80AEB364(this, play); + EnRu1_WalkTowardSapphire(this, play); } -void func_80AEB3CC(EnRu1* this) { +void EnRu1_StopWalkingTowardSapphire(EnRu1* this) { this->skelAnime.movementFlags &= ~ANIM_FLAG_UPDATE_XZ; } @@ -849,7 +849,7 @@ void EnRu1_InitInJabuJabuHolesRoom(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); this->action = ENRU1_ACTION_MEETING_RANGE_CHECK; EnRu1_SetMouth(this, ENRU1_MOUTH_FROWNING); - } else if (GET_INFTABLE(INFTABLE_147) && !GET_INFTABLE(INFTABLE_140) && !GET_INFTABLE(INFTABLE_145)) { + } else if (GET_INFTABLE(INFTABLE_147) && !GET_INFTABLE(INFTABLE_140) && !GET_INFTABLE(INFTABLE_RUTO_HAS_SAPPHIRE)) { if (!func_80AEB020(this, play)) { s8 actorRoom; @@ -1278,8 +1278,8 @@ void EnRu1_BossRoom_WarpingOut(EnRu1* this, PlayState* play) { } void EnRu1_InitInJabuJabuBasement(EnRu1* this, PlayState* play) { - if (GET_INFTABLE(INFTABLE_MET_RUTO_FIRST_TIME) && !GET_INFTABLE(INFTABLE_145) && !GET_INFTABLE(INFTABLE_140) && - !GET_INFTABLE(INFTABLE_147)) { + if (GET_INFTABLE(INFTABLE_MET_RUTO_FIRST_TIME) && !GET_INFTABLE(INFTABLE_RUTO_HAS_SAPPHIRE) && + !GET_INFTABLE(INFTABLE_140) && !GET_INFTABLE(INFTABLE_147)) { if (!func_80AEB020(this, play)) { s8 actorRoom; @@ -1659,7 +1659,7 @@ s32 func_80AEE394(EnRu1* this, PlayState* play) { func_80AEE02C(this); play->csCtx.script = gRutoObtainingSapphireCs; gSaveContext.cutsceneTrigger = 1; - this->action = ENRU1_ACTION_36; + this->action = ENRU1_ACTION_THROWN_ONTO_SAPPHIRE_PLATFORM; this->drawConfig = ENRU1_DRAW_NOTHING; this->bigOctoPlatform = (BgBdanObjects*)dynaPolyActor; this->actor.shape.shadowAlpha = 0; @@ -2018,7 +2018,7 @@ void func_80AEF3A8(EnRu1* this, PlayState* play) { func_80AEF1F0(this, play, something); } -void func_80AEF40C(EnRu1* this) { +void EnRu1_PlayStepSoundNearSapphire(EnRu1* this) { SkelAnime* skelAnime = &this->skelAnime; if (Animation_OnFrame(skelAnime, 2.0f) || Animation_OnFrame(skelAnime, 7.0f) || @@ -2028,46 +2028,49 @@ void func_80AEF40C(EnRu1* this) { } } -void func_80AEF4A8(EnRu1* this, PlayState* play) { +void EnRu1_PlayAbductedSfx(EnRu1* this, PlayState* play) { SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.projectedPos, 20, NA_SE_VO_RT_FALL); } -void func_80AEF4E0(EnRu1* this) { +/** + * Ruto laughs while picking up the Spiritual Stone. + */ +void EnRu1_PlayLaughingSfx(EnRu1* this) { if (Animation_OnFrame(&this->skelAnime, 5.0f)) { Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_VO_RT_LAUGH_0); } } -void func_80AEF51C(EnRu1* this) { +void EnRu1_PlayStartledSfx(EnRu1* this) { Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_VO_RT_THROW); } -void func_80AEF540(EnRu1* this) { +void EnRu1_RespondToSapphirePlatformMoving(EnRu1* this) { if (EnRu1_GetPlatformCamSetting(this) == 2) { EnRu1_SetEyes(this, ENRU1_EYES_UP); EnRu1_SetMouth(this, ENRU1_MOUTH_OPEN); if (this->skelAnime.mode != 2) { EnRu1_AnimationChange(this, &gRutoChildShutterAnim, ANIMMODE_ONCE, -8.0f, false); - func_80AEF51C(this); + EnRu1_PlayStartledSfx(this); } } } -void func_80AEF5B8(EnRu1* this) { +void EnRu1_LookUpAtSapphire(EnRu1* this) { f32 curFrame; - if (D_80AF1938 == 0) { + if (sReachedForSapphire == 0) { curFrame = this->skelAnime.curFrame; if (curFrame >= 60.0f) { EnRu1_SetEyes(this, ENRU1_EYES_UP); EnRu1_SetMouth(this, ENRU1_MOUTH_SMILING); func_80AED57C(this); - D_80AF1938 = 1; + sReachedForSapphire = 1; } } } -void func_80AEF624(EnRu1* this, PlayState* play) { +void EnRu1_SetupRetrievingSapphireAnimation(EnRu1* this, PlayState* play) { f32 frameCount; CsCmdActorCue* cue; CsCmdActorCue* cue2; @@ -2092,53 +2095,53 @@ void func_80AEF624(EnRu1* this, PlayState* play) { this->actor.world.rot.z = newRotTmp; Animation_Change(&this->skelAnime, &gRutoChildWalkToAndHoldUpSapphireAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f); - func_80AEB3A4(this, play); - this->action = ENRU1_ACTION_37; + EnRu1_StartWalkingTowardSapphire(this, play); + this->action = ENRU1_ACTION_RETRIEVING_SAPPHIRE; this->drawConfig = ENRU1_DRAW_OPA; this->actor.shape.shadowAlpha = 0xFF; } } -void func_80AEF728(EnRu1* this, UNK_TYPE arg1) { - if (arg1 != 0) { +void EnRu1_HoldUpSapphire(EnRu1* this, s32 doneWalking) { + if (doneWalking) { Animation_Change(&this->skelAnime, &gRutoChildHoldArmsUpAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gRutoChildHoldArmsUpAnim), ANIMMODE_LOOP, 0.0f); - func_80AEB3CC(this); - this->action = ENRU1_ACTION_38; + EnRu1_StopWalkingTowardSapphire(this); + this->action = ENRU1_ACTION_HOLDING_SAPPHIRE; } } -void func_80AEF79C(EnRu1* this, PlayState* play) { +void EnRu1_BringHandsDown(EnRu1* this, PlayState* play) { if (EnRu1_CheckCueNotMatchingId(play, 2, 3)) { Animation_Change(&this->skelAnime, &gRutoChildBringHandsDownAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildBringHandsDownAnim), ANIMMODE_ONCE, -8.0f); - this->action = ENRU1_ACTION_39; + this->action = ENRU1_ACTION_DONE_HOLDING_SAPPHIRE; } } -void func_80AEF820(EnRu1* this, UNK_TYPE arg1) { - if (arg1 != 0) { +void EnRu1_KeepArmsDown(EnRu1* this, s32 armsAreDown) { + if (armsAreDown) { Animation_Change(&this->skelAnime, &gRutoChildWait2Anim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWait2Anim), ANIMMODE_LOOP, -8.0f); - this->action = ENRU1_ACTION_40; + this->action = ENRU1_ACTION_MISSION_ACCOMPLISHED; } } -void func_80AEF890(EnRu1* this, PlayState* play) { +void EnRu1_EndRetrievalCutscene(EnRu1* this, PlayState* play) { s32 pad[2]; s8 curRoomNum; if (!(DEBUG_FEATURES && IS_CUTSCENE_LAYER) && EnRu1_IsCsStateIdle(play)) { curRoomNum = play->roomCtx.curRoom.num; - SET_INFTABLE(INFTABLE_145); + SET_INFTABLE(INFTABLE_RUTO_HAS_SAPPHIRE); Flags_SetSwitch(play, EnRu1_GetSwitchFlag(this)); EnRu1_SetPlatformCamSetting(this, 1); - this->action = ENRU1_ACTION_42; + this->action = ENRU1_ACTION_READY_TO_GO_HOME; this->actor.room = curRoomNum; } } -void func_80AEF930(EnRu1* this, PlayState* play) { +void EnRu1_RespondToAbduction(EnRu1* this, PlayState* play) { if (EnRu1_GetPlatformCamSetting(this) == 3) { this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; this->actor.textId = 0x4048; @@ -2147,99 +2150,99 @@ void func_80AEF930(EnRu1* this, PlayState* play) { #else Message_StartTextbox(play, this->actor.textId, NULL); #endif - func_80AEF4A8(this, play); - this->action = ENRU1_ACTION_43; + EnRu1_PlayAbductedSfx(this, play); + this->action = ENRU1_ACTION_BEING_ABDUCTED; this->drawConfig = ENRU1_DRAW_NOTHING; } } -void func_80AEF99C(EnRu1* this, PlayState* play) { - if (func_80AEB1B4(play) != 0) { +void EnRu1_RemoveInAbduction(EnRu1* this, PlayState* play) { + if (EnRu1_IsTextboxClosing(play)) { EnRu1_SetPlatformCamSetting(this, 4); Actor_Kill(&this->actor); } } -void func_80AEF9D8(EnRu1* this, PlayState* play) { +void EnRu1_SapphireRoom_ThrownOntoPlatform(EnRu1* this, PlayState* play) { func_80AED83C(this); EnRu1_UpdateSkelAnime(this); EnRu1_UpdateEyes(this); - func_80AEF624(this, play); + EnRu1_SetupRetrievingSapphireAnimation(this, play); #if DEBUG_FEATURES func_80AEB220(this, play); #endif } -void func_80AEFA2C(EnRu1* this, PlayState* play) { - s32 something; +void EnRu1_SapphireRoom_Retrieving(EnRu1* this, PlayState* play) { + s32 doneAnim; func_80AED83C(this); - func_80AEB364(this, play); + EnRu1_WalkTowardSapphire(this, play); func_80AEAECC(this, play); - something = EnRu1_UpdateSkelAnime(this); - func_80AEF4E0(this); - func_80AEF5B8(this); - func_80AEF40C(this); - func_80AEF728(this, something); + doneAnim = EnRu1_UpdateSkelAnime(this); + EnRu1_PlayLaughingSfx(this); + EnRu1_LookUpAtSapphire(this); + EnRu1_PlayStepSoundNearSapphire(this); + EnRu1_HoldUpSapphire(this, doneAnim); #if DEBUG_FEATURES func_80AEB220(this, play); #endif } -void func_80AEFAAC(EnRu1* this, PlayState* play) { +void EnRu1_SapphireRoom_Holding(EnRu1* this, PlayState* play) { func_80AED83C(this); func_80AEAECC(this, play); EnRu1_UpdateSkelAnime(this); - func_80AEF79C(this, play); + EnRu1_BringHandsDown(this, play); #if DEBUG_FEATURES func_80AEB220(this, play); #endif } -void func_80AEFB04(EnRu1* this, PlayState* play) { - s32 something; +void EnRu1_SapphireRoom_DoneHolding(EnRu1* this, PlayState* play) { + s32 doneAnim; func_80AED83C(this); func_80AEAECC(this, play); - something = EnRu1_UpdateSkelAnime(this); + doneAnim = EnRu1_UpdateSkelAnime(this); EnRu1_UpdateEyes(this); - func_80AEF820(this, something); + EnRu1_KeepArmsDown(this, doneAnim); #if DEBUG_FEATURES func_80AEB220(this, play); #endif } -void func_80AEFB68(EnRu1* this, PlayState* play) { +void EnRu1_SapphireRoom_MissionAccomplished(EnRu1* this, PlayState* play) { func_80AED83C(this); func_80AEAECC(this, play); EnRu1_UpdateSkelAnime(this); EnRu1_UpdateEyes(this); - func_80AEF890(this, play); + EnRu1_EndRetrievalCutscene(this, play); #if DEBUG_FEATURES func_80AEB220(this, play); #endif } -void func_80AEFBC8(EnRu1* this, PlayState* play) { +void EnRu1_SapphireRoom_ReadyToGoHome(EnRu1* this, PlayState* play) { func_80AED83C(this); func_80AEAECC(this, play); EnRu1_UpdateSkelAnime(this); EnRu1_UpdateEyes(this); - func_80AEF540(this); - func_80AEF930(this, play); + EnRu1_RespondToSapphirePlatformMoving(this); + EnRu1_RespondToAbduction(this, play); } -void func_80AEFC24(EnRu1* this, PlayState* play) { +void EnRu1_SapphireRoom_BeingAbducted(EnRu1* this, PlayState* play) { func_80AED83C(this); - func_80AEF99C(this, play); + EnRu1_RemoveInAbduction(this, play); } void EnRu1_InitInSapphireRoom(EnRu1* this, PlayState* play) { - if (GET_INFTABLE(INFTABLE_145) && !GET_INFTABLE(INFTABLE_146)) { + if (GET_INFTABLE(INFTABLE_RUTO_HAS_SAPPHIRE) && !GET_INFTABLE(INFTABLE_RUTO_ABDUCTED)) { s32 pad; EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); - this->action = ENRU1_ACTION_41; + this->action = ENRU1_ACTION_WAITING_IN_SAPPHIRE_ROOM; this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play); EnRu1_SetPlatformCamSetting(this, 1); this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); @@ -2248,10 +2251,10 @@ void EnRu1_InitInSapphireRoom(EnRu1* this, PlayState* play) { } } -void func_80AEFCE8(EnRu1* this, PlayState* play) { +void EnRu1_SapphireRoom_Waiting(EnRu1* this, PlayState* play) { this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play); if (this->bigOctoPlatform != NULL) { - this->action = ENRU1_ACTION_42; + this->action = ENRU1_ACTION_READY_TO_GO_HOME; this->drawConfig = ENRU1_DRAW_OPA; EnRu1_SetPlatformCamSetting(this, 1); } @@ -2324,8 +2327,8 @@ void func_80AEFF40(EnRu1* this, PlayState* play) { void EnRu1_InitBesideDoorSwitch(EnRu1* this, PlayState* play) { s8 actorRoom; - if (GET_INFTABLE(INFTABLE_MET_RUTO_FIRST_TIME) && GET_INFTABLE(INFTABLE_140) && !GET_INFTABLE(INFTABLE_145) && - (!(func_80AEB020(this, play)))) { + if (GET_INFTABLE(INFTABLE_MET_RUTO_FIRST_TIME) && GET_INFTABLE(INFTABLE_140) && + !GET_INFTABLE(INFTABLE_RUTO_HAS_SAPPHIRE) && (!(func_80AEB020(this, play)))) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); actorRoom = this->actor.room; this->action = ENRU1_ACTION_22; @@ -2344,7 +2347,7 @@ void EnRu1_InitBesideDoorSwitch(EnRu1* this, PlayState* play) { #if DEBUG_FEATURES void func_80AF0050(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); - this->action = ENRU1_ACTION_36; + this->action = ENRU1_ACTION_THROWN_ONTO_SAPPHIRE_PLATFORM; this->roomNum1 = this->actor.room; this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play); this->actor.room = -1; diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h index b36a0e32f9..f403d24d64 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h @@ -97,14 +97,14 @@ typedef enum EnRu1Action { /* 33 */ ENRU1_ACTION_33, /* 34 */ ENRU1_ACTION_34, /* 35 */ ENRU1_ACTION_35, - /* 36 */ ENRU1_ACTION_36, - /* 37 */ ENRU1_ACTION_37, - /* 38 */ ENRU1_ACTION_38, - /* 39 */ ENRU1_ACTION_39, - /* 40 */ ENRU1_ACTION_40, - /* 41 */ ENRU1_ACTION_41, - /* 42 */ ENRU1_ACTION_42, - /* 43 */ ENRU1_ACTION_43, + /* 36 */ ENRU1_ACTION_THROWN_ONTO_SAPPHIRE_PLATFORM, + /* 37 */ ENRU1_ACTION_RETRIEVING_SAPPHIRE, + /* 38 */ ENRU1_ACTION_HOLDING_SAPPHIRE, + /* 39 */ ENRU1_ACTION_DONE_HOLDING_SAPPHIRE, + /* 40 */ ENRU1_ACTION_MISSION_ACCOMPLISHED, + /* 41 */ ENRU1_ACTION_WAITING_IN_SAPPHIRE_ROOM, + /* 42 */ ENRU1_ACTION_READY_TO_GO_HOME, + /* 43 */ ENRU1_ACTION_BEING_ABDUCTED, /* 44 */ ENRU1_ACTION_44, /* 45 */ ENRU1_ACTION_45 } EnRu1Action; From 5ab42786f43b09060d6382a9d8c33102e75cc548 Mon Sep 17 00:00:00 2001 From: Gabriel Ravier Date: Sat, 21 Feb 2026 09:17:30 +0100 Subject: [PATCH 27/27] Document src/n64dd/n64dd_error_headers.c (#2667) * Document src/n64dd/n64dd_error_headers.c * Incorporate feedback from PR review. (see also https://github.com/zeldaret/oot/pull/2667) * Put translation of gN64DDLocalizedErrorNumberHeaders[0] in a line comment (From feedback to https://github.com/zeldaret/oot/pull/2667) --- include/n64dd.h | 2 +- src/n64dd/n64dd_801C9B70.c | 2 +- src/n64dd/n64dd_error_headers.c | 13 +++++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/n64dd.h b/include/n64dd.h index 97064bc352..e5b1b7aa31 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -167,7 +167,7 @@ extern s32 B_801E0F64; extern void (*D_801D2EB4)(void*, void*, void*); // Error messages -extern const char* D_801D2ED0[]; // "Error Number " array +extern const char* gN64DDLocalizedErrorNumberHeaders[]; // "Error Number " array extern const char* D_801D2EE0[2][8][4]; // Array of error message strings // Error textures diff --git a/src/n64dd/n64dd_801C9B70.c b/src/n64dd/n64dd_801C9B70.c index 2437904c37..79f205c777 100644 --- a/src/n64dd/n64dd_801C9B70.c +++ b/src/n64dd/n64dd_801C9B70.c @@ -61,7 +61,7 @@ void func_801C9C74(u8* dest, u8 value, u32 count) { // n64ddError_GetErrorHeader const char* func_801C9CA4(void) { - return D_801D2ED0[func_801C9C48()]; + return gN64DDLocalizedErrorNumberHeaders[func_801C9C48()]; } // n64ddError_WriteNumberJP diff --git a/src/n64dd/n64dd_error_headers.c b/src/n64dd/n64dd_error_headers.c index ee7d611c21..bac2f97b95 100644 --- a/src/n64dd/n64dd_error_headers.c +++ b/src/n64dd/n64dd_error_headers.c @@ -1,4 +1,13 @@ #include "n64dd.h" -// Padding in .rodata suggests that these are in a separate file -const char* D_801D2ED0[4] = { "エラー番号   ", "Error Number ", NULL, NULL }; +// Padding in .rodata suggests that this array is in a separate file + +/** + * Region-specific "error number" headers used in N64DD error handling. + * The first one is used if the current region is Japan (gCurrentRegion == REGION_JP), + * the second otherwise. + */ +const char* gN64DDLocalizedErrorNumberHeaders[2] = { + "エラー番号   ", // "Error Number" + "Error Number ", +};