diff --git a/soh/src/code/z_player_lib.c b/soh/src/code/z_player_lib.c index aaefb7de3..70df06f91 100644 --- a/soh/src/code/z_player_lib.c +++ b/soh/src/code/z_player_lib.c @@ -616,6 +616,9 @@ void Player_SetModelsForHoldingShield(Player* this) { if ((CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && LINK_IS_CHILD && gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI) { this->sheathDLists = &sPlayerDListGroups[this->sheathType][0]; + } else if ((CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && LINK_IS_ADULT && + gSaveContext.equips.buttonItems[0] == ITEM_SWORD_KOKIRI) { + this->sheathDLists = &sPlayerDListGroups[this->sheathType][1]; } this->modelAnimType = PLAYER_ANIMTYPE_2; this->itemAction = -1; @@ -675,7 +678,8 @@ void Player_SetModels(Player* this, s32 modelGroup) { } else if (LINK_IS_CHILD && this->currentShield == PLAYER_SHIELD_MIRROR && gSaveContext.equips.buttonItems[0] == ITEM_SWORD_KOKIRI && this->sheathType == PLAYER_MODELTYPE_SHEATH_18) { this->sheathDLists = &sPlayerDListGroups[this->sheathType][0]; - } else if (LINK_IS_ADULT && this->currentShield == PLAYER_SHIELD_DEKU) { + } else if (LINK_IS_ADULT && (this->currentShield == PLAYER_SHIELD_DEKU && gSaveContext.equips.buttonItems[0] != ITEM_SWORD_MASTER) || + (gSaveContext.equips.buttonItems[0] == ITEM_SWORD_MASTER && this->sheathType == PLAYER_MODELTYPE_SHEATH_18 && this->currentShield == PLAYER_SHIELD_DEKU)) { this->sheathDLists = &sPlayerDListGroups[this->sheathType][1]; } else if (LINK_IS_CHILD && this->sheathType == PLAYER_MODELTYPE_SHEATH_17 && ((gSaveContext.equips.buttonItems[0] == ITEM_SWORD_MASTER) || (gSaveContext.equips.buttonItems[0] == ITEM_SWORD_BGS))) { diff --git a/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 93ff272f4..45ed79cfe 100644 --- a/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -324,6 +324,10 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) { func_80090480(play, &this->collider, &this->hookInfo, &sp6C, &sp60); Gfx_SetupDL_25Opa(play->state.gfxCtx); + if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0) && + CVarGetInteger("gEnhancements.ScaleAdultEquimentAsChild", 0) && LINK_IS_CHILD) { + Matrix_Scale(0.8, 0.8, 0.8, MTXMODE_APPLY); + } gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHookshotTipDL); @@ -333,7 +337,12 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) { sp5C = sqrtf(sp58); Matrix_RotateY(Math_FAtan2F(sp78.x, sp78.z), MTXMODE_APPLY); Matrix_RotateX(Math_FAtan2F(-sp78.y, sp5C), MTXMODE_APPLY); - Matrix_Scale(0.015f, 0.015f, sqrtf(SQ(sp78.y) + sp58) * 0.01f, MTXMODE_APPLY); + if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0) && + CVarGetInteger("gEnhancements.ScaleAdultEquimentAsChild", 0) && LINK_IS_CHILD) { + Matrix_Scale(0.012f, 0.012f, sqrtf(SQ(sp78.y) + sp58) * 0.01f, MTXMODE_APPLY); + } else { + Matrix_Scale(0.015f, 0.015f, sqrtf(SQ(sp78.y) + sp58) * 0.01f, MTXMODE_APPLY); + } gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHookshotChainDL);