Fix Gerudo Warrior Clothing (#1752)

* Fix Gerudo Warrior Clothing

* Update soh/soh/GameMenuBar.cpp

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
This commit is contained in:
Amaro Martínez 2022-10-13 08:46:58 -05:00 committed by GitHub
parent 7878b8f3e4
commit 42a5f46e5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 20 deletions

View File

@ -298,6 +298,8 @@ namespace GameMenuBar {
CVar_SetS32("gCrouchStabHammerFix", 0); CVar_SetS32("gCrouchStabHammerFix", 0);
// Fix all crouch stab // Fix all crouch stab
CVar_SetS32("gCrouchStabFix", 0); CVar_SetS32("gCrouchStabFix", 0);
// Fix Gerudo Warrior's clothing colors
CVar_SetS32("gGerudoWarriorClothingFix", 0);
// Red Ganon blood // Red Ganon blood
CVar_SetS32("gRedGanonBlood", 0); CVar_SetS32("gRedGanonBlood", 0);
@ -1078,6 +1080,8 @@ namespace GameMenuBar {
UIWidgets::PaddedEnhancementCheckbox("Remove power crouch stab", "gCrouchStabFix", true, false); UIWidgets::PaddedEnhancementCheckbox("Remove power crouch stab", "gCrouchStabFix", true, false);
UIWidgets::Tooltip("Make crouch stabbing always do the same damage as a regular slash"); UIWidgets::Tooltip("Make crouch stabbing always do the same damage as a regular slash");
} }
UIWidgets::PaddedEnhancementCheckbox("Fix Gerudo Warrior's clothing colors", "gGerudoWarriorClothingFix", true, false);
UIWidgets::Tooltip("Prevent the Gerudo Warrior's clothes changing color when changing Link's tunic or using bombs in front of her");
ImGui::EndMenu(); ImGui::EndMenu();
} }

View File

@ -249,28 +249,30 @@ s32 EnGe3_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
case GELDB_LIMB_HEAD: case GELDB_LIMB_HEAD:
rot->x += this->headRot.y; rot->x += this->headRot.y;
// This is a hack to fix the color-changing clothes this Gerudo has on N64 versions
default: default:
OPEN_DISPS(globalCtx->state.gfxCtx); if (CVar_GetS32("gGerudoWarriorClothingFix", 0)) {
switch (limbIndex) { // This is a hack to fix the color-changing clothes this Gerudo has on N64 versions
case GELDB_LIMB_NECK: OPEN_DISPS(globalCtx->state.gfxCtx);
break; switch (limbIndex) {
case GELDB_LIMB_HEAD: case GELDB_LIMB_NECK:
gDPPipeSync(POLY_OPA_DISP++); break;
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255); case GELDB_LIMB_HEAD:
break; gDPPipeSync(POLY_OPA_DISP++);
case GELDB_LIMB_R_SWORD: gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
case GELDB_LIMB_L_SWORD: break;
gDPPipeSync(POLY_OPA_DISP++); case GELDB_LIMB_R_SWORD:
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255); case GELDB_LIMB_L_SWORD:
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); gDPPipeSync(POLY_OPA_DISP++);
break; gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
default: gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
gDPPipeSync(POLY_OPA_DISP++); break;
gDPSetEnvColor(POLY_OPA_DISP++, 140, 0, 0, 255); default:
break; gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 140, 0, 0, 255);
break;
}
CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
CLOSE_DISPS(globalCtx->state.gfxCtx);
break; break;
} }
return false; return false;