Initial Commit
This commit is contained in:
parent
5d967f8e8c
commit
d97271c95a
|
@ -1,4 +1,4 @@
|
|||
const char gBuildVersion[] = "DECKARD";
|
||||
const char gBuildVersion[] = "DECKARD ALFA (1.0.0)";
|
||||
const char gBuildTeam[] = "github.com/harbourmasters";
|
||||
#ifdef __TIMESTAMP__
|
||||
const char gBuildDate[] = __TIMESTAMP__;
|
||||
|
|
|
@ -27,6 +27,9 @@
|
|||
* for the base hearts, while the prim color for the double defense hearts is the white outline. The
|
||||
* env color for the base hearts is the purple-ish outline, while the env color for the double defense
|
||||
* hearts is the red color of the hearts.
|
||||
*
|
||||
* These are deprecated and no references to them exist in source anymore.
|
||||
* The Resource Manager now handles these colors.
|
||||
*/
|
||||
|
||||
#define HEARTS_PRIM_R 255
|
||||
|
|
|
@ -875,6 +875,7 @@
|
|||
<ClCompile Include="src\overlays\misc\ovl_map_mark_data\z_map_mark_data.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="assets\colors\colorPaths.h" />
|
||||
<ClInclude Include="include\alloca.h" />
|
||||
<ClInclude Include="include\bgm.h" />
|
||||
<ClInclude Include="include\color.h" />
|
||||
|
|
|
@ -3710,6 +3710,9 @@
|
|||
<ClInclude Include="resource.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="assets\colors\colorPaths.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="include\macro.inc">
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include <textures/do_action_static/do_action_static.h>
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
void func_80110990(GlobalContext* globalCtx) {
|
||||
Map_Destroy(globalCtx);
|
||||
|
@ -57,7 +58,8 @@ void func_801109B0(GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
memcpy(interfaceCtx->doActionSegment, ResourceMgr_LoadTexByName(gAttackDoActionENGTex), 0x300);
|
||||
//DmaMgr_SendRequest1(interfaceCtx->doActionSegment, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset, 0x300,
|
||||
// DmaMgr_SendRequest1(interfaceCtx->doActionSegment, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset,
|
||||
// 0x300,
|
||||
//"../z_construct.c", 174);
|
||||
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
|
@ -69,8 +71,8 @@ void func_801109B0(GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
memcpy(interfaceCtx->doActionSegment + 0x300, ResourceMgr_LoadTexByName(gReturnDoActionENGTex), 0x180);
|
||||
//DmaMgr_SendRequest1(interfaceCtx->doActionSegment + 0x300, (uintptr_t)_do_action_staticSegmentRomStart + doActionOffset,
|
||||
//0x180, "../z_construct.c", 178);
|
||||
// DmaMgr_SendRequest1(interfaceCtx->doActionSegment + 0x300, (uintptr_t)_do_action_staticSegmentRomStart +
|
||||
// doActionOffset, 0x180, "../z_construct.c", 178);
|
||||
|
||||
interfaceCtx->iconItemSegment = GameState_Alloc(&globalCtx->state, 0x4000, "../z_construct.c", 190);
|
||||
|
||||
|
@ -154,17 +156,20 @@ void func_801109B0(GlobalContext* globalCtx) {
|
|||
|
||||
interfaceCtx->unk_23C = interfaceCtx->unk_242 = 0;
|
||||
|
||||
Color_RGB8 buttonColor;
|
||||
R_ITEM_BTN_X(0) = B_BUTTON_X;
|
||||
R_B_BTN_COLOR(0) = 255;
|
||||
R_B_BTN_COLOR(1) = 30;
|
||||
R_B_BTN_COLOR(2) = 30;
|
||||
buttonColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnB);
|
||||
R_B_BTN_COLOR(0) = buttonColor.r;
|
||||
R_B_BTN_COLOR(1) = buttonColor.g;
|
||||
R_B_BTN_COLOR(2) = buttonColor.b;
|
||||
R_ITEM_ICON_X(0) = B_BUTTON_X;
|
||||
R_ITEM_AMMO_X(0) = B_BUTTON_X + 2;
|
||||
R_A_BTN_X = A_BUTTON_X;
|
||||
R_A_ICON_X = A_BUTTON_X;
|
||||
R_A_BTN_COLOR(0) = 0;
|
||||
R_A_BTN_COLOR(1) = 200;
|
||||
R_A_BTN_COLOR(2) = 50;
|
||||
buttonColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnA);
|
||||
R_A_BTN_COLOR(0) = buttonColor.r;
|
||||
R_A_BTN_COLOR(1) = buttonColor.g;
|
||||
R_A_BTN_COLOR(2) = buttonColor.b;
|
||||
}
|
||||
|
||||
void Message_Init(GlobalContext* globalCtx) {
|
||||
|
@ -195,6 +200,7 @@ void Message_Init(GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80111070(void) {
|
||||
Color_RGB8 color;
|
||||
YREG(8) = 10;
|
||||
YREG(14) = 0;
|
||||
YREG(15) = 0;
|
||||
|
@ -266,9 +272,10 @@ void func_80111070(void) {
|
|||
YREG(93) = 6;
|
||||
YREG(94) = 3;
|
||||
YREG(95) = 1;
|
||||
R_MAGIC_FILL_COLOR(0) = 0;
|
||||
R_MAGIC_FILL_COLOR(1) = 200;
|
||||
R_MAGIC_FILL_COLOR(2) = 0;
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorMagicFillNormal);
|
||||
R_MAGIC_FILL_COLOR(0) = color.r;
|
||||
R_MAGIC_FILL_COLOR(1) = color.g;
|
||||
R_MAGIC_FILL_COLOR(2) = color.b;
|
||||
ZREG(9) = 140;
|
||||
ZREG(10) = 200;
|
||||
ZREG(11) = 0;
|
||||
|
@ -298,9 +305,10 @@ void func_80111070(void) {
|
|||
ZREG(36) = 0;
|
||||
ZREG(37) = 0;
|
||||
ZREG(38) = 0;
|
||||
R_C_BTN_COLOR(0) = 255;
|
||||
R_C_BTN_COLOR(1) = 160;
|
||||
R_C_BTN_COLOR(2) = 0;
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCLeft);
|
||||
R_C_BTN_COLOR(0) = color.r; // Deprecated.
|
||||
R_C_BTN_COLOR(1) = color.g; // All references to this reg are now removed.
|
||||
R_C_BTN_COLOR(2) = color.b; // Use the colorBtnC directional assets to change colors.
|
||||
ZREG(46) = 1;
|
||||
ZREG(47) = 1;
|
||||
R_START_LABEL_DD(0) = 100;
|
||||
|
@ -524,9 +532,10 @@ void func_80111070(void) {
|
|||
R_COMPASS_SCALE_Y = 32;
|
||||
R_COMPASS_OFFSET_X = 110;
|
||||
R_COMPASS_OFFSET_Y = -740;
|
||||
R_MINIMAP_COLOR(0) = 0;
|
||||
R_MINIMAP_COLOR(1) = 255;
|
||||
R_MINIMAP_COLOR(2) = 255;
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorMinimap);
|
||||
R_MINIMAP_COLOR(0) = color.r;
|
||||
R_MINIMAP_COLOR(1) = color.g;
|
||||
R_MINIMAP_COLOR(2) = color.b;
|
||||
}
|
||||
|
||||
VREG(21) = 0;
|
||||
|
@ -542,13 +551,10 @@ void func_80111070(void) {
|
|||
VREG(31) = 0;
|
||||
VREG(32) = 0;
|
||||
|
||||
R_TEXT_ADJUST_COLOR_1_R = 70;
|
||||
R_TEXT_ADJUST_COLOR_1_G = 255;
|
||||
R_TEXT_ADJUST_COLOR_1_B = 80;
|
||||
|
||||
R_TEXT_ADJUST_COLOR_2_R = 70;
|
||||
R_TEXT_ADJUST_COLOR_2_G = 255;
|
||||
R_TEXT_ADJUST_COLOR_2_B = 80;
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTextAdjustableDefault);
|
||||
R_TEXT_ADJUST_COLOR_1_R = R_TEXT_ADJUST_COLOR_2_R = color.r;
|
||||
R_TEXT_ADJUST_COLOR_1_G = R_TEXT_ADJUST_COLOR_2_G = color.g;
|
||||
R_TEXT_ADJUST_COLOR_1_B = R_TEXT_ADJUST_COLOR_2_B = color.b;
|
||||
|
||||
VREG(40) = 9;
|
||||
VREG(42) = 250;
|
||||
|
|
|
@ -1,117 +1,113 @@
|
|||
#include "global.h"
|
||||
#include "textures/parameter_static/parameter_static.h"
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
static s16 sHeartsPrimColors[3][3] = {
|
||||
{ HEARTS_PRIM_R, HEARTS_PRIM_G, HEARTS_PRIM_B },
|
||||
{ HEARTS_BURN_PRIM_R, HEARTS_BURN_PRIM_G, HEARTS_BURN_PRIM_B }, // unused
|
||||
{ HEARTS_DROWN_PRIM_R, HEARTS_DROWN_PRIM_G, HEARTS_DROWN_PRIM_B }, // unused
|
||||
};
|
||||
|
||||
static s16 sHeartsEnvColors[3][3] = {
|
||||
{ HEARTS_ENV_R, HEARTS_ENV_G, HEARTS_ENV_B },
|
||||
{ HEARTS_BURN_ENV_R, HEARTS_BURN_ENV_G }, // unused
|
||||
{ HEARTS_DROWN_ENV_R, HEARTS_DROWN_ENV_G, HEARTS_DROWN_ENV_B }, // unused
|
||||
};
|
||||
|
||||
static s16 sHeartsPrimFactors[3][3] = {
|
||||
{
|
||||
HEARTS_PRIM_R - HEARTS_PRIM_R,
|
||||
HEARTS_PRIM_G - HEARTS_PRIM_G,
|
||||
HEARTS_PRIM_B - HEARTS_PRIM_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_BURN_PRIM_R - HEARTS_PRIM_R,
|
||||
HEARTS_BURN_PRIM_G - HEARTS_PRIM_G,
|
||||
HEARTS_BURN_PRIM_B - HEARTS_PRIM_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_DROWN_PRIM_R - HEARTS_PRIM_R,
|
||||
HEARTS_DROWN_PRIM_G - HEARTS_PRIM_G,
|
||||
HEARTS_DROWN_PRIM_B - HEARTS_PRIM_B,
|
||||
},
|
||||
};
|
||||
|
||||
static s16 sHeartsEnvFactors[3][3] = {
|
||||
{
|
||||
HEARTS_ENV_R - HEARTS_ENV_R,
|
||||
HEARTS_ENV_G - HEARTS_ENV_G,
|
||||
HEARTS_ENV_B - HEARTS_ENV_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_BURN_ENV_R - HEARTS_ENV_R,
|
||||
HEARTS_BURN_ENV_G - HEARTS_ENV_G,
|
||||
HEARTS_BURN_ENV_B - HEARTS_ENV_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_DROWN_ENV_R - HEARTS_ENV_R,
|
||||
HEARTS_DROWN_ENV_G - HEARTS_ENV_G,
|
||||
HEARTS_DROWN_ENV_B - HEARTS_ENV_B,
|
||||
},
|
||||
};
|
||||
|
||||
static s16 sHeartsDDPrimColors[3][3] = {
|
||||
{ HEARTS_DD_PRIM_R, HEARTS_DD_PRIM_G, HEARTS_DD_PRIM_B },
|
||||
{ HEARTS_BURN_PRIM_R, HEARTS_BURN_PRIM_G, HEARTS_BURN_PRIM_B }, // unused
|
||||
{ HEARTS_DROWN_PRIM_R, HEARTS_DROWN_PRIM_G, HEARTS_DROWN_PRIM_B }, // unused
|
||||
};
|
||||
|
||||
static s16 sHeartsDDEnvColors[3][3] = {
|
||||
{ HEARTS_DD_ENV_R, HEARTS_DD_ENV_G, HEARTS_DD_ENV_B },
|
||||
{ HEARTS_BURN_ENV_R, HEARTS_BURN_ENV_G, HEARTS_BURN_ENV_B }, // unused
|
||||
{ HEARTS_DROWN_ENV_R, HEARTS_DROWN_ENV_G, HEARTS_DROWN_ENV_B }, // unused
|
||||
};
|
||||
|
||||
static s16 sHeartsDDPrimFactors[3][3] = {
|
||||
{
|
||||
HEARTS_DD_PRIM_R - HEARTS_DD_PRIM_R,
|
||||
HEARTS_DD_PRIM_G - HEARTS_DD_PRIM_G,
|
||||
HEARTS_DD_PRIM_B - HEARTS_DD_PRIM_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_BURN_PRIM_R - HEARTS_DD_PRIM_R,
|
||||
HEARTS_BURN_PRIM_G - HEARTS_DD_PRIM_G,
|
||||
HEARTS_BURN_PRIM_B - HEARTS_DD_PRIM_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_DROWN_PRIM_R - HEARTS_DD_PRIM_R,
|
||||
HEARTS_DROWN_PRIM_G - HEARTS_DD_PRIM_G,
|
||||
HEARTS_DROWN_PRIM_B - HEARTS_DD_PRIM_B,
|
||||
},
|
||||
};
|
||||
|
||||
static s16 sHeartsDDEnvFactors[3][3] = {
|
||||
{
|
||||
HEARTS_DD_ENV_R - HEARTS_DD_ENV_R,
|
||||
HEARTS_DD_ENV_G - HEARTS_DD_ENV_G,
|
||||
HEARTS_DD_ENV_B - HEARTS_DD_ENV_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_BURN_ENV_R - HEARTS_DD_ENV_R,
|
||||
HEARTS_BURN_ENV_G - HEARTS_DD_ENV_G,
|
||||
HEARTS_BURN_ENV_B - HEARTS_DD_ENV_B,
|
||||
},
|
||||
// unused
|
||||
{
|
||||
HEARTS_DROWN_ENV_R - HEARTS_DD_ENV_R,
|
||||
HEARTS_DROWN_ENV_G - HEARTS_DD_ENV_G,
|
||||
HEARTS_DROWN_ENV_B - HEARTS_DD_ENV_B,
|
||||
},
|
||||
};
|
||||
static Color_RGB8 sHeartsPrimColors[3];
|
||||
static Color_RGB8 sHeartsEnvColors[3];
|
||||
static Color_RGB8 sHeartsPrimFactors[3];
|
||||
static Color_RGB8 sHeartsEnvFactors[3];
|
||||
static Color_RGB8 sHeartsDDPrimColors[3];
|
||||
static Color_RGB8 sHeartsDDEnvColors[3];
|
||||
static Color_RGB8 sHeartsDDPrimFactors[3];
|
||||
static Color_RGB8 sHeartsDDEnvFactors[3];
|
||||
|
||||
// Current colors for the double defense hearts
|
||||
s16 sBeatingHeartsDDPrim[3];
|
||||
s16 sBeatingHeartsDDEnv[3];
|
||||
s16 sHeartsDDPrim[2][3];
|
||||
s16 sHeartsDDEnv[2][3];
|
||||
Color_RGB8 sBeatingHeartsDDPrim;
|
||||
Color_RGB8 sBeatingHeartsDDEnv;
|
||||
Color_RGB8 sHeartsDDPrim[2];
|
||||
Color_RGB8 sHeartsDDEnv[2];
|
||||
|
||||
void HealthMeter_Init(GlobalContext* globalCtx) {
|
||||
Color_RGB8 heartPrimColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorHeartFill);
|
||||
Color_RGB8 heartEnvColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorHeartOutline);
|
||||
Color_RGB8 heartDDPrimColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorHeartDDOutline);
|
||||
Color_RGB8 heartDDEnvColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorHeartDDFill);
|
||||
|
||||
Color_RGB8 heartBurnPrimColor = { HEARTS_BURN_PRIM_R, HEARTS_BURN_PRIM_G, HEARTS_BURN_PRIM_B };
|
||||
Color_RGB8 heartDrownPrimColor = { HEARTS_BURN_ENV_R, HEARTS_BURN_ENV_G, HEARTS_BURN_ENV_B };
|
||||
Color_RGB8 heartBurnEnvColor = { HEARTS_DROWN_PRIM_R, HEARTS_DROWN_PRIM_G, HEARTS_DROWN_PRIM_B };
|
||||
Color_RGB8 heartDrownEnvColor = { HEARTS_DROWN_ENV_R, HEARTS_DROWN_ENV_G, HEARTS_DROWN_ENV_B };
|
||||
|
||||
sHeartsPrimColors[0].r = heartPrimColor.r;
|
||||
sHeartsPrimColors[0].g = heartPrimColor.g;
|
||||
sHeartsPrimColors[0].b = heartPrimColor.b;
|
||||
sHeartsPrimColors[1].r = heartBurnPrimColor.r;
|
||||
sHeartsPrimColors[1].g = heartBurnPrimColor.g;
|
||||
sHeartsPrimColors[1].b = heartBurnPrimColor.b;
|
||||
sHeartsPrimColors[2].r = heartDrownPrimColor.r;
|
||||
sHeartsPrimColors[2].g = heartDrownPrimColor.g;
|
||||
sHeartsPrimColors[2].b = heartDrownPrimColor.b;
|
||||
|
||||
sHeartsEnvColors[0].r = heartEnvColor.r;
|
||||
sHeartsEnvColors[0].g = heartEnvColor.g;
|
||||
sHeartsEnvColors[0].b = heartEnvColor.b;
|
||||
sHeartsEnvColors[1].r = heartBurnEnvColor.r;
|
||||
sHeartsEnvColors[1].g = heartBurnEnvColor.g;
|
||||
sHeartsEnvColors[1].b = heartBurnEnvColor.b;
|
||||
sHeartsEnvColors[2].r = heartDrownEnvColor.r;
|
||||
sHeartsEnvColors[2].g = heartDrownEnvColor.g;
|
||||
sHeartsEnvColors[2].b = heartDrownEnvColor.b;
|
||||
|
||||
sHeartsPrimFactors[0].r = heartPrimColor.r - heartPrimColor.r;
|
||||
sHeartsPrimFactors[0].g = heartPrimColor.g - heartPrimColor.g;
|
||||
sHeartsPrimFactors[0].b = heartPrimColor.b - heartPrimColor.b;
|
||||
sHeartsPrimFactors[1].r = heartBurnPrimColor.r - heartPrimColor.r;
|
||||
sHeartsPrimFactors[1].g = heartBurnPrimColor.g - heartPrimColor.g;
|
||||
sHeartsPrimFactors[1].b = heartBurnPrimColor.b - heartPrimColor.b;
|
||||
sHeartsPrimFactors[2].r = heartDrownPrimColor.r - heartPrimColor.r;
|
||||
sHeartsPrimFactors[2].g = heartDrownPrimColor.g - heartPrimColor.g;
|
||||
sHeartsPrimFactors[2].b = heartDrownPrimColor.b - heartPrimColor.b;
|
||||
|
||||
sHeartsEnvFactors[0].r = heartEnvColor.r - heartEnvColor.r;
|
||||
sHeartsEnvFactors[0].g = heartEnvColor.g - heartEnvColor.g;
|
||||
sHeartsEnvFactors[0].b = heartEnvColor.b - heartEnvColor.b;
|
||||
sHeartsEnvFactors[1].r = heartBurnEnvColor.r - heartEnvColor.r;
|
||||
sHeartsEnvFactors[1].g = heartBurnEnvColor.g - heartEnvColor.g;
|
||||
sHeartsEnvFactors[1].b = heartBurnEnvColor.b - heartEnvColor.b;
|
||||
sHeartsEnvFactors[2].r = heartDrownEnvColor.r - heartEnvColor.r;
|
||||
sHeartsEnvFactors[2].g = heartDrownEnvColor.g - heartEnvColor.g;
|
||||
sHeartsEnvFactors[2].b = heartDrownEnvColor.b - heartEnvColor.b;
|
||||
|
||||
sHeartsDDPrimColors[0].r = heartDDPrimColor.r;
|
||||
sHeartsDDPrimColors[0].g = heartDDPrimColor.g;
|
||||
sHeartsDDPrimColors[0].b = heartDDPrimColor.b;
|
||||
sHeartsDDPrimColors[1].r = heartBurnPrimColor.r;
|
||||
sHeartsDDPrimColors[1].g = heartBurnPrimColor.g;
|
||||
sHeartsDDPrimColors[1].b = heartBurnPrimColor.b;
|
||||
sHeartsDDPrimColors[2].r = heartDrownPrimColor.r;
|
||||
sHeartsDDPrimColors[2].g = heartDrownPrimColor.g;
|
||||
sHeartsDDPrimColors[2].b = heartDrownPrimColor.b;
|
||||
|
||||
sHeartsDDEnvColors[0].r = heartDDEnvColor.r;
|
||||
sHeartsDDEnvColors[0].g = heartDDEnvColor.g;
|
||||
sHeartsDDEnvColors[0].b = heartDDEnvColor.b;
|
||||
sHeartsDDEnvColors[1].r = heartBurnEnvColor.r;
|
||||
sHeartsDDEnvColors[1].g = heartBurnEnvColor.g;
|
||||
sHeartsDDEnvColors[1].b = heartBurnEnvColor.b;
|
||||
sHeartsDDEnvColors[2].r = heartDrownEnvColor.r;
|
||||
sHeartsDDEnvColors[2].g = heartDrownEnvColor.g;
|
||||
sHeartsDDEnvColors[2].b = heartDrownEnvColor.b;
|
||||
|
||||
sHeartsDDPrimFactors[0].r = heartDDPrimColor.r - heartDDPrimColor.r;
|
||||
sHeartsDDPrimFactors[0].g = heartDDPrimColor.g - heartDDPrimColor.g;
|
||||
sHeartsDDPrimFactors[0].b = heartDDPrimColor.b - heartDDPrimColor.b;
|
||||
sHeartsDDPrimFactors[1].r = heartBurnPrimColor.r - heartDDPrimColor.r;
|
||||
sHeartsDDPrimFactors[1].g = heartBurnPrimColor.g - heartDDPrimColor.g;
|
||||
sHeartsDDPrimFactors[1].b = heartBurnPrimColor.b - heartDDPrimColor.b;
|
||||
sHeartsDDPrimFactors[2].r = heartDrownPrimColor.r - heartDDPrimColor.r;
|
||||
sHeartsDDPrimFactors[2].g = heartDrownPrimColor.g - heartDDPrimColor.g;
|
||||
sHeartsDDPrimFactors[2].b = heartDrownPrimColor.b - heartDDPrimColor.b;
|
||||
|
||||
sHeartsDDEnvFactors[0].r = heartDDEnvColor.r - heartDDEnvColor.r;
|
||||
sHeartsDDEnvFactors[0].g = heartDDEnvColor.g - heartDDEnvColor.g;
|
||||
sHeartsDDEnvFactors[0].b = heartDDEnvColor.b - heartDDEnvColor.b;
|
||||
sHeartsDDEnvFactors[1].r = heartBurnEnvColor.r - heartDDEnvColor.r;
|
||||
sHeartsDDEnvFactors[1].g = heartBurnEnvColor.g - heartDDEnvColor.g;
|
||||
sHeartsDDEnvFactors[1].b = heartBurnEnvColor.b - heartDDEnvColor.b;
|
||||
sHeartsDDEnvFactors[2].r = heartDrownEnvColor.r - heartDDEnvColor.r;
|
||||
sHeartsDDEnvFactors[2].g = heartDrownEnvColor.g - heartDDEnvColor.g;
|
||||
sHeartsDDEnvFactors[2].b = heartDrownEnvColor.b - heartDDEnvColor.b;
|
||||
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
|
||||
interfaceCtx->unk_228 = 0x140;
|
||||
|
@ -119,29 +115,29 @@ void HealthMeter_Init(GlobalContext* globalCtx) {
|
|||
interfaceCtx->unk_22A = interfaceCtx->unk_1FE = 0;
|
||||
interfaceCtx->unk_22C = interfaceCtx->unk_200 = 0;
|
||||
|
||||
interfaceCtx->heartsPrimR[0] = HEARTS_PRIM_R;
|
||||
interfaceCtx->heartsPrimG[0] = HEARTS_PRIM_G;
|
||||
interfaceCtx->heartsPrimB[0] = HEARTS_PRIM_B;
|
||||
interfaceCtx->heartsPrimR[0] = heartPrimColor.r;
|
||||
interfaceCtx->heartsPrimG[0] = heartPrimColor.g;
|
||||
interfaceCtx->heartsPrimB[0] = heartPrimColor.b;
|
||||
|
||||
interfaceCtx->heartsEnvR[0] = HEARTS_ENV_R;
|
||||
interfaceCtx->heartsEnvG[0] = HEARTS_ENV_G;
|
||||
interfaceCtx->heartsEnvB[0] = HEARTS_ENV_B;
|
||||
interfaceCtx->heartsEnvR[0] = heartEnvColor.r;
|
||||
interfaceCtx->heartsEnvG[0] = heartEnvColor.g;
|
||||
interfaceCtx->heartsEnvB[0] = heartEnvColor.b;
|
||||
|
||||
interfaceCtx->heartsPrimR[1] = HEARTS_PRIM_R;
|
||||
interfaceCtx->heartsPrimG[1] = HEARTS_PRIM_G;
|
||||
interfaceCtx->heartsPrimB[1] = HEARTS_PRIM_B;
|
||||
interfaceCtx->heartsPrimR[1] = heartPrimColor.r;
|
||||
interfaceCtx->heartsPrimG[1] = heartPrimColor.g;
|
||||
interfaceCtx->heartsPrimB[1] = heartPrimColor.b;
|
||||
|
||||
interfaceCtx->heartsEnvR[1] = HEARTS_ENV_R;
|
||||
interfaceCtx->heartsEnvG[1] = HEARTS_ENV_G;
|
||||
interfaceCtx->heartsEnvB[1] = HEARTS_ENV_B;
|
||||
interfaceCtx->heartsEnvR[1] = heartEnvColor.r;
|
||||
interfaceCtx->heartsEnvG[1] = heartEnvColor.g;
|
||||
interfaceCtx->heartsEnvB[1] = heartEnvColor.b;
|
||||
|
||||
sHeartsDDPrim[0][0] = sHeartsDDPrim[1][0] = HEARTS_DD_PRIM_R;
|
||||
sHeartsDDPrim[0][1] = sHeartsDDPrim[1][1] = HEARTS_DD_PRIM_G;
|
||||
sHeartsDDPrim[0][2] = sHeartsDDPrim[1][2] = HEARTS_DD_PRIM_B;
|
||||
sHeartsDDPrim[0].r = sHeartsDDPrim[1].r = heartDDPrimColor.r;
|
||||
sHeartsDDPrim[0].g = sHeartsDDPrim[1].g = heartDDPrimColor.g;
|
||||
sHeartsDDPrim[0].b = sHeartsDDPrim[1].b = heartDDPrimColor.b;
|
||||
|
||||
sHeartsDDEnv[0][0] = sHeartsDDEnv[1][0] = HEARTS_DD_ENV_R;
|
||||
sHeartsDDEnv[0][1] = sHeartsDDEnv[1][1] = HEARTS_DD_ENV_G;
|
||||
sHeartsDDEnv[0][2] = sHeartsDDEnv[1][2] = HEARTS_DD_ENV_B;
|
||||
sHeartsDDEnv[0].r = sHeartsDDEnv[1].r = heartDDEnvColor.r;
|
||||
sHeartsDDEnv[0].g = sHeartsDDEnv[1].g = heartDDEnvColor.g;
|
||||
sHeartsDDEnv[0].b = sHeartsDDEnv[1].b = heartDDEnvColor.b;
|
||||
}
|
||||
|
||||
void HealthMeter_Update(GlobalContext* globalCtx) {
|
||||
|
@ -172,72 +168,72 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
|
|||
|
||||
ddFactor = factor;
|
||||
|
||||
interfaceCtx->heartsPrimR[0] = HEARTS_PRIM_R;
|
||||
interfaceCtx->heartsPrimG[0] = HEARTS_PRIM_G;
|
||||
interfaceCtx->heartsPrimB[0] = HEARTS_PRIM_B;
|
||||
interfaceCtx->heartsPrimR[0] = sHeartsPrimColors[0].r;
|
||||
interfaceCtx->heartsPrimG[0] = sHeartsPrimColors[0].g;
|
||||
interfaceCtx->heartsPrimB[0] = sHeartsPrimColors[0].b;
|
||||
|
||||
interfaceCtx->heartsEnvR[0] = HEARTS_ENV_R;
|
||||
interfaceCtx->heartsEnvG[0] = HEARTS_ENV_G;
|
||||
interfaceCtx->heartsEnvB[0] = HEARTS_ENV_B;
|
||||
interfaceCtx->heartsEnvR[0] = sHeartsEnvColors[0].r;
|
||||
interfaceCtx->heartsEnvG[0] = sHeartsEnvColors[0].g;
|
||||
interfaceCtx->heartsEnvB[0] = sHeartsEnvColors[0].b;
|
||||
|
||||
interfaceCtx->heartsPrimR[1] = sHeartsPrimColors[type][0];
|
||||
interfaceCtx->heartsPrimG[1] = sHeartsPrimColors[type][1];
|
||||
interfaceCtx->heartsPrimB[1] = sHeartsPrimColors[type][2];
|
||||
interfaceCtx->heartsPrimR[1] = sHeartsPrimColors[type].r;
|
||||
interfaceCtx->heartsPrimG[1] = sHeartsPrimColors[type].g;
|
||||
interfaceCtx->heartsPrimB[1] = sHeartsPrimColors[type].b;
|
||||
|
||||
interfaceCtx->heartsEnvR[1] = sHeartsEnvColors[type][0];
|
||||
interfaceCtx->heartsEnvG[1] = sHeartsEnvColors[type][1];
|
||||
interfaceCtx->heartsEnvB[1] = sHeartsEnvColors[type][2];
|
||||
interfaceCtx->heartsEnvR[1] = sHeartsEnvColors[type].r;
|
||||
interfaceCtx->heartsEnvG[1] = sHeartsEnvColors[type].g;
|
||||
interfaceCtx->heartsEnvB[1] = sHeartsEnvColors[type].b;
|
||||
|
||||
rFactor = sHeartsPrimFactors[0][0] * factor;
|
||||
gFactor = sHeartsPrimFactors[0][1] * factor;
|
||||
bFactor = sHeartsPrimFactors[0][2] * factor;
|
||||
rFactor = sHeartsPrimFactors[0].r * factor;
|
||||
gFactor = sHeartsPrimFactors[0].g * factor;
|
||||
bFactor = sHeartsPrimFactors[0].b * factor;
|
||||
|
||||
interfaceCtx->beatingHeartPrim[0] = (u8)(rFactor + HEARTS_PRIM_R) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[1] = (u8)(gFactor + HEARTS_PRIM_G) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[2] = (u8)(bFactor + HEARTS_PRIM_B) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[0] = (u8)(rFactor + sHeartsPrimColors[0].r) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[1] = (u8)(gFactor + sHeartsPrimColors[0].g) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[2] = (u8)(bFactor + sHeartsPrimColors[0].b) & 0xFF;
|
||||
|
||||
rFactor = sHeartsEnvFactors[0][0] * factor;
|
||||
gFactor = sHeartsEnvFactors[0][1] * factor;
|
||||
bFactor = sHeartsEnvFactors[0][2] * factor;
|
||||
rFactor = sHeartsEnvFactors[0].r * factor;
|
||||
gFactor = sHeartsEnvFactors[0].g * factor;
|
||||
bFactor = sHeartsEnvFactors[0].b * factor;
|
||||
|
||||
if (1) {}
|
||||
ddType = type;
|
||||
|
||||
interfaceCtx->beatingHeartEnv[0] = (u8)(rFactor + HEARTS_ENV_R) & 0xFF;
|
||||
interfaceCtx->beatingHeartEnv[1] = (u8)(gFactor + HEARTS_ENV_G) & 0xFF;
|
||||
interfaceCtx->beatingHeartEnv[2] = (u8)(bFactor + HEARTS_ENV_B) & 0xFF;
|
||||
interfaceCtx->beatingHeartEnv[0] = (u8)(rFactor + sHeartsEnvColors[0].r) & 0xFF;
|
||||
interfaceCtx->beatingHeartEnv[1] = (u8)(gFactor + sHeartsEnvColors[0].g) & 0xFF;
|
||||
interfaceCtx->beatingHeartEnv[2] = (u8)(bFactor + sHeartsEnvColors[0].b) & 0xFF;
|
||||
|
||||
sHeartsDDPrim[0][0] = HEARTS_DD_PRIM_R;
|
||||
sHeartsDDPrim[0][1] = HEARTS_DD_PRIM_G;
|
||||
sHeartsDDPrim[0][2] = HEARTS_DD_PRIM_B;
|
||||
sHeartsDDPrim[0].r = sHeartsDDPrimColors[0].r;
|
||||
sHeartsDDPrim[0].g = sHeartsDDPrimColors[0].g;
|
||||
sHeartsDDPrim[0].b = sHeartsDDPrimColors[0].b;
|
||||
|
||||
sHeartsDDEnv[0][0] = HEARTS_DD_ENV_R;
|
||||
sHeartsDDEnv[0][1] = HEARTS_DD_ENV_G;
|
||||
sHeartsDDEnv[0][2] = HEARTS_DD_ENV_B;
|
||||
sHeartsDDEnv[0].r = sHeartsDDEnvColors[0].r;
|
||||
sHeartsDDEnv[0].g = sHeartsDDEnvColors[0].g;
|
||||
sHeartsDDEnv[0].b = sHeartsDDEnvColors[0].b;
|
||||
|
||||
sHeartsDDPrim[1][0] = sHeartsDDPrimColors[ddType][0];
|
||||
sHeartsDDPrim[1][1] = sHeartsDDPrimColors[ddType][1];
|
||||
sHeartsDDPrim[1][2] = sHeartsDDPrimColors[ddType][2];
|
||||
sHeartsDDPrim[1].r = sHeartsDDPrimColors[ddType].r;
|
||||
sHeartsDDPrim[1].g = sHeartsDDPrimColors[ddType].g;
|
||||
sHeartsDDPrim[1].b = sHeartsDDPrimColors[ddType].b;
|
||||
|
||||
sHeartsDDEnv[1][0] = sHeartsDDEnvColors[ddType][0];
|
||||
sHeartsDDEnv[1][1] = sHeartsDDEnvColors[ddType][1];
|
||||
sHeartsDDEnv[1][2] = sHeartsDDEnvColors[ddType][2];
|
||||
sHeartsDDEnv[1].r = sHeartsDDEnvColors[ddType].r;
|
||||
sHeartsDDEnv[1].g = sHeartsDDEnvColors[ddType].g;
|
||||
sHeartsDDEnv[1].b = sHeartsDDEnvColors[ddType].b;
|
||||
|
||||
rFactor = sHeartsDDPrimFactors[ddType][0] * ddFactor;
|
||||
gFactor = sHeartsDDPrimFactors[ddType][1] * ddFactor;
|
||||
bFactor = sHeartsDDPrimFactors[ddType][2] * ddFactor;
|
||||
rFactor = sHeartsDDPrimFactors[ddType].r * ddFactor;
|
||||
gFactor = sHeartsDDPrimFactors[ddType].g * ddFactor;
|
||||
bFactor = sHeartsDDPrimFactors[ddType].b * ddFactor;
|
||||
|
||||
sBeatingHeartsDDPrim[0] = (u8)(rFactor + HEARTS_DD_PRIM_R) & 0xFF;
|
||||
sBeatingHeartsDDPrim[1] = (u8)(gFactor + HEARTS_DD_PRIM_G) & 0xFF;
|
||||
sBeatingHeartsDDPrim[2] = (u8)(bFactor + HEARTS_DD_PRIM_B) & 0xFF;
|
||||
sBeatingHeartsDDPrim.r = (u8)(rFactor + sHeartsDDPrimColors[0].r) & 0xFF;
|
||||
sBeatingHeartsDDPrim.g = (u8)(gFactor + sHeartsDDPrimColors[0].g) & 0xFF;
|
||||
sBeatingHeartsDDPrim.b = (u8)(bFactor + sHeartsDDPrimColors[0].b) & 0xFF;
|
||||
|
||||
rFactor = sHeartsDDEnvFactors[ddType][0] * ddFactor;
|
||||
gFactor = sHeartsDDEnvFactors[ddType][1] * ddFactor;
|
||||
bFactor = sHeartsDDEnvFactors[ddType][2] * ddFactor;
|
||||
rFactor = sHeartsDDEnvFactors[ddType].r * ddFactor;
|
||||
gFactor = sHeartsDDEnvFactors[ddType].g * ddFactor;
|
||||
bFactor = sHeartsDDEnvFactors[ddType].b * ddFactor;
|
||||
|
||||
sBeatingHeartsDDEnv[0] = (u8)(rFactor + HEARTS_DD_ENV_R) & 0xFF;
|
||||
sBeatingHeartsDDEnv[1] = (u8)(gFactor + HEARTS_DD_ENV_G) & 0xFF;
|
||||
sBeatingHeartsDDEnv[2] = (u8)(bFactor + HEARTS_DD_ENV_B) & 0xFF;
|
||||
sBeatingHeartsDDEnv.r = (u8)(rFactor + sHeartsDDEnvColors[0].r) & 0xFF;
|
||||
sBeatingHeartsDDEnv.g = (u8)(gFactor + sHeartsDDEnvColors[0].g) & 0xFF;
|
||||
sBeatingHeartsDDEnv.b = (u8)(bFactor + sHeartsDDEnvColors[0].b) & 0xFF;
|
||||
}
|
||||
|
||||
s32 func_80078E18(GlobalContext* globalCtx) {
|
||||
|
@ -378,34 +374,34 @@ void HealthMeter_Draw(GlobalContext* globalCtx) {
|
|||
if (curColorSet != 4) {
|
||||
curColorSet = 4;
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sHeartsDDPrim[0][0], sHeartsDDPrim[0][1], sHeartsDDPrim[0][2],
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sHeartsDDPrim[0].r, sHeartsDDPrim[0].g, sHeartsDDPrim[0].b,
|
||||
interfaceCtx->healthAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[0][0], sHeartsDDEnv[0][1], sHeartsDDEnv[0][2], 255);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[0].r, sHeartsDDEnv[0].g, sHeartsDDEnv[0].b, 255);
|
||||
}
|
||||
} else if (i == fullHeartCount) {
|
||||
if (curColorSet != 5) {
|
||||
curColorSet = 5;
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sBeatingHeartsDDPrim[0], sBeatingHeartsDDPrim[1],
|
||||
sBeatingHeartsDDPrim[2], interfaceCtx->healthAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sBeatingHeartsDDEnv[0], sBeatingHeartsDDEnv[1],
|
||||
sBeatingHeartsDDEnv[2], 255);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sBeatingHeartsDDPrim.r, sBeatingHeartsDDPrim.g,
|
||||
sBeatingHeartsDDPrim.b, interfaceCtx->healthAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sBeatingHeartsDDEnv.r, sBeatingHeartsDDEnv.g,
|
||||
sBeatingHeartsDDEnv.b, 255);
|
||||
}
|
||||
} else if (i > fullHeartCount) {
|
||||
if (curColorSet != 6) {
|
||||
curColorSet = 6;
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sHeartsDDPrim[0][0], sHeartsDDPrim[0][1], sHeartsDDPrim[0][2],
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sHeartsDDPrim[0].r, sHeartsDDPrim[0].g, sHeartsDDPrim[0].b,
|
||||
interfaceCtx->healthAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[0][0], sHeartsDDEnv[0][1], sHeartsDDEnv[0][2], 255);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[0].r, sHeartsDDEnv[0].g, sHeartsDDEnv[0].b, 255);
|
||||
}
|
||||
} else {
|
||||
if (curColorSet != 7) {
|
||||
curColorSet = 7;
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sHeartsDDPrim[1][0], sHeartsDDPrim[1][1], sHeartsDDPrim[1][2],
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sHeartsDDPrim[1].r, sHeartsDDPrim[1].g, sHeartsDDPrim[1].b,
|
||||
interfaceCtx->healthAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[1][0], sHeartsDDEnv[1][1], sHeartsDDEnv[1][2], 255);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, sHeartsDDEnv[1].r, sHeartsDDEnv[1].g, sHeartsDDEnv[1].b, 255);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,20 @@
|
|||
#include "textures/message_static/message_static.h"
|
||||
#include "textures/message_texture_static/message_texture_static.h"
|
||||
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
// Appears frequently in z_message flashing animations.
|
||||
// "temp" variable is included because it is generally reused between instances of this block.
|
||||
// This is mathematically equivalent but does not match.Macro was introduced because it
|
||||
// originally represented a 20 line block and was going to be used an additional 3 times.
|
||||
#define advanceFlashAnimation(currentColor, targetColor, flashIndex, flashTimer) \
|
||||
currentColor.r += (currentColor.r >= targetColor[flashIndex].r ? -1 : 1) * \
|
||||
ABS(currentColor.r - targetColor[flashIndex].r) / flashTimer; \
|
||||
currentColor.g += (currentColor.g >= targetColor[flashIndex].g ? -1 : 1) * \
|
||||
ABS(currentColor.g - targetColor[flashIndex].g) / flashTimer; \
|
||||
currentColor.b += (currentColor.b >= targetColor[flashIndex].b ? -1 : 1) * \
|
||||
ABS(currentColor.b - targetColor[flashIndex].b) / flashTimer;
|
||||
|
||||
s16 sTextFade = false; // original name: key_off_flag ?
|
||||
|
||||
u8 D_8014B2F4 = 0;
|
||||
|
@ -105,18 +119,18 @@ s16 gOcarinaSongItemMap[] = {
|
|||
|
||||
s32 sCharTexSize;
|
||||
s32 sCharTexScale;
|
||||
s16 sOcarinaNoteAPrimR;
|
||||
s16 sOcarinaNoteAPrimB;
|
||||
s16 sOcarinaNoteAPrimG;
|
||||
s16 sOcarinaNoteAEnvR;
|
||||
s16 sOcarinaNoteAEnvB;
|
||||
s16 sOcarinaNoteAEnvG;
|
||||
s16 sOcarinaNoteCPrimR;
|
||||
s16 sOcarinaNoteCPrimB;
|
||||
s16 sOcarinaNoteCPrimG;
|
||||
s16 sOcarinaNoteCEnvR;
|
||||
s16 sOcarinaNoteCEnvB;
|
||||
s16 sOcarinaNoteCEnvG;
|
||||
Color_RGB8 sOcarinaNoteAPrim;
|
||||
Color_RGB8 sOcarinaNoteAEnv;
|
||||
Color_RGB8 sOcarinaNoteCUpPrim;
|
||||
Color_RGB8 sOcarinaNoteCUpEnv;
|
||||
Color_RGB8 sOcarinaNoteCRightPrim;
|
||||
Color_RGB8 sOcarinaNoteCRightEnv;
|
||||
Color_RGB8 sOcarinaNoteCDownPrim;
|
||||
Color_RGB8 sOcarinaNoteCDownEnv;
|
||||
Color_RGB8 sOcarinaNoteCLeftPrim;
|
||||
Color_RGB8 sOcarinaNoteCLeftEnv;
|
||||
|
||||
|
||||
|
||||
void Message_ResetOcarinaNoteState(void) {
|
||||
R_OCARINA_NOTES_YPOS(0) = 189;
|
||||
|
@ -128,18 +142,17 @@ void Message_ResetOcarinaNoteState(void) {
|
|||
sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] =
|
||||
sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] =
|
||||
sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0;
|
||||
sOcarinaNoteAPrimR = 80;
|
||||
sOcarinaNoteAPrimG = 255;
|
||||
sOcarinaNoteAPrimB = 150;
|
||||
sOcarinaNoteAEnvR = 10;
|
||||
sOcarinaNoteAEnvG = 10;
|
||||
sOcarinaNoteAEnvB = 10;
|
||||
sOcarinaNoteCPrimR = 255;
|
||||
sOcarinaNoteCPrimG = 255;
|
||||
sOcarinaNoteCPrimB = 50;
|
||||
sOcarinaNoteCEnvR = 10;
|
||||
sOcarinaNoteCEnvG = 10;
|
||||
sOcarinaNoteCEnvB = 10;
|
||||
Color_RGB8 envColor = { 10, 10, 10 };
|
||||
sOcarinaNoteAPrim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteA);
|
||||
sOcarinaNoteAEnv = envColor;
|
||||
sOcarinaNoteCUpPrim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCUp);
|
||||
sOcarinaNoteCUpEnv = envColor;
|
||||
sOcarinaNoteCRightPrim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCRight);
|
||||
sOcarinaNoteCRightEnv = envColor;
|
||||
sOcarinaNoteCDownPrim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCDown);
|
||||
sOcarinaNoteCDownEnv = envColor;
|
||||
sOcarinaNoteCLeftPrim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCLeft);
|
||||
sOcarinaNoteCLeftEnv = envColor;
|
||||
}
|
||||
|
||||
void Message_UpdateOcarinaGame(GlobalContext* globalCtx) {
|
||||
|
@ -309,7 +322,6 @@ void Message_FindMessage(GlobalContext* globalCtx, u16 textId) {
|
|||
Font* font;
|
||||
const char* seg;
|
||||
|
||||
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
seg = messageTableEntry->segment;
|
||||
|
||||
|
@ -332,7 +344,8 @@ void Message_FindMessage(GlobalContext* globalCtx, u16 textId) {
|
|||
messageTableEntry++;
|
||||
}
|
||||
} else {
|
||||
//languageSegmentTable = (gSaveContext.language == LANGUAGE_GER) ? sGerMessageEntryTablePtr : sFraMessageEntryTablePtr; // OTRTODO
|
||||
// languageSegmentTable = (gSaveContext.language == LANGUAGE_GER) ? sGerMessageEntryTablePtr :
|
||||
// sFraMessageEntryTablePtr; // OTRTODO
|
||||
seg = messageTableEntry->segment;
|
||||
|
||||
while (messageTableEntry->textId != 0xFFFF) {
|
||||
|
@ -366,7 +379,8 @@ void Message_FindMessage(GlobalContext* globalCtx, u16 textId) {
|
|||
messageTableEntry++;
|
||||
nextSeg = messageTableEntry->segment;
|
||||
} else {
|
||||
//languageSegmentTable = (gSaveContext.language == LANGUAGE_GER) ? sGerMessageEntryTablePtr : sFraMessageEntryTablePtr; // OTRTODO
|
||||
// languageSegmentTable = (gSaveContext.language == LANGUAGE_GER) ? sGerMessageEntryTablePtr :
|
||||
// sFraMessageEntryTablePtr; // OTRTODO
|
||||
foundSeg = *languageSegmentTable;
|
||||
font->charTexBuf[0] = messageTableEntry->typePos;
|
||||
languageSegmentTable++;
|
||||
|
@ -404,176 +418,94 @@ void Message_FindCreditsMessage(GlobalContext* globalCtx, u16 textId) {
|
|||
}
|
||||
|
||||
void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
||||
Color_RGB8 color;
|
||||
bool isWooden = msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN;
|
||||
bool isNoShadow = msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW;
|
||||
switch (colorParameter) {
|
||||
case MSGCOL_RED:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 255;
|
||||
msgCtx->textColorG = 120;
|
||||
msgCtx->textColorB = 0;
|
||||
} else {
|
||||
msgCtx->textColorR = 255;
|
||||
msgCtx->textColorG = 60;
|
||||
msgCtx->textColorB = 60;
|
||||
}
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(isWooden ? colorTextWoodenRed : colorTextDefaultRed);
|
||||
break;
|
||||
case MSGCOL_ADJUSTABLE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = R_TEXT_ADJUST_COLOR_1_R;
|
||||
msgCtx->textColorG = R_TEXT_ADJUST_COLOR_1_G;
|
||||
msgCtx->textColorB = R_TEXT_ADJUST_COLOR_1_B;
|
||||
if (isWooden) {
|
||||
color.r = R_TEXT_ADJUST_COLOR_1_R;
|
||||
color.g = R_TEXT_ADJUST_COLOR_1_G;
|
||||
color.b = R_TEXT_ADJUST_COLOR_1_B;
|
||||
} else {
|
||||
msgCtx->textColorR = R_TEXT_ADJUST_COLOR_2_R;
|
||||
msgCtx->textColorG = R_TEXT_ADJUST_COLOR_2_G;
|
||||
msgCtx->textColorB = R_TEXT_ADJUST_COLOR_2_B;
|
||||
color.r = R_TEXT_ADJUST_COLOR_2_R;
|
||||
color.g = R_TEXT_ADJUST_COLOR_2_G;
|
||||
color.b = R_TEXT_ADJUST_COLOR_2_B;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_BLUE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 80;
|
||||
msgCtx->textColorG = 110;
|
||||
msgCtx->textColorB = 255;
|
||||
} else {
|
||||
msgCtx->textColorR = 80;
|
||||
msgCtx->textColorG = 90;
|
||||
msgCtx->textColorB = 255;
|
||||
}
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(isWooden ? colorTextWoodenBlue : colorTextDefaultBlue);
|
||||
break;
|
||||
case MSGCOL_LIGHTBLUE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 90;
|
||||
msgCtx->textColorG = 180;
|
||||
msgCtx->textColorB = 255;
|
||||
} else if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) {
|
||||
msgCtx->textColorR = 80;
|
||||
msgCtx->textColorG = 150;
|
||||
msgCtx->textColorB = 180;
|
||||
if (isWooden) {
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTextWoodenLightBlue);
|
||||
} else if (isNoShadow) {
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTextNoShadowLightBlue);
|
||||
} else {
|
||||
msgCtx->textColorR = 100;
|
||||
msgCtx->textColorG = 180;
|
||||
msgCtx->textColorB = 255;
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTextDefaultLightBlue);
|
||||
}
|
||||
break;
|
||||
case MSGCOL_PURPLE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 210;
|
||||
msgCtx->textColorG = 100;
|
||||
msgCtx->textColorB = 255;
|
||||
} else {
|
||||
msgCtx->textColorR = 255;
|
||||
msgCtx->textColorG = 150;
|
||||
msgCtx->textColorB = 180;
|
||||
}
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(isWooden ? colorTextWoodenPurple : colorTextDefaultPurple);
|
||||
break;
|
||||
case MSGCOL_YELLOW:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 255;
|
||||
msgCtx->textColorG = 255;
|
||||
msgCtx->textColorB = 30;
|
||||
} else {
|
||||
msgCtx->textColorR = 225;
|
||||
msgCtx->textColorG = 255;
|
||||
msgCtx->textColorB = 50;
|
||||
}
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(isWooden ? colorTextWoodenYellow : colorTextDefaultYellow);
|
||||
break;
|
||||
case MSGCOL_BLACK:
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTextDefaultBlack);
|
||||
break;
|
||||
case MSGCOL_DEFAULT:
|
||||
default:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) {
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
|
||||
} else {
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255;
|
||||
}
|
||||
color =
|
||||
*(Color_RGB8*)ResourceMgr_LoadBlobByName(isNoShadow ? colorTextDefaultBlack : colorTextDefaultWhite);
|
||||
break;
|
||||
}
|
||||
msgCtx->textColorR = color.r;
|
||||
msgCtx->textColorG = color.g;
|
||||
msgCtx->textColorB = color.b;
|
||||
}
|
||||
|
||||
void Message_DrawTextboxIcon(GlobalContext* globalCtx, Gfx** p, s16 x, s16 y) {
|
||||
static s16 sIconPrimColors[][3] = {
|
||||
{ 0, 200, 80 },
|
||||
{ 50, 255, 130 },
|
||||
Color_RGB8 sIconPrimColors[2] = {
|
||||
*(Color_RGB8*) ResourceMgr_LoadBlobByName(colorTextStopIconDim),
|
||||
*(Color_RGB8*) ResourceMgr_LoadBlobByName(colorTextStopIconGlow)
|
||||
};
|
||||
static s16 sIconEnvColors[][3] = {
|
||||
Color_RGB8 sIconEnvColors[2] = {
|
||||
{ 0, 0, 0 },
|
||||
{ 0, 255, 130 },
|
||||
sIconPrimColors[1]
|
||||
};
|
||||
static s16 sIconPrimR = 0;
|
||||
static s16 sIconPrimG = 200;
|
||||
static s16 sIconPrimB = 80;
|
||||
|
||||
static s16 sIconFlashTimer = 12;
|
||||
static s16 sIconFlashColorIdx = 0;
|
||||
static s16 sIconEnvR = 0;
|
||||
static s16 sIconEnvG = 0;
|
||||
static s16 sIconEnvB = 0;
|
||||
static Color_RGB8 sIconPrim;
|
||||
static Color_RGB8 sIconEnv;
|
||||
if (sIconEnv.r == NULL || sIconEnv.g == NULL || sIconEnv.b == NULL) {
|
||||
sIconEnv = sIconEnvColors[0];
|
||||
}
|
||||
if (sIconPrim.r == NULL || sIconPrim.g == NULL || sIconPrim.b == NULL) {
|
||||
sIconPrim = sIconPrimColors[0];
|
||||
}
|
||||
MessageContext* msgCtx = &globalCtx->msgCtx;
|
||||
Font* font = &msgCtx->font;
|
||||
Gfx* gfx = *p;
|
||||
s16 primR;
|
||||
s16 primG;
|
||||
s16 primB;
|
||||
s16 envR;
|
||||
s16 envG;
|
||||
s16 envB;
|
||||
u8* iconTexture = font->iconBuf;
|
||||
|
||||
if (sTextIsCredits) {
|
||||
return;
|
||||
}
|
||||
|
||||
primR = (ABS(sIconPrimR - sIconPrimColors[sIconFlashColorIdx][0])) / sIconFlashTimer;
|
||||
primG = (ABS(sIconPrimG - sIconPrimColors[sIconFlashColorIdx][1])) / sIconFlashTimer;
|
||||
primB = (ABS(sIconPrimB - sIconPrimColors[sIconFlashColorIdx][2])) / sIconFlashTimer;
|
||||
|
||||
if (sIconPrimR >= sIconPrimColors[sIconFlashColorIdx][0]) {
|
||||
sIconPrimR -= primR;
|
||||
} else {
|
||||
sIconPrimR += primR;
|
||||
}
|
||||
|
||||
if (sIconPrimG >= sIconPrimColors[sIconFlashColorIdx][1]) {
|
||||
sIconPrimG -= primG;
|
||||
} else {
|
||||
sIconPrimG += primG;
|
||||
}
|
||||
|
||||
if (sIconPrimB >= sIconPrimColors[sIconFlashColorIdx][2]) {
|
||||
sIconPrimB -= primB;
|
||||
} else {
|
||||
sIconPrimB += primB;
|
||||
}
|
||||
|
||||
envR = (ABS(sIconEnvR - sIconEnvColors[sIconFlashColorIdx][0])) / sIconFlashTimer;
|
||||
envG = (ABS(sIconEnvG - sIconEnvColors[sIconFlashColorIdx][1])) / sIconFlashTimer;
|
||||
envB = (ABS(sIconEnvB - sIconEnvColors[sIconFlashColorIdx][2])) / sIconFlashTimer;
|
||||
|
||||
if (sIconEnvR >= sIconEnvColors[sIconFlashColorIdx][0]) {
|
||||
sIconEnvR -= envR;
|
||||
} else {
|
||||
sIconEnvR += envR;
|
||||
}
|
||||
|
||||
if (sIconEnvG >= sIconEnvColors[sIconFlashColorIdx][1]) {
|
||||
sIconEnvG -= envG;
|
||||
} else {
|
||||
sIconEnvG += envG;
|
||||
}
|
||||
|
||||
if (sIconEnvB >= sIconEnvColors[sIconFlashColorIdx][2]) {
|
||||
sIconEnvB -= envB;
|
||||
} else {
|
||||
sIconEnvB += envB;
|
||||
}
|
||||
advanceFlashAnimation(sIconPrim, sIconPrimColors, sIconFlashColorIdx, sIconFlashTimer);
|
||||
advanceFlashAnimation(sIconEnv, sIconEnvColors, sIconFlashColorIdx, sIconFlashTimer);
|
||||
|
||||
sIconFlashTimer--;
|
||||
|
||||
if (sIconFlashTimer == 0) {
|
||||
sIconPrimR = sIconPrimColors[sIconFlashColorIdx][0];
|
||||
sIconPrimG = sIconPrimColors[sIconFlashColorIdx][1];
|
||||
sIconPrimB = sIconPrimColors[sIconFlashColorIdx][2];
|
||||
sIconEnvR = sIconEnvColors[sIconFlashColorIdx][0];
|
||||
sIconEnvG = sIconEnvColors[sIconFlashColorIdx][1];
|
||||
sIconEnvB = sIconEnvColors[sIconFlashColorIdx][2];
|
||||
sIconPrim = sIconPrimColors[sIconFlashColorIdx];
|
||||
sIconEnv = sIconEnvColors[sIconFlashColorIdx];
|
||||
sIconFlashTimer = 12;
|
||||
sIconFlashColorIdx ^= 1;
|
||||
}
|
||||
|
@ -583,8 +515,8 @@ void Message_DrawTextboxIcon(GlobalContext* globalCtx, Gfx** p, s16 x, s16 y) {
|
|||
gDPSetCombineLERP(gfx++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE,
|
||||
ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
|
||||
gDPSetPrimColor(gfx++, 0, 0, sIconPrimR, sIconPrimG, sIconPrimB, 255);
|
||||
gDPSetEnvColor(gfx++, sIconEnvR, sIconEnvG, sIconEnvB, 255);
|
||||
gDPSetPrimColor(gfx++, 0, 0, sIconPrim.r, sIconPrim.g, sIconPrim.b, 255);
|
||||
gDPSetEnvColor(gfx++, sIconEnv.r, sIconEnv.g, sIconEnv.b, 255);
|
||||
|
||||
gDPLoadTextureBlock_4b(gfx++, iconTexture, G_IM_FMT_I, FONT_CHAR_TEX_WIDTH, FONT_CHAR_TEX_HEIGHT, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
|
@ -763,13 +695,13 @@ u16 Message_DrawItemIcon(GlobalContext* globalCtx, u16 itemId, Gfx** p, u16 i) {
|
|||
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, msgCtx->textColorAlpha);
|
||||
|
||||
if (itemId >= ITEM_MEDALLION_FOREST) {
|
||||
gDPLoadTextureBlock(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b,
|
||||
24, 24, 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);
|
||||
gDPLoadTextureBlock(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA,
|
||||
G_IM_SIZ_32b, 24, 24, 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);
|
||||
} else {
|
||||
gDPLoadTextureBlock(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA, G_IM_SIZ_32b,
|
||||
32, 32, 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);
|
||||
gDPLoadTextureBlock(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_RGBA,
|
||||
G_IM_SIZ_32b, 32, 32, 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);
|
||||
}
|
||||
gSPTextureRectangle(gfx++, (msgCtx->textPosX + R_TEXTBOX_ICON_XPOS) << 2, R_TEXTBOX_ICON_YPOS << 2,
|
||||
(msgCtx->textPosX + R_TEXTBOX_ICON_XPOS + R_TEXTBOX_ICON_SIZE) << 2,
|
||||
|
@ -874,11 +806,11 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
|||
msgCtx->textPosY = YREG(1);
|
||||
}
|
||||
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) {
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
|
||||
} else {
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255;
|
||||
}
|
||||
Color_RGB8 textColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(
|
||||
msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW ? colorTextDefaultBlack : colorTextDefaultWhite);
|
||||
msgCtx->textColorR = textColor.r;
|
||||
msgCtx->textColorG = textColor.g;
|
||||
msgCtx->textColorB = textColor.b;
|
||||
|
||||
msgCtx->unk_E3D0 = 0;
|
||||
charTexIdx = 0;
|
||||
|
@ -1011,8 +943,8 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
|||
sTextboxBackgroundBackPrimColors[msgCtx->textboxBackgroundBackColorIdx][2],
|
||||
msgCtx->textColorAlpha);
|
||||
|
||||
gDPLoadTextureBlock_4b(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_I, 96, 48,
|
||||
0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
|
||||
gDPLoadTextureBlock_4b(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, G_IM_FMT_I,
|
||||
96, 48, 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);
|
||||
gSPTextureRectangle(
|
||||
gfx++, (msgCtx->textPosX + 1) << 2,
|
||||
|
@ -1021,9 +953,9 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
|||
(R_TEXTBOX_BG_YPOS + sTextboxBackgroundYOffsets[msgCtx->textboxBackgroundYOffsetIdx] + 48) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||
|
||||
gDPLoadTextureBlock_4b(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900, G_IM_FMT_I,
|
||||
96, 48, 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);
|
||||
gDPLoadTextureBlock_4b(gfx++, (uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900,
|
||||
G_IM_FMT_I, 96, 48, 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);
|
||||
gSPTextureRectangle(
|
||||
gfx++, (msgCtx->textPosX + 96 + 1) << 2,
|
||||
(R_TEXTBOX_BG_YPOS + sTextboxBackgroundYOffsets[msgCtx->textboxBackgroundYOffsetIdx]) << 2,
|
||||
|
@ -1037,8 +969,8 @@ void Message_DrawText(GlobalContext* globalCtx, Gfx** gfxP) {
|
|||
sTextboxBackgroundForePrimColors[msgCtx->textboxBackgroundForeColorIdx][2],
|
||||
msgCtx->textColorAlpha);
|
||||
|
||||
gDPLoadTextureBlock_4b(gfx++, ((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE), G_IM_FMT_I, 96,
|
||||
48, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
|
||||
gDPLoadTextureBlock_4b(gfx++, ((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE), G_IM_FMT_I,
|
||||
96, 48, 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);
|
||||
gSPTextureRectangle(gfx++, msgCtx->textPosX << 2, R_TEXTBOX_BG_YPOS << 2, (msgCtx->textPosX + 96) << 2,
|
||||
(R_TEXTBOX_BG_YPOS + 48) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||
|
@ -1635,11 +1567,10 @@ void Message_OpenText(GlobalContext* globalCtx, u16 textId) {
|
|||
memcpy(font->msgBuf, src, font->msgLength);
|
||||
|
||||
// OTRTODO
|
||||
//DmaMgr_SendRequest1(font->msgBuf, (uintptr_t)(_staff_message_data_staticSegmentRomStart + 4 + font->msgOffset),
|
||||
//font->msgLength, "../z_message_PAL.c", 1954);
|
||||
// DmaMgr_SendRequest1(font->msgBuf, (uintptr_t)(_staff_message_data_staticSegmentRomStart + 4 +
|
||||
// font->msgOffset), font->msgLength, "../z_message_PAL.c", 1954);
|
||||
} else {
|
||||
if (gSaveContext.language == LANGUAGE_ENG)
|
||||
{
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
Message_FindMessage(globalCtx, textId);
|
||||
msgCtx->msgLength = font->msgLength;
|
||||
char* src = (uintptr_t)font->msgOffset;
|
||||
|
@ -1650,8 +1581,7 @@ void Message_OpenText(GlobalContext* globalCtx, u16 textId) {
|
|||
// msgCtx->msgLength = font->msgLength;
|
||||
// DmaMgr_SendRequest1(font->msgBuf, (uintptr_t)(_ger_message_data_staticSegmentRomStart + font->msgOffset),
|
||||
// font->msgLength, "../z_message_PAL.c", 1978);
|
||||
} else
|
||||
{
|
||||
} else {
|
||||
// OTRTODO
|
||||
// Message_FindMessage(globalCtx, textId);
|
||||
// msgCtx->msgLength = font->msgLength;
|
||||
|
@ -1667,7 +1597,8 @@ void Message_OpenText(GlobalContext* globalCtx, u16 textId) {
|
|||
// "Text Box Type"
|
||||
osSyncPrintf("吹き出し種類=%d\n", msgCtx->textBoxType);
|
||||
if (textBoxType < TEXTBOX_TYPE_NONE_BOTTOM) {
|
||||
memcpy(msgCtx->textboxSegment, ResourceMgr_LoadTexByName(msgStaticTbl[messageStaticIndices[textBoxType]]), MESSAGE_STATIC_TEX_SIZE);
|
||||
memcpy(msgCtx->textboxSegment, ResourceMgr_LoadTexByName(msgStaticTbl[messageStaticIndices[textBoxType]]),
|
||||
MESSAGE_STATIC_TEX_SIZE);
|
||||
if (textBoxType == TEXTBOX_TYPE_BLACK) {
|
||||
msgCtx->textboxColorRed = 0;
|
||||
msgCtx->textboxColorGreen = 0;
|
||||
|
@ -1970,22 +1901,49 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
|||
static void* sOcarinaNoteTextures[] = {
|
||||
gOcarinaATex, gOcarinaCDownTex, gOcarinaCRightTex, gOcarinaCLeftTex, gOcarinaCUpTex,
|
||||
};
|
||||
static s16 sOcarinaNoteAPrimColors[][3] = {
|
||||
{ 80, 255, 150 },
|
||||
{ 100, 255, 200 },
|
||||
};
|
||||
static s16 sOcarinaNoteAEnvColors[][3] = {
|
||||
{ 10, 10, 10 },
|
||||
{ 50, 255, 50 },
|
||||
};
|
||||
static s16 sOcarinaNoteCPrimColors[][3] = {
|
||||
{ 255, 255, 50 },
|
||||
{ 255, 255, 180 },
|
||||
};
|
||||
static s16 sOcarinaNoteCEnvColors[][3] = {
|
||||
{ 10, 10, 10 },
|
||||
{ 110, 110, 50 },
|
||||
};
|
||||
|
||||
//static s16 sOcarinaNoteAPrimColors[2][3]; // Base Flash Colors
|
||||
//static s16 sOcarinaNoteCPrimColors[2][3];
|
||||
//static s16 sOcarinaNoteAEnvColors[2][3]; // Highlight Flash Colors
|
||||
//static s16 sOcarinaNoteCEnvColors[2][3];
|
||||
|
||||
static Color_RGB8 sOcarinaNoteAPrimColors[2];
|
||||
static Color_RGB8 sOcarinaNoteAEnvColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCUpPrimColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCUpEnvColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCRightPrimColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCRightEnvColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCDownPrimColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCDownEnvColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCLeftPrimColors[2];
|
||||
static Color_RGB8 sOcarinaNoteCLeftEnvColors[2];
|
||||
|
||||
// Initialize static variables
|
||||
if (sOcarinaNoteAPrimColors[0].r == NULL) {
|
||||
Color_RGB8 dim = { 10, 10, 10 };
|
||||
sOcarinaNoteAPrimColors[0] = sOcarinaNoteAPrim;
|
||||
sOcarinaNoteCUpPrimColors[0] = sOcarinaNoteCUpPrim;
|
||||
sOcarinaNoteCRightPrimColors[0] = sOcarinaNoteCRightPrim;
|
||||
sOcarinaNoteCDownPrimColors[0] = sOcarinaNoteCDownPrim;
|
||||
sOcarinaNoteCLeftPrimColors[0] = sOcarinaNoteCLeftPrim;
|
||||
sOcarinaNoteAEnvColors[0] = dim;
|
||||
sOcarinaNoteCUpEnvColors[0] = dim;
|
||||
sOcarinaNoteCRightEnvColors[0] = dim;
|
||||
sOcarinaNoteCDownEnvColors[0] = dim;
|
||||
sOcarinaNoteCLeftEnvColors[0] = dim;
|
||||
|
||||
sOcarinaNoteAPrimColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteAFlashBase);
|
||||
sOcarinaNoteCUpPrimColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCUpFlashBase);
|
||||
sOcarinaNoteCRightPrimColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCRightFlashBase);
|
||||
sOcarinaNoteCDownPrimColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCDownFlashBase);
|
||||
sOcarinaNoteCLeftPrimColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCLeftFlashBase);
|
||||
sOcarinaNoteAEnvColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteAFlashLight);
|
||||
sOcarinaNoteCUpEnvColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCUpFlashLight);
|
||||
sOcarinaNoteCRightEnvColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCRightFlashLight);
|
||||
sOcarinaNoteCDownEnvColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCDownFlashLight);
|
||||
sOcarinaNoteCLeftEnvColors[1] = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCLeftFlashLight);
|
||||
}
|
||||
|
||||
static s16 sOcarinaNoteFlashTimer = 12;
|
||||
static s16 sOcarinaNoteFlashColorIdx = 1;
|
||||
static s16 sOcarinaSongFanfares[] = {
|
||||
|
@ -1999,9 +1957,6 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
|||
Player* player = GET_PLAYER(globalCtx);
|
||||
s32 pad;
|
||||
Gfx* gfx = *p;
|
||||
s16 r;
|
||||
s16 g;
|
||||
s16 b;
|
||||
u16 i;
|
||||
u16 notePosX;
|
||||
u16 pad1;
|
||||
|
@ -2190,112 +2145,32 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
|||
case MSGMODE_OCARINA_CORRECT_PLAYBACK:
|
||||
case MSGMODE_SONG_PLAYBACK_SUCCESS:
|
||||
case MSGMODE_SCARECROW_RECORDING_DONE:
|
||||
r = ABS(sOcarinaNoteAPrimR - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteAPrimG - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteAPrimB - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteAPrimR >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteAPrimR -= r;
|
||||
} else {
|
||||
sOcarinaNoteAPrimR += r;
|
||||
}
|
||||
if (sOcarinaNoteAPrimG >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteAPrimG -= g;
|
||||
} else {
|
||||
sOcarinaNoteAPrimG += g;
|
||||
}
|
||||
if (sOcarinaNoteAPrimB >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteAPrimB -= b;
|
||||
} else {
|
||||
sOcarinaNoteAPrimB += b;
|
||||
}
|
||||
|
||||
r = ABS(sOcarinaNoteAEnvR - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteAEnvG - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteAEnvB - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteCEnvR >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteAEnvR -= r;
|
||||
} else {
|
||||
sOcarinaNoteAEnvR += r;
|
||||
}
|
||||
if (sOcarinaNoteCEnvG >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteAEnvG -= g;
|
||||
} else {
|
||||
sOcarinaNoteAEnvG += g;
|
||||
}
|
||||
if (sOcarinaNoteCEnvB >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteAEnvB -= b;
|
||||
} else {
|
||||
sOcarinaNoteAEnvB += b;
|
||||
}
|
||||
|
||||
r = ABS(sOcarinaNoteCPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteCPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteCPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteCPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteCPrimR -= r;
|
||||
} else {
|
||||
sOcarinaNoteCPrimR += r;
|
||||
}
|
||||
if (sOcarinaNoteCPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteCPrimG -= g;
|
||||
} else {
|
||||
sOcarinaNoteCPrimG += g;
|
||||
}
|
||||
if (sOcarinaNoteCPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteCPrimB -= b;
|
||||
} else {
|
||||
sOcarinaNoteCPrimB += b;
|
||||
}
|
||||
|
||||
r = ABS(sOcarinaNoteCEnvR - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteCEnvG - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteCEnvB - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteCEnvR >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteCEnvR -= r;
|
||||
} else {
|
||||
sOcarinaNoteCEnvR += r;
|
||||
}
|
||||
if (sOcarinaNoteCEnvG >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteCEnvG -= g;
|
||||
} else {
|
||||
sOcarinaNoteCEnvG += g;
|
||||
}
|
||||
if (sOcarinaNoteCEnvB >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteCEnvB -= b;
|
||||
} else {
|
||||
sOcarinaNoteCEnvB += b;
|
||||
}
|
||||
advanceFlashAnimation(sOcarinaNoteAPrim, sOcarinaNoteAPrimColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
// expanded block used to contain minor logical error that produced nearly no visual difference
|
||||
// for consistency and for the sake of a functional macro it has been patched
|
||||
advanceFlashAnimation(sOcarinaNoteAEnv, sOcarinaNoteAEnvColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCUpPrim, sOcarinaNoteCUpPrimColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCUpEnv, sOcarinaNoteCUpEnvColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCRightPrim, sOcarinaNoteCRightPrimColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCRightEnv, sOcarinaNoteCRightEnvColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCDownPrim, sOcarinaNoteCDownPrimColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCDownEnv, sOcarinaNoteCDownEnvColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCLeftPrim, sOcarinaNoteCLeftPrimColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
advanceFlashAnimation(sOcarinaNoteCLeftEnv, sOcarinaNoteCLeftEnvColors, sOcarinaNoteFlashColorIdx, sOcarinaNoteFlashTimer);
|
||||
|
||||
sOcarinaNoteFlashTimer--;
|
||||
if (sOcarinaNoteFlashTimer == 0) {
|
||||
sOcarinaNoteAPrimR = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteAPrimG = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteAPrimB = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteAEnvR = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteAEnvG = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteAEnvB = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteCPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteCPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteCPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteCEnvR = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteCEnvG = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteCEnvB = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteAPrim = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteAEnv = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCUpPrim = sOcarinaNoteCUpPrimColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCUpEnv = sOcarinaNoteCUpEnvColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCRightPrim = sOcarinaNoteCRightPrimColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCRightEnv = sOcarinaNoteCRightEnvColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCDownPrim = sOcarinaNoteCDownPrimColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCDownEnv = sOcarinaNoteCDownEnvColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCLeftPrim = sOcarinaNoteCLeftPrimColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteCLeftEnv = sOcarinaNoteCLeftEnvColors[sOcarinaNoteFlashColorIdx];
|
||||
sOcarinaNoteFlashTimer = 3;
|
||||
sOcarinaNoteFlashColorIdx ^= 1;
|
||||
}
|
||||
|
@ -2866,20 +2741,20 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
|||
ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
|
||||
if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK) {
|
||||
g = msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET;
|
||||
r = gOcarinaSongNotes[g].len;
|
||||
for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < r; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) {
|
||||
s16 songIdx = msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET;
|
||||
s16 songLength = gOcarinaSongNotes[songIdx].len;
|
||||
for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < songLength; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) {
|
||||
gDPPipeSync(gfx++);
|
||||
gDPSetPrimColor(gfx++, 0, 0, 150, 150, 150, 150);
|
||||
gDPSetEnvColor(gfx++, 10, 10, 10, 0);
|
||||
|
||||
gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[gOcarinaSongNotes[g].notesIdx[i]], G_IM_FMT_IA,
|
||||
gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[gOcarinaSongNotes[songIdx].notesIdx[i]], G_IM_FMT_IA,
|
||||
G_IM_SIZ_8b, 16, 16, 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);
|
||||
|
||||
gSPTextureRectangle(
|
||||
gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[g].notesIdx[i]) << 2,
|
||||
(notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[g].notesIdx[i]) + 16) << 2,
|
||||
gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[songIdx].notesIdx[i]) << 2,
|
||||
(notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[songIdx].notesIdx[i]) + 16) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||
}
|
||||
}
|
||||
|
@ -2900,14 +2775,36 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
|||
}
|
||||
|
||||
gDPPipeSync(gfx++);
|
||||
if (sOcarinaNoteBuf[i] == OCARINA_NOTE_A) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteAPrimR, sOcarinaNoteAPrimG, sOcarinaNoteAPrimB,
|
||||
switch (sOcarinaNoteBuf[i]) {
|
||||
case OCARINA_NOTE_A:
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteAPrim.r, sOcarinaNoteAPrim.g, sOcarinaNoteAPrim.b,
|
||||
sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteAEnvR, sOcarinaNoteAEnvG, sOcarinaNoteAEnvB, 0);
|
||||
} else {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCPrimR, sOcarinaNoteCPrimG, sOcarinaNoteCPrimB,
|
||||
sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCEnvR, sOcarinaNoteCEnvG, sOcarinaNoteCEnvB, 0);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteAEnv.r, sOcarinaNoteAEnv.g, sOcarinaNoteAEnv.b, 0);
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCUpPrim.r, sOcarinaNoteCUpPrim.g,
|
||||
sOcarinaNoteCUpPrim.b, sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCUpEnv.r, sOcarinaNoteCUpEnv.g, sOcarinaNoteCUpEnv.b, 0);
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCRightPrim.r, sOcarinaNoteCRightPrim.g,
|
||||
sOcarinaNoteCRightPrim.b, sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCRightEnv.r, sOcarinaNoteCRightEnv.g, sOcarinaNoteCRightEnv.b, 0);
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCDownPrim.r, sOcarinaNoteCDownPrim.g,
|
||||
sOcarinaNoteCDownPrim.b, sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCDownEnv.r, sOcarinaNoteCDownEnv.g, sOcarinaNoteCDownEnv.b, 0);
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCLeftPrim.r, sOcarinaNoteCLeftPrim.g,
|
||||
sOcarinaNoteCLeftPrim.b, sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCLeftEnv.r, sOcarinaNoteCLeftEnv.g, sOcarinaNoteCLeftEnv.b, 0);
|
||||
break;
|
||||
default:
|
||||
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, 255, 255, 255, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[sOcarinaNoteBuf[i]], G_IM_FMT_IA, G_IM_SIZ_8b, 16,
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "textures/parameter_static/parameter_static.h"
|
||||
#include "textures/do_action_static/do_action_static.h"
|
||||
#include "textures/icon_item_static/icon_item_static.h"
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <stdlib.h>
|
||||
|
@ -135,9 +136,7 @@ static u16 sCUpTimer = 0;
|
|||
s16 gSpoilingItems[] = { ITEM_ODD_MUSHROOM, ITEM_FROG, ITEM_EYEDROPS };
|
||||
s16 gSpoilingItemReverts[] = { ITEM_COJIRO, ITEM_PRESCRIPTION, ITEM_PRESCRIPTION };
|
||||
|
||||
static s16 sMagicBorderR = 255;
|
||||
static s16 sMagicBorderG = 255;
|
||||
static s16 sMagicBorderB = 255;
|
||||
static Color_RGB8 sMagicBorder;
|
||||
|
||||
static s16 sExtraItemBases[] = {
|
||||
ITEM_STICK, ITEM_STICK, ITEM_NUT, ITEM_NUT, ITEM_BOMB, ITEM_BOMB, ITEM_BOMB, ITEM_BOMB, ITEM_BOW,
|
||||
|
@ -158,36 +157,14 @@ static Gfx sSetupDL_80125A60[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
static const char* actionsTbl[] =
|
||||
{
|
||||
gAttackDoActionENGTex,
|
||||
gCheckDoActionENGTex,
|
||||
gEnterDoActionENGTex,
|
||||
gReturnDoActionENGTex,
|
||||
gOpenDoActionENGTex,
|
||||
gJumpDoActionENGTex,
|
||||
gDecideDoActionENGTex,
|
||||
gDiveDoActionENGTex,
|
||||
gFasterDoActionENGTex,
|
||||
gThrowDoActionENGTex,
|
||||
gUnusedNaviDoActionENGTex,
|
||||
gClimbDoActionENGTex,
|
||||
gDropDoActionENGTex,
|
||||
gDownDoActionENGTex,
|
||||
gSaveDoActionENGTex,
|
||||
gSpeakDoActionENGTex,
|
||||
gNextDoActionENGTex,
|
||||
gGrabDoActionENGTex,
|
||||
gStopDoActionENGTex,
|
||||
gPutAwayDoActionENGTex,
|
||||
gReelDoActionENGTex,
|
||||
gNum1DoActionENGTex,
|
||||
gNum2DoActionENGTex,
|
||||
gNum3DoActionENGTex,
|
||||
gNum4DoActionENGTex,
|
||||
gNum5DoActionENGTex,
|
||||
gNum6DoActionENGTex,
|
||||
gNum7DoActionENGTex,
|
||||
static const char* actionsTbl[] = {
|
||||
gAttackDoActionENGTex, gCheckDoActionENGTex, gEnterDoActionENGTex, gReturnDoActionENGTex,
|
||||
gOpenDoActionENGTex, gJumpDoActionENGTex, gDecideDoActionENGTex, gDiveDoActionENGTex,
|
||||
gFasterDoActionENGTex, gThrowDoActionENGTex, gUnusedNaviDoActionENGTex, gClimbDoActionENGTex,
|
||||
gDropDoActionENGTex, gDownDoActionENGTex, gSaveDoActionENGTex, gSpeakDoActionENGTex,
|
||||
gNextDoActionENGTex, gGrabDoActionENGTex, gStopDoActionENGTex, gPutAwayDoActionENGTex,
|
||||
gReelDoActionENGTex, gNum1DoActionENGTex, gNum2DoActionENGTex, gNum3DoActionENGTex,
|
||||
gNum4DoActionENGTex, gNum5DoActionENGTex, gNum6DoActionENGTex, gNum7DoActionENGTex,
|
||||
gNum8DoActionENGTex,
|
||||
};
|
||||
|
||||
|
@ -1299,7 +1276,8 @@ void Interface_LoadItemIcon1(GlobalContext* globalCtx, u16 button) {
|
|||
|
||||
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK);
|
||||
DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, interfaceCtx->iconItemSegment + button * 0x1000,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart + (gSaveContext.equips.buttonItems[button] * 0x1000),
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
(gSaveContext.equips.buttonItems[button] * 0x1000),
|
||||
0x1000, 0, &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 1171);
|
||||
osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
@ -1309,7 +1287,8 @@ void Interface_LoadItemIcon2(GlobalContext* globalCtx, u16 button) {
|
|||
|
||||
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK);
|
||||
DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_180, interfaceCtx->iconItemSegment + button * 0x1000,
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart + (gSaveContext.equips.buttonItems[button] * 0x1000),
|
||||
(uintptr_t)_icon_item_staticSegmentRomStart +
|
||||
(gSaveContext.equips.buttonItems[button] * 0x1000),
|
||||
0x1000, 0, &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 1193);
|
||||
osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
@ -2110,7 +2089,6 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
|
|||
action += DO_ACTION_MAX;
|
||||
}*/
|
||||
|
||||
|
||||
if (action != DO_ACTION_NONE) {
|
||||
// osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK);
|
||||
memcpy(interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE), ResourceMgr_LoadTexByName(doAction),
|
||||
|
@ -2195,8 +2173,6 @@ void Interface_LoadActionLabelB(GlobalContext* globalCtx, u16 action) {
|
|||
|
||||
interfaceCtx->unk_1FC = action;
|
||||
|
||||
|
||||
|
||||
// OTRTODO
|
||||
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK);
|
||||
memcpy(interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE, ResourceMgr_LoadTexByName(doAction), DO_ACTION_TEX_SIZE);
|
||||
|
@ -2423,20 +2399,18 @@ s32 func_80087708(GlobalContext* globalCtx, s16 arg1, s16 arg2) {
|
|||
}
|
||||
|
||||
void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
||||
static s16 sMagicBorderColors[][3] = {
|
||||
{ 255, 255, 255 },
|
||||
{ 150, 150, 150 },
|
||||
{ 255, 255, 150 },
|
||||
{ 255, 255, 50 },
|
||||
};
|
||||
Color_RGB8 magicBorderDefault = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorMagicBorder);
|
||||
|
||||
static Color_RGB8 sMagicBorderColors[4];
|
||||
sMagicBorderColors[0] = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorMagicBorder);
|
||||
sMagicBorderColors[1] = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorMagicBorderDim);
|
||||
|
||||
static s16 sMagicBorderIndexes[] = { 0, 1, 1, 0 };
|
||||
static s16 sMagicBorderRatio = 2;
|
||||
static s16 sMagicBorderStep = 1;
|
||||
MessageContext* msgCtx = &globalCtx->msgCtx;
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
s16 borderChangeR;
|
||||
s16 borderChangeG;
|
||||
s16 borderChangeB;
|
||||
Color_RGB8 borderChange;
|
||||
s16 temp;
|
||||
|
||||
switch (gSaveContext.unk_13F0) {
|
||||
|
@ -2486,42 +2460,42 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
|||
if (gSaveContext.magic <= 0) {
|
||||
gSaveContext.magic = 0;
|
||||
gSaveContext.unk_13F0 = 3;
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = magicBorderDefault;
|
||||
} else if (gSaveContext.magic == gSaveContext.unk_13F8) {
|
||||
gSaveContext.unk_13F0 = 3;
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = magicBorderDefault;
|
||||
}
|
||||
case 3:
|
||||
case 4:
|
||||
case 6:
|
||||
temp = sMagicBorderIndexes[sMagicBorderStep];
|
||||
borderChangeR = ABS(sMagicBorderR - sMagicBorderColors[temp][0]) / sMagicBorderRatio;
|
||||
borderChangeG = ABS(sMagicBorderG - sMagicBorderColors[temp][1]) / sMagicBorderRatio;
|
||||
borderChangeB = ABS(sMagicBorderB - sMagicBorderColors[temp][2]) / sMagicBorderRatio;
|
||||
borderChange.r = ABS(sMagicBorder.r - sMagicBorderColors[temp].r) / sMagicBorderRatio;
|
||||
borderChange.g = ABS(sMagicBorder.g - sMagicBorderColors[temp].g) / sMagicBorderRatio;
|
||||
borderChange.b = ABS(sMagicBorder.b - sMagicBorderColors[temp].b) / sMagicBorderRatio;
|
||||
|
||||
if (sMagicBorderR >= sMagicBorderColors[temp][0]) {
|
||||
sMagicBorderR -= borderChangeR;
|
||||
if (sMagicBorder.r >= sMagicBorderColors[temp].r) {
|
||||
sMagicBorder.r -= borderChange.r;
|
||||
} else {
|
||||
sMagicBorderR += borderChangeR;
|
||||
sMagicBorder.r += borderChange.r;
|
||||
}
|
||||
|
||||
if (sMagicBorderG >= sMagicBorderColors[temp][1]) {
|
||||
sMagicBorderG -= borderChangeG;
|
||||
if (sMagicBorder.g >= sMagicBorderColors[temp].g) {
|
||||
sMagicBorder.g -= borderChange.g;
|
||||
} else {
|
||||
sMagicBorderG += borderChangeG;
|
||||
sMagicBorder.g += borderChange.g;
|
||||
}
|
||||
|
||||
if (sMagicBorderB >= sMagicBorderColors[temp][2]) {
|
||||
sMagicBorderB -= borderChangeB;
|
||||
if (sMagicBorder.b >= sMagicBorderColors[temp].b) {
|
||||
sMagicBorder.b -= borderChange.b;
|
||||
} else {
|
||||
sMagicBorderB += borderChangeB;
|
||||
sMagicBorder.b += borderChange.b;
|
||||
}
|
||||
|
||||
sMagicBorderRatio--;
|
||||
if (sMagicBorderRatio == 0) {
|
||||
sMagicBorderR = sMagicBorderColors[temp][0];
|
||||
sMagicBorderG = sMagicBorderColors[temp][1];
|
||||
sMagicBorderB = sMagicBorderColors[temp][2];
|
||||
sMagicBorder.r = sMagicBorderColors[temp].r;
|
||||
sMagicBorder.g = sMagicBorderColors[temp].g;
|
||||
sMagicBorder.b = sMagicBorderColors[temp].b;
|
||||
sMagicBorderRatio = YREG(40 + sMagicBorderStep);
|
||||
sMagicBorderStep++;
|
||||
if (sMagicBorderStep >= 4) {
|
||||
|
@ -2531,7 +2505,7 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
|||
break;
|
||||
|
||||
case 5:
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = magicBorderDefault;
|
||||
gSaveContext.unk_13F0 = 0;
|
||||
break;
|
||||
|
||||
|
@ -2548,7 +2522,7 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
|||
Audio_PlaySoundGeneral(NA_SE_SY_GLASSMODE_OFF, &D_801333D4, 4, &D_801333E0, &D_801333E0,
|
||||
&D_801333E8);
|
||||
gSaveContext.unk_13F0 = 0;
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = magicBorderDefault;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2560,33 +2534,33 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
temp = sMagicBorderIndexes[sMagicBorderStep];
|
||||
borderChangeR = ABS(sMagicBorderR - sMagicBorderColors[temp][0]) / sMagicBorderRatio;
|
||||
borderChangeG = ABS(sMagicBorderG - sMagicBorderColors[temp][1]) / sMagicBorderRatio;
|
||||
borderChangeB = ABS(sMagicBorderB - sMagicBorderColors[temp][2]) / sMagicBorderRatio;
|
||||
borderChange.r = ABS(sMagicBorder.r - sMagicBorderColors[temp].r) / sMagicBorderRatio;
|
||||
borderChange.g = ABS(sMagicBorder.g - sMagicBorderColors[temp].g) / sMagicBorderRatio;
|
||||
borderChange.b = ABS(sMagicBorder.b - sMagicBorderColors[temp].b) / sMagicBorderRatio;
|
||||
|
||||
if (sMagicBorderR >= sMagicBorderColors[temp][0]) {
|
||||
sMagicBorderR -= borderChangeR;
|
||||
if (sMagicBorder.r >= sMagicBorderColors[temp].r) {
|
||||
sMagicBorder.r -= borderChange.r;
|
||||
} else {
|
||||
sMagicBorderR += borderChangeR;
|
||||
sMagicBorder.r += borderChange.r;
|
||||
}
|
||||
|
||||
if (sMagicBorderG >= sMagicBorderColors[temp][1]) {
|
||||
sMagicBorderG -= borderChangeG;
|
||||
if (sMagicBorder.g >= sMagicBorderColors[temp].g) {
|
||||
sMagicBorder.g -= borderChange.g;
|
||||
} else {
|
||||
sMagicBorderG += borderChangeG;
|
||||
sMagicBorder.g += borderChange.g;
|
||||
}
|
||||
|
||||
if (sMagicBorderB >= sMagicBorderColors[temp][2]) {
|
||||
sMagicBorderB -= borderChangeB;
|
||||
if (sMagicBorder.b >= sMagicBorderColors[temp].b) {
|
||||
sMagicBorder.b -= borderChange.b;
|
||||
} else {
|
||||
sMagicBorderB += borderChangeB;
|
||||
sMagicBorder.b += borderChange.b;
|
||||
}
|
||||
|
||||
sMagicBorderRatio--;
|
||||
if (sMagicBorderRatio == 0) {
|
||||
sMagicBorderR = sMagicBorderColors[temp][0];
|
||||
sMagicBorderG = sMagicBorderColors[temp][1];
|
||||
sMagicBorderB = sMagicBorderColors[temp][2];
|
||||
sMagicBorder.r = sMagicBorderColors[temp].r;
|
||||
sMagicBorder.g = sMagicBorderColors[temp].g;
|
||||
sMagicBorder.b = sMagicBorderColors[temp].b;
|
||||
sMagicBorderRatio = YREG(40 + sMagicBorderStep);
|
||||
sMagicBorderStep++;
|
||||
if (sMagicBorderStep >= 4) {
|
||||
|
@ -2626,15 +2600,19 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
|||
|
||||
func_80094520(globalCtx->state.gfxCtx);
|
||||
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sMagicBorderR, sMagicBorderG, sMagicBorderB, interfaceCtx->magicAlpha);
|
||||
if (sMagicBorder.r == NULL || sMagicBorder.g == NULL || sMagicBorder.b == NULL) {
|
||||
sMagicBorder = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorMagicBorder);
|
||||
}
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sMagicBorder.r, sMagicBorder.g, sMagicBorder.b, interfaceCtx->magicAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 100, 50, 50, 255);
|
||||
|
||||
OVERLAY_DISP =
|
||||
Gfx_TextureIA8(OVERLAY_DISP, gMagicBarEndTex, 8, 16, OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X),
|
||||
magicBarY, 8, 16, 1 << 10, 1 << 10);
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gMagicBarMidTex, 24, 16, OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X) + 8, magicBarY,
|
||||
gSaveContext.unk_13F4, 16, 1 << 10, 1 << 10);
|
||||
OVERLAY_DISP =
|
||||
Gfx_TextureIA8(OVERLAY_DISP, gMagicBarMidTex, 24, 16, OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X) + 8,
|
||||
magicBarY, gSaveContext.unk_13F4, 16, 1 << 10, 1 << 10);
|
||||
|
||||
gDPLoadTextureBlock(OVERLAY_DISP++, gMagicBarEndTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 16, 0,
|
||||
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
@ -2642,8 +2620,8 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
|||
const s16 rMagicBarX = OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X);
|
||||
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, ((rMagicBarX + gSaveContext.unk_13F4) + 8) << 2, magicBarY << 2,
|
||||
((rMagicBarX + gSaveContext.unk_13F4) + 16) << 2, (magicBarY + 16) << 2, G_TX_RENDERTILE,
|
||||
256, 0, 1 << 10, 1 << 10);
|
||||
((rMagicBarX + gSaveContext.unk_13F4) + 16) << 2, (magicBarY + 16) << 2,
|
||||
G_TX_RENDERTILE, 256, 0, 1 << 10, 1 << 10);
|
||||
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, PRIMITIVE, PRIMITIVE,
|
||||
|
@ -2654,7 +2632,8 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
|||
|
||||
if (gSaveContext.unk_13F0 == 4) {
|
||||
// Yellow part of the bar indicating the amount of magic to be subtracted
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 250, 250, 0, interfaceCtx->magicAlpha);
|
||||
Color_RGB8 burnColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorMagicFillBurn);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, burnColor.r, burnColor.g, burnColor.b, interfaceCtx->magicAlpha);
|
||||
|
||||
gDPLoadMultiBlock_4b(OVERLAY_DISP++, gMagicBarFillTex, 0, G_TX_RENDERTILE, G_IM_FMT_I, 16, 16, 0,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
|
@ -2758,41 +2737,47 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
|||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_B_BTN_COLOR(0), R_B_BTN_COLOR(1), R_B_BTN_COLOR(2), interfaceCtx->bAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
|
||||
|
||||
OVERLAY_DISP =
|
||||
Gfx_TextureIA8(OVERLAY_DISP, gButtonBackgroundTex, 32, 32, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(0)), R_ITEM_BTN_Y(0),
|
||||
OVERLAY_DISP = Gfx_TextureIA8(
|
||||
OVERLAY_DISP, gButtonBackgroundTex, 32, 32, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(0)), R_ITEM_BTN_Y(0),
|
||||
R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_DD(0) << 1, R_ITEM_BTN_DD(0) << 1);
|
||||
|
||||
Color_RGB8 cColor;
|
||||
// C-Left Button Color & Texture
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
|
||||
interfaceCtx->cLeftAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(1)) << 2, R_ITEM_BTN_Y(1) << 2,
|
||||
cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCLeft);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, interfaceCtx->cLeftAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(1)) << 2,
|
||||
R_ITEM_BTN_Y(1) << 2,
|
||||
(OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(1)) + R_ITEM_BTN_WIDTH(1)) << 2,
|
||||
(R_ITEM_BTN_Y(1) + R_ITEM_BTN_WIDTH(1)) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(1) << 1, R_ITEM_BTN_DD(1) << 1);
|
||||
(R_ITEM_BTN_Y(1) + R_ITEM_BTN_WIDTH(1)) << 2, G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(1) << 1,
|
||||
R_ITEM_BTN_DD(1) << 1);
|
||||
|
||||
// C-Down Button Color & Texture
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
|
||||
interfaceCtx->cDownAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(2)) << 2, R_ITEM_BTN_Y(2) << 2,
|
||||
cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCDown);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, interfaceCtx->cDownAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(2)) << 2,
|
||||
R_ITEM_BTN_Y(2) << 2,
|
||||
(OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(2)) + R_ITEM_BTN_WIDTH(2)) << 2,
|
||||
(R_ITEM_BTN_Y(2) + R_ITEM_BTN_WIDTH(2)) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(2) << 1, R_ITEM_BTN_DD(2) << 1);
|
||||
(R_ITEM_BTN_Y(2) + R_ITEM_BTN_WIDTH(2)) << 2, G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(2) << 1,
|
||||
R_ITEM_BTN_DD(2) << 1);
|
||||
|
||||
// C-Right Button Color & Texture
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
|
||||
interfaceCtx->cRightAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(3)) << 2, R_ITEM_BTN_Y(3) << 2,
|
||||
cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCRight);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, interfaceCtx->cRightAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(3)) << 2,
|
||||
R_ITEM_BTN_Y(3) << 2,
|
||||
(OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(3)) + R_ITEM_BTN_WIDTH(3)) << 2,
|
||||
(R_ITEM_BTN_Y(3) + R_ITEM_BTN_WIDTH(3)) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(3) << 1, R_ITEM_BTN_DD(3) << 1);
|
||||
(R_ITEM_BTN_Y(3) + R_ITEM_BTN_WIDTH(3)) << 2, G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(3) << 1,
|
||||
R_ITEM_BTN_DD(3) << 1);
|
||||
|
||||
if ((pauseCtx->state < 8) || (pauseCtx->state >= 18)) {
|
||||
if ((globalCtx->pauseCtx.state != 0) || (globalCtx->pauseCtx.debugState != 0)) {
|
||||
// Start Button Texture, Color & Label
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 120, 120, 120, interfaceCtx->startAlpha);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]) << 2, 68,
|
||||
Color_RGB8 startColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnStart);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, startColor.r, startColor.g, startColor.b, interfaceCtx->startAlpha);
|
||||
gSPWideTextureRectangle(
|
||||
OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]) << 2, 68,
|
||||
(OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]) + 22) << 2, 156,
|
||||
G_TX_RENDERTILE, 0, 0, 1462, 1462);
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
@ -2809,10 +2794,9 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
|||
width = DO_ACTION_TEX_WIDTH / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
|
||||
height = DO_ACTION_TEX_HEIGHT / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
|
||||
const s16 rStartLabelX = OTRGetRectDimensionFromRightEdge(R_START_LABEL_X(gSaveContext.language));
|
||||
gSPWideTextureRectangle(
|
||||
OVERLAY_DISP++, rStartLabelX << 2,
|
||||
R_START_LABEL_Y(gSaveContext.language) << 2, (rStartLabelX + width) << 2,
|
||||
(R_START_LABEL_Y(gSaveContext.language) + height) << 2, G_TX_RENDERTILE, 0, 0, dxdy, dxdy);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, rStartLabelX << 2, R_START_LABEL_Y(gSaveContext.language) << 2,
|
||||
(rStartLabelX + width) << 2, (R_START_LABEL_Y(gSaveContext.language) + height) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, dxdy, dxdy);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2833,7 +2817,8 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
|||
|
||||
const s16 rCUpBtnX = OTRGetRectDimensionFromRightEdge(R_C_UP_BTN_X);
|
||||
const s16 rCUPIconX = OTRGetRectDimensionFromRightEdge(R_C_UP_ICON_X);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), temp);
|
||||
cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCUp);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, temp);
|
||||
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, rCUpBtnX << 2, R_C_UP_BTN_Y << 2, (rCUpBtnX + 16) << 2,
|
||||
(R_C_UP_BTN_Y + 16) << 2, G_TX_RENDERTILE, 0, 0, 2 << 10, 2 << 10);
|
||||
|
@ -2864,27 +2849,28 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
|||
for (temp = 1; temp < 4; temp++) {
|
||||
if (gSaveContext.equips.buttonItems[temp] > 0xF0) {
|
||||
if (temp == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
|
||||
interfaceCtx->cLeftAlpha);
|
||||
Color_RGB8 cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCLeft);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, interfaceCtx->cLeftAlpha);
|
||||
} else if (temp == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
|
||||
interfaceCtx->cDownAlpha);
|
||||
Color_RGB8 cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCDown);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, interfaceCtx->cDownAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
|
||||
interfaceCtx->cRightAlpha);
|
||||
Color_RGB8 cColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorBtnCRight);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, cColor.r, cColor.g, cColor.b, interfaceCtx->cRightAlpha);
|
||||
}
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, ((u8*)gButtonBackgroundTex), 32, 32,
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(temp)), R_ITEM_BTN_Y(temp), R_ITEM_BTN_WIDTH(temp),
|
||||
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1, R_ITEM_BTN_DD(temp) << 1);
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(temp)), R_ITEM_BTN_Y(temp),
|
||||
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1,
|
||||
R_ITEM_BTN_DD(temp) << 1);
|
||||
|
||||
const char* cButtonIcons[] = { gButtonBackgroundTex, gEquippedItemOutlineTex, gEmptyCLeftArrowTex,
|
||||
gEmptyCDownArrowTex, gEmptyCRightArrowTex
|
||||
};
|
||||
gEmptyCDownArrowTex, gEmptyCRightArrowTex };
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, cButtonIcons[(temp + 1)], 32, 32,
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(temp)), R_ITEM_BTN_Y(temp), R_ITEM_BTN_WIDTH(temp),
|
||||
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1, R_ITEM_BTN_DD(temp) << 1);
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(temp)), R_ITEM_BTN_Y(temp),
|
||||
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1,
|
||||
R_ITEM_BTN_DD(temp) << 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2897,7 +2883,8 @@ void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16
|
|||
gDPLoadTextureBlock(OVERLAY_DISP++, texture, G_IM_FMT_RGBA, G_IM_SIZ_32b, 32, 32, 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);
|
||||
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_ICON_X(button)) << 2, R_ITEM_ICON_Y(button) << 2,
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(R_ITEM_ICON_X(button)) << 2,
|
||||
R_ITEM_ICON_Y(button) << 2,
|
||||
(OTRGetRectDimensionFromRightEdge(R_ITEM_ICON_X(button)) + R_ITEM_ICON_WIDTH(button)) << 2,
|
||||
(R_ITEM_ICON_Y(button) + R_ITEM_ICON_WIDTH(button)) << 2, G_TX_RENDERTILE, 0, 0,
|
||||
R_ITEM_ICON_DD(button) << 1, R_ITEM_ICON_DD(button) << 1);
|
||||
|
@ -2905,12 +2892,9 @@ void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16
|
|||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_parameter.c", 3094);
|
||||
}
|
||||
|
||||
const char* _gAmmoDigit0Tex[] =
|
||||
{
|
||||
gAmmoDigit0Tex, gAmmoDigit1Tex, gAmmoDigit2Tex, gAmmoDigit3Tex, gAmmoDigit4Tex,
|
||||
gAmmoDigit5Tex, gAmmoDigit6Tex, gAmmoDigit7Tex, gAmmoDigit8Tex, gAmmoDigit9Tex,
|
||||
gUnusedAmmoDigitHalfTex
|
||||
};
|
||||
const char* _gAmmoDigit0Tex[] = { gAmmoDigit0Tex, gAmmoDigit1Tex, gAmmoDigit2Tex, gAmmoDigit3Tex,
|
||||
gAmmoDigit4Tex, gAmmoDigit5Tex, gAmmoDigit6Tex, gAmmoDigit7Tex,
|
||||
gAmmoDigit8Tex, gAmmoDigit9Tex, gUnusedAmmoDigitHalfTex };
|
||||
|
||||
void Interface_DrawAmmoCount(GlobalContext* globalCtx, s16 button, s16 alpha) {
|
||||
s16 i;
|
||||
|
@ -2947,11 +2931,14 @@ void Interface_DrawAmmoCount(GlobalContext* globalCtx, s16 button, s16 alpha) {
|
|||
((i == ITEM_STICK) && (AMMO(i) == CUR_CAPACITY(UPG_STICKS))) ||
|
||||
((i == ITEM_NUT) && (AMMO(i) == CUR_CAPACITY(UPG_NUTS))) || ((i == ITEM_BOMBCHU) && (ammo == 50)) ||
|
||||
((i == ITEM_BEAN) && (ammo == 15))) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 120, 255, 0, alpha);
|
||||
}
|
||||
|
||||
if (ammo == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 100, 100, 100, alpha);
|
||||
Color_RGB8 ammoCountColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorAmmoCountFull);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, ammoCountColor.r, ammoCountColor.g, ammoCountColor.b, alpha);
|
||||
} else if (ammo == 0) {
|
||||
Color_RGB8 ammoCountColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorAmmoCountEmpty);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, ammoCountColor.r, ammoCountColor.g, ammoCountColor.b, alpha);
|
||||
} else {
|
||||
Color_RGB8 ammoCountColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorAmmoCountDefault);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, ammoCountColor.r, ammoCountColor.g, ammoCountColor.b, alpha);
|
||||
}
|
||||
|
||||
for (i = 0; ammo >= 10; i++) {
|
||||
|
@ -2960,11 +2947,13 @@ void Interface_DrawAmmoCount(GlobalContext* globalCtx, s16 button, s16 alpha) {
|
|||
|
||||
if (i != 0) {
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, (u8*)_gAmmoDigit0Tex[i], 8, 8,
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_AMMO_X(button)), R_ITEM_AMMO_Y(button), 8, 8, 1 << 10, 1 << 10);
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_AMMO_X(button)),
|
||||
R_ITEM_AMMO_Y(button), 8, 8, 1 << 10, 1 << 10);
|
||||
}
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, (u8*)_gAmmoDigit0Tex[ammo], 8, 8,
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_AMMO_X(button)) + 6, R_ITEM_AMMO_Y(button), 8, 8, 1 << 10, 1 << 10);
|
||||
OTRGetRectDimensionFromRightEdge(R_ITEM_AMMO_X(button)) + 6,
|
||||
R_ITEM_AMMO_Y(button), 8, 8, 1 << 10, 1 << 10);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_parameter.c", 3158);
|
||||
|
@ -3105,13 +3094,11 @@ void func_8008A994(InterfaceContext* interfaceCtx) {
|
|||
func_800AB2C4(&interfaceCtx->view);
|
||||
}
|
||||
|
||||
const char* digitTextures[] =
|
||||
{
|
||||
gCounterDigit0Tex, gCounterDigit1Tex, gCounterDigit2Tex, gCounterDigit3Tex,
|
||||
gCounterDigit4Tex, gCounterDigit5Tex, gCounterDigit6Tex, gCounterDigit7Tex, gCounterDigit8Tex,
|
||||
gCounterDigit9Tex, gCounterColonTex, gCounterDigit1Tex, gCounterDigit2Tex, gCounterDigit3Tex,
|
||||
gCounterDigit4Tex, gCounterDigit5Tex, gCounterDigit6Tex, gCounterDigit7Tex, gCounterDigit8Tex
|
||||
};
|
||||
const char* digitTextures[] = { gCounterDigit0Tex, gCounterDigit1Tex, gCounterDigit2Tex, gCounterDigit3Tex,
|
||||
gCounterDigit4Tex, gCounterDigit5Tex, gCounterDigit6Tex, gCounterDigit7Tex,
|
||||
gCounterDigit8Tex, gCounterDigit9Tex, gCounterColonTex, gCounterDigit1Tex,
|
||||
gCounterDigit2Tex, gCounterDigit3Tex, gCounterDigit4Tex, gCounterDigit5Tex,
|
||||
gCounterDigit6Tex, gCounterDigit7Tex, gCounterDigit8Tex };
|
||||
|
||||
void Interface_Draw(GlobalContext* globalCtx) {
|
||||
static s16 magicArrowEffectsR[] = { 255, 100, 255 };
|
||||
|
@ -3163,8 +3150,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
func_80094520(globalCtx->state.gfxCtx);
|
||||
|
||||
// Rupee Icon
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 255, 100, interfaceCtx->magicAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 80, 0, 255);
|
||||
Color_RGB8 rupeeColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorRupeeIcon);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rupeeColor.r, rupeeColor.g, rupeeColor.b, interfaceCtx->magicAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 80, 0, 0, 255);
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, OTRGetRectDimensionFromLeftEdge(26),
|
||||
206, 16, 16, 1 << 10, 1 << 10);
|
||||
|
||||
|
@ -3186,14 +3174,16 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
if (gSaveContext.inventory.dungeonKeys[gSaveContext.mapIndex] >= 0) {
|
||||
// Small Key Icon
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 230, 255, interfaceCtx->magicAlpha);
|
||||
Color_RGB8 keyColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorSmallKeyIcon);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, keyColor.r, keyColor.g, keyColor.b, interfaceCtx->magicAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 20, 255);
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gSmallKeyCounterIconTex, 16, 16, OTRGetRectDimensionFromLeftEdge(26), 190, 16, 16,
|
||||
1 << 10, 1 << 10);
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gSmallKeyCounterIconTex, 16, 16,
|
||||
OTRGetRectDimensionFromLeftEdge(26), 190, 16, 16, 1 << 10, 1 << 10);
|
||||
|
||||
// Small Key Counter
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->magicAlpha);
|
||||
Color_RGB8 keyCounterColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorSmallKeyCountNormal);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, keyCounterColor.r, keyCounterColor.g, keyCounterColor.b, interfaceCtx->magicAlpha);
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE,
|
||||
TEXEL0, 0, PRIMITIVE, 0);
|
||||
|
||||
|
@ -3208,14 +3198,14 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
svar3 = OTRGetRectDimensionFromLeftEdge(42);
|
||||
|
||||
if (interfaceCtx->counterDigits[2] != 0) {
|
||||
OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, ((u8*)((u8*)digitTextures[interfaceCtx->counterDigits[2]])), 8,
|
||||
OVERLAY_DISP =
|
||||
Gfx_TextureI8(OVERLAY_DISP, ((u8*)((u8*)digitTextures[interfaceCtx->counterDigits[2]])), 8,
|
||||
16, svar3, 190, 8, 16, 1 << 10, 1 << 10);
|
||||
svar3 += 8;
|
||||
}
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP,
|
||||
((u8*)digitTextures[interfaceCtx->counterDigits[3]]), 8, 16,
|
||||
svar3, 190, 8, 16, 1 << 10, 1 << 10);
|
||||
OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[3]]), 8,
|
||||
16, svar3, 190, 8, 16, 1 << 10, 1 << 10);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -3225,13 +3215,15 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
// Rupee Counter
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
||||
Color_RGB8 rupeeCountColor;
|
||||
if (gSaveContext.rupees == CUR_CAPACITY(UPG_WALLET)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 120, 255, 0, interfaceCtx->magicAlpha);
|
||||
rupeeCountColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorRupeeCountFull);
|
||||
} else if (gSaveContext.rupees != 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->magicAlpha);
|
||||
rupeeCountColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorRupeeCountNormal);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 100, 100, 100, interfaceCtx->magicAlpha);
|
||||
rupeeCountColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorRupeeCountEmpty);
|
||||
}
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rupeeCountColor.r, rupeeCountColor.g, rupeeCountColor.b, interfaceCtx->magicAlpha);
|
||||
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0,
|
||||
PRIMITIVE, 0);
|
||||
|
@ -3257,8 +3249,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
svar5 = rupeeDigitsCount[CUR_UPG_VALUE(UPG_WALLET)];
|
||||
|
||||
for (svar1 = 0, svar3 = 42; svar1 < svar5; svar1++, svar2++, svar3 += 8) {
|
||||
OVERLAY_DISP =
|
||||
Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[svar2]]), 8, 16,
|
||||
OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[svar2]]), 8, 16,
|
||||
OTRGetRectDimensionFromLeftEdge(svar3), 206, 8, 16, 1 << 10, 1 << 10);
|
||||
}
|
||||
|
||||
|
@ -3279,8 +3270,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
|
||||
if (!(interfaceCtx->unk_1FA)) {
|
||||
// B Button Icon & Ammo Count
|
||||
if (gSaveContext.equips.buttonItems[0] != ITEM_NONE)
|
||||
{
|
||||
if (gSaveContext.equips.buttonItems[0] != ITEM_NONE) {
|
||||
Interface_DrawItemIconTexture(globalCtx, gItemIcons[gSaveContext.equips.buttonItems[0]], 0);
|
||||
|
||||
if ((player->stateFlags1 & 0x00800000) || (globalCtx->shootingGalleryStatus > 1) ||
|
||||
|
@ -3306,8 +3296,8 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
const s16 rBLabelX = OTRGetRectDimensionFromRightEdge(R_B_LABEL_X(gSaveContext.language));
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, rBLabelX << 2, R_B_LABEL_Y(gSaveContext.language) << 2,
|
||||
(rBLabelX + DO_ACTION_TEX_WIDTH) << 2,
|
||||
(R_B_LABEL_Y(gSaveContext.language) + DO_ACTION_TEX_HEIGHT) << 2, G_TX_RENDERTILE, 0, 0,
|
||||
R_B_LABEL_DD, R_B_LABEL_DD);
|
||||
(R_B_LABEL_Y(gSaveContext.language) + DO_ACTION_TEX_HEIGHT) << 2, G_TX_RENDERTILE,
|
||||
0, 0, R_B_LABEL_DD, R_B_LABEL_DD);
|
||||
}
|
||||
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
@ -3479,8 +3469,8 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
|
||||
for (svar1 = svar2 = 0; svar1 < 4; svar1++) {
|
||||
if (sHBAScoreDigits[svar1] != 0 || (svar2 != 0) || (svar1 >= 3)) {
|
||||
OVERLAY_DISP = Gfx_TextureI8(
|
||||
OVERLAY_DISP, digitTextures[sHBAScoreDigits[svar1]], 8, 16, svar5,
|
||||
OVERLAY_DISP =
|
||||
Gfx_TextureI8(OVERLAY_DISP, digitTextures[sHBAScoreDigits[svar1]], 8, 16, svar5,
|
||||
(ZREG(15) - 2), digitWidth[0], VREG(42), VREG(43) << 1, VREG(43) << 1);
|
||||
svar5 += 9;
|
||||
svar2++;
|
||||
|
@ -3883,19 +3873,21 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
|||
gDPSetCombineLERP(OVERLAY_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE,
|
||||
TEXEL0, 0, PRIMITIVE, 0);
|
||||
|
||||
Color_RGB8 timerColor;
|
||||
if (gSaveContext.timer1State != 0) {
|
||||
if ((gSaveContext.timer1Value < 10) && (gSaveContext.timer1State < 11)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 50, 0, 255);
|
||||
timerColor = *(Color_RGB8*) ResourceMgr_LoadBlobByName(colorTimerCountPanic);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
timerColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTimerCountNormal);
|
||||
}
|
||||
} else {
|
||||
if ((gSaveContext.timer2Value < 10) && (gSaveContext.timer2State < 6)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 50, 0, 255);
|
||||
timerColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTimerCountPanic);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 0, 255);
|
||||
timerColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTimerCountWarning);
|
||||
}
|
||||
}
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, timerColor.r, timerColor.g, timerColor.b, 255);
|
||||
|
||||
for (svar1 = 0; svar1 < 5; svar1++) {
|
||||
// clang-format off
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "objects/object_link_child/object_link_child.h"
|
||||
#include "objects/object_triforce_spot/object_triforce_spot.h"
|
||||
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 flag;
|
||||
|
@ -713,7 +714,7 @@ Gfx* sBootDListGroups[][2] = {
|
|||
void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
|
||||
s32 boots, s32 face, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw,
|
||||
void* data) {
|
||||
Color_RGB8* color;
|
||||
Color_RGB8 color;
|
||||
s32 eyeIndex = (jointTable[22].x & 0xF) - 1;
|
||||
s32 mouthIndex = (jointTable[22].x >> 4) - 1;
|
||||
|
||||
|
@ -744,8 +745,23 @@ void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
|
|||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sMouthTextures[eyeIndex]));
|
||||
#endif
|
||||
|
||||
color = &sTunicColors[tunic];
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, color->r, color->g, color->b, 0);
|
||||
switch (tunic) {
|
||||
case 0:
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTunicKokiri);
|
||||
break;
|
||||
case 1:
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTunicGoron);
|
||||
break;
|
||||
case 2:
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorTunicZora);
|
||||
break;
|
||||
default:
|
||||
color.r = 255;
|
||||
color.g = 255;
|
||||
color.b = 255;
|
||||
break;
|
||||
}
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, color.r, color.g, color.b, 0);
|
||||
|
||||
sDListsLodOffset = lod * 2;
|
||||
|
||||
|
@ -758,8 +774,22 @@ void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
|
|||
if (strengthUpgrade >= 2) { // silver or gold gauntlets
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
|
||||
color = &sGauntletColors[strengthUpgrade - 2];
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, color->r, color->g, color->b, 0);
|
||||
switch (strengthUpgrade) {
|
||||
case 2:
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorGauntletSilver);
|
||||
break;
|
||||
case 3:
|
||||
color = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorGauntletGold);
|
||||
break;
|
||||
default:
|
||||
// Always accesses an out of bounds value
|
||||
// The Colored Gauntlets come from here. In the future, those values should be assetized
|
||||
// And added here so that we don't go out of bounds on this anymore
|
||||
color = sGauntletColors[strengthUpgrade - 2];
|
||||
break; // RBA Lives On
|
||||
}
|
||||
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, color.r, color.g, color.b, 0);
|
||||
|
||||
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultLeftGauntletPlate1DL);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultRightGauntletPlate1DL);
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "objects/object_mastergolon/object_mastergolon.h"
|
||||
#include "objects/object_masterzoora/object_masterzoora.h"
|
||||
#include "objects/object_masterkokirihead/object_masterkokirihead.h"
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4)
|
||||
|
||||
|
@ -1879,17 +1880,19 @@ void EnOssan_UpdateCursorAnim(EnOssan* this) {
|
|||
this->cursorAnimState = 0;
|
||||
}
|
||||
}
|
||||
this->cursorColorR = ColChanMix(0, 0.0f, t);
|
||||
this->cursorColorG = ColChanMix(255, 80.0f, t);
|
||||
this->cursorColorB = ColChanMix(80, 0.0f, t);
|
||||
this->cursorColorA = ColChanMix(255, 0.0f, t);
|
||||
|
||||
Color_RGB8 normalColor = this->cursorColorNormal;
|
||||
Color_RGB8 dimColor = this->cursorColorDim;
|
||||
|
||||
this->cursorColorR = Lerp(normalColor.r, dimColor.r, t);
|
||||
this->cursorColorG = Lerp(normalColor.g, dimColor.g, t);
|
||||
this->cursorColorB = Lerp(normalColor.b, dimColor.b, t);
|
||||
this->cursorColorA = 255;
|
||||
this->cursorAnimTween = t;
|
||||
}
|
||||
|
||||
void EnOssan_UpdateStickDirectionPromptAnim(EnOssan* this) {
|
||||
f32 arrowAnimTween;
|
||||
f32 new_var3; // likely fake temp
|
||||
s32 new_var2 = 255; // likely fake temp
|
||||
f32 stickAnimTween;
|
||||
|
||||
arrowAnimTween = this->arrowAnimTween;
|
||||
|
@ -1922,16 +1925,17 @@ void EnOssan_UpdateStickDirectionPromptAnim(EnOssan* this) {
|
|||
this->stickAnimState = 0;
|
||||
}
|
||||
|
||||
Color_RGB8 arrowNormal = this->arrowColorNormal;
|
||||
Color_RGB8 arrowDim = this->arrowColorDim;
|
||||
this->stickAnimTween = stickAnimTween;
|
||||
this->stickLeftPrompt.arrowColorR = (u8)(255 - ((s32)(155.0f * arrowAnimTween)));
|
||||
this->stickLeftPrompt.arrowColorG = (u8)(new_var2 - (s32)(155.0f * arrowAnimTween));
|
||||
new_var3 = (155.0f * arrowAnimTween);
|
||||
this->stickLeftPrompt.arrowColorB = (u8)(0 - ((s32)((-100.0f) * arrowAnimTween)));
|
||||
this->stickLeftPrompt.arrowColorA = (u8)(200 - ((s32)(50.0f * arrowAnimTween)));
|
||||
this->stickRightPrompt.arrowColorR = (u8)(new_var2 - (s32)new_var3);
|
||||
this->stickRightPrompt.arrowColorG = (u8)(255 - (s32)new_var3);
|
||||
this->stickRightPrompt.arrowColorB = (u8)(0 - ((s32)((-100.0f) * arrowAnimTween)));
|
||||
this->stickRightPrompt.arrowColorA = (u8)(200 - ((s32)(50.0f * arrowAnimTween)));
|
||||
this->stickLeftPrompt.arrowColorR = Lerp(arrowNormal.r, arrowDim.r, arrowAnimTween);
|
||||
this->stickLeftPrompt.arrowColorG = Lerp(arrowNormal.g, arrowDim.g, arrowAnimTween);
|
||||
this->stickLeftPrompt.arrowColorB = Lerp(arrowNormal.b, arrowDim.b, arrowAnimTween);
|
||||
this->stickLeftPrompt.arrowColorA = Lerp(200, 150, arrowAnimTween);
|
||||
this->stickRightPrompt.arrowColorR = Lerp(arrowNormal.r, arrowDim.r, arrowAnimTween);
|
||||
this->stickRightPrompt.arrowColorG = Lerp(arrowNormal.g, arrowDim.g, arrowAnimTween);
|
||||
this->stickRightPrompt.arrowColorB = Lerp(arrowNormal.b, arrowDim.b, arrowAnimTween);
|
||||
this->stickRightPrompt.arrowColorA = Lerp(200, 150, arrowAnimTween);
|
||||
this->stickRightPrompt.arrowTexX = 290.0f;
|
||||
this->stickLeftPrompt.arrowTexX = 33.0f;
|
||||
this->stickRightPrompt.stickTexX = 274.0f;
|
||||
|
@ -2137,11 +2141,17 @@ void EnOssan_InitActionFunc(EnOssan* this, GlobalContext* globalCtx) {
|
|||
this->stateFlag = OSSAN_STATE_IDLE;
|
||||
this->stickAccumX = this->stickAccumY = 0;
|
||||
|
||||
this->cursorColorNormal = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorShopCursorNormal);
|
||||
this->cursorColorDim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorShopCursorDim);
|
||||
this->arrowColorNormal = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorShopArrowNormal);
|
||||
this->arrowColorDim = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorShopArrowDim);
|
||||
Color_RGB8 stickColor = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorShopStick);
|
||||
|
||||
this->cursorIndex = 0;
|
||||
this->cursorZ = 1.5f;
|
||||
this->cursorColorR = 0;
|
||||
this->cursorColorG = 255;
|
||||
this->cursorColorB = 80;
|
||||
this->cursorColorR = this->cursorColorNormal.r;
|
||||
this->cursorColorG = this->cursorColorNormal.g;
|
||||
this->cursorColorB = this->cursorColorNormal.b;
|
||||
this->cursorColorA = 255;
|
||||
this->cursorAnimTween = 0;
|
||||
|
||||
|
@ -2149,30 +2159,30 @@ void EnOssan_InitActionFunc(EnOssan* this, GlobalContext* globalCtx) {
|
|||
this->drawCursor = 0;
|
||||
this->happyMaskShopkeeperEyeIdx = 0;
|
||||
|
||||
this->stickLeftPrompt.stickColorR = 200;
|
||||
this->stickLeftPrompt.stickColorG = 200;
|
||||
this->stickLeftPrompt.stickColorB = 200;
|
||||
this->stickLeftPrompt.stickColorR = stickColor.r;
|
||||
this->stickLeftPrompt.stickColorG = stickColor.g;
|
||||
this->stickLeftPrompt.stickColorB = stickColor.b;
|
||||
this->stickLeftPrompt.stickColorA = 180;
|
||||
this->stickLeftPrompt.stickTexX = 49;
|
||||
this->stickLeftPrompt.stickTexY = 95;
|
||||
this->stickLeftPrompt.arrowColorR = 255;
|
||||
this->stickLeftPrompt.arrowColorG = 255;
|
||||
this->stickLeftPrompt.arrowColorB = 0;
|
||||
this->stickLeftPrompt.arrowColorR = this->arrowColorNormal.r;
|
||||
this->stickLeftPrompt.arrowColorG = this->arrowColorNormal.g;
|
||||
this->stickLeftPrompt.arrowColorB = this->arrowColorNormal.b;
|
||||
this->stickLeftPrompt.arrowColorA = 200;
|
||||
this->stickLeftPrompt.arrowTexX = 33;
|
||||
this->stickLeftPrompt.arrowTexY = 91;
|
||||
this->stickLeftPrompt.z = 1;
|
||||
this->stickLeftPrompt.isEnabled = false;
|
||||
|
||||
this->stickRightPrompt.stickColorR = 200;
|
||||
this->stickRightPrompt.stickColorG = 200;
|
||||
this->stickRightPrompt.stickColorB = 200;
|
||||
this->stickRightPrompt.stickColorR = stickColor.r;
|
||||
this->stickRightPrompt.stickColorG = stickColor.g;
|
||||
this->stickRightPrompt.stickColorB = stickColor.b;
|
||||
this->stickRightPrompt.stickColorA = 180;
|
||||
this->stickRightPrompt.stickTexX = 274;
|
||||
this->stickRightPrompt.stickTexY = 95;
|
||||
this->stickRightPrompt.arrowColorR = 255;
|
||||
this->stickRightPrompt.arrowColorG = 255;
|
||||
this->stickRightPrompt.arrowColorB = 0;
|
||||
this->stickRightPrompt.arrowColorR = this->arrowColorNormal.r;
|
||||
this->stickRightPrompt.arrowColorG = this->arrowColorNormal.g;
|
||||
this->stickRightPrompt.arrowColorB = this->arrowColorNormal.b;
|
||||
this->stickRightPrompt.arrowColorA = 200;
|
||||
this->stickRightPrompt.arrowTexX = 290;
|
||||
this->stickRightPrompt.arrowTexY = 91;
|
||||
|
|
|
@ -31,7 +31,7 @@ typedef struct {
|
|||
/* 0x34 */ s32 isEnabled;
|
||||
} StickDirectionPrompt; // size = 0x38
|
||||
|
||||
#define ColChanMix(c1, c2, m) (c1 - (s32)(c2 * m)) & 0xFF
|
||||
#define Lerp(c1, c2, m) (c1 - (s8)((c1 - c2) * m))
|
||||
|
||||
typedef struct EnOssan {
|
||||
/* 0x0000 */ Actor actor;
|
||||
|
@ -81,7 +81,11 @@ typedef struct EnOssan {
|
|||
/* 0x02CD */ u8 stickAnimState;
|
||||
/* 0x02D0 */ f32 shopItemSelectedTween;
|
||||
/* 0x02D4 */ f32 cameraFaceAngle; // stored in degrees
|
||||
} EnOssan; // size = 0x02D8
|
||||
/* 0x02D8 */ Color_RGB8 arrowColorNormal;
|
||||
/* 0x02F0 */ Color_RGB8 arrowColorDim;
|
||||
/* 0x0308 */ Color_RGB8 cursorColorNormal;
|
||||
/* 0x0320 */ Color_RGB8 cursorColorDim;
|
||||
} EnOssan; // size = 0x0338
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ OSSAN_TYPE_KOKIRI,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "z_kaleido_scope.h"
|
||||
#include "textures/parameter_static/parameter_static.h"
|
||||
#include "textures/icon_item_static/icon_item_static.h"
|
||||
#include <colors/colorPaths.h>
|
||||
|
||||
extern const char* digitTextures[];
|
||||
|
||||
|
@ -467,6 +468,11 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
|||
}
|
||||
}
|
||||
|
||||
Color_RGB8 colorA = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteA);
|
||||
Color_RGB8 colorCUp = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCUp);
|
||||
Color_RGB8 colorCRight = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCRight);
|
||||
Color_RGB8 colorCDown = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCDown);
|
||||
Color_RGB8 colorCLeft = *(Color_RGB8*)ResourceMgr_LoadBlobByName(colorOcarinaNoteCLeft);
|
||||
if (pauseCtx->unk_1E4 == 2) {
|
||||
pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
|
||||
|
||||
|
@ -496,10 +502,24 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
|||
|
||||
gDPPipeSync(POLY_KAL_DISP++);
|
||||
|
||||
if (D_8082A124[sp218] == 0) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 80, 255, 150, D_8082A150[sp218]);
|
||||
} else {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, D_8082A150[sp218]);
|
||||
switch (D_8082A124[sp218]) {
|
||||
case OCARINA_NOTE_A:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorA.r, colorA.g, colorA.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCUp.r, colorCUp.g, colorCUp.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCRight.r, colorCRight.g, colorCRight.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCDown.r, colorCDown.g, colorCDown.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCLeft.r, colorCLeft.g, colorCLeft.b, 200);
|
||||
break;
|
||||
default:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, 200);
|
||||
}
|
||||
|
||||
gDPSetEnvColor(POLY_KAL_DISP++, 10, 10, 10, 0);
|
||||
|
@ -526,9 +546,23 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
|||
gDPPipeSync(POLY_KAL_DISP++);
|
||||
|
||||
if (pauseCtx->unk_1E4 == 8) {
|
||||
if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == 0) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 80, 255, 150, 200);
|
||||
} else {
|
||||
switch (gOcarinaSongNotes[sp224].notesIdx[phi_s3]) {
|
||||
case OCARINA_NOTE_A:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorA.r, colorA.g, colorA.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCUp.r, colorCUp.g, colorCUp.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCRight.r, colorCRight.g, colorCRight.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCDown.r, colorCDown.g, colorCDown.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCLeft.r, colorCLeft.g, colorCLeft.b, 200);
|
||||
break;
|
||||
default:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, 200);
|
||||
}
|
||||
} else {
|
||||
|
@ -581,10 +615,24 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
|||
|
||||
gDPPipeSync(POLY_KAL_DISP++);
|
||||
|
||||
if (D_8082A124[phi_s3] == 0) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 80, 255, 150, D_8082A150[phi_s3]);
|
||||
} else {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, D_8082A150[phi_s3]);
|
||||
switch (D_8082A124[phi_s3]) {
|
||||
case OCARINA_NOTE_A:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorA.r, colorA.g, colorA.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCUp.r, colorCUp.g, colorCUp.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCRight.r, colorCRight.g, colorCRight.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCDown.r, colorCDown.g, colorCDown.b, 200);
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, colorCLeft.r, colorCLeft.g, colorCLeft.b, 200);
|
||||
break;
|
||||
default:
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, 200);
|
||||
}
|
||||
|
||||
gDPSetEnvColor(POLY_KAL_DISP++, 10, 10, 10, 0);
|
||||
|
|
|
@ -144,8 +144,8 @@ void KaleidoScope_DrawEquipment(GlobalContext* globalCtx) {
|
|||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kaleido_equipment.c", 219);
|
||||
|
||||
gDPPipeSync(POLY_KAL_DISP++);
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, ZREG(39), ZREG(40), ZREG(41), pauseCtx->alpha);
|
||||
gDPSetEnvColor(POLY_KAL_DISP++, ZREG(43), ZREG(44), ZREG(45), 0);
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), pauseCtx->alpha);
|
||||
gDPSetEnvColor(POLY_KAL_DISP++, R_B_BTN_COLOR(0), R_B_BTN_COLOR(1), R_B_BTN_COLOR(2), 0);
|
||||
|
||||
for (i = 0, j = 64; i < 4; i++, j += 4) {
|
||||
if (CUR_EQUIP_VALUE(i) != 0) {
|
||||
|
|
Loading…
Reference in New Issue