mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-26 03:12:18 -05:00
[Graphics] Show Equipment Regardless of Age (#3830)
* Hookshot, Hammer, & Boomerang * Added the remainder of equipment and DL Patching for hands * Removed Mirror Shield Patch Messed with the front texture of shield * Child Hylian Shield Cheat Adds a cheat that allows Child Link to hold Hylian Shield as adult. Added to this since it uses the same way to render the shield * Debugging * Adds Scaling to Child Link with Adult Equipment * Fix Merge Conflict Blunders * More cleanup * Added Scaling checkbox and some clean up * Added an || ITEM_NONE * More cleanup and simplification * Accidently added spacer * Replace B_BTN_ITEM * Spacing Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> * Added most sheath functionality * Updated tooltips * removed child hylian shield and tweaked bow/slingshot Made child hylian shield cheat into a separate branch and hooked into existing bow/slingshot enhancement for drawing those * Prefixes * () --------- Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
This commit is contained in:
parent
a6457599f9
commit
775d3e68b7
@ -23,6 +23,8 @@
|
|||||||
#include "src/overlays/actors/ovl_En_Tp/z_en_tp.h"
|
#include "src/overlays/actors/ovl_En_Tp/z_en_tp.h"
|
||||||
#include "src/overlays/actors/ovl_En_Firefly/z_en_firefly.h"
|
#include "src/overlays/actors/ovl_En_Firefly/z_en_firefly.h"
|
||||||
#include "src/overlays/actors/ovl_En_Xc/z_en_xc.h"
|
#include "src/overlays/actors/ovl_En_Xc/z_en_xc.h"
|
||||||
|
#include "objects/object_link_boy/object_link_boy.h"
|
||||||
|
#include "objects/object_link_child/object_link_child.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <z64.h>
|
#include <z64.h>
|
||||||
@ -687,6 +689,54 @@ void RegisterMirrorModeHandler() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UpdatePatchHand() {
|
||||||
|
if ((CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && LINK_IS_CHILD) {
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultLeftHandHoldingHammerNearDL, "childHammer1", 92, gsSPDisplayListOTRFilePath(gLinkChildLeftFistNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultLeftHandHoldingHammerNearDL, "childHammer2", 93, gsSPEndDisplayList());
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultRightHandHoldingHookshotNearDL, "childHookshot1", 84, gsSPDisplayListOTRFilePath(gLinkChildRightHandClosedNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultRightHandHoldingHookshotNearDL, "childHookshot2", 85, gsSPEndDisplayList());
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultRightHandHoldingBowNearDL, "childBow1", 51, gsSPDisplayListOTRFilePath(gLinkChildRightHandClosedNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultRightHandHoldingBowNearDL, "childBow2", 52, gsSPEndDisplayList());
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultLeftHandHoldingMasterSwordNearDL, "childMasterSword1", 104, gsSPDisplayListOTRFilePath(gLinkChildLeftFistNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultLeftHandHoldingMasterSwordNearDL, "childMasterSword2", 105, gsSPEndDisplayList());
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultLeftHandHoldingBgsNearDL, "childBiggoronSword1", 79, gsSPDisplayListOTRFilePath(gLinkChildLeftFistNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultLeftHandHoldingBgsNearDL, "childBiggoronSword2", 80, gsSPEndDisplayList());
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultHandHoldingBrokenGiantsKnifeDL, "childBrokenGiantsKnife1", 76, gsSPDisplayListOTRFilePath(gLinkChildLeftFistNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkAdultHandHoldingBrokenGiantsKnifeDL, "childBrokenGiantsKnife2", 77, gsSPEndDisplayList());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultLeftHandHoldingHammerNearDL, "childHammer1");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultLeftHandHoldingHammerNearDL, "childHammer2");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultRightHandHoldingHookshotNearDL, "childHookshot1");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultRightHandHoldingHookshotNearDL, "childHookshot2");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultRightHandHoldingBowNearDL, "childBow1");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultRightHandHoldingBowNearDL, "childBow2");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultLeftHandHoldingMasterSwordNearDL, "childMasterSword1");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultLeftHandHoldingMasterSwordNearDL, "childMasterSword2");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultLeftHandHoldingBgsNearDL, "childBiggoronSword1");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultLeftHandHoldingBgsNearDL, "childBiggoronSword2");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultHandHoldingBrokenGiantsKnifeDL, "childBrokenGiantsKnife1");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkAdultHandHoldingBrokenGiantsKnifeDL, "childBrokenGiantsKnife2");
|
||||||
|
}
|
||||||
|
if ((CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && LINK_IS_ADULT) {
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkChildLeftFistAndKokiriSwordNearDL, "adultKokiriSword", 13, gsSPDisplayListOTRFilePath(gLinkAdultLeftHandClosedNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkChildRightHandHoldingSlingshotNearDL, "adultSlingshot", 13, gsSPDisplayListOTRFilePath(gLinkAdultRightHandClosedNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkChildLeftFistAndBoomerangNearDL, "adultBoomerang", 50, gsSPDisplayListOTRFilePath(gLinkAdultLeftHandClosedNearDL));
|
||||||
|
ResourceMgr_PatchGfxByName(gLinkChildRightFistAndDekuShieldNearDL, "adultDekuShield", 49, gsSPDisplayListOTRFilePath(gLinkAdultRightHandClosedNearDL));
|
||||||
|
} else {
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkChildLeftFistAndKokiriSwordNearDL, "adultKokiriSword");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkChildRightHandHoldingSlingshotNearDL, "adultSlingshot");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkChildLeftFistAndBoomerangNearDL, "adultBoomerang");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gLinkChildRightFistAndDekuShieldNearDL, "adultDekuShield");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RegisterPatchHandHandler() {
|
||||||
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneInit>([](int32_t sceneNum) {
|
||||||
|
UpdatePatchHand();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void RegisterResetNaviTimer() {
|
void RegisterResetNaviTimer() {
|
||||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneInit>([](int32_t sceneNum) {
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneInit>([](int32_t sceneNum) {
|
||||||
if (CVarGetInteger("gEnhancements.ResetNaviTimer", 0)) {
|
if (CVarGetInteger("gEnhancements.ResetNaviTimer", 0)) {
|
||||||
@ -1288,5 +1338,6 @@ void InitMods() {
|
|||||||
RegisterRandomizedEnemySizes();
|
RegisterRandomizedEnemySizes();
|
||||||
RegisterToTMedallions();
|
RegisterToTMedallions();
|
||||||
NameTag_RegisterHooks();
|
NameTag_RegisterHooks();
|
||||||
|
RegisterPatchHandHandler();
|
||||||
RegisterHurtContainerModeHandler();
|
RegisterHurtContainerModeHandler();
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ void UpdateHurtContainerModeState(bool newState);
|
|||||||
void PatchToTMedallions();
|
void PatchToTMedallions();
|
||||||
void UpdatePermanentHeartLossState();
|
void UpdatePermanentHeartLossState();
|
||||||
void InitMods();
|
void InitMods();
|
||||||
|
void UpdatePatchHand();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -1112,6 +1112,15 @@ void DrawEnhancementsMenu() {
|
|||||||
UIWidgets::PaddedEnhancementCheckbox("Kokiri Draw Distance", "gDisableKokiriDrawDistance", true, false);
|
UIWidgets::PaddedEnhancementCheckbox("Kokiri Draw Distance", "gDisableKokiriDrawDistance", true, false);
|
||||||
UIWidgets::Tooltip("The Kokiri are mystical beings that fade into view when approached\nEnabling this will remove their draw distance");
|
UIWidgets::Tooltip("The Kokiri are mystical beings that fade into view when approached\nEnabling this will remove their draw distance");
|
||||||
}
|
}
|
||||||
|
if (UIWidgets::PaddedEnhancementCheckbox("Show Age-Dependent Equipment", "gEnhancements.EquimentAlwaysVisible", true,
|
||||||
|
false)) {
|
||||||
|
UpdatePatchHand();
|
||||||
|
}
|
||||||
|
UIWidgets::Tooltip("Makes all equipment visible, regardless of Age.");
|
||||||
|
if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0) == 1) {
|
||||||
|
UIWidgets::PaddedEnhancementCheckbox("Scale Adult Equipment as Child", "gEnhancements.ScaleAdultEquimentAsChild", true, false);
|
||||||
|
UIWidgets::Tooltip("Scales all of the Adult Equipment, as well and moving some a bit, to fit on Child Link Better. May not work properly with some mods.");
|
||||||
|
}
|
||||||
UIWidgets::PaddedEnhancementCheckbox("N64 Mode", "gLowResMode", true, false);
|
UIWidgets::PaddedEnhancementCheckbox("N64 Mode", "gLowResMode", true, false);
|
||||||
UIWidgets::Tooltip("Sets aspect ratio to 4:3 and lowers resolution to 240p, the N64's native resolution");
|
UIWidgets::Tooltip("Sets aspect ratio to 4:3 and lowers resolution to 240p, the N64's native resolution");
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Glitch line-up tick", "gDrawLineupTick", true, false);
|
UIWidgets::PaddedEnhancementCheckbox("Glitch line-up tick", "gDrawLineupTick", true, false);
|
||||||
|
@ -600,13 +600,23 @@ void Player_SetModelsForHoldingShield(Player* this) {
|
|||||||
if ((CVarGetInteger("gShieldTwoHanded", 0) && (this->heldItemAction != PLAYER_IA_DEKU_STICK) ||
|
if ((CVarGetInteger("gShieldTwoHanded", 0) && (this->heldItemAction != PLAYER_IA_DEKU_STICK) ||
|
||||||
!Player_HoldsTwoHandedWeapon(this)) && !Player_IsChildWithHylianShield(this)) {
|
!Player_HoldsTwoHandedWeapon(this)) && !Player_IsChildWithHylianShield(this)) {
|
||||||
this->rightHandType = PLAYER_MODELTYPE_RH_SHIELD;
|
this->rightHandType = PLAYER_MODELTYPE_RH_SHIELD;
|
||||||
this->rightHandDLists = &sPlayerDListGroups[PLAYER_MODELTYPE_RH_SHIELD][gSaveContext.linkAge];
|
if (LINK_IS_CHILD && (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && (this->currentShield == PLAYER_SHIELD_MIRROR)) {
|
||||||
|
this->rightHandDLists = &sPlayerDListGroups[PLAYER_MODELTYPE_RH_SHIELD][0];
|
||||||
|
} else if (LINK_IS_ADULT && (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && (this->currentShield == PLAYER_SHIELD_DEKU)) {
|
||||||
|
this->rightHandDLists = &sPlayerDListGroups[PLAYER_MODELTYPE_RH_SHIELD][1];
|
||||||
|
} else {
|
||||||
|
this->rightHandDLists = &sPlayerDListGroups[PLAYER_MODELTYPE_RH_SHIELD][gSaveContext.linkAge];
|
||||||
|
}
|
||||||
if (this->sheathType == PLAYER_MODELTYPE_SHEATH_18) {
|
if (this->sheathType == PLAYER_MODELTYPE_SHEATH_18) {
|
||||||
this->sheathType = PLAYER_MODELTYPE_SHEATH_16;
|
this->sheathType = PLAYER_MODELTYPE_SHEATH_16;
|
||||||
} else if (this->sheathType == PLAYER_MODELTYPE_SHEATH_19) {
|
} else if (this->sheathType == PLAYER_MODELTYPE_SHEATH_19) {
|
||||||
this->sheathType = PLAYER_MODELTYPE_SHEATH_17;
|
this->sheathType = PLAYER_MODELTYPE_SHEATH_17;
|
||||||
}
|
}
|
||||||
this->sheathDLists = &sPlayerDListGroups[this->sheathType][gSaveContext.linkAge];
|
this->sheathDLists = &sPlayerDListGroups[this->sheathType][gSaveContext.linkAge];
|
||||||
|
if ((CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && LINK_IS_CHILD &&
|
||||||
|
gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI) {
|
||||||
|
this->sheathDLists = &sPlayerDListGroups[this->sheathType][0];
|
||||||
|
}
|
||||||
this->modelAnimType = PLAYER_ANIMTYPE_2;
|
this->modelAnimType = PLAYER_ANIMTYPE_2;
|
||||||
this->itemAction = -1;
|
this->itemAction = -1;
|
||||||
}
|
}
|
||||||
@ -618,11 +628,39 @@ void Player_SetModels(Player* this, s32 modelGroup) {
|
|||||||
this->leftHandType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_LEFT_HAND];
|
this->leftHandType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_LEFT_HAND];
|
||||||
this->leftHandDLists = &sPlayerDListGroups[this->leftHandType][gSaveContext.linkAge];
|
this->leftHandDLists = &sPlayerDListGroups[this->leftHandType][gSaveContext.linkAge];
|
||||||
|
|
||||||
|
if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) {
|
||||||
|
if (LINK_IS_CHILD &&
|
||||||
|
(this->leftHandType == PLAYER_MODELTYPE_LH_HAMMER ||
|
||||||
|
((this->leftHandType == PLAYER_MODELTYPE_LH_SWORD || this->leftHandType == PLAYER_MODELTYPE_LH_BGS) &&
|
||||||
|
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)))) {
|
||||||
|
this->leftHandDLists = &sPlayerDListGroups[this->leftHandType][0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LINK_IS_ADULT && (this->leftHandType == PLAYER_MODELTYPE_LH_BOOMERANG ||
|
||||||
|
(this->leftHandType == PLAYER_MODELTYPE_LH_SWORD && gSaveContext.equips.buttonItems[0] == ITEM_SWORD_KOKIRI))) {
|
||||||
|
this->leftHandDLists = &sPlayerDListGroups[this->leftHandType][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Right hand
|
// Right hand
|
||||||
this->rightHandType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_RIGHT_HAND];
|
this->rightHandType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_RIGHT_HAND];
|
||||||
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][gSaveContext.linkAge];
|
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][gSaveContext.linkAge];
|
||||||
|
|
||||||
if (CVarGetInteger("gBowSlingShotAmmoFix", 0) && this->rightHandType == 11) { // If holding Bow/Slingshot
|
this->rightHandType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_RIGHT_HAND];
|
||||||
|
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][gSaveContext.linkAge];
|
||||||
|
|
||||||
|
if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) {
|
||||||
|
if (LINK_IS_CHILD &&
|
||||||
|
(this->rightHandType == PLAYER_MODELTYPE_RH_HOOKSHOT ||
|
||||||
|
(this->rightHandType == PLAYER_MODELTYPE_RH_SHIELD && this->currentShield == PLAYER_SHIELD_MIRROR))) {
|
||||||
|
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][0];
|
||||||
|
}
|
||||||
|
if (LINK_IS_ADULT &&
|
||||||
|
(this->rightHandType == PLAYER_MODELTYPE_RH_SHIELD && this->currentShield == PLAYER_SHIELD_DEKU)) {
|
||||||
|
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((CVarGetInteger("gBowSlingShotAmmoFix", 0) || CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && this->rightHandType == 11) { // If holding Bow/Slingshot
|
||||||
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][Player_HoldsSlingshot(this)];
|
this->rightHandDLists = &sPlayerDListGroups[this->rightHandType][Player_HoldsSlingshot(this)];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -630,6 +668,23 @@ void Player_SetModels(Player* this, s32 modelGroup) {
|
|||||||
this->sheathType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_SHEATH];
|
this->sheathType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_SHEATH];
|
||||||
this->sheathDLists = &sPlayerDListGroups[this->sheathType][gSaveContext.linkAge];
|
this->sheathDLists = &sPlayerDListGroups[this->sheathType][gSaveContext.linkAge];
|
||||||
|
|
||||||
|
if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) {
|
||||||
|
if (LINK_IS_CHILD &&
|
||||||
|
(this->currentShield == PLAYER_SHIELD_HYLIAN || this->currentShield == PLAYER_SHIELD_MIRROR) &&
|
||||||
|
((gSaveContext.equips.buttonItems[0] == ITEM_SWORD_MASTER) ||
|
||||||
|
(gSaveContext.equips.buttonItems[0] == ITEM_SWORD_BGS))) {
|
||||||
|
this->sheathDLists = &sPlayerDListGroups[this->sheathType][0];
|
||||||
|
} 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) {
|
||||||
|
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))) {
|
||||||
|
this->sheathDLists = &sPlayerDListGroups[this->sheathType][0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Waist
|
// Waist
|
||||||
this->waistDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][4]][gSaveContext.linkAge];
|
this->waistDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][4]][gSaveContext.linkAge];
|
||||||
|
|
||||||
@ -1188,6 +1243,42 @@ void func_8008F87C(PlayState* play, Player* this, SkelAnime* skelAnime, Vec3f* p
|
|||||||
s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
|
s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
|
||||||
Player* this = (Player*)thisx;
|
Player* this = (Player*)thisx;
|
||||||
|
|
||||||
|
if (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0) && CVarGetInteger("gEnhancements.ScaleAdultEquimentAsChild", 0) && LINK_IS_CHILD) {
|
||||||
|
if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||||
|
if ((gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI && sLeftHandType == PLAYER_MODELTYPE_LH_SWORD) ||
|
||||||
|
(sLeftHandType == PLAYER_MODELTYPE_LH_BGS) || (sLeftHandType == PLAYER_MODELTYPE_LH_HAMMER)) {
|
||||||
|
Matrix_Scale(0.8, 0.8, 0.8, MTXMODE_APPLY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (limbIndex == PLAYER_LIMB_R_HAND) {
|
||||||
|
if ((this->currentShield == PLAYER_SHIELD_MIRROR && sRightHandType == PLAYER_MODELTYPE_RH_SHIELD) ||
|
||||||
|
(this->currentShield == PLAYER_SHIELD_HYLIAN && (gSaveContext.equips.buttonItems[0] == ITEM_SWORD_MASTER ||
|
||||||
|
gSaveContext.equips.buttonItems[0] == ITEM_SWORD_BGS)) || (sRightHandType == PLAYER_MODELTYPE_RH_HOOKSHOT) ||
|
||||||
|
(sRightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT && Player_HoldsBow(this))) {
|
||||||
|
Matrix_Scale(0.8, 0.8, 0.8, MTXMODE_APPLY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (limbIndex == PLAYER_LIMB_SHEATH) {
|
||||||
|
if ((this->currentShield == PLAYER_SHIELD_MIRROR ||
|
||||||
|
(this->currentShield == PLAYER_SHIELD_HYLIAN &&
|
||||||
|
(gSaveContext.equips.buttonItems[0] == ITEM_SWORD_MASTER ||
|
||||||
|
gSaveContext.equips.buttonItems[0] == ITEM_SWORD_BGS))) &&
|
||||||
|
((this->sheathType == PLAYER_MODELTYPE_SHEATH_16) || (this->sheathType == PLAYER_MODELTYPE_SHEATH_17) ||
|
||||||
|
(this->sheathType == PLAYER_MODELTYPE_SHEATH_18) ||
|
||||||
|
(this->sheathType == PLAYER_MODELTYPE_SHEATH_19))) {
|
||||||
|
Matrix_Translate(218, -100, 62, MTXMODE_APPLY);
|
||||||
|
Matrix_Scale(0.8, 0.8, 0.8, MTXMODE_APPLY);
|
||||||
|
}
|
||||||
|
if ((this->currentShield == PLAYER_SHIELD_DEKU &&
|
||||||
|
gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI &&
|
||||||
|
(this->sheathType == PLAYER_MODELTYPE_SHEATH_16 ||
|
||||||
|
this->sheathType == PLAYER_MODELTYPE_SHEATH_17))) {
|
||||||
|
Matrix_Translate(218, -100, 62, MTXMODE_APPLY);
|
||||||
|
Matrix_Scale(0.8, 0.8, 0.8, MTXMODE_APPLY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (limbIndex == PLAYER_LIMB_ROOT) {
|
if (limbIndex == PLAYER_LIMB_ROOT) {
|
||||||
sLeftHandType = this->leftHandType;
|
sLeftHandType = this->leftHandType;
|
||||||
sRightHandType = this->rightHandType;
|
sRightHandType = this->rightHandType;
|
||||||
@ -1305,9 +1396,11 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
|
|||||||
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
||||||
dLists += PLAYER_SHIELD_MAX * 4;
|
dLists += PLAYER_SHIELD_MAX * 4;
|
||||||
}
|
}
|
||||||
} else if (!LINK_IS_ADULT && ((this->sheathType == PLAYER_MODELTYPE_SHEATH_16) || (this->sheathType == PLAYER_MODELTYPE_SHEATH_17)) &&
|
} else if (!CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) {
|
||||||
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
if (!LINK_IS_ADULT && ((this->sheathType == PLAYER_MODELTYPE_SHEATH_16) || (this->sheathType == PLAYER_MODELTYPE_SHEATH_17)) &&
|
||||||
dLists = &sSheathWithSwordDLs[PLAYER_SHIELD_MAX * 4];
|
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
||||||
|
dLists = &sSheathWithSwordDLs[PLAYER_SHIELD_MAX * 4];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dLists[sDListsLodOffset] != NULL) {
|
if (dLists[sDListsLodOffset] != NULL) {
|
||||||
@ -1345,7 +1438,7 @@ s32 Player_OverrideLimbDrawGameplayFirstPerson(PlayState* play, s32 limbIndex, G
|
|||||||
*dList = sFirstPersonLeftForearmDLs[gSaveContext.linkAge];
|
*dList = sFirstPersonLeftForearmDLs[gSaveContext.linkAge];
|
||||||
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||||
s32 handOutDlIndex = gSaveContext.linkAge;
|
s32 handOutDlIndex = gSaveContext.linkAge;
|
||||||
if (CVarGetInteger("gBowSlingShotAmmoFix", 0) && LINK_IS_ADULT && Player_HoldsSlingshot(this)) {
|
if ((CVarGetInteger("gBowSlingShotAmmoFix", 0) || CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) && LINK_IS_ADULT && Player_HoldsSlingshot(this)) {
|
||||||
handOutDlIndex = 1;
|
handOutDlIndex = 1;
|
||||||
}
|
}
|
||||||
*dList = sFirstPersonLeftHandDLs[handOutDlIndex];
|
*dList = sFirstPersonLeftHandDLs[handOutDlIndex];
|
||||||
@ -1355,7 +1448,7 @@ s32 Player_OverrideLimbDrawGameplayFirstPerson(PlayState* play, s32 limbIndex, G
|
|||||||
*dList = sFirstPersonForearmDLs[gSaveContext.linkAge];
|
*dList = sFirstPersonForearmDLs[gSaveContext.linkAge];
|
||||||
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
|
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
|
||||||
s32 firstPersonWeaponIndex = gSaveContext.linkAge;
|
s32 firstPersonWeaponIndex = gSaveContext.linkAge;
|
||||||
if (CVarGetInteger("gBowSlingShotAmmoFix", 0)) {
|
if (CVarGetInteger("gBowSlingShotAmmoFix", 0) || CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) {
|
||||||
if (Player_HoldsBow(this)) {
|
if (Player_HoldsBow(this)) {
|
||||||
firstPersonWeaponIndex = 0;
|
firstPersonWeaponIndex = 0;
|
||||||
} else if (Player_HoldsSlingshot(this)) {
|
} else if (Player_HoldsSlingshot(this)) {
|
||||||
@ -1755,7 +1848,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||||||
Matrix_Get(&this->shieldMf);
|
Matrix_Get(&this->shieldMf);
|
||||||
} else if ((this->rightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT) || (this->rightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT_2)) {
|
} else if ((this->rightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT) || (this->rightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT_2)) {
|
||||||
s32 stringModelToUse = gSaveContext.linkAge;
|
s32 stringModelToUse = gSaveContext.linkAge;
|
||||||
if(CVarGetInteger("gBowSlingShotAmmoFix", 0)){
|
if (CVarGetInteger("gBowSlingShotAmmoFix", 0) || CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0)) {
|
||||||
stringModelToUse = Player_HoldsSlingshot(this);
|
stringModelToUse = Player_HoldsSlingshot(this);
|
||||||
}
|
}
|
||||||
BowStringData* stringData = &sBowStringData[stringModelToUse];
|
BowStringData* stringData = &sBowStringData[stringModelToUse];
|
||||||
|
@ -2911,7 +2911,11 @@ s32 func_808356E8(Player* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_808357E8(Player* this, Gfx** dLists) {
|
void func_808357E8(Player* this, Gfx** dLists) {
|
||||||
this->leftHandDLists = &dLists[gSaveContext.linkAge];
|
if (LINK_IS_ADULT && (CVarGetInteger("gEnhancements.EquimentAlwaysVisible", 0))) {
|
||||||
|
this->leftHandDLists = &dLists[1];
|
||||||
|
} else {
|
||||||
|
this->leftHandDLists = &dLists[gSaveContext.linkAge];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80835800(Player* this, PlayState* play) {
|
s32 func_80835800(Player* this, PlayState* play) {
|
||||||
|
Loading…
Reference in New Issue
Block a user