summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2022-12-22 08:31:49 -0700
committerPheenoh <pheenoh@gmail.com>2022-12-22 08:31:49 -0700
commitf6318d671c023965c6d15c5b83a626032efdc03a (patch)
tree1c9d93c8956a9eb5cd68d10357a9ce17fcfa6847 /src
parentd3ef35d560f5379711b4b8676c5a07d517a0cd68 (diff)
parent9e4944c4333936eac36dcc2d45b3018cc15601f4 (diff)
Merge branch 'd_a_player' into d_timer
Diffstat (limited to 'src')
-rw-r--r--src/d/a/d_a_player.cpp43
1 files changed, 35 insertions, 8 deletions
diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp
index 87abd94b82..899850c247 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?
@@ -560,7 +570,7 @@ SECTION_SDATA2 static u32 lit_4668 = 0xFF8000FF;
SECTION_SDATA2 static u32 lit_4669 = 0x321400FF;
/* 8015F1A0-8015F2FC 159AE0 015C+00 1/0 1/1 0/0 .text draw__18daPy_sightPacket_cFv */
-// dumb instruction block out of order
+// matches with literals
#ifdef NONMATCHING
void daPy_sightPacket_c::draw() {
GXTexObj texObj;
@@ -578,9 +588,11 @@ void daPy_sightPacket_c::draw() {
GXSetTevColor(GX_TEVREG0, reg0);
GXSetTevColor(GX_TEVREG1, reg1);
+ u8 tmp2 = mpImg->mipmapCount;
+ tmp2 = tmp2 > 1;
GXInitTexObj(&texObj, mpData, mpImg->width, mpImg->height, (GXTexFmt)mpImg->format,
(GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT,
- (GXBool)(mpImg->mipmapCount > 1));
+ (GXBool)(tmp2));
GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0, 0.0, 0.0, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(&texObj, GX_TEXMAP0);
GXLoadPosMtxImm(field_0x14, GX_PNMTX0);
@@ -632,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
@@ -640,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();
@@ -727,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;