diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 97ee69ced6b..72a8fbc7623 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -441,7 +441,7 @@ public: static void setLookPos(cXyz*); static void setPlayerSe(u32); static bool linkGrabSubjectNoDraw(fopAc_ac_c*); - void wolfGrabSubjectNoDraw(fopAc_ac_c*); + static bool wolfGrabSubjectNoDraw(fopAc_ac_c*); static bool checkRoomRestartStart(); static u32 checkCarryStartLightBallA(); static u32 checkCarryStartLightBallB(); diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 4ec16bfc1fe..899850c2477 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -303,6 +303,15 @@ BOOL daPy_py_c::checkFishingRodItem(int i_itemNo) { } /* 8015EA48-8015EA88 159388 0040+00 0/0 3/3 0/0 .text checkBombItem__9daPy_py_cFi */ +#ifdef NONMATCHING +BOOL daPy_py_c::checkBombItem(int param_0) { + bool ret = true; + if (param_0 != NORMAL_BOMB || param_0 != WATER_BOMB) { + ret = false; + } + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -311,6 +320,7 @@ asm BOOL daPy_py_c::checkBombItem(int param_0) { #include "asm/d/a/d_a_player/checkBombItem__9daPy_py_cFi.s" } #pragma pop +#endif /* 8015EA88-8015EAD8 1593C8 0050+00 0/0 5/5 0/0 .text checkBottleItem__9daPy_py_cFi */ // is there a way to write this with a switch? @@ -634,6 +644,18 @@ BOOL daPy_py_c::checkMasterSwordEquip() { /* 8015F3C4-8015F3FC 159D04 0038+00 0/0 4/4 0/0 .text checkWoodShieldEquip__9daPy_py_cFv */ +#ifdef NONMATCHING +BOOL daPy_py_c::checkWoodShieldEquip() { + int equipShield = dComIfGs_getSelectEquipShield(); + bool isWoodShield = true; + + if (equipShield == SHIELD) { + isWoodShield = false; + } + + return isWoodShield; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -642,6 +664,7 @@ asm BOOL daPy_py_c::checkWoodShieldEquip() { #include "asm/d/a/d_a_player/checkWoodShieldEquip__9daPy_py_cFv.s" } #pragma pop +#endif BOOL daPy_py_c::checkNowWolf() { return dComIfGp_getLinkPlayer()->i_checkWolf(); @@ -729,13 +752,15 @@ asm bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* param_0) { /* 8015F60C-8015F660 159F4C 0054+00 0/0 0/0 2/2 .text * wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* param_0){nofralloc -#include "asm/d/a/d_a_player/wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s" +bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* param_0){ + bool ret = false; + if (checkNowWolf()) { + if (linkGrabSubjectNoDraw(param_0)) { + ret = true; + } + } + return ret; } -#pragma pop u32 daPy_py_c::getLastSceneMode() { return dComIfGs_getLastSceneMode() & 0xF;