From 1e453c7785dec616d522406f270eb891c303eede Mon Sep 17 00:00:00 2001 From: MoriyaFaith <46070717+MoriyaFaith@users.noreply.github.com> Date: Wed, 1 Nov 2023 10:57:41 -0400 Subject: [PATCH 1/2] wahoo --- OTRExporter | 2 +- ZAPDTR | 2 +- libultraship | 2 +- soh/assets/soh_assets.h | 7 +++++++ soh/src/code/z_player_lib.c | 35 ++++++++++++++++++++++++++++++++--- 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/OTRExporter b/OTRExporter index f1bc0a726..717ae7866 160000 --- a/OTRExporter +++ b/OTRExporter @@ -1 +1 @@ -Subproject commit f1bc0a726813d7e70ad471fdebd080e6fd77996a +Subproject commit 717ae786632e3f3e5f32a12dc0ecd86958593a8b diff --git a/ZAPDTR b/ZAPDTR index 9b8e224da..3d8a9c1ef 160000 --- a/ZAPDTR +++ b/ZAPDTR @@ -1 +1 @@ -Subproject commit 9b8e224dac83aa8e47a688884ad48725f18fc293 +Subproject commit 3d8a9c1efe15ad84bfca78a5a08a02489d8ed98c diff --git a/libultraship b/libultraship index 317edd72c..ec44917cf 160000 --- a/libultraship +++ b/libultraship @@ -1 +1 @@ -Subproject commit 317edd72cc317387f8ac010a9ec772d4bfdfdbb6 +Subproject commit ec44917cf5536c8c59aaa7865696926e0bec1ba0 diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index 2b193053c..f020cc5a9 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -56,6 +56,13 @@ static const ALIGN_ASSET(2) char gTriforcePiece2DL[] = dgTriforcePiece2DL; #define dgTriforcePieceCompletedDL "__OTR__objects/object_triforce_completed/gTriforcePieceCompletedDL" static const ALIGN_ASSET(2) char gTriforcePieceCompletedDL[] = dgTriforcePieceCompletedDL; +#define dgLinkBottleDL "__OTR__objects/object_link_eq/gLinkBottleDL" +static const ALIGN_ASSET(2) char gLinkBottleDL[] = dgLinkBottleDL; + +#define dgLinkBottleContentsDL "__OTR__objects/object_link_eq/gLinkBottleContentsDL" +static const ALIGN_ASSET(2) char gLinkBottleContentsDL[] = dgLinkBottleContentsDL; + + // overlays #define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx" static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx; diff --git a/soh/src/code/z_player_lib.c b/soh/src/code/z_player_lib.c index 820f2c672..675797d59 100644 --- a/soh/src/code/z_player_lib.c +++ b/soh/src/code/z_player_lib.c @@ -5,6 +5,7 @@ #include "objects/object_link_child/object_link_child.h" #include "objects/object_triforce_spot/object_triforce_spot.h" #include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h" +#include "soh_assets.h" #include "soh/Enhancements/game-interactor/GameInteractor.h" #include "soh/Enhancements/randomizer/draw.h" @@ -572,6 +573,23 @@ uint8_t Player_IsCustomLinkModel() { (LINK_IS_CHILD && ResourceGetIsCustomByName(gLinkChildSkel)); } +// Alternate Equipment Loading function. (global function) +// Checks if player can use new loading method, for Bottles Only. +uint8_t Player_CanUseNewLoadingMethodBottle(Player* this) { + if (!CVarGetInteger("gAltLinkEquip", 1)) { + return false; + } + + switch (this->leftHandType) { + case PLAYER_MODELTYPE_LH_BOTTLE: + if (ResourceGetIsCustomByName(gLinkBottleDL)) { + return true; + } + break; + return false; + } +} + s32 Player_InBlockingCsMode(PlayState* play, Player* this) { return (this->stateFlags1 & 0x20000080) || (this->csMode != 0) || (play->sceneLoadFlag == 0x14) || (this->stateFlags1 & 1) || (this->stateFlags3 & 0x80) || @@ -1720,11 +1738,22 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve OPEN_DISPS(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetEnvColor(POLY_XLU_DISP++, bottleColor->r, bottleColor->g, bottleColor->b, 0); - gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[(gSaveContext.linkAge)]); + if (this->itemAction != PLAYER_IA_BOTTLE && Player_CanUseNewLoadingMethodBottle(this) && + ResourceGetIsCustomByName(gLinkBottleContentsDL)) { //check to make sure that this won't break everything + gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gLinkBottleContentsDL); + } + + gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + if (Player_CanUseNewLoadingMethodBottle(this)) { + gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gLinkBottleDL); + } else { + gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[(gSaveContext.linkAge)]); + } CLOSE_DISPS(play->state.gfxCtx); } From 1ff878f59fe1a98f1e8abb85dc4c2e1f13109817 Mon Sep 17 00:00:00 2001 From: MoriyaFaith <46070717+MoriyaFaith@users.noreply.github.com> Date: Wed, 1 Nov 2023 21:01:28 -0400 Subject: [PATCH 2/2] Fix submodules --- OTRExporter | 2 +- ZAPDTR | 2 +- libultraship | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OTRExporter b/OTRExporter index 717ae7866..f1bc0a726 160000 --- a/OTRExporter +++ b/OTRExporter @@ -1 +1 @@ -Subproject commit 717ae786632e3f3e5f32a12dc0ecd86958593a8b +Subproject commit f1bc0a726813d7e70ad471fdebd080e6fd77996a diff --git a/ZAPDTR b/ZAPDTR index 3d8a9c1ef..9b8e224da 160000 --- a/ZAPDTR +++ b/ZAPDTR @@ -1 +1 @@ -Subproject commit 3d8a9c1efe15ad84bfca78a5a08a02489d8ed98c +Subproject commit 9b8e224dac83aa8e47a688884ad48725f18fc293 diff --git a/libultraship b/libultraship index ec44917cf..317edd72c 160000 --- a/libultraship +++ b/libultraship @@ -1 +1 @@ -Subproject commit ec44917cf5536c8c59aaa7865696926e0bec1ba0 +Subproject commit 317edd72cc317387f8ac010a9ec772d4bfdfdbb6