more docs on KaleidoScope_DrawInfoPanel / infoPanelVtx quads

This commit is contained in:
Dragorn421 2025-05-30 14:27:25 +02:00
parent 2b2fcd734e
commit 02fc4fda81
No known key found for this signature in database
GPG Key ID: 381AEBAF3D429335
11 changed files with 315 additions and 211 deletions

View File

@ -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(),
};

View File

@ -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];

View File

@ -169,14 +169,14 @@
<Texture Name="gABtnSymbolTex" OutName="a_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x861C0"/>
<Texture Name="gBBtnSymbolTex" OutName="b_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x86340"/>
<Texture Name="gCBtnSymbolsTex" OutName="c_button_symbols" Format="ia8" Width="48" Height="16" Offset="0x864C0"/>
<Texture Name="gNamePanelLeftTex" OutName="name_panel_left" Format="ia8" Width="72" Height="24" Offset="0x867C0"/>
<Texture Name="gNamePanelRightTex" OutName="name_panel_right" Format="ia8" Width="72" Height="24" Offset="0x86E80"/>
<Texture Name="gInfoPanelBgLeftTex" OutName="name_panel_left" Format="ia8" Width="72" Height="24" Offset="0x867C0"/>
<Texture Name="gInfoPanelBgRightTex" OutName="name_panel_right" Format="ia8" Width="72" Height="24" Offset="0x86E80"/>
<Texture Name="gLButtonTex" OutName="l_button" Format="ia8" Width="24" Height="32" Offset="0x87540"/>
<Texture Name="gRButtonTex" OutName="r_button" Format="ia8" Width="24" Height="32" Offset="0x87840"/>
<Texture Name="gUnknownJPNTex" OutName="unknown_jpn" Format="ia8" Width="80" Height="16" Offset="0x87B40"/>
<Texture Name="gSongNoteTex" OutName="song_note" Format="ia8" Width="16" Height="24" Offset="0x88040"/>
<Texture Name="gMagicArrowEquipEffectTex" OutName="magic_arrow_equip_effect" Format="ia8" Width="32" Height="32" Offset="0x881C0"/>
<DList Name="gItemNamePanelDL" Offset="0x885C0"/>
<DList Name="gInfoPanelBgDL" Offset="0x885C0"/>
<DList Name="gLButtonIconDL" Offset="0x88650"/>
<DList Name="gRButtonIconDL" Offset="0x886A0"/>
<DList Name="gCButtonIconsDL" Offset="0x886F0"/>

View File

@ -171,14 +171,14 @@
<Texture Name="gABtnSymbolTex" OutName="a_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x875C0"/>
<Texture Name="gBBtnSymbolTex" OutName="b_button_symbol" Format="ia8" Width="24" Height="16" Offset="0x87740"/>
<Texture Name="gCBtnSymbolsTex" OutName="c_button_symbols" Format="ia8" Width="48" Height="16" Offset="0x878C0"/>
<Texture Name="gNamePanelLeftTex" OutName="name_panel_left" Format="ia8" Width="72" Height="24" Offset="0x87BC0"/>
<Texture Name="gNamePanelRightTex" OutName="name_panel_right" Format="ia8" Width="72" Height="24" Offset="0x88280"/>
<Texture Name="gInfoPanelBgLeftTex" OutName="name_panel_left" Format="ia8" Width="72" Height="24" Offset="0x87BC0"/>
<Texture Name="gInfoPanelBgRightTex" OutName="name_panel_right" Format="ia8" Width="72" Height="24" Offset="0x88280"/>
<Texture Name="gLButtonTex" OutName="l_button" Format="ia8" Width="24" Height="32" Offset="0x88940"/>
<Texture Name="gRButtonTex" OutName="r_button" Format="ia8" Width="24" Height="32" Offset="0x88C40"/>
<Texture Name="gUnknownJPNTex" OutName="unknown_jpn" Format="ia8" Width="80" Height="16" Offset="0x88F40"/>
<Texture Name="gSongNoteTex" OutName="song_note" Format="ia8" Width="16" Height="24" Offset="0x89440"/>
<Texture Name="gMagicArrowEquipEffectTex" OutName="magic_arrow_equip_effect" Format="ia8" Width="32" Height="32" Offset="0x895C0"/>
<DList Name="gItemNamePanelDL" Offset="0x899C0"/>
<DList Name="gInfoPanelBgDL" Offset="0x899C0"/>
<DList Name="gLButtonIconDL" Offset="0x89A50"/>
<DList Name="gRButtonIconDL" Offset="0x89AA0"/>
<DList Name="gCButtonIconsDL" Offset="0x89AF0"/>

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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 | \

View File

@ -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;

View File

@ -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);

View File

@ -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);