mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-05-31 09:31:26 -04:00
Merge branch 'develop-zhora' into z-to-rn
This commit is contained in:
+16
-19
@@ -1009,20 +1009,15 @@ void TitleCard_InitPlaceName(GlobalContext* globalCtx, TitleCardContext* titleCt
|
||||
}
|
||||
|
||||
void TitleCard_Update(GlobalContext* globalCtx, TitleCardContext* titleCtx) {
|
||||
s16* TitleCard_Colors[3] = {255,255,255};
|
||||
if (titleCtx->isBossCard && CVar_GetS32("gHudColors", 1) == 2) {//Bosses cards.
|
||||
TitleCard_Colors[0] = CVar_GetS32("gCCTC_B_U_PrimR", 255);
|
||||
TitleCard_Colors[1] = CVar_GetS32("gCCTC_B_U_PrimG", 255);
|
||||
TitleCard_Colors[2] = CVar_GetS32("gCCTC_B_U_PrimB", 255);
|
||||
} else if (!titleCtx->isBossCard && CVar_GetS32("gHudColors", 1) == 2) {
|
||||
TitleCard_Colors[0] = CVar_GetS32("gCCTC_OW_U_PrimR", 255);
|
||||
TitleCard_Colors[1] = CVar_GetS32("gCCTC_OW_U_PrimG", 255);
|
||||
TitleCard_Colors[2] = CVar_GetS32("gCCTC_OW_U_PrimB", 255);
|
||||
} else {
|
||||
TitleCard_Colors[0] = 255;
|
||||
TitleCard_Colors[1] = 255;
|
||||
TitleCard_Colors[2] = 255;
|
||||
}
|
||||
const Color_RGB8 TitleCard_Colors_ori = {255,255,255};
|
||||
Color_RGB8 TitleCard_Colors = {255,255,255};
|
||||
if (titleCtx->isBossCard && CVar_GetS32("gHudColors", 1) == 2) {//Bosses cards.
|
||||
TitleCard_Colors = CVar_GetRGB("gCCTC_B_U_Prim", TitleCard_Colors_ori);
|
||||
} else if (!titleCtx->isBossCard && CVar_GetS32("gHudColors", 1) == 2) {
|
||||
TitleCard_Colors = CVar_GetRGB("gCCTC_OW_U_Prim", TitleCard_Colors_ori);
|
||||
} else {
|
||||
TitleCard_Colors = TitleCard_Colors_ori;
|
||||
}
|
||||
|
||||
if (DECR(titleCtx->delayTimer) == 0) {
|
||||
if (DECR(titleCtx->durationTimer) == 0) {
|
||||
@@ -1032,9 +1027,9 @@ void TitleCard_Update(GlobalContext* globalCtx, TitleCardContext* titleCtx) {
|
||||
Math_StepToS(&titleCtx->intensityB, 0, 70);
|
||||
} else {
|
||||
Math_StepToS(&titleCtx->alpha, 255, 10);
|
||||
Math_StepToS(&titleCtx->intensityR, TitleCard_Colors[0], 20);
|
||||
Math_StepToS(&titleCtx->intensityG, TitleCard_Colors[1], 20);
|
||||
Math_StepToS(&titleCtx->intensityB, TitleCard_Colors[2], 20);
|
||||
Math_StepToS(&titleCtx->intensityR, TitleCard_Colors.r, 20);
|
||||
Math_StepToS(&titleCtx->intensityG, TitleCard_Colors.g, 20);
|
||||
Math_StepToS(&titleCtx->intensityB, TitleCard_Colors.b, 20);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1195,7 +1190,8 @@ void Actor_Init(Actor* actor, GlobalContext* globalCtx) {
|
||||
actor->uncullZoneDownward = 700.0f;
|
||||
if (CVar_GetS32("gDisableDrawDistance", 0) != 0 && actor->id != ACTOR_EN_TORCH2 && actor->id != ACTOR_EN_BLKOBJ // Extra check for Dark Link and his room
|
||||
&& actor->id != ACTOR_EN_HORSE // Check for Epona, else if we call her she will spawn at the other side of the map + we can hear her during the title screen sequence
|
||||
&& actor->id != ACTOR_EN_HORSE_GANON && actor->id != ACTOR_EN_HORSE_ZELDA) { // check for Zelda's and Ganondorf's horses that will always be scene during cinematic whith camera paning
|
||||
&& actor->id != ACTOR_EN_HORSE_GANON && actor->id != ACTOR_EN_HORSE_ZELDA // check for Zelda's and Ganondorf's horses that will always be scene during cinematic whith camera paning
|
||||
&& (globalCtx->sceneNum != SCENE_DDAN && actor->id != ACTOR_EN_ZF)) { // Check for DC and Lizalfos for the case where the miniboss music would still play under certains conditions and changing room
|
||||
actor->uncullZoneForward = 32767.0f;
|
||||
actor->uncullZoneScale = 32767.0f;
|
||||
actor->uncullZoneDownward = 32767.0f;
|
||||
@@ -2840,7 +2836,8 @@ s32 func_800314D4(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, f32 arg3)
|
||||
|
||||
if (CVar_GetS32("gDisableDrawDistance", 0) != 0 && actor->id != ACTOR_EN_TORCH2 && actor->id != ACTOR_EN_BLKOBJ // Extra check for Dark Link and his room
|
||||
&& actor->id != ACTOR_EN_HORSE // Check for Epona, else if we call her she will spawn at the other side of the map + we can hear her during the title screen sequence
|
||||
&& actor->id != ACTOR_EN_HORSE_GANON && actor->id != ACTOR_EN_HORSE_ZELDA) { // check for Zelda's and Ganondorf's horses that will always be scene during cinematic whith camera paning
|
||||
&& actor->id != ACTOR_EN_HORSE_GANON && actor->id != ACTOR_EN_HORSE_ZELDA // check for Zelda's and Ganondorf's horses that will always be scene during cinematic whith camera paning
|
||||
&& (globalCtx->sceneNum != SCENE_DDAN && actor->id != ACTOR_EN_ZF)) { // Check for DC and Lizalfos for the case where the miniboss music would still play under certains conditions and changing room
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1488,8 +1488,8 @@ s32 Camera_Free(Camera* camera) {
|
||||
f32 newCamX = -D_8015BD7C->state.input[0].cur.right_stick_x * 10.0f;
|
||||
f32 newCamY = D_8015BD7C->state.input[0].cur.right_stick_y * 10.0f;
|
||||
|
||||
camera->globalCtx->camX += newCamX;
|
||||
camera->globalCtx->camY += newCamY;
|
||||
camera->globalCtx->camX += newCamX * (CVar_GetS32("gInvertXAxis", 0) ? -1 : 1);
|
||||
camera->globalCtx->camY += newCamY * (CVar_GetS32("gInvertYAxis", 0) ? 1 : -1);
|
||||
|
||||
if (camera->globalCtx->camY > 0x32A4) {
|
||||
camera->globalCtx->camY = 0x32A4;
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "soh/frame_interpolation.h"
|
||||
|
||||
const Color_RGB8 Trails_Color_ori = {255,255,255};
|
||||
|
||||
void EffectBlure_AddVertex(EffectBlure* this, Vec3f* p1, Vec3f* p2) {
|
||||
EffectBlureElement* elem;
|
||||
s32 numElements;
|
||||
@@ -198,6 +200,7 @@ s32 EffectBlure_Update(void* thisx) {
|
||||
s16 GreenColor;
|
||||
s16 BlueColor;
|
||||
s16 TrailDuration;
|
||||
Color_RGB8 Trails_col = CVar_GetRGB("gTrailCol", Trails_Color_ori);
|
||||
|
||||
if (this == NULL) {
|
||||
return 0;
|
||||
@@ -208,16 +211,17 @@ s32 EffectBlure_Update(void* thisx) {
|
||||
}
|
||||
|
||||
if (CVar_GetS32("gUseTrailsCol", 0) !=0) {
|
||||
RedColor = CVar_GetS32("gTrailColR",255);
|
||||
GreenColor = CVar_GetS32("gTrailColG",255);
|
||||
BlueColor = CVar_GetS32("gTrailColB",255);
|
||||
TrailDuration = 4.0f*CVar_GetS32("gTrailDurantion",1);
|
||||
RedColor = Trails_col.r;
|
||||
GreenColor = Trails_col.g;
|
||||
BlueColor = Trails_col.b;
|
||||
TrailDuration = 4.0f * CVar_GetS32("gTrailDurantion",1);
|
||||
} else {
|
||||
RedColor = 255;
|
||||
GreenColor = 255;
|
||||
BlueColor = 255;
|
||||
RedColor = Trails_Color_ori.r;
|
||||
GreenColor = Trails_Color_ori.g;
|
||||
BlueColor = Trails_Color_ori.b;
|
||||
TrailDuration=4.0f;
|
||||
}
|
||||
|
||||
this->p1StartColor.r = RedColor;
|
||||
this->p2StartColor.r = RedColor;
|
||||
this->p1EndColor.r = RedColor;
|
||||
|
||||
@@ -70,6 +70,7 @@ static void* sItemDropTex[] = {
|
||||
gDropRecoveryHeartTex, gDropBombTex, gDropArrows1Tex, gDropArrows2Tex,
|
||||
gDropArrows3Tex, gDropBombTex, gDropDekuNutTex, gDropDekuStickTex,
|
||||
gDropMagicLargeTex, gDropMagicSmallTex, gDropDekuSeedsTex, gDropKeySmallTex,
|
||||
// OTRTODO: use 2D bombchu texture
|
||||
};
|
||||
|
||||
static u8 sItemDropIds[] = {
|
||||
@@ -390,6 +391,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
case ITEM00_RUPEE_ORANGE:
|
||||
case ITEM00_RUPEE_PURPLE:
|
||||
case ITEM00_FLEXIBLE:
|
||||
case ITEM00_BOMBCHU:
|
||||
yOffset = 500.0f;
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
this->scale = 0.01f;
|
||||
@@ -507,6 +509,9 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
case ITEM00_TUNIC_GORON:
|
||||
case ITEM00_BOMBS_SPECIAL:
|
||||
break;
|
||||
case ITEM00_BOMBCHU:
|
||||
Item_Give(globalCtx, ITEM_BOMBCHUS_5);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!Actor_HasParent(&this->actor, globalCtx)) {
|
||||
@@ -537,7 +542,8 @@ void func_8001DFC8(EnItem00* this, GlobalContext* globalCtx) {
|
||||
(this->actor.params == ITEM00_HEART_PIECE)) {
|
||||
this->actor.shape.rot.y += 960;
|
||||
} else {
|
||||
if ((this->actor.params >= ITEM00_SHIELD_DEKU) && (this->actor.params != ITEM00_BOMBS_SPECIAL)) {
|
||||
if ((this->actor.params >= ITEM00_SHIELD_DEKU) && (this->actor.params != ITEM00_BOMBS_SPECIAL) &&
|
||||
(this->actor.params != ITEM00_BOMBCHU)) {
|
||||
if (this->unk_15A == -1) {
|
||||
if (Math_SmoothStepToS(&this->actor.shape.rot.x, this->actor.world.rot.x - 0x4000, 2, 3000, 1500) ==
|
||||
0) {
|
||||
@@ -640,7 +646,8 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) {
|
||||
|
||||
if (this->actor.params <= ITEM00_RUPEE_RED) {
|
||||
this->actor.shape.rot.y += 960;
|
||||
} else if ((this->actor.params >= ITEM00_SHIELD_DEKU) && (this->actor.params != ITEM00_BOMBS_SPECIAL)) {
|
||||
} else if ((this->actor.params >= ITEM00_SHIELD_DEKU) && (this->actor.params != ITEM00_BOMBS_SPECIAL) &&
|
||||
(this->actor.params != ITEM00_BOMBCHU)) {
|
||||
this->actor.world.rot.x -= 700;
|
||||
this->actor.shape.rot.y += 400;
|
||||
this->actor.shape.rot.x = this->actor.world.rot.x - 0x4000;
|
||||
@@ -722,7 +729,8 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnItem00* this = (EnItem00*)thisx;
|
||||
s32 pad;
|
||||
|
||||
if (CVar_GetS32("gNewDrops", 0)) { //set the rotation system on selected model only :)
|
||||
// OTRTODO: remove special case for bombchu when its 2D drop is implemented
|
||||
if (CVar_GetS32("gNewDrops", 0) || this->actor.params == ITEM00_BOMBCHU) { //set the rotation system on selected model only :)
|
||||
if ((this->actor.params == ITEM00_RUPEE_GREEN) || (this->actor.params == ITEM00_RUPEE_BLUE) ||
|
||||
(this->actor.params == ITEM00_RUPEE_RED) || (this->actor.params == ITEM00_ARROWS_SINGLE) ||
|
||||
(this->actor.params == ITEM00_ARROWS_SMALL) || (this->actor.params == ITEM00_ARROWS_MEDIUM) ||
|
||||
@@ -730,7 +738,8 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
(this->actor.params == ITEM00_BOMBS_B) || (this->actor.params == ITEM00_NUTS) ||
|
||||
(this->actor.params == ITEM00_MAGIC_SMALL) || (this->actor.params == ITEM00_SEEDS) ||
|
||||
(this->actor.params == ITEM00_MAGIC_LARGE) || (this->actor.params == ITEM00_HEART) ||
|
||||
(this->actor.params == ITEM00_BOMBS_SPECIAL) || this->actor.params == ITEM00_HEART_PIECE) {
|
||||
(this->actor.params == ITEM00_BOMBS_SPECIAL) || this->actor.params == ITEM00_HEART_PIECE ||
|
||||
(this->actor.params == ITEM00_BOMBCHU)) {
|
||||
this->actor.shape.rot.y += 960;
|
||||
}
|
||||
if (this->actor.params == ITEM00_SMALL_KEY && !gSaveContext.n64ddFlag) {
|
||||
@@ -891,6 +900,9 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
break;
|
||||
case ITEM00_BOMBS_SPECIAL:
|
||||
break;
|
||||
case ITEM00_BOMBCHU:
|
||||
Item_Give(globalCtx, ITEM_BOMBCHUS_5);
|
||||
break;
|
||||
}
|
||||
|
||||
params = &this->actor.params;
|
||||
@@ -1212,6 +1224,15 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnItem00_DrawCollectible(this, globalCtx);
|
||||
break;
|
||||
}
|
||||
case ITEM00_BOMBCHU:
|
||||
// OTRTODO: Stop forcing chu drops to be 3D when the texture is added
|
||||
Actor_SetScale(&this->actor, 0.2f);
|
||||
this->scale = 0.2f;
|
||||
this->actor.shape.yOffset = 50.0f;
|
||||
this->actor.world.rot.x = 0x4000;
|
||||
this->actor.shape.shadowScale = 0.3f;
|
||||
GetItem_Draw(globalCtx, GID_BOMBCHU);
|
||||
break;
|
||||
case ITEM00_SHIELD_DEKU:
|
||||
GetItem_Draw(globalCtx, GID_SHIELD_DEKU);
|
||||
break;
|
||||
@@ -1370,6 +1391,9 @@ void EnItem00_DrawCollectible(EnItem00* this, GlobalContext* globalCtx) {
|
||||
|
||||
if (this->actor.params == ITEM00_BOMBS_SPECIAL) {
|
||||
texIndex = 1;
|
||||
// OTRTODO: 2D bombchu drops
|
||||
//} else if (this->actor.params == ITEM00_BOMBCHU) {
|
||||
// texIndex = 12;
|
||||
} else if (this->actor.params >= ITEM00_ARROWS_SMALL) {
|
||||
texIndex -= 3;
|
||||
}
|
||||
@@ -1435,6 +1459,36 @@ void EnItem00_DrawHeartPiece(EnItem00* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sometimes convert the given drop ID into a bombchu.
|
||||
* Returns the new drop type ID.
|
||||
*/
|
||||
s16 EnItem00_ConvertBombDropToBombchu(s16 dropId) {
|
||||
if (INV_CONTENT(ITEM_BOMBCHU) == ITEM_NONE) {
|
||||
return dropId;
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_BOMB) == ITEM_NONE) {
|
||||
return ITEM00_BOMBCHU;
|
||||
}
|
||||
|
||||
if (AMMO(ITEM_BOMB) <= 15) {
|
||||
// Player needs bombs and might need chus, so drop whichever has less
|
||||
if (AMMO(ITEM_BOMB) <= AMMO(ITEM_BOMBCHU)) {
|
||||
return dropId;
|
||||
} else {
|
||||
return ITEM00_BOMBCHU;
|
||||
}
|
||||
} else {
|
||||
// Player has enough bombs, so drop chus if they need some, else it's 50/50
|
||||
if (AMMO(ITEM_BOMBCHU) <= 15) {
|
||||
return ITEM00_BOMBCHU;
|
||||
} else {
|
||||
return Rand_Next() % 2 ? dropId : ITEM00_BOMBCHU;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a given drop type ID based on link's current age, health and owned items.
|
||||
* Returns a new drop type ID or -1 to cancel the drop.
|
||||
@@ -1452,6 +1506,11 @@ s16 func_8001F404(s16 dropId) {
|
||||
}
|
||||
}
|
||||
|
||||
if (CVar_GetS32("gBombchuDrops", 0) &&
|
||||
(dropId == ITEM00_BOMBS_A || dropId == ITEM00_BOMBS_B || dropId == ITEM00_BOMBS_SPECIAL)) {
|
||||
dropId = EnItem00_ConvertBombDropToBombchu(dropId);
|
||||
}
|
||||
|
||||
// This is convoluted but it seems like it must be a single condition to match
|
||||
// clang-format off
|
||||
if (((dropId == ITEM00_BOMBS_A || dropId == ITEM00_BOMBS_SPECIAL || dropId == ITEM00_BOMBS_B) && INV_CONTENT(ITEM_BOMB) == ITEM_NONE) ||
|
||||
|
||||
+105
-94
@@ -112,9 +112,12 @@ static s16 sHeartsDDEnvFactors[3][3] = {
|
||||
};
|
||||
|
||||
// Current colors for the double defense hearts
|
||||
s16 HeartInner[3] = {HEARTS_PRIM_R,HEARTS_PRIM_G,HEARTS_PRIM_B};
|
||||
s16 HeartDDOutline[3] = {HEARTS_DD_PRIM_R,HEARTS_DD_PRIM_G,HEARTS_DD_PRIM_B};
|
||||
s16 HeartDDInner[3] = {HEARTS_DD_ENV_R,HEARTS_DD_ENV_G,HEARTS_DD_ENV_B};
|
||||
Color_RGB8 HeartInner_ori = {HEARTS_PRIM_R,HEARTS_PRIM_G,HEARTS_PRIM_B};
|
||||
Color_RGB8 HeartDDOutline_ori = {HEARTS_DD_PRIM_R,HEARTS_DD_PRIM_G,HEARTS_DD_PRIM_B};
|
||||
Color_RGB8 HeartDDInner_ori = {HEARTS_DD_ENV_R,HEARTS_DD_ENV_G,HEARTS_DD_ENV_B};
|
||||
Color_RGB8 HeartInner;
|
||||
Color_RGB8 HeartDDOutline;
|
||||
Color_RGB8 HeartDDInner;
|
||||
s16 sBeatingHeartsDDPrim[3];
|
||||
s16 sBeatingHeartsDDEnv[3];
|
||||
s16 sHeartsDDPrim[2][3];
|
||||
@@ -123,19 +126,13 @@ s16 sHeartsDDEnv[2][3];
|
||||
void HealthMeter_Init(GlobalContext* globalCtx) {
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
HeartInner[0] = CVar_GetS32("gCCHeartsPrimR", 90);
|
||||
HeartInner[1] = CVar_GetS32("gCCHeartsPrimG", 90);
|
||||
HeartInner[2] = CVar_GetS32("gCCHeartsPrimB", 90);
|
||||
HeartDDOutline[0] = CVar_GetS32("gDDCCHeartsPrimR", 90);
|
||||
HeartDDOutline[1] = CVar_GetS32("gDDCCHeartsPrimG", 90);
|
||||
HeartDDOutline[2] = CVar_GetS32("gDDCCHeartsPrimB", 90);
|
||||
HeartInner = CVar_GetRGB("gCCHeartsPrim", HeartInner_ori);
|
||||
HeartDDInner = CVar_GetRGB("gCCDDHeartsPrim", HeartDDInner_ori);
|
||||
HeartDDOutline = CVar_GetRGB("gDDCCHeartsPrim", HeartDDOutline_ori);
|
||||
} else {
|
||||
HeartInner[0] = HEARTS_PRIM_R;
|
||||
HeartInner[1] = HEARTS_PRIM_G;
|
||||
HeartInner[2] = HEARTS_PRIM_B;
|
||||
HeartDDOutline[0] = HEARTS_DD_PRIM_R;
|
||||
HeartDDOutline[1] = HEARTS_DD_PRIM_G;
|
||||
HeartDDOutline[2] = HEARTS_DD_PRIM_B;
|
||||
HeartInner = HeartInner_ori;
|
||||
HeartDDInner = HeartDDInner_ori;
|
||||
HeartDDOutline = HeartDDOutline_ori;
|
||||
}
|
||||
|
||||
interfaceCtx->unk_228 = 0x140;
|
||||
@@ -143,33 +140,33 @@ void HealthMeter_Init(GlobalContext* globalCtx) {
|
||||
interfaceCtx->unk_22A = interfaceCtx->unk_1FE = 0;
|
||||
interfaceCtx->unk_22C = interfaceCtx->unk_200 = 0;
|
||||
|
||||
interfaceCtx->heartsPrimR[0] = HeartInner[0];
|
||||
interfaceCtx->heartsPrimG[0] = HeartInner[1];
|
||||
interfaceCtx->heartsPrimB[0] = HeartInner[2];
|
||||
interfaceCtx->heartsPrimR[0] = HeartInner.r;
|
||||
interfaceCtx->heartsPrimG[0] = HeartInner.g;
|
||||
interfaceCtx->heartsPrimB[0] = HeartInner.b;
|
||||
|
||||
interfaceCtx->heartsEnvR[0] = HEARTS_ENV_R;
|
||||
interfaceCtx->heartsEnvG[0] = HEARTS_ENV_G;
|
||||
interfaceCtx->heartsEnvB[0] = HEARTS_ENV_B;
|
||||
|
||||
interfaceCtx->heartsPrimR[1] = HeartInner[0];
|
||||
interfaceCtx->heartsPrimG[1] = HeartInner[1];
|
||||
interfaceCtx->heartsPrimB[1] = HeartInner[2];
|
||||
interfaceCtx->heartsPrimR[1] = HeartInner.r;
|
||||
interfaceCtx->heartsPrimG[1] = HeartInner.g;
|
||||
interfaceCtx->heartsPrimB[1] = HeartInner.b;
|
||||
|
||||
interfaceCtx->heartsEnvR[1] = HEARTS_ENV_R;
|
||||
interfaceCtx->heartsEnvG[1] = HEARTS_ENV_G;
|
||||
interfaceCtx->heartsEnvB[1] = HEARTS_ENV_B;
|
||||
|
||||
sHeartsDDPrim[0][0] = sHeartsDDPrim[1][0] = HeartDDOutline[0];
|
||||
sHeartsDDPrim[0][1] = sHeartsDDPrim[1][1] = HeartDDOutline[1];
|
||||
sHeartsDDPrim[0][2] = sHeartsDDPrim[1][2] = HeartDDOutline[2];
|
||||
sHeartsDDPrim[0][0] = sHeartsDDPrim[1][0] = HeartDDOutline.r;
|
||||
sHeartsDDPrim[0][1] = sHeartsDDPrim[1][1] = HeartDDOutline.b;
|
||||
sHeartsDDPrim[0][2] = sHeartsDDPrim[1][2] = HeartDDOutline.b;
|
||||
|
||||
// sHeartsDDPrim[2][0] = HeartInner[0];
|
||||
// sHeartsDDPrim[2][1] = HeartInner[1];
|
||||
// sHeartsDDPrim[2][2] = HeartInner[2];
|
||||
|
||||
sHeartsDDEnv[0][0] = sHeartsDDEnv[1][0] = HeartDDInner[0];
|
||||
sHeartsDDEnv[0][1] = sHeartsDDEnv[1][1] = HeartDDInner[1];
|
||||
sHeartsDDEnv[0][2] = sHeartsDDEnv[1][2] = HeartDDInner[2];
|
||||
sHeartsDDEnv[0][0] = sHeartsDDEnv[1][0] = HeartDDInner.r;
|
||||
sHeartsDDEnv[0][1] = sHeartsDDEnv[1][1] = HeartDDInner.g;
|
||||
sHeartsDDEnv[0][2] = sHeartsDDEnv[1][2] = HeartDDInner.b;
|
||||
}
|
||||
|
||||
void HealthMeter_Update(GlobalContext* globalCtx) {
|
||||
@@ -188,19 +185,13 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
|
||||
Bottom_LM_Margin = CVar_GetS32("gHUDMargin_B", 0);
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
HeartInner[0] = CVar_GetS32("gCCHeartsPrimR", sHeartsPrimColors[0][0]);
|
||||
HeartInner[1] = CVar_GetS32("gCCHeartsPrimG", sHeartsPrimColors[0][1]);
|
||||
HeartInner[2] = CVar_GetS32("gCCHeartsPrimB", sHeartsPrimColors[0][2]);
|
||||
HeartDDOutline[0] = CVar_GetS32("gDDCCHeartsPrimR", sHeartsDDPrim[0][0]);
|
||||
HeartDDOutline[1] = CVar_GetS32("gDDCCHeartsPrimG", sHeartsDDPrim[0][1]);
|
||||
HeartDDOutline[2] = CVar_GetS32("gDDCCHeartsPrimB", sHeartsDDPrim[0][2]);
|
||||
HeartInner = CVar_GetRGB("gCCHeartsPrim", HeartInner_ori);
|
||||
HeartDDInner = CVar_GetRGB("gCCDDHeartsPrim", HeartDDInner_ori);
|
||||
HeartDDOutline = CVar_GetRGB("gDDCCHeartsPrim", HeartDDOutline_ori);
|
||||
} else {
|
||||
HeartInner[0] = HEARTS_PRIM_R;
|
||||
HeartInner[1] = HEARTS_PRIM_G;
|
||||
HeartInner[2] = HEARTS_PRIM_B;
|
||||
HeartDDOutline[0] = HEARTS_DD_PRIM_R;
|
||||
HeartDDOutline[1] = HEARTS_DD_PRIM_G;
|
||||
HeartDDOutline[2] = HEARTS_DD_PRIM_B;
|
||||
HeartInner = HeartInner_ori;
|
||||
HeartDDInner = HeartDDInner_ori;
|
||||
HeartDDOutline = HeartDDOutline_ori;
|
||||
}
|
||||
|
||||
if (interfaceCtx->unk_200 != 0) {
|
||||
@@ -219,18 +210,18 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
|
||||
|
||||
ddFactor = factor;
|
||||
|
||||
interfaceCtx->heartsPrimR[0] = HeartInner[0];
|
||||
interfaceCtx->heartsPrimG[0] = HeartInner[1];
|
||||
interfaceCtx->heartsPrimB[0] = HeartInner[2];
|
||||
interfaceCtx->heartsPrimR[0] = HeartInner.r;
|
||||
interfaceCtx->heartsPrimG[0] = HeartInner.g;
|
||||
interfaceCtx->heartsPrimB[0] = HeartInner.b;
|
||||
|
||||
interfaceCtx->heartsEnvR[0] = HEARTS_ENV_R;
|
||||
interfaceCtx->heartsEnvG[0] = HEARTS_ENV_G;
|
||||
interfaceCtx->heartsEnvB[0] = HEARTS_ENV_B;
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
interfaceCtx->heartsPrimR[1] = HeartInner[0];
|
||||
interfaceCtx->heartsPrimG[1] = HeartInner[1];
|
||||
interfaceCtx->heartsPrimB[1] = HeartInner[2];
|
||||
interfaceCtx->heartsPrimR[1] = HeartInner.r;
|
||||
interfaceCtx->heartsPrimG[1] = HeartInner.g;
|
||||
interfaceCtx->heartsPrimB[1] = HeartInner.b;
|
||||
} else {
|
||||
interfaceCtx->heartsPrimR[1] = sHeartsPrimColors[type][0];
|
||||
interfaceCtx->heartsPrimG[1] = sHeartsPrimColors[type][1];
|
||||
@@ -245,9 +236,9 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
|
||||
gFactor = sHeartsPrimFactors[0][1] * factor;
|
||||
bFactor = sHeartsPrimFactors[0][2] * factor;
|
||||
|
||||
interfaceCtx->beatingHeartPrim[0] = (u8)(rFactor + HeartInner[0]) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[1] = (u8)(gFactor + HeartInner[1]) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[2] = (u8)(bFactor + HeartInner[2]) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[0] = (u8)(rFactor + HeartInner.r) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[1] = (u8)(gFactor + HeartInner.g) & 0xFF;
|
||||
interfaceCtx->beatingHeartPrim[2] = (u8)(bFactor + HeartInner.b) & 0xFF;
|
||||
|
||||
rFactor = sHeartsEnvFactors[0][0] * factor;
|
||||
gFactor = sHeartsEnvFactors[0][1] * factor;
|
||||
@@ -259,50 +250,48 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
|
||||
|
||||
ddType = type;
|
||||
|
||||
sHeartsDDPrim[0][0] = HeartDDOutline[0];
|
||||
sHeartsDDPrim[0][1] = HeartDDOutline[1];
|
||||
sHeartsDDPrim[0][2] = HeartDDOutline[2];
|
||||
sHeartsDDPrim[0][0] = HeartDDOutline.r;
|
||||
sHeartsDDPrim[0][1] = HeartDDOutline.g;
|
||||
sHeartsDDPrim[0][2] = HeartDDOutline.b;
|
||||
|
||||
sHeartsDDEnv[0][0] = HeartDDInner[0];
|
||||
sHeartsDDEnv[0][1] = HeartDDInner[1];
|
||||
sHeartsDDEnv[0][2] = HeartDDInner[2];
|
||||
sHeartsDDEnv[0][0] = HeartDDInner.r;
|
||||
sHeartsDDEnv[0][1] = HeartDDInner.g;
|
||||
sHeartsDDEnv[0][2] = HeartDDInner.b;
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
sHeartsDDPrim[2][0] = CVar_GetS32("gCCDDHeartsPrimR", 255);
|
||||
sHeartsDDPrim[2][1] = CVar_GetS32("gCCDDHeartsPrimG", 70);
|
||||
sHeartsDDPrim[2][2] = CVar_GetS32("gCCDDHeartsPrimB", 50);
|
||||
sHeartsDDPrim[2][0] = HeartDDInner.r;
|
||||
sHeartsDDPrim[2][1] = HeartDDInner.g;
|
||||
sHeartsDDPrim[2][2] = HeartDDInner.b;
|
||||
|
||||
sHeartsDDPrim[1][0] = HeartDDOutline[0];
|
||||
sHeartsDDPrim[1][1] = HeartDDOutline[1];
|
||||
sHeartsDDPrim[1][2] = HeartDDOutline[2];
|
||||
sHeartsDDPrim[1][0] = HeartDDOutline.r;
|
||||
sHeartsDDPrim[1][1] = HeartDDOutline.g;
|
||||
sHeartsDDPrim[1][2] = HeartDDOutline.b;
|
||||
|
||||
sHeartsDDEnv[1][0] = CVar_GetS32("gCCDDHeartsPrimR", 255);
|
||||
sHeartsDDEnv[1][1] = CVar_GetS32("gCCDDHeartsPrimG", 70);
|
||||
sHeartsDDEnv[1][2] = CVar_GetS32("gCCDDHeartsPrimB", 50);
|
||||
sHeartsDDEnv[1][0] = HeartDDInner.r;
|
||||
sHeartsDDEnv[1][1] = HeartDDInner.g;
|
||||
sHeartsDDEnv[1][2] = HeartDDInner.b;
|
||||
|
||||
HeartDDInner[0] = CVar_GetS32("gCCDDHeartsPrimR", 255);
|
||||
HeartDDInner[1] = CVar_GetS32("gCCDDHeartsPrimG", 70);
|
||||
HeartDDInner[2] = CVar_GetS32("gCCDDHeartsPrimB", 50);
|
||||
HeartDDInner = CVar_GetRGB("gCCDDHeartsPrim", HeartDDInner_ori);
|
||||
|
||||
sHeartsDDEnv[0][0] = CVar_GetS32("gCCDDHeartsPrimR", 255);
|
||||
sHeartsDDEnv[0][1] = CVar_GetS32("gCCDDHeartsPrimG", 70);
|
||||
sHeartsDDEnv[0][2] = CVar_GetS32("gCCDDHeartsPrimB", 0);
|
||||
sHeartsDDEnv[0][0] = HeartDDInner.r;
|
||||
sHeartsDDEnv[0][1] = HeartDDInner.g;
|
||||
sHeartsDDEnv[0][2] = HeartDDInner.b;
|
||||
|
||||
rFactor = sHeartsDDPrimFactors[ddType][0] * ddFactor;
|
||||
gFactor = sHeartsDDPrimFactors[ddType][1] * ddFactor;
|
||||
bFactor = sHeartsDDPrimFactors[ddType][2] * ddFactor;
|
||||
|
||||
sBeatingHeartsDDPrim[0] = (u8)(rFactor + HeartDDOutline[0]) & 0xFF;
|
||||
sBeatingHeartsDDPrim[1] = (u8)(gFactor + HeartDDOutline[1]) & 0xFF;
|
||||
sBeatingHeartsDDPrim[2] = (u8)(bFactor + HeartDDOutline[2]) & 0xFF;
|
||||
sBeatingHeartsDDPrim[0] = (u8)(rFactor + HeartDDOutline.r) & 0xFF;
|
||||
sBeatingHeartsDDPrim[1] = (u8)(gFactor + HeartDDOutline.g) & 0xFF;
|
||||
sBeatingHeartsDDPrim[2] = (u8)(bFactor + HeartDDOutline.b) & 0xFF;
|
||||
|
||||
rFactor = sHeartsDDEnvFactors[ddType][0] * ddFactor;
|
||||
gFactor = sHeartsDDEnvFactors[ddType][1] * ddFactor;
|
||||
bFactor = sHeartsDDEnvFactors[ddType][2] * ddFactor;
|
||||
|
||||
sBeatingHeartsDDEnv[0] = (u8)(rFactor + HeartDDInner[0]) & 0xFF;
|
||||
sBeatingHeartsDDEnv[1] = (u8)(gFactor + HeartDDInner[1]) & 0xFF;
|
||||
sBeatingHeartsDDEnv[2] = (u8)(bFactor + HeartDDInner[2]) & 0xFF;
|
||||
sBeatingHeartsDDEnv[0] = (u8)(rFactor + HeartDDInner.r) & 0xFF;
|
||||
sBeatingHeartsDDEnv[1] = (u8)(gFactor + HeartDDInner.g) & 0xFF;
|
||||
sBeatingHeartsDDEnv[2] = (u8)(bFactor + HeartDDInner.b) & 0xFF;
|
||||
} else {
|
||||
sHeartsDDPrim[0][0] = HEARTS_DD_PRIM_R;
|
||||
sHeartsDDPrim[0][1] = HEARTS_DD_PRIM_G;
|
||||
@@ -413,6 +402,12 @@ void HealthMeter_Draw(GlobalContext* globalCtx) {
|
||||
s32 curCombineModeSet = 0;
|
||||
u8* curBgImgLoaded = NULL;
|
||||
s32 ddHeartCountMinusOne = gSaveContext.inventory.defenseHearts - 1;
|
||||
float HeartsScale = 0.7f;
|
||||
if (CVar_GetS32("gHeartsCountPosType", 0) != 0) {
|
||||
HeartsScale = CVar_GetFloat("gHeartsCountScale", 0.7f);
|
||||
}
|
||||
static u32 epoch = 0;
|
||||
epoch++;
|
||||
|
||||
OPEN_DISPS(gfxCtx);
|
||||
|
||||
@@ -433,14 +428,14 @@ void HealthMeter_Draw(GlobalContext* globalCtx) {
|
||||
s16 PosX_original = OTRGetDimensionFromLeftEdge(0.0f)+X_Margins;
|
||||
s16 PosY_original = 0.0f+Y_Margins;
|
||||
if (CVar_GetS32("gHeartsCountPosType", 0) != 0) {
|
||||
offsetY = CVar_GetS32("gHeartsPosY", 0)+Y_Margins;
|
||||
offsetY = CVar_GetS32("gHeartsCountPosY", 0)+Y_Margins+(HeartsScale*15);
|
||||
if (CVar_GetS32("gHeartsCountPosType", 0) == 1) {//Anchor Left
|
||||
offsetX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gHeartsPosX", 0)+X_Margins);
|
||||
offsetX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gHeartsCountPosX", 0)+X_Margins+70.0f);
|
||||
} else if (CVar_GetS32("gHeartsCountPosType", 0) == 2) {//Anchor Right
|
||||
X_Margins = Right_LM_Margin;
|
||||
offsetX = OTRGetDimensionFromRightEdge(CVar_GetS32("gHeartsPosX", 0)+X_Margins);
|
||||
offsetX = OTRGetDimensionFromRightEdge(CVar_GetS32("gHeartsCountPosX", 0)+X_Margins+70.0f);
|
||||
} else if (CVar_GetS32("gHeartsCountPosType", 0) == 3) {//Anchor None
|
||||
offsetX = CVar_GetS32("gHeartsPosX", 0);
|
||||
offsetX = CVar_GetS32("gHeartsCountPosX", 0)+70.0f;
|
||||
} else if (CVar_GetS32("gHeartsCountPosType", 0) == 4) {//Hidden
|
||||
offsetX = -9999;
|
||||
}
|
||||
@@ -568,16 +563,27 @@ void HealthMeter_Draw(GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
temp3 = 26.0f + offsetY;
|
||||
temp2 = 30.0f + offsetX;
|
||||
temp4 = 1.0f;
|
||||
temp4 /= 0.68f;
|
||||
temp3 = offsetY;
|
||||
temp2 = offsetX;
|
||||
temp4 = 1.0f;//Heart texture size
|
||||
temp4 /= 0.68f; //Hearts Scaled size
|
||||
temp4 *= 1 << 10;
|
||||
temp1 = 8.0f;
|
||||
temp1 *= 0.68f;
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, (s32)((temp2 - temp1) * 4), (s32)((temp3 - temp1) * 4),
|
||||
/*gSPWideTextureRectangle(OVERLAY_DISP++, (s32)((temp2 - temp1) * 4), (s32)((temp3 - temp1) * 4),
|
||||
(s32)((temp2 + temp1) * 4), (s32)((temp3 + temp1) * 4), G_TX_RENDERTILE, 0, 0,
|
||||
(s32)temp4, (s32)temp4);
|
||||
(s32)temp4, (s32)temp4);*/
|
||||
Mtx* matrix = Graph_Alloc(gfxCtx, sizeof(Mtx));
|
||||
Matrix_SetTranslateScaleMtx2(matrix,
|
||||
HeartsScale, //Scale X
|
||||
HeartsScale, //Scale Y
|
||||
HeartsScale, //Scale Z
|
||||
-130+offsetX, //Pos X
|
||||
(-94+offsetY) *-1, //Pos Y
|
||||
0.0f); //Pos Z
|
||||
gSPMatrix(OVERLAY_DISP++, matrix, G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPVertex(OVERLAY_DISP++, sp154, 4, 0);
|
||||
gSP1Quadrangle(OVERLAY_DISP++, 0, 2, 3, 1, 0);
|
||||
} else {
|
||||
if ((ddHeartCountMinusOne < 0) || (i > ddHeartCountMinusOne)) {
|
||||
if (curCombineModeSet != 2) {
|
||||
@@ -597,28 +603,33 @@ void HealthMeter_Draw(GlobalContext* globalCtx) {
|
||||
|
||||
{
|
||||
Mtx* matrix = Graph_Alloc(gfxCtx, sizeof(Mtx));
|
||||
Matrix_SetTranslateScaleMtx2(matrix, 1.0f - (0.32f * sp144), 1.0f - (0.32f * sp144),
|
||||
1.0f - (0.32f * sp144), -130.0f + offsetX,
|
||||
94.5f - offsetY, 0.0f);
|
||||
Matrix_SetTranslateScaleMtx2(matrix,
|
||||
HeartsScale+(HeartsScale/3) - ((HeartsScale/3) * sp144),
|
||||
HeartsScale+(HeartsScale/3) - ((HeartsScale/3) * sp144),
|
||||
HeartsScale+(HeartsScale/3) - ((HeartsScale/3) * sp144),
|
||||
-130+offsetX, //Pos X
|
||||
(-94+offsetY) *-1, //Pos Y
|
||||
0.0f);
|
||||
gSPMatrix(OVERLAY_DISP++, matrix, G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPVertex(OVERLAY_DISP++, sp154, 4, 0);
|
||||
gSP1Quadrangle(OVERLAY_DISP++, 0, 2, 3, 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
offsetX += 10.0f;
|
||||
//offsetX += 10.0f;
|
||||
offsetX += (HeartsScale*14.5f);
|
||||
if (i == 9) {
|
||||
PosX_original = OTRGetDimensionFromLeftEdge(0.0f)+X_Margins;
|
||||
PosY_original = 10.0f+Y_Margins;
|
||||
PosY_original = (HeartsScale*15)+Y_Margins;
|
||||
if (CVar_GetS32("gHeartsCountPosType", 0) != 0) {
|
||||
offsetY = CVar_GetS32("gHeartsPosY", 0)+Y_Margins+10.0f;
|
||||
offsetY = CVar_GetS32("gHeartsCountPosY", 0)+((HeartsScale*15)*2)+Y_Margins;
|
||||
if (CVar_GetS32("gHeartsCountPosType", 0) == 1) {//Anchor Left
|
||||
offsetX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gHeartsPosX", 0)+X_Margins);
|
||||
offsetX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gHeartsCountPosX", 0)+X_Margins+70.0f);
|
||||
} else if (CVar_GetS32("gHeartsCountPosType", 0) == 2) {//Anchor Right
|
||||
X_Margins = Right_LM_Margin;
|
||||
offsetX = OTRGetDimensionFromRightEdge(CVar_GetS32("gHeartsPosX", 0)+X_Margins);
|
||||
offsetX = OTRGetDimensionFromRightEdge(CVar_GetS32("gHeartsCountPosX", 0)+X_Margins+70.0f);
|
||||
} else if (CVar_GetS32("gHeartsCountPosType", 0) == 3) {//Anchor None
|
||||
offsetX = CVar_GetS32("gHeartsPosX", 0);
|
||||
offsetX = CVar_GetS32("gHeartsCountPosX", 0)+70.0f;
|
||||
} else if (CVar_GetS32("gHeartsCountPosType", 0) == 4) {//Hidden
|
||||
offsetX = -9999;
|
||||
}
|
||||
|
||||
@@ -601,6 +601,8 @@ void Minimap_DrawCompassIcons(GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
s16 tempX, tempZ;
|
||||
const Color_RGB8 LastEntrance_arrow = { 200, 0, 0 };
|
||||
const Color_RGB8 CurrentPosition_arrow = { 200, 255, 0 };
|
||||
s16 X_Margins_Minimap;
|
||||
s16 Y_Margins_Minimap;
|
||||
if (CVar_GetS32("gMinimapUseMargins", 0) != 0) {
|
||||
@@ -658,9 +660,9 @@ void Minimap_DrawCompassIcons(GlobalContext* globalCtx) {
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, CVar_GetS32("gCCMinimapCPPrimR", 200), CVar_GetS32("gCCMinimapCPPrimG", 255), CVar_GetS32("gCCMinimapCPPrimB", 0), 255);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, CVar_GetRGB("gCCMinimapCPPrim", CurrentPosition_arrow).r, CVar_GetRGB("gCCMinimapCPPrim", CurrentPosition_arrow).g, CVar_GetRGB("gCCMinimapCPPrim", CurrentPosition_arrow).b, 255);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, 200, 255, 0, 255);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, CurrentPosition_arrow.r, CurrentPosition_arrow.g, CurrentPosition_arrow.b, 255);
|
||||
}
|
||||
gSPDisplayList(OVERLAY_DISP++, gCompassArrowDL);
|
||||
|
||||
@@ -699,9 +701,9 @@ void Minimap_DrawCompassIcons(GlobalContext* globalCtx) {
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, CVar_GetS32("gCCMinimapLEPrimR", 200), CVar_GetS32("gCCMinimapLEPrimG", 0), CVar_GetS32("gCCMinimapLEPrimB", 0), 255);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, CVar_GetRGB("gCCMinimapLEPrim", LastEntrance_arrow).r,CVar_GetRGB("gCCMinimapLEPrim", LastEntrance_arrow).g,CVar_GetRGB("gCCMinimapLEPrim", LastEntrance_arrow).b, 255);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, 200, 0, 0, 255);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, LastEntrance_arrow.r, LastEntrance_arrow.g, LastEntrance_arrow.b, 255);
|
||||
}
|
||||
gSPDisplayList(OVERLAY_DISP++, gCompassArrowDL);
|
||||
}
|
||||
@@ -713,6 +715,8 @@ void Minimap_Draw(GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
s32 mapIndex = gSaveContext.mapIndex;
|
||||
const Color_RGB8 Dungeon_minimap = {100, 255, 255};
|
||||
const Color_RGB8 Overworld_minimap = {R_MINIMAP_COLOR(0), R_MINIMAP_COLOR(1), R_MINIMAP_COLOR(2)};
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
|
||||
@@ -751,9 +755,9 @@ void Minimap_Draw(GlobalContext* globalCtx) {
|
||||
|
||||
if (CHECK_DUNGEON_ITEM(DUNGEON_MAP, mapIndex)) {
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) { //Dungeon minimap
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCMinimapDGNPrimR", R_MINIMAP_COLOR(0)), CVar_GetS32("gCCMinimapDGNPrimG", R_MINIMAP_COLOR(1)), CVar_GetS32("gCCMinimapDGNPrimB", R_MINIMAP_COLOR(2)), interfaceCtx->minimapAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCMinimapDGNPrim", Dungeon_minimap).r,CVar_GetRGB("gCCMinimapDGNPrim", Dungeon_minimap).g,CVar_GetRGB("gCCMinimapDGNPrim", Dungeon_minimap).b, interfaceCtx->minimapAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 100, 255, 255, interfaceCtx->minimapAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, Dungeon_minimap.r, Dungeon_minimap.g, Dungeon_minimap.b, interfaceCtx->minimapAlpha);
|
||||
}
|
||||
|
||||
gSPInvalidateTexCache(OVERLAY_DISP++, interfaceCtx->mapSegment);
|
||||
@@ -826,9 +830,9 @@ void Minimap_Draw(GlobalContext* globalCtx) {
|
||||
|
||||
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {//Overworld minimap
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCMinimapPrimR", R_MINIMAP_COLOR(0)), CVar_GetS32("gCCMinimapPrimG", R_MINIMAP_COLOR(1)), CVar_GetS32("gCCMinimapPrimB", R_MINIMAP_COLOR(2)), interfaceCtx->minimapAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCMinimapPrim", Overworld_minimap).r,CVar_GetRGB("gCCMinimapPrim", Overworld_minimap).g,CVar_GetRGB("gCCMinimapPrim", Overworld_minimap).b, interfaceCtx->minimapAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_MINIMAP_COLOR(0), R_MINIMAP_COLOR(1), R_MINIMAP_COLOR(2), interfaceCtx->minimapAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, Overworld_minimap.r, Overworld_minimap.g, Overworld_minimap.b, interfaceCtx->minimapAlpha);
|
||||
}
|
||||
|
||||
gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegment, G_IM_FMT_IA,
|
||||
@@ -858,7 +862,7 @@ void Minimap_Draw(GlobalContext* globalCtx) {
|
||||
0, 1 << 10, 1 << 10);
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) != 2) {//This need to be added else it will color dungeon entrance icon too. (it re-init prim color to default color)
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_MINIMAP_COLOR(0), R_MINIMAP_COLOR(1), R_MINIMAP_COLOR(2), interfaceCtx->minimapAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, Overworld_minimap.r, Overworld_minimap.g, Overworld_minimap.b, interfaceCtx->minimapAlpha);
|
||||
}
|
||||
|
||||
if (((globalCtx->sceneNum != SCENE_SPOT01) && (globalCtx->sceneNum != SCENE_SPOT04) &&
|
||||
|
||||
+312
-198
@@ -166,9 +166,8 @@ 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 = {255,255,255};
|
||||
static Color_RGB8 sMagicBorder_ori = {255,255,255};
|
||||
|
||||
static s16 sExtraItemBases[] = {
|
||||
ITEM_STICK, ITEM_STICK, ITEM_NUT, ITEM_NUT, ITEM_BOMB, ITEM_BOMB, ITEM_BOMB, ITEM_BOMB, ITEM_BOW,
|
||||
@@ -2964,23 +2963,27 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
||||
{ 255, 255, 150 },
|
||||
{ 255, 255, 50 },
|
||||
};
|
||||
Color_RGB8 MagicBorder_0 = { 255, 255, 255 };
|
||||
Color_RGB8 MagicBorder_1 = { 150, 150, 150 };
|
||||
Color_RGB8 MagicBorder_2 = { 255, 255, 150 };
|
||||
Color_RGB8 MagicBorder_3 = { 255, 255, 50 };
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) { //This will make custom color based on users selected colors.
|
||||
sMagicBorderColors[0][0] = CVar_GetS32("gCCMagicBorderPrimR", 255);
|
||||
sMagicBorderColors[0][1] = CVar_GetS32("gCCMagicBorderPrimG", 255);
|
||||
sMagicBorderColors[0][2] = CVar_GetS32("gCCMagicBorderPrimB", 255);
|
||||
sMagicBorderColors[0][0] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_0).r;
|
||||
sMagicBorderColors[0][1] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_0).g;
|
||||
sMagicBorderColors[0][2] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_0).b;
|
||||
|
||||
sMagicBorderColors[1][0] = CVar_GetS32("gCCMagicBorderPrimR", 255)/2;
|
||||
sMagicBorderColors[1][1] = CVar_GetS32("gCCMagicBorderPrimG", 255)/2;
|
||||
sMagicBorderColors[1][2] = CVar_GetS32("gCCMagicBorderPrimB", 255)/2;
|
||||
sMagicBorderColors[1][0] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_1).r/2;
|
||||
sMagicBorderColors[1][1] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_1).g/2;
|
||||
sMagicBorderColors[1][2] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_1).b/2;
|
||||
|
||||
sMagicBorderColors[2][0] = CVar_GetS32("gCCMagicBorderPrimR", 255)/3;
|
||||
sMagicBorderColors[2][1] = CVar_GetS32("gCCMagicBorderPrimG", 255)/3;
|
||||
sMagicBorderColors[2][2] = CVar_GetS32("gCCMagicBorderPrimB", 255)/3;
|
||||
sMagicBorderColors[2][0] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_2).r/2.5;
|
||||
sMagicBorderColors[2][1] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_2).g/2.5;
|
||||
sMagicBorderColors[2][2] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_2).b/2.5;
|
||||
|
||||
sMagicBorderColors[3][0] = CVar_GetS32("gCCMagicBorderPrimR", 255)/2;
|
||||
sMagicBorderColors[3][1] = CVar_GetS32("gCCMagicBorderPrimG", 255)/2;
|
||||
sMagicBorderColors[3][2] = CVar_GetS32("gCCMagicBorderPrimB", 255)/2;
|
||||
sMagicBorderColors[3][0] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_3).r/3;
|
||||
sMagicBorderColors[3][1] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_3).g/3;
|
||||
sMagicBorderColors[3][2] = CVar_GetRGB("gCCMagicBorderPrim", MagicBorder_3).b/3;
|
||||
}
|
||||
|
||||
static s16 sMagicBorderIndexes[] = { 0, 1, 1, 0 };
|
||||
@@ -3041,53 +3044,49 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
||||
gSaveContext.magic = 0;
|
||||
gSaveContext.unk_13F0 = 3;
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
|
||||
sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
|
||||
sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
|
||||
sMagicBorder = CVar_GetRGB("gCCMagicBorderNormPrim", sMagicBorder_ori);
|
||||
} else {
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = sMagicBorder_ori;
|
||||
}
|
||||
} else if (gSaveContext.magic == gSaveContext.unk_13F8) {
|
||||
gSaveContext.unk_13F0 = 3;
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
|
||||
sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
|
||||
sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
|
||||
sMagicBorder = CVar_GetRGB("gCCMagicBorderNormPrim", sMagicBorder_ori);
|
||||
} else {
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = sMagicBorder_ori;
|
||||
}
|
||||
}
|
||||
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;
|
||||
borderChangeR = ABS(sMagicBorder.r - sMagicBorderColors[temp][0]) / sMagicBorderRatio;
|
||||
borderChangeG = ABS(sMagicBorder.g - sMagicBorderColors[temp][1]) / sMagicBorderRatio;
|
||||
borderChangeB = ABS(sMagicBorder.b - sMagicBorderColors[temp][2]) / sMagicBorderRatio;
|
||||
|
||||
if (sMagicBorderR >= sMagicBorderColors[temp][0]) {
|
||||
sMagicBorderR -= borderChangeR;
|
||||
if (sMagicBorder.r >= sMagicBorderColors[temp][0]) {
|
||||
sMagicBorder.r -= borderChangeR;
|
||||
} else {
|
||||
sMagicBorderR += borderChangeR;
|
||||
sMagicBorder.r += borderChangeR;
|
||||
}
|
||||
|
||||
if (sMagicBorderG >= sMagicBorderColors[temp][1]) {
|
||||
sMagicBorderG -= borderChangeG;
|
||||
if (sMagicBorder.g >= sMagicBorderColors[temp][1]) {
|
||||
sMagicBorder.g -= borderChangeG;
|
||||
} else {
|
||||
sMagicBorderG += borderChangeG;
|
||||
sMagicBorder.g += borderChangeG;
|
||||
}
|
||||
|
||||
if (sMagicBorderB >= sMagicBorderColors[temp][2]) {
|
||||
sMagicBorderB -= borderChangeB;
|
||||
if (sMagicBorder.b >= sMagicBorderColors[temp][2]) {
|
||||
sMagicBorder.b -= borderChangeB;
|
||||
} else {
|
||||
sMagicBorderB += borderChangeB;
|
||||
sMagicBorder.b += borderChangeB;
|
||||
}
|
||||
|
||||
sMagicBorderRatio--;
|
||||
if (sMagicBorderRatio == 0) {
|
||||
sMagicBorderR = sMagicBorderColors[temp][0];
|
||||
sMagicBorderG = sMagicBorderColors[temp][1];
|
||||
sMagicBorderB = sMagicBorderColors[temp][2];
|
||||
sMagicBorder.r = sMagicBorderColors[temp][0];
|
||||
sMagicBorder.g = sMagicBorderColors[temp][1];
|
||||
sMagicBorder.b = sMagicBorderColors[temp][2];
|
||||
sMagicBorderRatio = YREG(40 + sMagicBorderStep);
|
||||
sMagicBorderStep++;
|
||||
if (sMagicBorderStep >= 4) {
|
||||
@@ -3098,11 +3097,9 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
||||
|
||||
case 5:
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
|
||||
sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
|
||||
sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
|
||||
sMagicBorder = CVar_GetRGB("gCCMagicBorderNormPrim", sMagicBorder_ori);
|
||||
} else {
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = sMagicBorder_ori;
|
||||
}
|
||||
gSaveContext.unk_13F0 = 0;
|
||||
break;
|
||||
@@ -3126,11 +3123,9 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
||||
&D_801333E8);
|
||||
gSaveContext.unk_13F0 = 0;
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
|
||||
sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
|
||||
sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
|
||||
sMagicBorder = CVar_GetRGB("gCCMagicBorderNormPrim", sMagicBorder_ori);
|
||||
} else {
|
||||
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
|
||||
sMagicBorder = sMagicBorder_ori;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3143,33 +3138,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;
|
||||
borderChangeR = ABS(sMagicBorder.r - sMagicBorderColors[temp][0]) / sMagicBorderRatio;
|
||||
borderChangeG = ABS(sMagicBorder.g - sMagicBorderColors[temp][1]) / sMagicBorderRatio;
|
||||
borderChangeB = ABS(sMagicBorder.b - sMagicBorderColors[temp][2]) / sMagicBorderRatio;
|
||||
|
||||
if (sMagicBorderR >= sMagicBorderColors[temp][0]) {
|
||||
sMagicBorderR -= borderChangeR;
|
||||
if (sMagicBorder.r >= sMagicBorderColors[temp][0]) {
|
||||
sMagicBorder.r -= borderChangeR;
|
||||
} else {
|
||||
sMagicBorderR += borderChangeR;
|
||||
sMagicBorder.r += borderChangeR;
|
||||
}
|
||||
|
||||
if (sMagicBorderG >= sMagicBorderColors[temp][1]) {
|
||||
sMagicBorderG -= borderChangeG;
|
||||
if (sMagicBorder.g >= sMagicBorderColors[temp][1]) {
|
||||
sMagicBorder.g -= borderChangeG;
|
||||
} else {
|
||||
sMagicBorderG += borderChangeG;
|
||||
sMagicBorder.g += borderChangeG;
|
||||
}
|
||||
|
||||
if (sMagicBorderB >= sMagicBorderColors[temp][2]) {
|
||||
sMagicBorderB -= borderChangeB;
|
||||
if (sMagicBorder.b >= sMagicBorderColors[temp][2]) {
|
||||
sMagicBorder.b -= borderChangeB;
|
||||
} else {
|
||||
sMagicBorderB += borderChangeB;
|
||||
sMagicBorder.b += borderChangeB;
|
||||
}
|
||||
|
||||
sMagicBorderRatio--;
|
||||
if (sMagicBorderRatio == 0) {
|
||||
sMagicBorderR = sMagicBorderColors[temp][0];
|
||||
sMagicBorderG = sMagicBorderColors[temp][1];
|
||||
sMagicBorderB = sMagicBorderColors[temp][2];
|
||||
sMagicBorder.r = sMagicBorderColors[temp][0];
|
||||
sMagicBorder.g = sMagicBorderColors[temp][1];
|
||||
sMagicBorder.b = sMagicBorderColors[temp][2];
|
||||
sMagicBorderRatio = YREG(40 + sMagicBorderStep);
|
||||
sMagicBorderStep++;
|
||||
if (sMagicBorderStep >= 4) {
|
||||
@@ -3197,6 +3192,8 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
|
||||
void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
s16 magicBarY;
|
||||
Color_RGB8 magicbar_yellow = {250,250,0}; //Magic bar being used
|
||||
Color_RGB8 magicbar_green = {R_MAGIC_FILL_COLOR(0),R_MAGIC_FILL_COLOR(1),R_MAGIC_FILL_COLOR(2)}; //Magic bar fill
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
|
||||
@@ -3265,7 +3262,7 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
||||
} else {
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 100, 50, 50, 255);
|
||||
}
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sMagicBorderR, sMagicBorderG, sMagicBorderB, interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sMagicBorder.r, sMagicBorder.g, sMagicBorder.b, interfaceCtx->magicAlpha);
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gMagicBarEndTex, 8, 16, PosX_Start, magicBarY, 8, 16, 1 << 10, 1 << 10);
|
||||
|
||||
@@ -3286,9 +3283,9 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
||||
if (gSaveContext.unk_13F0 == 4) {
|
||||
// Yellow part of the bar indicating the amount of magic to be subtracted
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCMagicUsePrimR", 250), CVar_GetS32("gCCMagicUsePrimG", 250), CVar_GetS32("gCCMagicUsePrimB", 0), interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCMagicUsePrim", magicbar_yellow).r, CVar_GetRGB("gCCMagicUsePrim", magicbar_yellow).g, CVar_GetRGB("gCCMagicUsePrim", magicbar_yellow).b, interfaceCtx->magicAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 250, 250, 0, interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, magicbar_yellow.r, magicbar_yellow.g, magicbar_yellow.b, interfaceCtx->magicAlpha);
|
||||
}
|
||||
|
||||
gDPLoadMultiBlock_4b(OVERLAY_DISP++, gMagicBarFillTex, 0, G_TX_RENDERTILE, G_IM_FMT_I, 16, 16, 0,
|
||||
@@ -3302,9 +3299,9 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
||||
// Fill the rest of the bar with the normal magic color
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCMagicPrimR", 0), CVar_GetS32("gCCMagicPrimG", 200), CVar_GetS32("gCCMagicPrimB", 0), interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCMagicPrim", magicbar_green).r, CVar_GetRGB("gCCMagicPrim", magicbar_green).g, CVar_GetRGB("gCCMagicPrim", magicbar_green).b, interfaceCtx->magicAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_MAGIC_FILL_COLOR(0), R_MAGIC_FILL_COLOR(1), R_MAGIC_FILL_COLOR(2), interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, magicbar_green.r, magicbar_green.g, magicbar_green.b, interfaceCtx->magicAlpha);
|
||||
}
|
||||
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, rMagicFillX << 2, (magicBarY + 3) << 2,
|
||||
@@ -3313,9 +3310,9 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
|
||||
} else {
|
||||
// Fill the whole bar with the normal magic color
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCMagicPrimR", 0), CVar_GetS32("gCCMagicPrimG", 200), CVar_GetS32("gCCMagicPrimB", 0), interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCMagicPrim", magicbar_green).r, CVar_GetRGB("gCCMagicPrim", magicbar_green).g, CVar_GetRGB("gCCMagicPrim", magicbar_green).b, interfaceCtx->magicAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_MAGIC_FILL_COLOR(0), R_MAGIC_FILL_COLOR(1), R_MAGIC_FILL_COLOR(2), interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, magicbar_green.r, magicbar_green.g, magicbar_green.b, interfaceCtx->magicAlpha);
|
||||
}
|
||||
|
||||
gDPLoadMultiBlock_4b(OVERLAY_DISP++, gMagicBarFillTex, 0, G_TX_RENDERTILE, G_IM_FMT_I, 16, 16, 0,
|
||||
@@ -3389,10 +3386,28 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
s16 dxdy;
|
||||
s16 width;
|
||||
s16 height;
|
||||
Color_RGB8 A_button_ori = {R_A_BTN_COLOR(0), R_A_BTN_COLOR(1), R_A_BTN_COLOR(2)};
|
||||
Color_RGB8 A_button = CVar_GetRGB("gCCABtnPrim", A_button_ori);
|
||||
Color_RGB8 B_button_ori = {R_B_BTN_COLOR(0), R_B_BTN_COLOR(1), R_B_BTN_COLOR(2)};
|
||||
Color_RGB8 B_button = CVar_GetRGB("gCCBBtnPrim", B_button_ori);
|
||||
Color_RGB8 Start_button_ori = {120, 120, 120};
|
||||
Color_RGB8 Start_button = CVar_GetRGB("gCCStartBtnPrim", Start_button_ori);
|
||||
Color_RGB8 C_button_ori = {R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2)};
|
||||
Color_RGB8 C_button_uni = CVar_GetRGB("gCCCBtnPrim", C_button_ori);
|
||||
Color_RGB8 C_button_U = CVar_GetRGB("gCCCUBtnPrim", C_button_ori);
|
||||
Color_RGB8 C_button_D = CVar_GetRGB("gCCCDBtnPrim", C_button_ori);
|
||||
Color_RGB8 C_button_L = CVar_GetRGB("gCCCLBtnPrim", C_button_ori);
|
||||
Color_RGB8 C_button_R = CVar_GetRGB("gCCCRBtnPrim", C_button_ori);
|
||||
|
||||
//B Button
|
||||
s16 X_Margins_BtnB;
|
||||
s16 Y_Margins_BtnB;
|
||||
s16 BBtn_Size = 32;
|
||||
int BBtnScaled = BBtn_Size * 0.95f;
|
||||
if (CVar_GetS32("gBBtnPosType", 0) != 0) {
|
||||
BBtnScaled = BBtn_Size * CVar_GetFloat("gBBtnScale", 0.95f);
|
||||
}
|
||||
int BBtn_factor = (1 << 10) * BBtn_Size / BBtnScaled;
|
||||
if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {
|
||||
if (CVar_GetS32("gBBtnPosType", 0) == 0) {X_Margins_BtnB = Right_HUD_Margin;};
|
||||
Y_Margins_BtnB = (Top_HUD_Margin*-1);
|
||||
@@ -3435,49 +3450,40 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
}
|
||||
s16 StartBtn_Icon_H = 32;
|
||||
s16 StartBtn_Icon_W = 32;
|
||||
int StartBTN_H_Scaled = StartBtn_Icon_H * 0.75f;
|
||||
int StartBTN_W_Scaled = StartBtn_Icon_W * 0.75f;
|
||||
float Start_BTN_Scale = 0.75f;
|
||||
if (CVar_GetS32("gStartBtnPosType", 0) != 0) {
|
||||
Start_BTN_Scale = CVar_GetFloat("gStartBtnScale", 0.75f);
|
||||
}
|
||||
int StartBTN_H_Scaled = StartBtn_Icon_H * Start_BTN_Scale;
|
||||
int StartBTN_W_Scaled = StartBtn_Icon_W * Start_BTN_Scale;
|
||||
int StartBTN_W_factor = (1 << 10) * StartBtn_Icon_W / StartBTN_W_Scaled;
|
||||
int StartBTN_H_factor = (1 << 10) * StartBtn_Icon_H / StartBTN_H_Scaled;
|
||||
const s16 rStartLabelX_ori = OTRGetRectDimensionFromRightEdge(R_START_LABEL_X(gSaveContext.language)+X_Margins_StartBtn);
|
||||
const s16 rStartLabelY_ori = R_START_LABEL_Y(gSaveContext.language)+Y_Margins_StartBtn;
|
||||
const s16 PosX_StartBtn_ori = OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]+X_Margins_StartBtn);
|
||||
const s16 PosY_StartBtn_ori = 16+Y_Margins_StartBtn;
|
||||
s16 StartBTN_Label_W = DO_ACTION_TEX_WIDTH();
|
||||
s16 StartBTN_Label_H = DO_ACTION_TEX_HEIGHT();
|
||||
int StartBTN_Label_H_Scaled = StartBTN_Label_H * 1.0f;
|
||||
int StartBTN_Label_W_Scaled = StartBTN_Label_W * 1.0f;
|
||||
int StartBTN_Label_W_factor = (1 << 10) * StartBTN_Label_W / StartBTN_Label_W_Scaled;
|
||||
int StartBTN_Label_H_factor = (1 << 10) * StartBTN_Label_H / StartBTN_Label_H_Scaled;
|
||||
const s16 StartBtn_Label_W_ori = StartBTN_Label_W / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
|
||||
const s16 StartBtn_Label_H_ori = StartBTN_Label_H / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
|
||||
s16 PosX_StartBtn;
|
||||
s16 PosY_StartBtn;
|
||||
s16 rStartLabelX;
|
||||
s16 rStartLabelY;
|
||||
if (CVar_GetS32("gStartBtnPosType", 0) != 0) {
|
||||
PosY_StartBtn = CVar_GetS32("gStartBtnPosY", 0)+Y_Margins_StartBtn;
|
||||
rStartLabelY = CVar_GetS32("gStartBtnPosY", 0)+Y_Margins_StartBtn+3;
|
||||
PosY_StartBtn = CVar_GetS32("gStartBtnPosY", 0)-(Start_BTN_Scale*13)+Y_Margins_StartBtn;
|
||||
if (CVar_GetS32("gStartBtnPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gStartBtnUseMargins", 0) != 0) {X_Margins_StartBtn = Left_HUD_Margin;};
|
||||
PosX_StartBtn = OTRGetDimensionFromLeftEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn);
|
||||
rStartLabelX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn-12);
|
||||
PosX_StartBtn = OTRGetDimensionFromLeftEdge(CVar_GetS32("gStartBtnPosX", 0)-(Start_BTN_Scale*13)+X_Margins_StartBtn);
|
||||
} else if (CVar_GetS32("gStartBtnPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gStartBtnUseMargins", 0) != 0) {X_Margins_StartBtn = Right_HUD_Margin;};
|
||||
PosX_StartBtn = OTRGetDimensionFromRightEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn);
|
||||
rStartLabelX = OTRGetDimensionFromRightEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn-12);
|
||||
PosX_StartBtn = OTRGetDimensionFromRightEdge(CVar_GetS32("gStartBtnPosX", 0)-(Start_BTN_Scale*13)+X_Margins_StartBtn);
|
||||
} else if (CVar_GetS32("gStartBtnPosType", 0) == 3) {//Anchor None
|
||||
PosX_StartBtn = CVar_GetS32("gStartBtnPosX", 0);
|
||||
rStartLabelX = CVar_GetS32("gStartBtnPosX", 0)-12;
|
||||
} else if (CVar_GetS32("gStartBtnPosType", 0) == 4) {//Hidden
|
||||
PosX_StartBtn = -9999;
|
||||
rStartLabelX = -9999;
|
||||
}
|
||||
} else {
|
||||
StartBTN_H_Scaled = StartBtn_Icon_H * 0.75f;
|
||||
StartBTN_W_Scaled = StartBtn_Icon_W * 0.75f;
|
||||
StartBTN_W_factor = (1 << 10) * StartBtn_Icon_W / StartBTN_W_Scaled;
|
||||
StartBTN_H_factor = (1 << 10) * StartBtn_Icon_H / StartBTN_H_Scaled;
|
||||
PosY_StartBtn = PosY_StartBtn_ori;
|
||||
PosX_StartBtn = PosX_StartBtn_ori;
|
||||
rStartLabelY = rStartLabelY_ori;
|
||||
rStartLabelX = rStartLabelX_ori;
|
||||
}
|
||||
//C Buttons position
|
||||
s16 X_Margins_CL;
|
||||
@@ -3527,6 +3533,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
s16 C_Up_BTN_Pos[2];
|
||||
s16 C_Down_BTN_Pos[2];
|
||||
//C button Left
|
||||
s16 C_Left_BTN_Size = 32;
|
||||
float CLeftScale = CVar_GetFloat("gCBtnLScale", 0.87f);
|
||||
int CLeftScaled = C_Left_BTN_Size * 0.87f;
|
||||
if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
|
||||
CLeftScaled = C_Left_BTN_Size * CLeftScale;
|
||||
}
|
||||
int CLeft_factor = (1 << 10) * C_Left_BTN_Size / CLeftScaled;
|
||||
if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
|
||||
C_Left_BTN_Pos[1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL;
|
||||
if (CVar_GetS32("gCBtnLPosType", 0) == 1) {//Anchor Left
|
||||
@@ -3545,6 +3558,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
C_Left_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Left_BTN_Pos_ori[0]);
|
||||
}
|
||||
//C button Right
|
||||
s16 C_Right_BTN_Size = 32;
|
||||
float CRightScale = CVar_GetFloat("gCBtnRScale", 0.87f);
|
||||
int CRightScaled = C_Right_BTN_Size * 0.87f;
|
||||
if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
|
||||
CRightScaled = C_Right_BTN_Size * CRightScale;
|
||||
}
|
||||
int CRight_factor = (1 << 10) * C_Right_BTN_Size / CRightScaled;
|
||||
if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
|
||||
C_Right_BTN_Pos[1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR;
|
||||
if (CVar_GetS32("gCBtnRPosType", 0) == 1) {//Anchor Left
|
||||
@@ -3563,16 +3583,23 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
C_Right_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Right_BTN_Pos_ori[0]);
|
||||
}
|
||||
//C Button Up
|
||||
s16 C_Up_BTN_Size = 32;
|
||||
int CUpScaled = C_Up_BTN_Size * 0.5f;
|
||||
float CUpScale = CVar_GetFloat("gCBtnUScale", 0.5f);
|
||||
if (CVar_GetS32("gCBtnUPosType", 0) != 0) {
|
||||
C_Up_BTN_Pos[1] = CVar_GetS32("gCBtnUPosY", 0)+Y_Margins_CU;
|
||||
CUpScaled = C_Up_BTN_Size * CUpScale;
|
||||
}
|
||||
int CUp_factor = (1 << 10) * C_Up_BTN_Size / CUpScaled;
|
||||
if (CVar_GetS32("gCBtnUPosType", 0) != 0) {
|
||||
C_Up_BTN_Pos[1] = CVar_GetS32("gCBtnUPosY", 0)-(CUpScale*13)+Y_Margins_CU;
|
||||
if (CVar_GetS32("gCBtnUPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gCBtnUUseMargins", 0) != 0) {X_Margins_CU = Left_HUD_Margin;};
|
||||
C_Up_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnUPosX", 0)+X_Margins_CU);
|
||||
C_Up_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnUPosX", 0)-(CUpScale*13)+X_Margins_CU);
|
||||
} else if (CVar_GetS32("gCBtnUPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gCBtnUUseMargins", 0) != 0) {X_Margins_CU = Right_HUD_Margin;};
|
||||
C_Up_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnUPosX", 0)+X_Margins_CU);
|
||||
C_Up_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnUPosX", 0)-(CUpScale*13)+X_Margins_CU);
|
||||
} else if (CVar_GetS32("gCBtnUPosType", 0) == 3) {//Anchor None
|
||||
C_Up_BTN_Pos[0] = CVar_GetS32("gCBtnUPosX", 0);
|
||||
C_Up_BTN_Pos[0] = CVar_GetS32("gCBtnUPosX", 0)-(CUpScale*13);
|
||||
} else if (CVar_GetS32("gCBtnUPosType", 0) == 4) {//Hidden
|
||||
C_Up_BTN_Pos[0] = -9999;
|
||||
}
|
||||
@@ -3581,16 +3608,24 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
C_Up_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Up_BTN_Pos_ori[0]);
|
||||
}
|
||||
//C Button down
|
||||
s16 C_Down_BTN_Size = 32;
|
||||
float CDownScale = CVar_GetFloat("gCBtnDScale", 0.87f);
|
||||
if (CVar_GetS32("gCBtnDPosType", 0) == 0) {
|
||||
CDownScale = 0.87f;
|
||||
}
|
||||
int CDownScaled = C_Down_BTN_Size * CDownScale;
|
||||
int CDown_factor = (1 << 10) * C_Down_BTN_Size / CDownScaled;
|
||||
int PositionAdjustment = CDownScaled/2;
|
||||
if (CVar_GetS32("gCBtnDPosType", 0) != 0) {
|
||||
C_Down_BTN_Pos[1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD;
|
||||
C_Down_BTN_Pos[1] = CVar_GetS32("gCBtnDPosY", 0)-PositionAdjustment+Y_Margins_CD;
|
||||
if (CVar_GetS32("gCBtnDPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Left_HUD_Margin;};
|
||||
C_Down_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
|
||||
C_Down_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)-PositionAdjustment+X_Margins_CD);
|
||||
} else if (CVar_GetS32("gCBtnDPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Right_HUD_Margin;};
|
||||
C_Down_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
|
||||
C_Down_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)-PositionAdjustment+X_Margins_CD);
|
||||
} else if (CVar_GetS32("gCBtnDPosType", 0) == 3) {//Anchor None
|
||||
C_Down_BTN_Pos[0] = CVar_GetS32("gCBtnDPosX", 0);
|
||||
C_Down_BTN_Pos[0] = CVar_GetS32("gCBtnDPosX", 0)-PositionAdjustment;
|
||||
} else if (CVar_GetS32("gCBtnDPosType", 0) == 4) {//Hidden
|
||||
C_Down_BTN_Pos[0] = -9999;
|
||||
}
|
||||
@@ -3608,59 +3643,59 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 150, 0, interfaceCtx->bAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_B_BTN_COLOR(0), R_B_BTN_COLOR(1), R_B_BTN_COLOR(2), interfaceCtx->bAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, B_button_ori.r,B_button_ori.g,B_button_ori.b, interfaceCtx->bAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCBBtnPrimR", R_B_BTN_COLOR(0)), CVar_GetS32("gCCBBtnPrimG", R_B_BTN_COLOR(1)), CVar_GetS32("gCCBBtnPrimB", R_B_BTN_COLOR(2)), interfaceCtx->bAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, B_button.r,B_button.g,B_button.b, interfaceCtx->bAlpha);
|
||||
}
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gButtonBackgroundTex, 32, 32, PosX_BtnB, PosY_BtnB, R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_DD(0) << 1, R_ITEM_BTN_DD(0) << 1);
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gButtonBackgroundTex, BBtn_Size, BBtn_Size, PosX_BtnB, PosY_BtnB, BBtnScaled, BBtnScaled, BBtn_factor, BBtn_factor);
|
||||
|
||||
// C-Left Button Color & Texture
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cLeftAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cLeftAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cLeftAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cLeftAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cLeftAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_uni.r, C_button_uni.g, C_button_uni.b, interfaceCtx->cLeftAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCLBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCLBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cLeftAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_L.r, C_button_L.g, C_button_L.b, interfaceCtx->cLeftAlpha);
|
||||
}
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, C_Left_BTN_Pos[0] << 2, C_Left_BTN_Pos[1] << 2,
|
||||
(C_Left_BTN_Pos[0] + R_ITEM_BTN_WIDTH(1)) << 2,
|
||||
(C_Left_BTN_Pos[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_Left_BTN_Pos[0] + CLeftScaled) << 2,
|
||||
(C_Left_BTN_Pos[1] + CLeftScaled) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, CLeft_factor, CLeft_factor);
|
||||
|
||||
// C-Down Button Color & Texture
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cDownAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cDownAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cDownAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cDownAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cDownAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_uni.r, C_button_uni.g, C_button_uni.b, interfaceCtx->cDownAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCDBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCDBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cDownAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_D.r, C_button_D.g, C_button_D.b, interfaceCtx->cDownAlpha);
|
||||
}
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, C_Down_BTN_Pos[0] << 2, C_Down_BTN_Pos[1] << 2,
|
||||
(C_Down_BTN_Pos[0] + R_ITEM_BTN_WIDTH(2)) << 2,
|
||||
(C_Down_BTN_Pos[1] + R_ITEM_BTN_WIDTH(2)) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(2) << 1, R_ITEM_BTN_DD(2) << 1);
|
||||
(C_Down_BTN_Pos[0] + CDownScaled) << 2,
|
||||
(C_Down_BTN_Pos[1] + CDownScaled) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, CDown_factor, CDown_factor);
|
||||
|
||||
// C-Right Button Color & Texture
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cRightAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cRightAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cRightAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cRightAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cRightAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_uni.r, C_button_uni.g, C_button_uni.b, interfaceCtx->cRightAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCRBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCRBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cRightAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_R.r, C_button_R.g, C_button_R.b, interfaceCtx->cRightAlpha);
|
||||
}
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, C_Right_BTN_Pos[0] << 2, C_Right_BTN_Pos[1] << 2,
|
||||
(C_Right_BTN_Pos[0] + R_ITEM_BTN_WIDTH(3)) << 2,
|
||||
(C_Right_BTN_Pos[1] + R_ITEM_BTN_WIDTH(3)) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(3) << 1, R_ITEM_BTN_DD(3) << 1);
|
||||
(C_Right_BTN_Pos[0] + CRightScaled) << 2,
|
||||
(C_Right_BTN_Pos[1] + CRightScaled) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, CRight_factor, CRight_factor);
|
||||
|
||||
if ((pauseCtx->state < 8) || (pauseCtx->state >= 18)) {
|
||||
if ((globalCtx->pauseCtx.state != 0) || (globalCtx->pauseCtx.debugState != 0)) {
|
||||
@@ -3670,9 +3705,9 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 0, 0, interfaceCtx->startAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 120, 120, 120, interfaceCtx->startAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, Start_button_ori.r, Start_button_ori.g, Start_button_ori.b, interfaceCtx->startAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCStartBtnPrimR", 120), CVar_GetS32("gCCStartBtnPrimG", 120), CVar_GetS32("gCCStartBtnPrimB", 120), interfaceCtx->startAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, Start_button.r, Start_button.g, Start_button.b, interfaceCtx->startAlpha);
|
||||
}
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, PosX_StartBtn << 2, PosY_StartBtn << 2,
|
||||
(PosX_StartBtn + StartBTN_W_Scaled) << 2, (PosY_StartBtn + StartBTN_H_Scaled) << 2,
|
||||
@@ -3707,11 +3742,19 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
DO_ACTION_TEX_WIDTH(), DO_ACTION_TEX_HEIGHT(), 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
//const s16 rStartLabelX = OTRGetRectDimensionFromRightEdge(R_START_LABEL_X(gSaveContext.language)+Right_HUD_Margin);
|
||||
gSPWideTextureRectangle(
|
||||
OVERLAY_DISP++, rStartLabelX << 2, rStartLabelY << 2,
|
||||
(rStartLabelX + StartBTN_Label_W) << 2,
|
||||
(rStartLabelY + StartBTN_Label_H) << 2, G_TX_RENDERTILE, 0, 0, StartBTN_Label_W_factor, StartBTN_Label_H_factor);
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gSPSetGeometryMode(OVERLAY_DISP++, G_CULL_BACK);
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
|
||||
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->startAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
|
||||
Matrix_Translate(PosX_StartBtn-160+((Start_BTN_Scale+Start_BTN_Scale/3)*11.5f), (PosY_StartBtn-120+((Start_BTN_Scale+Start_BTN_Scale/3)*11.5f)) * -1, 1.0f, MTXMODE_NEW);
|
||||
Matrix_Scale(Start_BTN_Scale+(Start_BTN_Scale/3), Start_BTN_Scale+(Start_BTN_Scale/3), Start_BTN_Scale+(Start_BTN_Scale/3), MTXMODE_APPLY);
|
||||
gSPMatrix(OVERLAY_DISP++, MATRIX_NEWMTX(globalCtx->state.gfxCtx),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[4], 4, 0);
|
||||
Interface_DrawActionLabel(globalCtx->state.gfxCtx, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE() * 2);
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3731,13 +3774,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), temp);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, temp);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), temp);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, temp);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), temp);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_uni.r, C_button_uni.g, C_button_uni.b, temp);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCUBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCUBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCUBtnPrimB", R_C_BTN_COLOR(2)), temp);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_U.r, C_button_U.g, C_button_U.b, temp);
|
||||
}
|
||||
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
gSPWideTextureRectangle(OVERLAY_DISP++, C_Up_BTN_Pos[0] << 2, C_Up_BTN_Pos[1] << 2, (C_Up_BTN_Pos[0] + 16) << 2,
|
||||
@@ -3796,6 +3839,11 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
X_Margins_CD = 0;
|
||||
Y_Margins_CD = 0;
|
||||
}
|
||||
const s16 ItemIconWidthFactor[3][2] = {
|
||||
{ CLeftScaled, CLeft_factor },
|
||||
{ CDownScaled, CDown_factor },
|
||||
{ CRightScaled, CRight_factor },
|
||||
};
|
||||
const s16 ItemIconPos_ori[3][2] = {
|
||||
{ R_ITEM_ICON_X(1)+X_Margins_CL, R_ITEM_ICON_Y(1)+Y_Margins_CL },
|
||||
{ R_ITEM_ICON_X(2)+X_Margins_CD, R_ITEM_ICON_Y(2)+Y_Margins_CD },
|
||||
@@ -3858,40 +3906,34 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
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);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.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);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.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);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_ori.r, C_button_ori.g, C_button_ori.b, interfaceCtx->cRightAlpha);
|
||||
}
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cRightAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_uni.r, C_button_uni.g, C_button_uni.b, interfaceCtx->cRightAlpha);
|
||||
} else if (temp == 1 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCLBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCLBtnPrimB", R_C_BTN_COLOR(2)),
|
||||
interfaceCtx->cLeftAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_L.r, C_button_L.g, C_button_L.b, interfaceCtx->cLeftAlpha);
|
||||
} else if (temp == 2 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCDBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCDBtnPrimB", R_C_BTN_COLOR(2)),
|
||||
interfaceCtx->cDownAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_D.r, C_button_D.g, C_button_D.b, interfaceCtx->cDownAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCRBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCRBtnPrimB", R_C_BTN_COLOR(2)),
|
||||
interfaceCtx->cRightAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, C_button_R.r, C_button_R.g, C_button_R.b, interfaceCtx->cRightAlpha);
|
||||
}
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, ((u8*)gButtonBackgroundTex), 32, 32,
|
||||
ItemIconPos[temp-1][0], ItemIconPos[temp-1][1], R_ITEM_BTN_WIDTH(temp),
|
||||
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1, R_ITEM_BTN_DD(temp) << 1);
|
||||
ItemIconPos[temp-1][0], ItemIconPos[temp-1][1], ItemIconWidthFactor[temp-1][0],
|
||||
ItemIconWidthFactor[temp-1][0], ItemIconWidthFactor[temp-1][1], ItemIconWidthFactor[temp-1][1]);
|
||||
|
||||
const char* cButtonIcons[] = { gButtonBackgroundTex, gEquippedItemOutlineTex, gEmptyCLeftArrowTex,
|
||||
gEmptyCDownArrowTex, gEmptyCRightArrowTex
|
||||
};
|
||||
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, cButtonIcons[(temp + 1)], 32, 32,
|
||||
ItemIconPos[temp-1][0], ItemIconPos[temp-1][1], R_ITEM_BTN_WIDTH(temp),
|
||||
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1, R_ITEM_BTN_DD(temp) << 1);
|
||||
ItemIconPos[temp-1][0], ItemIconPos[temp-1][1], ItemIconWidthFactor[temp-1][0],
|
||||
ItemIconWidthFactor[temp-1][0], ItemIconWidthFactor[temp-1][1], ItemIconWidthFactor[temp-1][1]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3903,6 +3945,8 @@ int16_t gItemIconDD[] = { 550, 680, 680, 680, 1024, 1024, 1024, 1024 };
|
||||
|
||||
void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16 button) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
|
||||
s16 X_Margins_CL;
|
||||
s16 X_Margins_CR;
|
||||
s16 X_Margins_CD;
|
||||
@@ -3948,15 +3992,52 @@ void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16
|
||||
X_Margins_DPad_Items = 0;
|
||||
Y_Margins_DPad_Items = 0;
|
||||
}
|
||||
const float ItemsScale_offset[8][2] = {
|
||||
// Y X
|
||||
{ 104.0f, 144.0f }, //B
|
||||
{ 108.0f, 148.0f }, //C L
|
||||
{ 108.0f, 148.0f }, //C D
|
||||
{ 108.0f, 148.0f }, //C R
|
||||
{ 112.0f, 152.0f }, //Dpad ^
|
||||
{ 112.0f, 152.0f }, //Dpad V
|
||||
{ 112.0f, 152.0f }, //Dpad <
|
||||
{ 112.0f, 152.0f } //Dpad >
|
||||
};
|
||||
float ItemScale_ori[8] = {
|
||||
1.0f, //B BTN
|
||||
0.87f, 0.87f, 0.87f, //C BTNs L / D / R
|
||||
0.6f, 0.6f, 0.6f, 0.6f //Dpad U/D/L/R
|
||||
};
|
||||
const s16 ItemIconPos_ori[8][2] = {
|
||||
{ B_BUTTON_X+X_Margins_BtnB, B_BUTTON_Y+Y_Margins_BtnB },
|
||||
{ C_LEFT_BUTTON_X+X_Margins_CL, C_LEFT_BUTTON_Y+Y_Margins_CL },
|
||||
{ C_DOWN_BUTTON_X+X_Margins_CD, C_DOWN_BUTTON_Y+Y_Margins_CD },
|
||||
{ C_RIGHT_BUTTON_X+X_Margins_CR, C_RIGHT_BUTTON_Y+Y_Margins_CR },
|
||||
{ DPAD_UP_X+X_Margins_DPad_Items, DPAD_UP_Y+Y_Margins_DPad_Items },
|
||||
{ DPAD_DOWN_X+X_Margins_DPad_Items, DPAD_DOWN_Y+Y_Margins_DPad_Items },
|
||||
{ DPAD_LEFT_X+X_Margins_DPad_Items, DPAD_LEFT_Y+Y_Margins_DPad_Items },
|
||||
{ DPAD_RIGHT_X+X_Margins_DPad_Items, DPAD_RIGHT_Y+Y_Margins_DPad_Items }
|
||||
{ B_BUTTON_X+X_Margins_BtnB-ItemsScale_offset[0][1], B_BUTTON_Y+Y_Margins_BtnB-ItemsScale_offset[0][0] },
|
||||
{ C_LEFT_BUTTON_X+X_Margins_CL-ItemsScale_offset[1][1], C_LEFT_BUTTON_Y+Y_Margins_CL-ItemsScale_offset[1][0] },
|
||||
{ C_DOWN_BUTTON_X+X_Margins_CD-ItemsScale_offset[2][1], C_DOWN_BUTTON_Y+Y_Margins_CD-ItemsScale_offset[2][0] },
|
||||
{ C_RIGHT_BUTTON_X+X_Margins_CR-ItemsScale_offset[3][1], C_RIGHT_BUTTON_Y+Y_Margins_CR-ItemsScale_offset[3][0] },
|
||||
{ DPAD_UP_X+X_Margins_DPad_Items-ItemsScale_offset[4][1], DPAD_UP_Y+Y_Margins_DPad_Items-ItemsScale_offset[4][0] },
|
||||
{ DPAD_DOWN_X+X_Margins_DPad_Items-ItemsScale_offset[5][1], DPAD_DOWN_Y+Y_Margins_DPad_Items-ItemsScale_offset[5][0] },
|
||||
{ DPAD_LEFT_X+X_Margins_DPad_Items-ItemsScale_offset[6][1], DPAD_LEFT_Y+Y_Margins_DPad_Items-ItemsScale_offset[6][0] },
|
||||
{ DPAD_RIGHT_X+X_Margins_DPad_Items-ItemsScale_offset[7][1], DPAD_RIGHT_Y+Y_Margins_DPad_Items-ItemsScale_offset[7][0] }
|
||||
};
|
||||
float ItemScale[8] = {
|
||||
CVar_GetFloat("gBBtnScale", 1.0f),
|
||||
CVar_GetFloat("gCBtnLScale", 0.87f),
|
||||
CVar_GetFloat("gCBtnDScale", 0.87f),
|
||||
CVar_GetFloat("gCBtnRScale", 0.87f),
|
||||
CVar_GetFloat("gDPadScale", 0.425f),
|
||||
CVar_GetFloat("gDPadScale", 0.425f),
|
||||
CVar_GetFloat("gDPadScale", 0.425f),
|
||||
CVar_GetFloat("gDPadScale", 0.425f),
|
||||
};
|
||||
float ItemScaleCurrent[8]; //Hold the array with modified scale
|
||||
u16 ItemsSlotsAlpha[8] = {
|
||||
interfaceCtx->bAlpha,
|
||||
interfaceCtx->cLeftAlpha,
|
||||
interfaceCtx->cRightAlpha,
|
||||
interfaceCtx->cDownAlpha,
|
||||
interfaceCtx->dpadUpAlpha,
|
||||
interfaceCtx->dpadDownAlpha,
|
||||
interfaceCtx->dpadLeftAlpha,
|
||||
interfaceCtx->dpadRightAlpha
|
||||
};
|
||||
s16 DPad_ItemsOffset[4][2] = {
|
||||
{ 7,-8},//Up
|
||||
@@ -3967,6 +4048,10 @@ void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16
|
||||
s16 ItemIconPos[8][2]; //(X,Y)
|
||||
//DPadItems
|
||||
if (CVar_GetS32("gDPadPosType", 0) != 0) {
|
||||
ItemScaleCurrent[4] = ItemScale[4];
|
||||
ItemScaleCurrent[5] = ItemScale[5];
|
||||
ItemScaleCurrent[6] = ItemScale[6];
|
||||
ItemScaleCurrent[7] = ItemScale[7];
|
||||
ItemIconPos[4][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[0][1];//Up
|
||||
ItemIconPos[5][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[1][1];//Down
|
||||
ItemIconPos[6][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[2][1];//Left
|
||||
@@ -3995,6 +4080,10 @@ void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16
|
||||
ItemIconPos[7][0] = -9999;
|
||||
}
|
||||
} else {
|
||||
ItemScaleCurrent[4] = ItemScale_ori[4];
|
||||
ItemScaleCurrent[5] = ItemScale_ori[5];
|
||||
ItemScaleCurrent[6] = ItemScale_ori[6];
|
||||
ItemScaleCurrent[7] = ItemScale_ori[7];
|
||||
ItemIconPos[4][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[4][0]);
|
||||
ItemIconPos[5][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[5][0]);
|
||||
ItemIconPos[6][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[6][0]);
|
||||
@@ -4006,73 +4095,81 @@ void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16
|
||||
}
|
||||
//B Button
|
||||
if (CVar_GetS32("gBBtnPosType", 0) != 0) {
|
||||
ItemIconPos[0][1] = CVar_GetS32("gBBtnPosY", 0)+Y_Margins_BtnB;
|
||||
ItemScaleCurrent[0] = ItemScale[0];
|
||||
ItemIconPos[0][1] = CVar_GetS32("gBBtnPosY", 0)+Y_Margins_BtnB-ItemsScale_offset[0][0];
|
||||
if (CVar_GetS32("gBBtnPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Left_HUD_Margin;};
|
||||
ItemIconPos[0][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB);
|
||||
ItemIconPos[0][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB-ItemsScale_offset[0][1]);
|
||||
} else if (CVar_GetS32("gBBtnPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Right_HUD_Margin;};
|
||||
ItemIconPos[0][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB);
|
||||
ItemIconPos[0][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB-ItemsScale_offset[0][1]);
|
||||
} else if (CVar_GetS32("gBBtnPosType", 0) == 3) {//Anchor None
|
||||
ItemIconPos[0][0] = CVar_GetS32("gBBtnPosX", 0);
|
||||
ItemIconPos[0][0] = CVar_GetS32("gBBtnPosX", 0)-ItemsScale_offset[0][1];
|
||||
} else if (CVar_GetS32("gBBtnPosType", 0) == 4) {//Hidden
|
||||
ItemIconPos[0][0] = -9999;
|
||||
}
|
||||
} else {
|
||||
ItemScaleCurrent[0] = ItemScale_ori[0];
|
||||
ItemIconPos[0][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[0][0]);
|
||||
ItemIconPos[0][1] = ItemIconPos_ori[0][1];
|
||||
}
|
||||
//C button Left
|
||||
if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
|
||||
ItemIconPos[1][1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL;
|
||||
ItemScaleCurrent[1] = ItemScale[1];
|
||||
ItemIconPos[1][1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL-ItemsScale_offset[1][0];
|
||||
if (CVar_GetS32("gCBtnLPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Left_HUD_Margin;};
|
||||
ItemIconPos[1][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
|
||||
ItemIconPos[1][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL-ItemsScale_offset[1][1]);
|
||||
} else if (CVar_GetS32("gCBtnLPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Right_HUD_Margin;};
|
||||
ItemIconPos[1][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
|
||||
ItemIconPos[1][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL-ItemsScale_offset[1][1]);
|
||||
} else if (CVar_GetS32("gCBtnLPosType", 0) == 3) {//Anchor None
|
||||
ItemIconPos[1][0] = CVar_GetS32("gCBtnLPosX", 0);
|
||||
ItemIconPos[1][0] = CVar_GetS32("gCBtnLPosX", 0)-ItemsScale_offset[1][1];
|
||||
} else if (CVar_GetS32("gCBtnLPosType", 0) == 4) {//Hidden
|
||||
ItemIconPos[1][0] = -9999;
|
||||
}
|
||||
} else {
|
||||
ItemScaleCurrent[1] = ItemScale_ori[1];
|
||||
ItemIconPos[1][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[1][0]);
|
||||
ItemIconPos[1][1] = ItemIconPos_ori[1][1];
|
||||
}
|
||||
//C Button down
|
||||
if (CVar_GetS32("gCBtnDPosType", 0) != 0) {
|
||||
ItemIconPos[2][1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD;
|
||||
ItemScaleCurrent[2] = ItemScale[2];
|
||||
ItemIconPos[2][1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD-ItemsScale_offset[2][0];
|
||||
if (CVar_GetS32("gCBtnDPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Left_HUD_Margin;};
|
||||
ItemIconPos[2][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
|
||||
ItemIconPos[2][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD-ItemsScale_offset[2][1]);
|
||||
} else if (CVar_GetS32("gCBtnDPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Right_HUD_Margin;};
|
||||
ItemIconPos[2][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
|
||||
ItemIconPos[2][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD-ItemsScale_offset[2][1]);
|
||||
} else if (CVar_GetS32("gCBtnDPosType", 0) == 3) {//Anchor None
|
||||
ItemIconPos[2][0] = CVar_GetS32("gCBtnDPosX", 0);
|
||||
ItemIconPos[2][0] = CVar_GetS32("gCBtnDPosX", 0)-ItemsScale_offset[2][1];
|
||||
} else if (CVar_GetS32("gCBtnDPosType", 0) == 4) {//Hidden
|
||||
ItemIconPos[2][0] = -9999;
|
||||
}
|
||||
} else {
|
||||
ItemScaleCurrent[2] = ItemScale_ori[2];
|
||||
ItemIconPos[2][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[2][0]);
|
||||
ItemIconPos[2][1] = ItemIconPos_ori[2][1];
|
||||
}
|
||||
//C button Right
|
||||
if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
|
||||
ItemIconPos[3][1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR;
|
||||
ItemScaleCurrent[3] = ItemScale[3];
|
||||
ItemIconPos[3][1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR-ItemsScale_offset[3][0];
|
||||
if (CVar_GetS32("gCBtnRPosType", 0) == 1) {//Anchor Left
|
||||
if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Left_HUD_Margin;};
|
||||
ItemIconPos[3][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
|
||||
ItemIconPos[3][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR-ItemsScale_offset[3][1]);
|
||||
} else if (CVar_GetS32("gCBtnRPosType", 0) == 2) {//Anchor Right
|
||||
if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Right_HUD_Margin;};
|
||||
ItemIconPos[3][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
|
||||
ItemIconPos[3][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR-ItemsScale_offset[3][1]);
|
||||
} else if (CVar_GetS32("gCBtnRPosType", 0) == 3) {//Anchor None
|
||||
ItemIconPos[3][0] = CVar_GetS32("gCBtnRPosX", 0);
|
||||
ItemIconPos[3][0] = CVar_GetS32("gCBtnRPosX", 0)-ItemsScale_offset[3][1];
|
||||
} else if (CVar_GetS32("gCBtnRPosType", 0) == 4) {//Hidden
|
||||
ItemIconPos[3][0] = -9999;
|
||||
}
|
||||
} else {
|
||||
ItemScaleCurrent[3] = ItemScale_ori[3];
|
||||
ItemIconPos[3][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[3][0]);
|
||||
ItemIconPos[3][1] = ItemIconPos_ori[3][1];
|
||||
}
|
||||
@@ -4080,10 +4177,23 @@ 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++, ItemIconPos[button][0] << 2, ItemIconPos[button][1] << 2,
|
||||
(ItemIconPos[button][0] + gItemIconWidth[button]) << 2,
|
||||
(ItemIconPos[button][1] + gItemIconWidth[button]) << 2, G_TX_RENDERTILE, 0, 0,
|
||||
gItemIconDD[button] << 1, gItemIconDD[button] << 1);
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
gSPSetGeometryMode(OVERLAY_DISP++, G_CULL_BACK);
|
||||
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, ItemsSlotsAlpha[button]);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
|
||||
Matrix_Translate(
|
||||
ItemIconPos[button][0],
|
||||
ItemIconPos[button][1] * -1, 1.0f, MTXMODE_NEW);
|
||||
|
||||
Matrix_Scale(
|
||||
ItemScaleCurrent[button]/1,
|
||||
ItemScaleCurrent[button]/1,
|
||||
ItemScaleCurrent[button]/1, MTXMODE_APPLY);
|
||||
gSPMatrix(OVERLAY_DISP++, MATRIX_NEWMTX(globalCtx->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[0], 4, 0);
|
||||
gSP1Quadrangle(OVERLAY_DISP++, 0, 2, 3, 1, 0);
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
@@ -4495,7 +4605,12 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
{ 0x82, 0x82, 0xFF }, // Adult's Wallet (Blue)
|
||||
{ 0xFF, 0x64, 0x64 }, // Giant's Wallet (Red)
|
||||
};
|
||||
s16 rColor[3] = { 200, 255, 100 };
|
||||
Color_RGB8 rColor_ori = { 200, 255, 100 };
|
||||
Color_RGB8 rColor;
|
||||
Color_RGB8 keyColor_ori = { 200, 230, 255 };
|
||||
Color_RGB8 keyColor;
|
||||
Color_RGB8 DPad_colors_ori = {255, 255, 255};
|
||||
Color_RGB8 DPad_colors = CVar_GetRGB("gCCDpadPrim", DPad_colors_ori);
|
||||
static s16 spoilingItemEntrances[] = { 0x01AD, 0x0153, 0x0153 };
|
||||
static f32 D_80125B54[] = { -40.0f, -35.0f }; // unused
|
||||
static s16 D_80125B5C[] = { 91, 91 }; // unused
|
||||
@@ -4542,25 +4657,23 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
//Custom Color is on but check if Dynamic Wallet is on.
|
||||
if (CVar_GetS32("gDynamicWalletIcon", 0) != 0) {
|
||||
//if on let's use Dynamic Colors
|
||||
rColor[0] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][0];
|
||||
rColor[1] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][1];
|
||||
rColor[2] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][2];
|
||||
rColor.r = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][0];
|
||||
rColor.g = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][1];
|
||||
rColor.b = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][2];
|
||||
} else {
|
||||
//else use our custom color
|
||||
rColor[0] = CVar_GetS32("gCCRupeePrimR", &rupeeWalletColors[0][0]);
|
||||
rColor[1] = CVar_GetS32("gCCRupeePrimG", &rupeeWalletColors[0][1]);
|
||||
rColor[2] = CVar_GetS32("gCCRupeePrimB", &rupeeWalletColors[0][2]);
|
||||
rColor = CVar_GetRGB("gCCRupeePrim", rColor_ori);
|
||||
}
|
||||
} else {
|
||||
//Custom colors is off so check if Dynamic Wallet is on.
|
||||
if (CVar_GetS32("gDynamicWalletIcon", 0) != 0) {
|
||||
rColor[0] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][0];
|
||||
rColor[1] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][1];
|
||||
rColor[2] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][2];
|
||||
rColor.r = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][0];
|
||||
rColor.g = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][1];
|
||||
rColor.b = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][2];
|
||||
} else {
|
||||
rColor[0] = rupeeWalletColors[0][0];
|
||||
rColor[1] = rupeeWalletColors[0][1];
|
||||
rColor[2] = rupeeWalletColors[0][2];
|
||||
rColor.r = rupeeWalletColors[0][0];
|
||||
rColor.g = rupeeWalletColors[0][1];
|
||||
rColor.b = rupeeWalletColors[0][2];
|
||||
}
|
||||
}
|
||||
if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gDynamicWalletIcon", 0) != 1) {
|
||||
@@ -4598,7 +4711,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
PosY_RC = PosY_RC_ori;
|
||||
PosX_RC = PosX_RC_ori;
|
||||
}
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rColor[0], rColor[1], rColor[2], interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rColor.r, rColor.g, rColor.b, interfaceCtx->magicAlpha);
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, PosX_RC, PosY_RC, 16, 16, 1 << 10, 1 << 10);
|
||||
|
||||
switch (globalCtx->sceneNum) {
|
||||
@@ -4651,10 +4764,10 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
gDPPipeSync(OVERLAY_DISP++);
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCKeysPrimR", 200), CVar_GetS32("gCCKeysPrimG", 230), CVar_GetS32("gCCKeysPrimB", 255), interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCKeysPrim", keyColor_ori).r,CVar_GetRGB("gCCKeysPrim", keyColor_ori).g,CVar_GetRGB("gCCKeysPrim", keyColor_ori).b, interfaceCtx->magicAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255); //We reset this here so it match user color :)
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 230, 255, interfaceCtx->magicAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, keyColor_ori.r, keyColor_ori.g, keyColor_ori.b, interfaceCtx->magicAlpha);
|
||||
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 20, 255);
|
||||
}
|
||||
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gSmallKeyCounterIconTex, 16, 16, PosX_SKC, PosY_SKC, 16, 16,
|
||||
@@ -4909,9 +5022,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCDpadPrimR", 255), CVar_GetS32("gCCDpadPrimG", 255), CVar_GetS32("gCCDpadPrimB", 255), dpadAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, DPad_colors.r,DPad_colors.g,DPad_colors.b, dpadAlpha);
|
||||
} else {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, dpadAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, DPad_colors_ori.r,DPad_colors_ori.g,DPad_colors_ori.b, dpadAlpha);
|
||||
}
|
||||
if (fullUi) {
|
||||
gDPLoadTextureBlock(OVERLAY_DISP++, ResourceMgr_LoadFileRaw("assets/ship_of_harkinian/buttons/dpad.bin"),
|
||||
@@ -4969,6 +5082,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
|
||||
// A Button
|
||||
func_80094A14(globalCtx->state.gfxCtx);
|
||||
const Color_RGB8 A_Button_Colors = {R_A_BTN_COLOR(0), R_A_BTN_COLOR(1), R_A_BTN_COLOR(2)};
|
||||
s16 X_Margins_BtnA;
|
||||
s16 Y_Margins_BtnA;
|
||||
if (CVar_GetS32("gABtnUseMargins", 0) != 0) {
|
||||
@@ -5015,9 +5129,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 90, 90, 255, interfaceCtx->aAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_A_BTN_COLOR(0), R_A_BTN_COLOR(1), R_A_BTN_COLOR(2), interfaceCtx->aAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, A_Button_Colors.r, A_Button_Colors.g, A_Button_Colors.b, interfaceCtx->aAlpha);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCABtnPrimR", R_A_BTN_COLOR(0)), CVar_GetS32("gCCABtnPrimG", R_A_BTN_COLOR(1)), CVar_GetS32("gCCABtnPrimB", R_A_BTN_COLOR(2)), interfaceCtx->aAlpha);
|
||||
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetRGB("gCCABtnPrim", A_Button_Colors).r,CVar_GetRGB("gCCABtnPrim", A_Button_Colors).g,CVar_GetRGB("gCCABtnPrim", A_Button_Colors).b, interfaceCtx->aAlpha);
|
||||
}
|
||||
if (fullUi) {
|
||||
Interface_DrawActionButton(globalCtx, PosX_BtnA, PosY_BtnA);
|
||||
|
||||
@@ -415,6 +415,13 @@ void Gameplay_Init(GameState* thisx) {
|
||||
PreRender_SetValues(&globalCtx->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0);
|
||||
gTrnsnUnkState = 0;
|
||||
globalCtx->transitionMode = 0;
|
||||
|
||||
if (CVar_GetS32("gSceneTransitions", 255)!= 255){
|
||||
globalCtx->transitionMode = CVar_GetS32("gSceneTransitions", 0);
|
||||
gSaveContext.nextTransition = CVar_GetS32("gSceneTransitions", 0);
|
||||
globalCtx->fadeTransition = CVar_GetS32("gSceneTransitions", 0);
|
||||
}
|
||||
|
||||
FrameAdvance_Init(&globalCtx->frameAdvCtx);
|
||||
Rand_Seed((u32)osGetTime());
|
||||
Matrix_Init(&globalCtx->state);
|
||||
|
||||
Reference in New Issue
Block a user