summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
authorBaoulettes <perlouzerie@hotmail.fr>2022-05-29 18:57:09 +0200
committerGitHub <noreply@github.com>2022-05-29 12:57:09 -0400
commit79133981104e2dedcdce5b941353babfaa55bd45 (patch)
tree6a2350457534a2fad190932f549933a2ce01017e /soh/src/code
parentccab94c765c5518e9ed8aa3a04b10c2d6a2d9159 (diff)
EnhancementColor3 tweak SohImGui Clean (#400)
* HUD Logic fix and cleaning * array revert it was just fo rme to read it better * Fix tunic logic seem like my cleaning was not good * I had declared default in CPP It resulted to overwrite what user would make oof. Also a ! was missing. * There, Default here is better. * magic bar and used bar what switched while updating EnhancementColor * hud mod update * Update SohImGuiImpl.h * should fix build
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_lifemeter.c49
-rw-r--r--soh/src/code/z_player_lib.c46
2 files changed, 57 insertions, 38 deletions
diff --git a/soh/src/code/z_lifemeter.c b/soh/src/code/z_lifemeter.c
index 30b18683f..e45850a73 100644
--- a/soh/src/code/z_lifemeter.c
+++ b/soh/src/code/z_lifemeter.c
@@ -128,6 +128,13 @@ void HealthMeter_Init(GlobalContext* globalCtx) {
HeartDDOutline[0] = CVar_GetS32("gDDCCHeartsPrimR", 90);
HeartDDOutline[1] = CVar_GetS32("gDDCCHeartsPrimG", 90);
HeartDDOutline[2] = CVar_GetS32("gDDCCHeartsPrimB", 90);
+ } 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;
}
interfaceCtx->unk_228 = 0x140;
@@ -194,12 +201,12 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
HeartDDOutline[1] = CVar_GetS32("gDDCCHeartsPrimG", sHeartsDDPrim[0][1]);
HeartDDOutline[2] = CVar_GetS32("gDDCCHeartsPrimB", sHeartsDDPrim[0][2]);
} else {
- HeartInner[0] = sHeartsPrimColors[0][0];
- HeartInner[1] = sHeartsPrimColors[0][1];
- HeartInner[2] = sHeartsPrimColors[0][2];
- HeartDDOutline[0] = sHeartsDDPrim[0][0];
- HeartDDOutline[1] = sHeartsDDPrim[0][1];
- HeartDDOutline[2] = sHeartsDDPrim[0][2];
+ 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;
}
if (interfaceCtx->unk_200 != 0) {
@@ -299,33 +306,33 @@ void HealthMeter_Update(GlobalContext* globalCtx) {
sBeatingHeartsDDEnv[1] = (u8)(gFactor + HeartDDInner[1]) & 0xFF;
sBeatingHeartsDDEnv[2] = (u8)(bFactor + HeartDDInner[2]) & 0xFF;
} else {
- sHeartsDDPrim[2][0] = HeartInner[0];
- sHeartsDDPrim[2][1] = HeartInner[1];
- sHeartsDDPrim[2][2] = HeartInner[2];
+ sHeartsDDPrim[2][0] = HEARTS_PRIM_R;
+ sHeartsDDPrim[2][1] = HEARTS_PRIM_G;
+ sHeartsDDPrim[2][2] = HEARTS_PRIM_B;
- sHeartsDDPrim[1][0] = sHeartsDDPrimColors[ddType][0];
- sHeartsDDPrim[1][1] = sHeartsDDPrimColors[ddType][1];
- sHeartsDDPrim[1][2] = sHeartsDDPrimColors[ddType][2];
+ sHeartsDDPrim[1][0] = HEARTS_DD_PRIM_R;
+ sHeartsDDPrim[1][1] = HEARTS_DD_PRIM_G;
+ sHeartsDDPrim[1][2] = HEARTS_DD_PRIM_B;
- sHeartsDDEnv[1][0] = sHeartsDDEnvColors[ddType][0];
- sHeartsDDEnv[1][1] = sHeartsDDEnvColors[ddType][1];
- sHeartsDDEnv[1][2] = sHeartsDDEnvColors[ddType][2];
+ sHeartsDDEnv[1][0] = HEARTS_PRIM_R;
+ sHeartsDDEnv[1][1] = HEARTS_PRIM_G;
+ sHeartsDDEnv[1][2] = HEARTS_PRIM_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 + HEARTS_DD_PRIM_R) & 0xFF;
+ sBeatingHeartsDDPrim[1] = (u8)(gFactor + HEARTS_DD_PRIM_G) & 0xFF;
+ sBeatingHeartsDDPrim[2] = (u8)(bFactor + HEARTS_DD_PRIM_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 + HEARTS_PRIM_R) & 0xFF;
+ sBeatingHeartsDDEnv[1] = (u8)(gFactor + HEARTS_PRIM_G) & 0xFF;
+ sBeatingHeartsDDEnv[2] = (u8)(bFactor + HEARTS_PRIM_B) & 0xFF;
}
}
diff --git a/soh/src/code/z_player_lib.c b/soh/src/code/z_player_lib.c
index af95f26df..83fae7ff1 100644
--- a/soh/src/code/z_player_lib.c
+++ b/soh/src/code/z_player_lib.c
@@ -744,26 +744,38 @@ void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
#else
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sMouthTextures[eyeIndex]));
#endif
- Color_RGB8 NewColor[3];
- color = &sTunicColors[tunic];
- if (CVar_GetS32("gUseTunicsCol",0) == 1) {
- if (tunic == PLAYER_TUNIC_KOKIRI || tunic == PLAYER_TUNIC_GORON || tunic == PLAYER_TUNIC_ZORA) {
- NewColor[PLAYER_TUNIC_KOKIRI].r = CVar_GetS32("gTunic_Kokiri_R", sTunicColors[PLAYER_TUNIC_KOKIRI].r);
- NewColor[PLAYER_TUNIC_KOKIRI].g = CVar_GetS32("gTunic_Kokiri_G", sTunicColors[PLAYER_TUNIC_KOKIRI].g);
- NewColor[PLAYER_TUNIC_KOKIRI].b = CVar_GetS32("gTunic_Kokiri_B", sTunicColors[PLAYER_TUNIC_KOKIRI].b);
- NewColor[PLAYER_TUNIC_GORON].r = CVar_GetS32("gTunic_Goron_R", sTunicColors[PLAYER_TUNIC_GORON].r);
- NewColor[PLAYER_TUNIC_GORON].g = CVar_GetS32("gTunic_Goron_G", sTunicColors[PLAYER_TUNIC_GORON].g);
- NewColor[PLAYER_TUNIC_GORON].b = CVar_GetS32("gTunic_Goron_B", sTunicColors[PLAYER_TUNIC_GORON].b);
- NewColor[PLAYER_TUNIC_ZORA].r = CVar_GetS32("gTunic_Zora_R", sTunicColors[PLAYER_TUNIC_ZORA].r);
- NewColor[PLAYER_TUNIC_ZORA].g = CVar_GetS32("gTunic_Zora_G", sTunicColors[PLAYER_TUNIC_ZORA].g);
- NewColor[PLAYER_TUNIC_ZORA].b = CVar_GetS32("gTunic_Zora_B", sTunicColors[PLAYER_TUNIC_ZORA].b);
+
+ Color_RGB8 sTemp;
+ Color_RGB8 sOriginalTunicColors[] = {
+ { 30, 105, 27 },
+ { 100, 20, 0 },
+ { 0, 60, 100 },
+ };
+ color = &sTemp;
+ if (tunic == PLAYER_TUNIC_KOKIRI && CVar_GetS32("gUseTunicsCol",0)) {
+ color->r = CVar_GetS32("gTunic_Kokiri_R", sTunicColors[PLAYER_TUNIC_KOKIRI].r);
+ color->g = CVar_GetS32("gTunic_Kokiri_G", sTunicColors[PLAYER_TUNIC_KOKIRI].g);
+ color->b = CVar_GetS32("gTunic_Kokiri_B", sTunicColors[PLAYER_TUNIC_KOKIRI].b);
+ } else if (tunic == PLAYER_TUNIC_GORON && CVar_GetS32("gUseTunicsCol",0)) {
+ color->r = CVar_GetS32("gTunic_Goron_R", sTunicColors[PLAYER_TUNIC_GORON].r);
+ color->g = CVar_GetS32("gTunic_Goron_G", sTunicColors[PLAYER_TUNIC_GORON].g);
+ color->b = CVar_GetS32("gTunic_Goron_B", sTunicColors[PLAYER_TUNIC_GORON].b);
+ } else if (tunic == PLAYER_TUNIC_ZORA && CVar_GetS32("gUseTunicsCol",0)) {
+ color->r = CVar_GetS32("gTunic_Zora_R", sTunicColors[PLAYER_TUNIC_ZORA].r);
+ color->g = CVar_GetS32("gTunic_Zora_G", sTunicColors[PLAYER_TUNIC_ZORA].g);
+ color->b = CVar_GetS32("gTunic_Zora_B", sTunicColors[PLAYER_TUNIC_ZORA].b);
+ } else if (!CVar_GetS32("gUseTunicsCol",0)){
+ if (tunic >= 3) {
+ color->r = sOriginalTunicColors[0].r;
+ color->g = sOriginalTunicColors[0].g;
+ color->b = sOriginalTunicColors[0].b;
} else {
- NewColor[PLAYER_TUNIC_KOKIRI].r = CVar_GetS32("gTunic_Kokiri_R", sTunicColors[PLAYER_TUNIC_KOKIRI].r);
- NewColor[PLAYER_TUNIC_KOKIRI].g = CVar_GetS32("gTunic_Kokiri_G", sTunicColors[PLAYER_TUNIC_KOKIRI].g);
- NewColor[PLAYER_TUNIC_KOKIRI].b = CVar_GetS32("gTunic_Kokiri_B", sTunicColors[PLAYER_TUNIC_KOKIRI].b);
+ color->r = sOriginalTunicColors[tunic].r;
+ color->g = sOriginalTunicColors[tunic].g;
+ color->b = sOriginalTunicColors[tunic].b;
}
- color = NewColor;
}
+
gDPSetEnvColor(POLY_OPA_DISP++, color->r, color->g, color->b, 0);
sDListsLodOffset = lod * 2;