From 02fc4fda817e20ddc04be62ea093f0b0a59e9055 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Fri, 30 May 2025 14:27:25 +0200 Subject: [PATCH] more docs on KaleidoScope_DrawInfoPanel / infoPanelVtx quads --- .../icon_item_static/icon_item_static.c | 104 +++++--- .../icon_item_static/icon_item_static.h | 6 +- assets/xml/textures/icon_item_static.xml | 6 +- assets/xml/textures/icon_item_static_pal.xml | 6 +- include/regs.h | 24 +- src/code/z_construct.c | 130 +++++----- src/code/z_parameter.c | 2 + .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 222 ++++++++++-------- .../misc/ovl_kaleido_scope/z_kaleido_scope.h | 22 ++ 11 files changed, 315 insertions(+), 211 deletions(-) diff --git a/assets/textures/icon_item_static/icon_item_static.c b/assets/textures/icon_item_static/icon_item_static.c index 2adb277ebd..e1348fa540 100644 --- a/assets/textures/icon_item_static/icon_item_static.c +++ b/assets/textures/icon_item_static/icon_item_static.c @@ -1,5 +1,7 @@ #include "icon_item_static.h" +#include "versions.h" + // Item icons textures u64 gItemIconDekuStickTex[TEX_LEN(u64, ITEM_ICON_WIDTH, ITEM_ICON_HEIGHT, 32)] = { @@ -692,44 +694,41 @@ u64 gPauseGameOver10Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX_HE // Various textures and DLs -#define gABtnSymbolTex_WIDTH 24 -#define gABtnSymbolTex_HEIGHT 16 +#define gABtnSymbolTex_HEIGHT INFO_PANEL_QUAD_INFO_ICON_HEIGHT u64 gABtnSymbolTex[TEX_LEN(u64, gABtnSymbolTex_WIDTH, gABtnSymbolTex_HEIGHT, 8)] = { #include "assets/textures/icon_item_static/gABtnSymbolTex.ia8.inc.c" }; -#define gBBtnSymbolTex_WIDTH 24 -#define gBBtnSymbolTex_HEIGHT 16 +#define gBBtnSymbolTex_HEIGHT INFO_PANEL_QUAD_INFO_ICON_HEIGHT u64 gBBtnSymbolTex[TEX_LEN(u64, gBBtnSymbolTex_WIDTH, gBBtnSymbolTex_HEIGHT, 8)] = { #include "assets/textures/icon_item_static/gBBtnSymbolTex.ia8.inc.c" }; -#define gCBtnSymbolsTex_WIDTH 48 -#define gCBtnSymbolsTex_HEIGHT 16 +#define gCBtnSymbolsTex_HEIGHT INFO_PANEL_QUAD_INFO_ICON_HEIGHT u64 gCBtnSymbolsTex[TEX_LEN(u64, gCBtnSymbolsTex_WIDTH, gCBtnSymbolsTex_HEIGHT, 8)] = { #include "assets/textures/icon_item_static/gCBtnSymbolsTex.ia8.inc.c" }; -#define gNamePanelLeftTex_WIDTH 72 -#define gNamePanelLeftTex_HEIGHT 24 -u64 gNamePanelLeftTex[TEX_LEN(u64, gNamePanelLeftTex_WIDTH, gNamePanelLeftTex_HEIGHT, 8)] = { -#include "assets/textures/icon_item_static/gNamePanelLeftTex.ia8.inc.c" +#define gInfoPanelBgLeftTex_WIDTH 72 +#define gInfoPanelBgLeftTex_HEIGHT 24 +u64 gInfoPanelBgLeftTex[TEX_LEN(u64, gInfoPanelBgLeftTex_WIDTH, gInfoPanelBgLeftTex_HEIGHT, 8)] = { +#include "assets/textures/icon_item_static/gInfoPanelBgLeftTex.ia8.inc.c" }; -#define gNamePanelRightTex_WIDTH 72 -#define gNamePanelRightTex_HEIGHT 24 -u64 gNamePanelRightTex[TEX_LEN(u64, gNamePanelRightTex_WIDTH, gNamePanelRightTex_HEIGHT, 8)] = { -#include "assets/textures/icon_item_static/gNamePanelRightTex.ia8.inc.c" +#define gInfoPanelBgRightTex_WIDTH 72 +#define gInfoPanelBgRightTex_HEIGHT 24 +u64 gInfoPanelBgRightTex[TEX_LEN(u64, gInfoPanelBgRightTex_WIDTH, gInfoPanelBgRightTex_HEIGHT, 8)] = { +#include "assets/textures/icon_item_static/gInfoPanelBgRightTex.ia8.inc.c" }; -#define gLButtonTex_WIDTH 24 -#define gLButtonTex_HEIGHT 32 +#define gLButtonTex_WIDTH INFO_PANEL_QUAD_BUTTON_LR_TEX_WIDTH +#define gLButtonTex_HEIGHT INFO_PANEL_QUAD_BUTTON_LR_TEX_HEIGHT u64 gLButtonTex[TEX_LEN(u64, gLButtonTex_WIDTH, gLButtonTex_HEIGHT, 8)] = { #include "assets/textures/icon_item_static/gLButtonTex.ia8.inc.c" }; -#define gRButtonTex_WIDTH 24 -#define gRButtonTex_HEIGHT 32 +#define gRButtonTex_WIDTH INFO_PANEL_QUAD_BUTTON_LR_TEX_WIDTH +#define gRButtonTex_HEIGHT INFO_PANEL_QUAD_BUTTON_LR_TEX_HEIGHT u64 gRButtonTex[TEX_LEN(u64, gRButtonTex_WIDTH, gRButtonTex_HEIGHT, 8)] = { #include "assets/textures/icon_item_static/gRButtonTex.ia8.inc.c" }; @@ -748,34 +747,85 @@ u64 gMagicArrowEquipEffectTex[TEX_LEN(u64, gMagicArrowEquipEffectTex_WIDTH, gMag #include "assets/textures/icon_item_static/gMagicArrowEquipEffectTex.ia8.inc.c" }; -Gfx gItemNamePanelDL[18] = { -#include "assets/textures/icon_item_static/gItemNamePanelDL.inc.c" +Gfx gInfoPanelBgDL[18] = { + gsDPLoadTextureBlock(gInfoPanelBgLeftTex, G_IM_FMT_IA, G_IM_SIZ_8b, gInfoPanelBgLeftTex_WIDTH, + gInfoPanelBgLeftTex_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsDPLoadTextureBlock(gInfoPanelBgRightTex, G_IM_FMT_IA, G_IM_SIZ_8b, gInfoPanelBgRightTex_WIDTH, + gInfoPanelBgRightTex_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(4, 6, 7, 5, 0), + gsDPPipeSync(), + gsSPEndDisplayList(), }; Gfx gLButtonIconDL[10] = { -#include "assets/textures/icon_item_static/gLButtonIconDL.inc.c" + gsDPLoadTextureBlock(gLButtonTex, G_IM_FMT_IA, G_IM_SIZ_8b, gLButtonTex_WIDTH, gLButtonTex_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD), + gsSP1Quadrangle(8, 10, 11, 9, 0), + gsDPPipeSync(), + gsSPEndDisplayList(), }; Gfx gRButtonIconDL[10] = { -#include "assets/textures/icon_item_static/gRButtonIconDL.inc.c" + gsDPLoadTextureBlock(gRButtonTex, G_IM_FMT_IA, G_IM_SIZ_8b, gRButtonTex_WIDTH, gRButtonTex_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD), + gsSP1Quadrangle(12, 14, 15, 13, 0), + gsDPPipeSync(), + gsSPEndDisplayList(), }; Gfx gCButtonIconsDL[11] = { -#include "assets/textures/icon_item_static/gCButtonIconsDL.inc.c" + gsDPPipeSync(), + gsDPSetPrimColor(0, 0, 255, 150, 0, 255), + gsDPLoadTextureBlock(gCBtnSymbolsTex, G_IM_FMT_IA, G_IM_SIZ_8b, gCBtnSymbolsTex_WIDTH, gCBtnSymbolsTex_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsSPEndDisplayList(), }; Gfx gAButtonIconDL[11] = { -#include "assets/textures/icon_item_static/gAButtonIconDL.inc.c" + gsDPPipeSync(), +#if PLATFORM_N64 || OOT_VERSION == IQUE_CN + gsDPSetPrimColor(0, 0, 0, 100, 255, 255), +#else + gsDPSetPrimColor(0, 0, 0, 255, 100, 255), +#endif + gsDPLoadTextureBlock(gABtnSymbolTex, G_IM_FMT_IA, G_IM_SIZ_8b, gABtnSymbolTex_WIDTH, gABtnSymbolTex_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsSPEndDisplayList(), }; Gfx gBButtonIconDL[11] = { -#include "assets/textures/icon_item_static/gBButtonIconDL.inc.c" + gsDPPipeSync(), + gsDPSetPrimColor(0, 0, 50, 150, 0, 255), + gsDPLoadTextureBlock(gBBtnSymbolTex, G_IM_FMT_IA, G_IM_SIZ_8b, gBBtnSymbolTex_WIDTH, gBBtnSymbolTex_HEIGHT, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD), + gsSP1Quadrangle(0, 2, 3, 1, 0), + gsSPEndDisplayList(), }; Gfx gPromptCursorLeftDL[10] = { -#include "assets/textures/icon_item_static/gPromptCursorLeftDL.inc.c" + gsDPPipeSync(), + gsDPLoadTextureBlock_4b(gPausePromptCursorTex, G_IM_FMT_I, gPausePromptCursorTex_WIDTH, + gPausePromptCursorTex_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(4, 6, 7, 5, 0), + gsSPEndDisplayList(), }; Gfx gPromptCursorRightDL[10] = { -#include "assets/textures/icon_item_static/gPromptCursorRightDL.inc.c" + gsDPPipeSync(), + gsDPLoadTextureBlock_4b(gPausePromptCursorTex, G_IM_FMT_I, gPausePromptCursorTex_WIDTH, + gPausePromptCursorTex_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(8, 10, 11, 9, 0), + gsSPEndDisplayList(), }; diff --git a/assets/textures/icon_item_static/icon_item_static.h b/assets/textures/icon_item_static/icon_item_static.h index 74c837280f..e3ca81b6df 100644 --- a/assets/textures/icon_item_static/icon_item_static.h +++ b/assets/textures/icon_item_static/icon_item_static.h @@ -184,6 +184,10 @@ extern u64 gPauseSave14Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX extern u64 gPauseSave24Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX_HEIGHT, 8)]; extern u64 gPauseGameOver10Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX_HEIGHT, 8)]; +#define gABtnSymbolTex_WIDTH 24 +#define gBBtnSymbolTex_WIDTH 24 +#define gCBtnSymbolsTex_WIDTH 48 + #define gSongNoteTex_WIDTH 16 #define gSongNoteTex_HEIGHT 24 extern u64 gSongNoteTex[TEX_LEN(u64, gSongNoteTex_WIDTH, gSongNoteTex_HEIGHT, 8)]; @@ -193,7 +197,7 @@ extern u64 gSongNoteTex[TEX_LEN(u64, gSongNoteTex_WIDTH, gSongNoteTex_HEIGHT, 8) #define gMagicArrowEquipEffectTex_HEIGHT gMagicArrowEquipEffectTex_SIZE extern u64 gMagicArrowEquipEffectTex[TEX_LEN(u64, gMagicArrowEquipEffectTex_WIDTH, gMagicArrowEquipEffectTex_HEIGHT, 8)]; -extern Gfx gItemNamePanelDL[18]; +extern Gfx gInfoPanelBgDL[18]; extern Gfx gLButtonIconDL[10]; extern Gfx gRButtonIconDL[10]; extern Gfx gCButtonIconsDL[11]; diff --git a/assets/xml/textures/icon_item_static.xml b/assets/xml/textures/icon_item_static.xml index ca772fddda..3b1733f112 100644 --- a/assets/xml/textures/icon_item_static.xml +++ b/assets/xml/textures/icon_item_static.xml @@ -169,14 +169,14 @@ - - + + - + diff --git a/assets/xml/textures/icon_item_static_pal.xml b/assets/xml/textures/icon_item_static_pal.xml index 474a13f249..32fe99226d 100644 --- a/assets/xml/textures/icon_item_static_pal.xml +++ b/assets/xml/textures/icon_item_static_pal.xml @@ -171,14 +171,14 @@ - - + + - + diff --git a/include/regs.h b/include/regs.h index 509f5ea583..7dab742dfe 100644 --- a/include/regs.h +++ b/include/regs.h @@ -107,12 +107,12 @@ struct PlayState; #define R_TEXTBOX_WIDTH YREG(22) #define R_TEXTBOX_HEIGHT YREG(23) #if OOT_NTSC -#define R_KALEIDO_UNK1(i) YREG(48 + (i)) -#define R_KALEIDO_UNK2(i) YREG(50 + (i)) -#define R_KALEIDO_UNK3(i) YREG(52 + (i)) -#define R_KALEIDO_UNK4(i) YREG(54 + (i)) -#define R_KALEIDO_UNK5(i) YREG(56 + (i)) -#define R_KALEIDO_UNK6(i) YREG(58 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(i) YREG(48 + (i)) +#define R_PAUSE_INFO_PANEL_TEXT_X(i) YREG(50 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(i) YREG(52 + (i)) +#define R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(i) YREG(54 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(i) YREG(56 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_EQUIP_X(i) YREG(58 + (i)) #endif #define R_TEXTBOX_ICON_XPOS YREG(71) #define R_TEXTBOX_ICON_YPOS YREG(72) @@ -214,12 +214,12 @@ struct PlayState; #define R_B_LABEL_X(i) WREG(40 + (i)) #define R_B_LABEL_Y(i) WREG(43 + (i)) #define R_A_LABEL_Z(i) WREG(46 + (i)) -#define R_KALEIDO_UNK1(i) WREG(49 + (i)) -#define R_KALEIDO_UNK2(i) WREG(52 + (i)) -#define R_KALEIDO_UNK3(i) WREG(55 + (i)) -#define R_KALEIDO_UNK4(i) WREG(58 + (i)) -#define R_KALEIDO_UNK5(i) WREG(61 + (i)) -#define R_KALEIDO_UNK6(i) WREG(64 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(i) WREG(49 + (i)) +#define R_PAUSE_INFO_PANEL_TEXT_X(i) WREG(52 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(i) WREG(55 + (i)) +#define R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(i) WREG(58 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(i) WREG(61 + (i)) +#define R_PAUSE_INFO_PANEL_ICON_EQUIP_X(i) WREG(64 + (i)) #endif #define R_DGN_MINIMAP_X WREG(68) #define R_DGN_MINIMAP_Y WREG(69) diff --git a/src/code/z_construct.c b/src/code/z_construct.c index 7561953684..b4abbda6b7 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -268,18 +268,18 @@ void Regs_InitDataImpl(void) { YREG(47) = 0; #if OOT_NTSC - R_KALEIDO_UNK1(0) = -45; - R_KALEIDO_UNK1(1) = -48; - R_KALEIDO_UNK2(0) = 16; - R_KALEIDO_UNK2(1) = 22; - R_KALEIDO_UNK3(0) = -55; - R_KALEIDO_UNK3(1) = -53; - R_KALEIDO_UNK4(0) = 43; - R_KALEIDO_UNK4(1) = 47; - R_KALEIDO_UNK5(0) = -33; - R_KALEIDO_UNK5(1) = -42; - R_KALEIDO_UNK6(0) = -33; - R_KALEIDO_UNK6(1) = -37; + R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_JPN) = -45; + R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_ENG) = -48; + R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_JPN) = 16; + R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_ENG) = 22; + R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_JPN) = -55; + R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_ENG) = -53; + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_JPN) = 43; + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_ENG) = 47; + R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_JPN) = -33; + R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_ENG) = -42; + R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_JPN) = -33; + R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_ENG) = -37; #else // Same as above, although these regs are now unused for PAL versions YREG(48) = -45; @@ -367,24 +367,24 @@ void Regs_InitDataImpl(void) { ZREG(47) = 1; #if OOT_NTSC - R_START_LABEL_DD(0) = 86; - R_START_LABEL_DD(1) = 100; + R_START_LABEL_DD(LANGUAGE_JPN) = 86; + R_START_LABEL_DD(LANGUAGE_ENG) = 100; R_START_LABEL_WIDTH = 0; R_START_LABEL_HEIGHT = 0; - R_START_LABEL_Y(0) = 21; - R_START_LABEL_Y(1) = 20; - R_START_LABEL_X(0) = 122; - R_START_LABEL_X(1) = 120; + R_START_LABEL_Y(LANGUAGE_JPN) = 21; + R_START_LABEL_Y(LANGUAGE_ENG) = 20; + R_START_LABEL_X(LANGUAGE_JPN) = 122; + R_START_LABEL_X(LANGUAGE_ENG) = 120; #else - R_START_LABEL_DD(0) = 100; - R_START_LABEL_DD(1) = 89; - R_START_LABEL_DD(2) = 92; - R_START_LABEL_Y(0) = 20; - R_START_LABEL_Y(1) = 20; - R_START_LABEL_Y(2) = 20; - R_START_LABEL_X(0) = 120; - R_START_LABEL_X(1) = 119; - R_START_LABEL_X(2) = 119; + R_START_LABEL_DD(LANGUAGE_ENG) = 100; + R_START_LABEL_DD(LANGUAGE_GER) = 89; + R_START_LABEL_DD(LANGUAGE_FRA) = 92; + R_START_LABEL_Y(LANGUAGE_ENG) = 20; + R_START_LABEL_Y(LANGUAGE_GER) = 20; + R_START_LABEL_Y(LANGUAGE_FRA) = 20; + R_START_LABEL_X(LANGUAGE_ENG) = 120; + R_START_LABEL_X(LANGUAGE_GER) = 119; + R_START_LABEL_X(LANGUAGE_FRA) = 119; #endif R_PAUSE_QUEST_MEDALLION_SHINE_TIME(0) = 1; @@ -526,14 +526,14 @@ void Regs_InitDataImpl(void) { WREG(7) = 0; #if OOT_NTSC - R_B_LABEL_SCALE(0) = 100; - R_B_LABEL_SCALE(1) = 109; - R_B_LABEL_X(0) = 151; - R_B_LABEL_X(1) = 148; - R_B_LABEL_Y(0) = 23; - R_B_LABEL_Y(1) = 22; - R_A_LABEL_Z(0) = -380; - R_A_LABEL_Z(1) = -350; + R_B_LABEL_SCALE(LANGUAGE_JPN) = 100; + R_B_LABEL_SCALE(LANGUAGE_ENG) = 109; + R_B_LABEL_X(LANGUAGE_JPN) = 151; + R_B_LABEL_X(LANGUAGE_ENG) = 148; + R_B_LABEL_Y(LANGUAGE_JPN) = 23; + R_B_LABEL_Y(LANGUAGE_ENG) = 22; + R_A_LABEL_Z(LANGUAGE_JPN) = -380; + R_A_LABEL_Z(LANGUAGE_ENG) = -350; #else // Same as above, although these regs are now unused in PAL versions WREG(8) = 100; @@ -568,36 +568,36 @@ void Regs_InitDataImpl(void) { WREG(36) = 0; #if OOT_PAL - R_B_LABEL_SCALE(0) = 100; - R_B_LABEL_SCALE(1) = 99; - R_B_LABEL_SCALE(2) = 109; - R_B_LABEL_X(0) = B_BUTTON_X - 9; - R_B_LABEL_X(1) = B_BUTTON_X - 11; - R_B_LABEL_X(2) = B_BUTTON_X - 12; - R_B_LABEL_Y(0) = B_BUTTON_Y + 6; - R_B_LABEL_Y(1) = B_BUTTON_Y + 5; - R_B_LABEL_Y(2) = B_BUTTON_Y + 5; - R_A_LABEL_Z(0) = -380; - R_A_LABEL_Z(1) = -360; - R_A_LABEL_Z(2) = -350; - R_KALEIDO_UNK1(0) = -48; - R_KALEIDO_UNK1(1) = 16; - R_KALEIDO_UNK1(2) = -62; - R_KALEIDO_UNK2(0) = 22; - R_KALEIDO_UNK2(1) = -84; - R_KALEIDO_UNK2(2) = 20; - R_KALEIDO_UNK3(0) = -53; - R_KALEIDO_UNK3(1) = 40; - R_KALEIDO_UNK3(2) = -64; - R_KALEIDO_UNK4(0) = 47; - R_KALEIDO_UNK4(1) = -84; - R_KALEIDO_UNK4(2) = 44; - R_KALEIDO_UNK5(0) = -42; - R_KALEIDO_UNK5(1) = 32; - R_KALEIDO_UNK5(2) = -45; - R_KALEIDO_UNK6(0) = -37; - R_KALEIDO_UNK6(1) = 30; - R_KALEIDO_UNK6(2) = -50; + R_B_LABEL_SCALE(LANGUAGE_ENG) = 100; + R_B_LABEL_SCALE(LANGUAGE_GER) = 99; + R_B_LABEL_SCALE(LANGUAGE_FRA) = 109; + R_B_LABEL_X(LANGUAGE_ENG) = B_BUTTON_X - 9; + R_B_LABEL_X(LANGUAGE_GER) = B_BUTTON_X - 11; + R_B_LABEL_X(LANGUAGE_FRA) = B_BUTTON_X - 12; + R_B_LABEL_Y(LANGUAGE_ENG) = B_BUTTON_Y + 6; + R_B_LABEL_Y(LANGUAGE_GER) = B_BUTTON_Y + 5; + R_B_LABEL_Y(LANGUAGE_FRA) = B_BUTTON_Y + 5; + R_A_LABEL_Z(LANGUAGE_ENG) = -380; + R_A_LABEL_Z(LANGUAGE_GER) = -360; + R_A_LABEL_Z(LANGUAGE_FRA) = -350; + R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_ENG) = -48; + R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_GER) = 16; + R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_FRA) = -62; + R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_ENG) = 22; + R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_GER) = -84; + R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_FRA) = 20; + R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_ENG) = -53; + R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_GER) = 40; + R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_FRA) = -64; + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_ENG) = 47; + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_GER) = -84; + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_FRA) = 44; + R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_ENG) = -42; + R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_GER) = 32; + R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_FRA) = -45; + R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_ENG) = -37; + R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_GER) = 30; + R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_FRA) = -50; #endif R_DGN_MINIMAP_X = 204; diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index b6d5c911a2..67863d0fba 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -29,6 +29,8 @@ #include "assets/textures/do_action_static/do_action_static.h" #include "assets/textures/icon_item_static/icon_item_static.h" +#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" + typedef struct RestrictionFlags { /* 0x00 */ u8 sceneId; /* 0x01 */ u8 flags1; 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 e2742e3bef..6575106be0 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -31,7 +31,7 @@ #include "assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.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:128 pal-1.1:128" + "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:0 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_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index c8b6685587..754a1b8296 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1416,7 +1416,7 @@ void func_80B3F3D8(void) { } #pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ique-cn:64" \ - "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" + "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:64 pal-1.0:128 pal-1.1:128" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; 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 a66bb1053d..85bc9e7568 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -1657,12 +1657,12 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { } void KaleidoScope_DrawInfoPanel(PlayState* play) { - static void* D_8082AD54_toEquipTextTextures_[] = + static void* sToEquipTextTextures[] = LANGUAGE_ARRAY(gPauseToEquipJPNTex, gPauseToEquipENGTex, gPauseToEquipGERTex, gPauseToEquipFRATex); - static void* D_8082AD60_toDecideTextTextures_[] = + static void* sToDecideTextTextures[] = LANGUAGE_ARRAY(gPauseToDecideJPNTex, gPauseToDecideENGTex, gPauseToDecideGERTex, gPauseToDecideFRATex); - static void* D_8082AD6C_toPlayMelodyTextTextures_[] = LANGUAGE_ARRAY( - gPauseToPlayMelodyJPNTex, gPauseToPlayMelodyENGTex, gPauseToPlayMelodyGERTex, gPauseToPlayMelodyFRATex); + static void* sToPlayMelodyTextTextures[] = LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex, gPauseToPlayMelodyENGTex, + gPauseToPlayMelodyGERTex, gPauseToPlayMelodyFRATex); static void* D_8082AD78_scrollLeftLabels_[][LANGUAGE_MAX] = { LANGUAGE_ARRAY(gPauseToEquipmentJPNTex, gPauseToEquipmentENGTex, gPauseToEquipmentGERTex, gPauseToEquipmentFRATex), @@ -1681,15 +1681,19 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex, gPauseToSelectItemFRATex), }; - static u16 D_8082ADD8_toEquipTextWidth_[] = LANGUAGE_ARRAY(56, 56, 88, 80); - static u16 D_8082ADE0_toDecideTextWidth_[] = LANGUAGE_ARRAY(48, 64, 88, 72); - static u16 D_8082ADE8_toPlayMelodyTextWidth_[] = LANGUAGE_ARRAY(96, 80, 104, 112); - static s16 sCursorLeftRightSelectedPrimColors[][4] = { + static u16 sToEquipTextWidth[] = LANGUAGE_ARRAY(gPauseToEquipJPNTex_WIDTH, gPauseToEquipENGTex_WIDTH, + gPauseToEquipGERTex_WIDTH, gPauseToEquipFRATex_WIDTH); + static u16 sToDecideTextWidth[] = LANGUAGE_ARRAY(gPauseToDecideJPNTex_WIDTH, gPauseToDecideENGTex_WIDTH, + gPauseToDecideGERTex_WIDTH, gPauseToDecideFRATex_WIDTH); + static u16 sToPlayMelodyTextWidth[] = + LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex_WIDTH, gPauseToPlayMelodyENGTex_WIDTH, gPauseToPlayMelodyGERTex_WIDTH, + gPauseToPlayMelodyFRATex_WIDTH); + static s16 sLRSelectedPrimColors[][4] = { { 180, 210, 255, 220 }, { 100, 100, 150, 220 }, }; - static s16 sCursorLeftRightSelectedPrimTimer = 20; - static s16 sCursorLeftRightSelectedPrimState = 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, }; @@ -1707,10 +1711,10 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { 12, // WORLD_MAP_POINT_KOKIRI_FOREST 17, // WORLD_MAP_POINT_ZORAS_DOMAIN }; - static s16 sCursorLeftRightSelectedPrimRed; - static s16 sCursorLeftRightSelectedPrimGreen; - static s16 sCursorLeftRightSelectedPrimBlue; - static s16 sCursorLeftRightSelectedPrimAlpha; + static s16 sLRSelectedPrimR; + static s16 sLRSelectedPrimG; + static s16 sLRSelectedPrimB; + static s16 sLRSelectedPrimA; PauseContext* pauseCtx = &play->pauseCtx; s16 stepR; @@ -1723,51 +1727,43 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 1676); - stepR = ABS(sCursorLeftRightSelectedPrimRed - - sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][0]) / - sCursorLeftRightSelectedPrimTimer; - stepG = ABS(sCursorLeftRightSelectedPrimGreen - - sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][1]) / - sCursorLeftRightSelectedPrimTimer; - stepB = ABS(sCursorLeftRightSelectedPrimBlue - - sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][2]) / - sCursorLeftRightSelectedPrimTimer; - stepA = ABS(sCursorLeftRightSelectedPrimAlpha - - sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][3]) / - sCursorLeftRightSelectedPrimTimer; - if (sCursorLeftRightSelectedPrimRed >= sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][0]) { - sCursorLeftRightSelectedPrimRed -= 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 { - sCursorLeftRightSelectedPrimRed += stepR; + sLRSelectedPrimR += stepR; } - if (sCursorLeftRightSelectedPrimGreen >= sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][1]) { - sCursorLeftRightSelectedPrimGreen -= stepG; + if (sLRSelectedPrimG >= sLRSelectedPrimColors[sLRSelectedPrimState][1]) { + sLRSelectedPrimG -= stepG; } else { - sCursorLeftRightSelectedPrimGreen += stepG; + sLRSelectedPrimG += stepG; } - if (sCursorLeftRightSelectedPrimBlue >= sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][2]) { - sCursorLeftRightSelectedPrimBlue -= stepB; + if (sLRSelectedPrimB >= sLRSelectedPrimColors[sLRSelectedPrimState][2]) { + sLRSelectedPrimB -= stepB; } else { - sCursorLeftRightSelectedPrimBlue += stepB; + sLRSelectedPrimB += stepB; } - if (sCursorLeftRightSelectedPrimAlpha >= sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][3]) { - sCursorLeftRightSelectedPrimAlpha -= stepA; + if (sLRSelectedPrimA >= sLRSelectedPrimColors[sLRSelectedPrimState][3]) { + sLRSelectedPrimA -= stepA; } else { - sCursorLeftRightSelectedPrimAlpha += stepA; + sLRSelectedPrimA += stepA; } - sCursorLeftRightSelectedPrimTimer--; - if (sCursorLeftRightSelectedPrimTimer == 0) { - sCursorLeftRightSelectedPrimRed = sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][0]; - sCursorLeftRightSelectedPrimGreen = sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][1]; - sCursorLeftRightSelectedPrimBlue = sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][2]; - sCursorLeftRightSelectedPrimAlpha = sCursorLeftRightSelectedPrimColors[sCursorLeftRightSelectedPrimState][3]; - sCursorLeftRightSelectedPrimTimer = R_PAUSE_CURSOR_L_R_SELECTED_PRIM_TIMER; - sCursorLeftRightSelectedPrimState ^= 1; + sLRSelectedPrimTimer--; + if (sLRSelectedPrimTimer == 0) { + sLRSelectedPrimR = sLRSelectedPrimColors[sLRSelectedPrimState][0]; + sLRSelectedPrimG = sLRSelectedPrimColors[sLRSelectedPrimState][1]; + sLRSelectedPrimB = sLRSelectedPrimColors[sLRSelectedPrimState][2]; + sLRSelectedPrimA = sLRSelectedPrimColors[sLRSelectedPrimState][3]; + sLRSelectedPrimTimer = R_PAUSE_CURSOR_L_R_SELECTED_PRIM_TIMER; + sLRSelectedPrimState ^= 1; } y = pauseCtx->infoPanelOffsetY - 76; - for (j = 0, i = 0; i < 7; i++, j += 4) { + for (j = 0, i = 0; i < INFO_PANEL_QUAD_MAX; i++, j += 4) { pauseCtx->infoPanelVtx[j + 0].v.ob[0] = pauseCtx->infoPanelVtx[j + 2].v.ob[0] = -72; pauseCtx->infoPanelVtx[j + 1].v.ob[0] = pauseCtx->infoPanelVtx[j + 3].v.ob[0] = 0; @@ -1787,6 +1783,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { pauseCtx->infoPanelVtx[j + 1].v.tc[0] = pauseCtx->infoPanelVtx[j + 3].v.tc[0] = 72 * (1 << 5); + // 24 = gInfoPanelBgLeftTex_HEIGHT, gInfoPanelBgRightTex_HEIGHT, gQuestIconGoldSkulltulaTex_HEIGHT pauseCtx->infoPanelVtx[j + 2].v.tc[1] = pauseCtx->infoPanelVtx[j + 3].v.tc[1] = 24 * (1 << 5); pauseCtx->infoPanelVtx[j + 0].v.cn[0] = pauseCtx->infoPanelVtx[j + 2].v.cn[0] = @@ -1800,10 +1797,12 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { pauseCtx->infoPanelVtx[j + 1].v.cn[3] = pauseCtx->infoPanelVtx[j + 3].v.cn[3] = pauseCtx->alpha; } + // INFO_PANEL_QUAD_BG_RIGHT pauseCtx->infoPanelVtx[4].v.ob[0] = pauseCtx->infoPanelVtx[6].v.ob[0] = pauseCtx->infoPanelVtx[0].v.ob[0] + 72; pauseCtx->infoPanelVtx[5].v.ob[0] = pauseCtx->infoPanelVtx[7].v.ob[0] = pauseCtx->infoPanelVtx[4].v.ob[0] + 72; + // INFO_PANEL_QUAD_BUTTON_LEFT if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = R_PAUSE_CURSOR_LEFT_X; @@ -1824,33 +1823,35 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { pauseCtx->infoPanelVtx[8].v.ob[1] - 26; } + // INFO_PANEL_QUAD_BUTTON_RIGHT if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = R_PAUSE_CURSOR_RIGHT_X; pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] = - pauseCtx->infoPanelVtx[12].v.ob[0] + 24; + pauseCtx->infoPanelVtx[12].v.ob[0] + INFO_PANEL_QUAD_BUTTON_LR_WIDTH; pauseCtx->infoPanelVtx[12].v.ob[1] = pauseCtx->infoPanelVtx[13].v.ob[1] = R_PAUSE_CURSOR_LEFT_RIGHT_Y; pauseCtx->infoPanelVtx[14].v.ob[1] = pauseCtx->infoPanelVtx[15].v.ob[1] = - pauseCtx->infoPanelVtx[12].v.ob[1] - 32; + pauseCtx->infoPanelVtx[12].v.ob[1] - INFO_PANEL_QUAD_BUTTON_LR_HEIGHT; } else { pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = R_PAUSE_CURSOR_RIGHT_X + 3; pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] = - pauseCtx->infoPanelVtx[12].v.ob[0] + 18; + pauseCtx->infoPanelVtx[12].v.ob[0] + (INFO_PANEL_QUAD_BUTTON_LR_WIDTH - 2 * 3); pauseCtx->infoPanelVtx[12].v.ob[1] = pauseCtx->infoPanelVtx[13].v.ob[1] = R_PAUSE_CURSOR_LEFT_RIGHT_Y - 3; pauseCtx->infoPanelVtx[14].v.ob[1] = pauseCtx->infoPanelVtx[15].v.ob[1] = - pauseCtx->infoPanelVtx[12].v.ob[1] - 26; + pauseCtx->infoPanelVtx[12].v.ob[1] - (INFO_PANEL_QUAD_BUTTON_LR_HEIGHT - 2 * 3); } + // INFO_PANEL_QUAD_BUTTON_LEFT, INFO_PANEL_QUAD_BUTTON_RIGHT pauseCtx->infoPanelVtx[9].v.tc[0] = pauseCtx->infoPanelVtx[11].v.tc[0] = pauseCtx->infoPanelVtx[13].v.tc[0] = - pauseCtx->infoPanelVtx[15].v.tc[0] = 24 * (1 << 5); + pauseCtx->infoPanelVtx[15].v.tc[0] = INFO_PANEL_QUAD_BUTTON_LR_TEX_WIDTH * (1 << 5); pauseCtx->infoPanelVtx[10].v.tc[1] = pauseCtx->infoPanelVtx[11].v.tc[1] = pauseCtx->infoPanelVtx[14].v.tc[1] = - pauseCtx->infoPanelVtx[15].v.tc[1] = 32 * (1 << 5); + pauseCtx->infoPanelVtx[15].v.tc[1] = INFO_PANEL_QUAD_BUTTON_LR_TEX_HEIGHT * (1 << 5); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); @@ -1862,37 +1863,41 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 90, 100, 130, 255); gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[0], 16, 0); - gSPDisplayList(POLY_OPA_DISP++, gItemNamePanelDL); + // Draw INFO_PANEL_QUAD_BG_LEFT, INFO_PANEL_QUAD_BG_RIGHT + gSPDisplayList(POLY_OPA_DISP++, gInfoPanelBgDL); if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { - gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sCursorLeftRightSelectedPrimRed, sCursorLeftRightSelectedPrimGreen, - sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sLRSelectedPrimR, sLRSelectedPrimG, sLRSelectedPrimB, sLRSelectedPrimA); } + // Draw INFO_PANEL_QUAD_BUTTON_LEFT gSPDisplayList(POLY_OPA_DISP++, gLButtonIconDL); 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, sCursorLeftRightSelectedPrimRed, sCursorLeftRightSelectedPrimGreen, - sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sLRSelectedPrimR, sLRSelectedPrimG, sLRSelectedPrimB, sLRSelectedPrimA); } + // Draw INFO_PANEL_QUAD_BUTTON_RIGHT gSPDisplayList(POLY_OPA_DISP++, gRButtonIconDL); if (pauseCtx->cursorSpecialPos != 0) { - j = (pauseCtx->cursorSpecialPos - 8) * 4; + j = (pauseCtx->cursorSpecialPos - PAUSE_CURSOR_PAGE_LEFT + INFO_PANEL_QUAD_BUTTON_LEFT) * 4; pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->infoPanelVtx[j].v.ob[0]; pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->infoPanelVtx[j].v.ob[1]; KaleidoScope_DrawCursor(play, pauseCtx->pageIndex); } + // INFO_PANEL_QUAD_INFO_ICON y = pauseCtx->infoPanelOffsetY - 80; pauseCtx->infoPanelVtx[16].v.ob[1] = pauseCtx->infoPanelVtx[17].v.ob[1] = y; - pauseCtx->infoPanelVtx[18].v.ob[1] = pauseCtx->infoPanelVtx[19].v.ob[1] = pauseCtx->infoPanelVtx[16].v.ob[1] - 16; + pauseCtx->infoPanelVtx[18].v.ob[1] = pauseCtx->infoPanelVtx[19].v.ob[1] = + pauseCtx->infoPanelVtx[16].v.ob[1] - INFO_PANEL_QUAD_INFO_ICON_HEIGHT; - pauseCtx->infoPanelVtx[18].v.tc[1] = pauseCtx->infoPanelVtx[19].v.tc[1] = 16 * (1 << 5); + pauseCtx->infoPanelVtx[18].v.tc[1] = pauseCtx->infoPanelVtx[19].v.tc[1] = + INFO_PANEL_QUAD_INFO_ICON_TEX_HEIGHT * (1 << 5); gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, @@ -1914,12 +1919,13 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { (pauseCtx->mainState <= PAUSE_MAIN_STATE_EQUIP_CHANGED)) || (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE_CURSOR_ON_SONG)) { + // INFO_PANEL_QUAD_INFO_ICON pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63; pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + 128; + pauseCtx->infoPanelVtx[16].v.ob[0] + ITEM_NAME_TEX_WIDTH; - pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 128 * (1 << 5); + pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = ITEM_NAME_TEX_WIDTH * (1 << 5); gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 4, 0); @@ -1955,6 +1961,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { if (GET_GS_FLAGS(D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]) == gAreaGsFlags[D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]]) { + // INFO_PANEL_QUAD_HAVE_ALL_GS pauseCtx->infoPanelVtx[24].v.ob[0] = pauseCtx->infoPanelVtx[26].v.ob[0] = -74; pauseCtx->infoPanelVtx[25].v.ob[0] = pauseCtx->infoPanelVtx[27].v.ob[0] = @@ -1966,7 +1973,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { pauseCtx->infoPanelVtx[26].v.ob[1] = pauseCtx->infoPanelVtx[27].v.ob[1] = pauseCtx->infoPanelVtx[24].v.ob[1] - 19; - pauseCtx->infoPanelVtx[25].v.tc[0] = pauseCtx->infoPanelVtx[27].v.tc[0] = 24 * (1 << 5); + pauseCtx->infoPanelVtx[25].v.tc[0] = pauseCtx->infoPanelVtx[27].v.tc[0] = + gQuestIconGoldSkulltulaTex_WIDTH * (1 << 5); gDPPipeSync(POLY_OPA_DISP++); gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[24], 4, 0); @@ -1982,6 +1990,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { } } else if ((pauseCtx->mainState < PAUSE_MAIN_STATE_3) || (pauseCtx->mainState == PAUSE_MAIN_STATE_EQUIP_CHANGED) || (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE_CURSOR_ON_SONG)) { + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[20].v.ob[1] = pauseCtx->infoPanelVtx[21].v.ob[1] = y; pauseCtx->infoPanelVtx[22].v.ob[1] = pauseCtx->infoPanelVtx[23].v.ob[1] = @@ -1992,33 +2001,37 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 8, 0); if (pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) { + // INFO_PANEL_QUAD_INFO_ICON pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - R_KALEIDO_UNK5(gSaveContext.language); + R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + 24; + pauseCtx->infoPanelVtx[16].v.ob[0] + gABtnSymbolTex_WIDTH; + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_X(gSaveContext.language); pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = - pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE0_toDecideTextWidth_[gSaveContext.language]; + pauseCtx->infoPanelVtx[20].v.ob[0] + sToDecideTextWidth[gSaveContext.language]; - pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 24 * (1 << 5); + // INFO_PANEL_QUAD_INFO_ICON + pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = gABtnSymbolTex_WIDTH * (1 << 5); + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] = - D_8082ADE0_toDecideTextWidth_[gSaveContext.language] << 5; + sToDecideTextWidth[gSaveContext.language] << 5; gSPDisplayList(POLY_OPA_DISP++, gAButtonIconDL); gDPPipeSync(POLY_OPA_DISP++); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60_toDecideTextTextures_[gSaveContext.language], - D_8082ADE0_toDecideTextWidth_[gSaveContext.language], 16, 4); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sToDecideTextTextures[gSaveContext.language], + sToDecideTextWidth[gSaveContext.language], 16, 4); } else if (pauseCtx->cursorSpecialPos != 0) { if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) { + // INFO_PANEL_QUAD_INFO_ICON pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63; pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = @@ -2041,31 +2054,35 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { } } else { if ((u32)pauseCtx->pageIndex == PAUSE_ITEM) { + // INFO_PANEL_QUAD_INFO_ICON pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - R_KALEIDO_UNK1(gSaveContext.language); + R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + 48; + pauseCtx->infoPanelVtx[16].v.ob[0] + gCBtnSymbolsTex_WIDTH; + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK4(gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(gSaveContext.language); pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = - pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADD8_toEquipTextWidth_[gSaveContext.language]; + pauseCtx->infoPanelVtx[20].v.ob[0] + sToEquipTextWidth[gSaveContext.language]; - pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 48 * (1 << 5); + // INFO_PANEL_QUAD_INFO_ICON + pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = + gCBtnSymbolsTex_WIDTH * (1 << 5); + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] = - D_8082ADD8_toEquipTextWidth_[gSaveContext.language] << 5; + sToEquipTextWidth[gSaveContext.language] << 5; gSPDisplayList(POLY_OPA_DISP++, gCButtonIconsDL); gDPPipeSync(POLY_OPA_DISP++); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD54_toEquipTextTextures_[gSaveContext.language], - D_8082ADD8_toEquipTextWidth_[gSaveContext.language], 16, 4); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sToEquipTextTextures[gSaveContext.language], + sToEquipTextWidth[gSaveContext.language], 16, 4); } else if ((pauseCtx->pageIndex == PAUSE_MAP) && sInDungeonScene) { } else if ((pauseCtx->pageIndex == PAUSE_QUEST) && @@ -2074,14 +2091,16 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { if (pauseCtx->namedItem != PAUSE_ITEM_NONE) { // The cursor is on a learned song + // INFO_PANEL_QUAD_INFO_ICON pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - R_KALEIDO_UNK3(gSaveContext.language); + R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + 24; + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_X(gSaveContext.language); #if OOT_PAL if (gSaveContext.language == LANGUAGE_GER) { @@ -2091,12 +2110,15 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { #endif pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = - pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE8_toPlayMelodyTextWidth_[gSaveContext.language]; + pauseCtx->infoPanelVtx[20].v.ob[0] + sToPlayMelodyTextWidth[gSaveContext.language]; - pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 24 * (1 << 5); + // INFO_PANEL_QUAD_INFO_ICON + pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = + gABtnSymbolTex_WIDTH * (1 << 5); + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] = - D_8082ADE8_toPlayMelodyTextWidth_[gSaveContext.language] << 5; + sToPlayMelodyTextWidth[gSaveContext.language] << 5; gSPDisplayList(POLY_OPA_DISP++, gAButtonIconDL); @@ -2104,35 +2126,39 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); POLY_OPA_DISP = KaleidoScope_QuadTextureIA8( - POLY_OPA_DISP, D_8082AD6C_toPlayMelodyTextTextures_[gSaveContext.language], - D_8082ADE8_toPlayMelodyTextWidth_[gSaveContext.language], 16, 4); + POLY_OPA_DISP, sToPlayMelodyTextTextures[gSaveContext.language], + sToPlayMelodyTextWidth[gSaveContext.language], INFO_PANEL_QUAD_INFO_TEXT_TEX_HEIGHT, 4); } } else if (pauseCtx->pageIndex == PAUSE_EQUIP) { + // INFO_PANEL_QUAD_INFO_ICON pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - R_KALEIDO_UNK6(gSaveContext.language); + R_PAUSE_INFO_PANEL_ICON_EQUIP_X(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + 24; + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_X(gSaveContext.language); pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = - pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADD8_toEquipTextWidth_[gSaveContext.language]; + pauseCtx->infoPanelVtx[20].v.ob[0] + sToEquipTextWidth[gSaveContext.language]; - pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 24 * (1 << 5); + // INFO_PANEL_QUAD_INFO_ICON + pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = + gABtnSymbolTex_WIDTH * (1 << 5); + // INFO_PANEL_QUAD_INFO_TEXT pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] = - D_8082ADD8_toEquipTextWidth_[gSaveContext.language] << 5; + sToEquipTextWidth[gSaveContext.language] << 5; gSPDisplayList(POLY_OPA_DISP++, gAButtonIconDL); gDPPipeSync(POLY_OPA_DISP++); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); - POLY_OPA_DISP = - KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD54_toEquipTextTextures_[gSaveContext.language], - D_8082ADD8_toEquipTextWidth_[gSaveContext.language], 16, 4); + POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sToEquipTextTextures[gSaveContext.language], + sToEquipTextWidth[gSaveContext.language], 16, 4); } } } @@ -3365,7 +3391,7 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->questVtx[k + 3].v.cn[3] = pauseCtx->alpha; } - pauseCtx->infoPanelVtx = GRAPH_ALLOC(gfxCtx, 28 * sizeof(Vtx)); + pauseCtx->infoPanelVtx = GRAPH_ALLOC(gfxCtx, (INFO_PANEL_QUAD_MAX * 4) * sizeof(Vtx)); pauseCtx->promptPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_PROMPT_QUADS) * 4) * sizeof(Vtx)); KaleidoScope_SetPageVertices(play, pauseCtx->promptPageVtx, VTX_PAGE_PROMPT, VTX_PAGE_PROMPT_QUADS); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index fcc84c5395..5e308f1b6b 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -218,6 +218,28 @@ typedef enum ItemQuad { /* 41 */ ITEM_QUAD_MAX } ItemQuad; +#define INFO_PANEL_QUAD_BUTTON_LR_WIDTH 24 +#define INFO_PANEL_QUAD_BUTTON_LR_HEIGHT 32 +#define INFO_PANEL_QUAD_BUTTON_LR_TEX_WIDTH 24 +#define INFO_PANEL_QUAD_BUTTON_LR_TEX_HEIGHT 32 + +#define INFO_PANEL_QUAD_INFO_ICON_HEIGHT 16 +#define INFO_PANEL_QUAD_INFO_ICON_TEX_HEIGHT 16 + +#define INFO_PANEL_QUAD_INFO_TEXT_HEIGHT 16 +#define INFO_PANEL_QUAD_INFO_TEXT_TEX_HEIGHT 16 + +typedef enum InfoPanelQuad { + /* 0 */ INFO_PANEL_QUAD_BG_LEFT, + /* 1 */ INFO_PANEL_QUAD_BG_RIGHT, + /* 2 */ INFO_PANEL_QUAD_BUTTON_LEFT, + /* 3 */ INFO_PANEL_QUAD_BUTTON_RIGHT, + /* 4 */ INFO_PANEL_QUAD_INFO_ICON, + /* 5 */ INFO_PANEL_QUAD_INFO_TEXT, + /* 6 */ INFO_PANEL_QUAD_HAVE_ALL_GS, + /* 7 */ INFO_PANEL_QUAD_MAX +} InfoPanelQuad; + void KaleidoScope_DrawQuestStatus(struct PlayState* play, GraphicsContext* gfxCtx); s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point); void KaleidoScope_DrawDebugEditor(struct PlayState* play);