diff --git a/configure.py b/configure.py index 17bf9c32d1..3e5c2740f6 100755 --- a/configure.py +++ b/configure.py @@ -1114,7 +1114,7 @@ config.libs = [ Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2EnvSeMgr.cpp"), Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2WolfHowlMgr.cpp"), Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2SpeechMgr2.cpp"), - Object(NonMatching, "Z2AudioLib/Z2AudioMgr.cpp"), + Object(Equivalent, "Z2AudioLib/Z2AudioMgr.cpp"), # weak func order ], }, { @@ -1703,7 +1703,7 @@ config.libs = [ ActorRel(MatchingFor(ALL_GCN), "d_a_obj_swpush"), ActorRel(MatchingFor(ALL_GCN), "d_a_obj_timer"), ActorRel(MatchingFor(ALL_GCN), "d_a_path_line"), - ActorRel(NonMatching, "d_a_scene_exit"), + ActorRel(MatchingFor(ALL_GCN), "d_a_scene_exit"), ActorRel(MatchingFor(ALL_GCN), "d_a_set_bgobj"), ActorRel(MatchingFor(ALL_GCN), "d_a_swhit0"), ActorRel(MatchingFor(ALL_GCN), "d_a_tag_allmato"), diff --git a/include/JSystem/J2DGraph/J2DMatBlock.h b/include/JSystem/J2DGraph/J2DMatBlock.h index 4a3fec0c35..c13fa2f332 100644 --- a/include/JSystem/J2DGraph/J2DMatBlock.h +++ b/include/JSystem/J2DGraph/J2DMatBlock.h @@ -2,6 +2,7 @@ #define J2DMATBLOCK_H #include "JSystem/J2DGraph/J2DTevs.h" +#include "JSystem/JUtility/JUTAssert.h" #include "JSystem/JUtility/TColor.h" class JUTFont; @@ -117,6 +118,7 @@ public: } virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; } virtual void setTevColor(u32 index, J2DGXColorS10 color) { + J3D_PANIC(250, index < 4, "Error : range over."); mTevColor[index] = color; } virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; } @@ -212,6 +214,7 @@ public: } virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; } virtual void setTevColor(u32 index, J2DGXColorS10 color) { + J3D_PANIC(360, index < 4, "Error : range over."); mTevColor[index] = color; } virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; } @@ -309,6 +312,7 @@ public: } virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; } virtual void setTevColor(u32 index, J2DGXColorS10 color) { + J3D_PANIC(468, index < 4, "Error : range over."); mTevColor[index] = color; } virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; } @@ -406,6 +410,7 @@ public: } virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; } virtual void setTevColor(u32 index, J2DGXColorS10 color) { + J3D_PANIC(579, index < 4, "Error : range over."); mTevColor[index] = color; } virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; } @@ -504,6 +509,7 @@ public: } virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; } virtual void setTevColor(u32 index, J2DGXColorS10 color) { + J3D_PANIC(691, index < 4, "Error : range over."); mTevColor[index] = color; } virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; } diff --git a/include/JSystem/JAudio2/JASAramStream.h b/include/JSystem/JAudio2/JASAramStream.h index c1268941e4..c503e6b29e 100644 --- a/include/JSystem/JAudio2/JASAramStream.h +++ b/include/JSystem/JAudio2/JASAramStream.h @@ -11,8 +11,6 @@ namespace JASDsp { class TChannel; } -#define CHANNEL_MAX 6 - /** * @ingroup jsystem-jaudio * @@ -130,6 +128,8 @@ public: static u32 getBlockSize() { return sBlockSize; } + static const int CHANNEL_MAX = 6; + /* 0x000 */ OSMessageQueue field_0x000; /* 0x020 */ OSMessageQueue field_0x020; /* 0x040 */ void* field_0x040[16]; diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index 72cacd14d2..f7eda37587 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -29,7 +29,7 @@ public: void* getBase() { return mBase; } bool isAllocated() { return mBase; } - u32 getSize() { return mSize; } + u32 getSize() const { return mSize; } /* 0x00 */ JSUTree mTree; /* 0x1C */ OSMutex mMutex; diff --git a/include/JSystem/JAudio2/JAUStreamAramMgr.h b/include/JSystem/JAudio2/JAUStreamAramMgr.h index 44835b8e03..da44e02e6f 100644 --- a/include/JSystem/JAudio2/JAUStreamAramMgr.h +++ b/include/JSystem/JAudio2/JAUStreamAramMgr.h @@ -59,7 +59,6 @@ public: } return NULL; } - // NONMATCHING regalloc virtual bool deleteStreamAram(u32 param_0) { for (u32 i = 0; i < field_0x4c; i++) { if (!this->field_0x4.test(i)) { @@ -80,7 +79,7 @@ public: if (!heap) { heap = JASKernel::getAramHeap(); } - if (numReserve < 1) { + if (numReserve <= 0) { numReserve = 1; } JUT_ASSERT(83, numReserve <= MAX_CHUNKS); diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index 9e9662c4f3..6bec114c5a 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -268,19 +268,15 @@ struct TVec3 : public Vec { return inv_norm * sq; } - void normalize(const TVec3& other) { + f32 normalize(const TVec3& other) { f32 sq = other.squared(); if (sq <= TUtil::epsilon()) { zero(); - return; - } - f32 norm; - if (sq <= 0.0f) { - norm = sq; - } else { - norm = fsqrt_step(sq); + return 0.0f; } + f32 norm = TUtil::inv_sqrt(sq); scale(norm, other); + return norm * sq; } f32 length() const { @@ -411,12 +407,12 @@ struct TVec2 { TVec2(T v) { set(v); } template - TVec2(U x, U y) { set(x, y); } + TVec2(const U x, const U y) { set(x, y); } void set(T v) { y = x = v; } template - void set(U x, U y) { + void set(const U x, const U y) { this->x = x; this->y = y; } @@ -518,7 +514,7 @@ struct TBox2 : public TBox > { } } - void set(const TBox2& other) { set(other.i, other.f); } + void set(const TBox >& other) { set(other.i, other.f); } void set(const TVec2& i, const TVec2& f) { this->i.set(i), this->f.set(f); } void set(f32 x0, f32 y0, f32 x1, f32 y1) { this->i.set(x0, y0); this->f.set(x1, y1); } }; diff --git a/include/JSystem/JKernel/JKRAram.h b/include/JSystem/JKernel/JKRAram.h index 2d992749ce..70347904ae 100644 --- a/include/JSystem/JKernel/JKRAram.h +++ b/include/JSystem/JKernel/JKRAram.h @@ -85,7 +85,7 @@ inline u8* JKRAramToMainRam(u32 p1, u8* p2, u32 p3, JKRExpandSwitch p4, u32 p5, return JKRAram::aramToMainRam(p1, p2, p3, p4, p5, p6, p7, p8); } -inline JKRAramBlock *JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize) { +inline JKRAramBlock* JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize) { return JKRAram::mainRamToAram(buf, bufSize, alignedSize, expandSwitch, fileSize, heap, id, pSize); } diff --git a/include/JSystem/JSupport/JSupport.h b/include/JSystem/JSupport/JSupport.h index b3bb337951..8a652dd722 100644 --- a/include/JSystem/JSupport/JSupport.h +++ b/include/JSystem/JSupport/JSupport.h @@ -41,6 +41,10 @@ inline u8 JSUHiByte(u16 in) { return in >> 8; } +inline u16 JSUHiHalf(u32 in) { + return (in >> 16); +} + inline u16 JSULoHalf(u32 param_0) {return param_0; } #endif diff --git a/include/SSystem/SComponent/c_sxyz.h b/include/SSystem/SComponent/c_sxyz.h index 90811586ce..8b835807f3 100644 --- a/include/SSystem/SComponent/c_sxyz.h +++ b/include/SSystem/SComponent/c_sxyz.h @@ -11,8 +11,7 @@ class csXyz : public SVec { public: static const csXyz Zero; ~csXyz() {} - /* inline */ csXyz() {} - /* inline */ csXyz(const csXyz& other) : SVec(other){}; + csXyz() {} csXyz(s16, s16, s16); csXyz operator+(csXyz&); void operator+=(csXyz&); diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 2bd37b5d86..064f8587d3 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -5172,7 +5172,7 @@ public: BOOL checkHorseStart(u32, int); int setStartProcInit(); int create(); - s32 setRoomInfo(); + int setRoomInfo(); void setShapeAngleOnGround(); void setStepsOffset(); void iceSlipBgCheck(); @@ -6934,9 +6934,9 @@ public: virtual void setAnimeFrame(f32); virtual BOOL checkWolfLock(fopAc_ac_c*) const; virtual bool cancelWolfLock(fopAc_ac_c*); - virtual s32 getAtnActorID() const { return mAtnActorID; } - virtual s32 getItemID() const { return mItemAcKeep.getID(); } - virtual u32 getGrabActorID() const { + virtual fpc_ProcID getAtnActorID() const { return mAtnActorID; } + virtual fpc_ProcID getItemID() const { return mItemAcKeep.getID(); } + virtual fpc_ProcID getGrabActorID() const { if (mEquipItem == 0x102) { return mItemAcKeep.getID(); } else { @@ -7133,7 +7133,7 @@ public: } virtual BOOL checkWolfDownAttackPullOut() const { return mProcID == PROC_WOLF_DOWN_AT_LAND; } virtual BOOL checkBootsOrArmorHeavy() const; - virtual s32 getBottleOpenAppearItem() const; + virtual fpc_ProcID getBottleOpenAppearItem() const; virtual bool checkItemSwordEquip() const { return mEquipItem == 0x103; } virtual f32 getSinkShapeOffset() const { return mSinkShapeOffset; } virtual BOOL checkSinkDead() const { return field_0x2fbd == 0xFF; } @@ -7231,7 +7231,7 @@ public: void offModeFlg(u32 flag) { mModeFlg &= ~flag; } bool swordButton() { return itemButtonCheck(8); } daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; } - s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } + int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } bool checkFisingRodLure() const { return mEquipItem == 0x105; } BOOL doTrigger() const { return mItemTrigger & BTN_A; } bool swordTrigger() { return itemTriggerCheck(BTN_B); } @@ -7265,7 +7265,7 @@ public: field_0x2844.clearData(); } - s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); } + int checkPlayerDemoMode() const { return mDemo.getDemoType(); } BOOL checkSpecialDemoMode() const { return mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SPECIAL_e; } @@ -7274,19 +7274,19 @@ public: u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; } BOOL checkClimbFall() { return checkLadderFall(); } - bool checkMidnaWolfDashAnime() const { return checkNoResetFlg1(FLG1_DASH_MODE); } - bool checkMidnaClingAnime() const { return mMidnaAnm == 1; } - bool checkMidnaLowClingAnime() const { return mMidnaAnm == 2; } - bool checkMidnaLookAroundAnime() const { return mMidnaAnm == 3; } - bool checkMidnaPanicAnime() const { return mMidnaAnm == 5; } - bool checkMidnaWolfDeadAnime() const { return mMidnaAnm == 6; } - bool checkMidnaWolfSwimDeadAnime() const { return mMidnaAnm == 7; } - bool checkMidnaRopeWaitStaggerAnime() const { return mMidnaAnm == 8; } - bool checkMidnaRopeMoveStaggerAnime() const { return mMidnaAnm == 9; } - bool checkMidnaGanonCatchAnm() const { return mMidnaAnm == 10; } - bool checkMidnaGanonThrowLeftAnm() const { return mMidnaAnm == 11; } - bool checkMidnaGanonThrowRightAnm() const { return mMidnaAnm == 12; } - bool checkMidnaDigInAnime() const { return mMidnaAnm == 13; } + BOOL checkMidnaWolfDashAnime() const { return checkNoResetFlg1(FLG1_DASH_MODE); } + BOOL checkMidnaClingAnime() const { return mMidnaAnm == 1; } + BOOL checkMidnaLowClingAnime() const { return mMidnaAnm == 2; } + BOOL checkMidnaLookAroundAnime() const { return mMidnaAnm == 3; } + BOOL checkMidnaPanicAnime() const { return mMidnaAnm == 5; } + BOOL checkMidnaWolfDeadAnime() const { return mMidnaAnm == 6; } + BOOL checkMidnaWolfSwimDeadAnime() const { return mMidnaAnm == 7; } + BOOL checkMidnaRopeWaitStaggerAnime() const { return mMidnaAnm == 8; } + BOOL checkMidnaRopeMoveStaggerAnime() const { return mMidnaAnm == 9; } + BOOL checkMidnaGanonCatchAnm() const { return mMidnaAnm == 10; } + BOOL checkMidnaGanonThrowLeftAnm() const { return mMidnaAnm == 11; } + BOOL checkMidnaGanonThrowRightAnm() const { return mMidnaAnm == 12; } + BOOL checkMidnaDigInAnime() const { return mMidnaAnm == 13; } void clearMidnaMsgNum() { mMidnaMsgNum = 0xffff; @@ -7330,37 +7330,9 @@ public: MtxP getMagneBootsInvMtx() { return mMagneBootInvMtx; } s16 getMagneBootsModelShapeAngle() const { return field_0x3118; } - bool checkFishingCastMode() const { - bool var_r5; - bool var_r4 = 1; - bool var_r3 = 0; - - if (mProcID == PROC_FISHING_CAST) { - var_r5 = 0; - - if (mItemAcKeep.getActor() != NULL && - mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt() != 0) - { - var_r5 = 1; - } - - if (!var_r5) { - var_r3 = 1; - } - } - - if (!var_r3) { - bool var_r3_2 = 0; - if (mProcID != PROC_FISHING_CAST && checkNoResetFlg2(FLG2_UNK_20000000)) { - var_r3_2 = 1; - } - - if (!var_r3_2) { - var_r4 = 0; - } - } - - return var_r4; + BOOL checkFishingCastMode() const { + return (mProcID == PROC_FISHING_CAST && !(mItemAcKeep.getActor() != NULL && mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt())) || + (mProcID != PROC_FISHING_CAST && checkNoResetFlg2(FLG2_UNK_20000000) != 0); } BOOL setCanoeCast() { @@ -7807,10 +7779,10 @@ public: /* 0x02864 */ dMsgFlow_c mMsgFlow; /* 0x028B0 */ fpc_ProcID mShieldArrowIDs[16]; /* 0x028F0 */ fpc_ProcID mMsgClassID; - /* 0x028F4 */ int mAtnActorID; + /* 0x028F4 */ fpc_ProcID mAtnActorID; /* 0x028F8 */ fpc_ProcID field_0x28f8; /* 0x028FC */ fpc_ProcID field_0x28fc; - /* 0x02900 */ u32 field_0x2900; + /* 0x02900 */ fpc_ProcID field_0x2900; /* 0x02904 */ daAlink_footData_c mFootData1[2]; /* 0x02A4C */ daAlink_footData_c mFootData2[2]; /* 0x02B94 */ f32 field_0x2b94; diff --git a/include/d/actor/d_a_e_fb.h b/include/d/actor/d_a_e_fb.h index 6289c62a29..7388ff15f2 100644 --- a/include/d/actor/d_a_e_fb.h +++ b/include/d/actor/d_a_e_fb.h @@ -71,7 +71,7 @@ private: /* 0xA30 */ dCcD_Sph mSphere2; /* 0xB68 */ dCcD_Sph mAtSph; /* 0xCA0 */ dCcU_AtInfo mAtInfo; - // Seems that the orig developers didn't size mKeys correctly, as ideally it should be len=8, not len=7: + // !@bug Seems that the orig developers didn't size mKeys correctly, as ideally it should be len=8, not len=7: /* 0xCC4 */ u32 mKeys[7]; /* 0xCE0 */ u8 mHIOInit; /* 0xCE1 */ u8 field_0xce1[0xCE8 - 0xCE1]; diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 55c01e6bb1..08fee130bc 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -450,11 +450,8 @@ public: void calc(BOOL); void initialize() { - //TODO: Separate decl is fakematch, but using 0 directly in the setall call causes - // weird issues in some functions that call this. - u8 zero = 0; for (int i = 0; i < 2; i++) { - mAngle[i].setall(zero); + mAngle[i].setall(0); mPower[i] = 0.0f; } mStagger = 0; diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 40149cc052..2203d7af0d 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -716,9 +716,9 @@ public: cXyz getRightHandPos() const { return mRightHandPos; } const cXyz getLeftHandPos() const { return mLeftHandPos; } const cXyz getItemPos() const { return mItemPos; } - bool getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); } - bool getDkCaught2() const { return checkNoResetFlg0(FLG0_DK_CAUGHT); } - bool getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); } + BOOL getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); } + BOOL getDkCaught2() const { return checkNoResetFlg0(FLG0_DK_CAUGHT); } + BOOL getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); } /* vt 0X008 */ virtual cXyz* getMidnaAtnPos() const { return NULL; } /* vt 0X00C */ virtual void setMidnaMsgNum(fopAc_ac_c*, u16) {} @@ -779,9 +779,9 @@ public: /* vt 0X0E8 */ virtual void setAnimeFrame(f32) {} /* vt 0X0EC */ virtual BOOL checkWolfLock(fopAc_ac_c*) const { return FALSE; } /* vt 0X0F0 */ virtual bool cancelWolfLock(fopAc_ac_c*) { return FALSE; } - /* vt 0X0F4 */ virtual s32 getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; } - /* vt 0X0F8 */ virtual s32 getItemID() const { return fpcM_ERROR_PROCESS_ID_e; } - /* vt 0X0FC */ virtual u32 getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X0F4 */ virtual fpc_ProcID getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X0F8 */ virtual fpc_ProcID getItemID() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X0FC */ virtual fpc_ProcID getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; } /* vt 0X100 */ virtual BOOL exchangeGrabActor(fopAc_ac_c*) { return FALSE; } /* vt 0X104 */ virtual BOOL setForceGrab(fopAc_ac_c*, int, int) { return FALSE; } /* vt 0X108 */ virtual void setForcePutPos(cXyz const&) {} @@ -879,7 +879,7 @@ public: /* vt 0X278 */ virtual BOOL checkMetamorphose() const { return FALSE; } /* vt 0X27C */ virtual BOOL checkWolfDownAttackPullOut() const { return FALSE; } /* vt 0X280 */ virtual BOOL checkBootsOrArmorHeavy() const { return FALSE; } - /* vt 0X284 */ virtual s32 getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; } + /* vt 0X284 */ virtual fpc_ProcID getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; } /* vt 0X288 */ virtual bool checkItemSwordEquip() const { return FALSE; } /* vt 0X28C */ virtual f32 getSinkShapeOffset() const { return 0.0f; } /* vt 0X290 */ virtual BOOL checkSinkDead() const { return FALSE; } @@ -1170,9 +1170,6 @@ public: static daMidna_c* getMidnaActor() { return m_midnaActor; } static void setMidnaActor(fopAc_ac_c* actor) { m_midnaActor = (daMidna_c*)actor; } - // not sure how to define this properly - // static void onWolfEnemyCatch(fopAc_ac_c* i_actorP) { onWolfEnemyBiteAll(i_actorP,8);} - BOOL checkWolfEnemyCatchOwn(fopAc_ac_c* i_actorP) { return checkWolfEnemyBiteAllOwn(i_actorP); } BOOL checkWolfEnemyHangBiteOwn(const fopAc_ac_c* i_actorP) const { return checkWolfEnemyBiteAllOwn(i_actorP); } BOOL checkWolfEnemyLeftThrow() const { return checkNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW); } @@ -1225,23 +1222,23 @@ public: void setSumouForceTackle() { mSpecialMode = 0x1B; } void setSumouForceGraspCancel() { mSpecialMode = 0x24; } - BOOL checkSumouPushFront() const { return mSpecialMode == 7; } - BOOL checkSumouPushBack() const { return mSpecialMode == 8; } - BOOL checkSumouTackleSuccess() const { return mSpecialMode == 0xF; } - BOOL checkSumouTackleSuccessPunch() const { return mSpecialMode == 0x10; } - BOOL checkSumouTackleMiss() const { return mSpecialMode == 0x11; } - BOOL checkSumouTackleDraw() const { return mSpecialMode == 0x12; } - BOOL checkSumouPunchSuccess() const { return mSpecialMode == 0x13; } - BOOL checkSumouPunchMiss() const { return mSpecialMode == 0x14; } - BOOL checkSumouPunchDraw() const { return mSpecialMode == 0x15; } - BOOL checkSumouWait() const { return mSpecialMode == 0x16; } - BOOL checkSumouLeftMove() const { return mSpecialMode == 0x17; } - BOOL checkSumouRightMove() const { return mSpecialMode == 0x18; } - BOOL checkSumouSlideLeft() const { return mSpecialMode == 0x19; } - BOOL checkSumouSlideRight() const { return mSpecialMode == 0x1A; } - BOOL checkSumouPunchStagger() const { return mSpecialMode == 0x1F; } - BOOL checkSumouTackleStagger() const { return mSpecialMode == 0x20; } - BOOL checkSumouGraspRelease() const { return mSpecialMode == 0x23; } + bool checkSumouPushFront() const { return mSpecialMode == 7; } + bool checkSumouPushBack() const { return mSpecialMode == 8; } + bool checkSumouTackleSuccess() const { return mSpecialMode == 0xF; } + bool checkSumouTackleSuccessPunch() const { return mSpecialMode == 0x10; } + bool checkSumouTackleMiss() const { return mSpecialMode == 0x11; } + bool checkSumouTackleDraw() const { return mSpecialMode == 0x12; } + bool checkSumouPunchSuccess() const { return mSpecialMode == 0x13; } + bool checkSumouPunchMiss() const { return mSpecialMode == 0x14; } + bool checkSumouPunchDraw() const { return mSpecialMode == 0x15; } + bool checkSumouWait() const { return mSpecialMode == 0x16; } + bool checkSumouLeftMove() const { return mSpecialMode == 0x17; } + bool checkSumouRightMove() const { return mSpecialMode == 0x18; } + bool checkSumouSlideLeft() const { return mSpecialMode == 0x19; } + bool checkSumouSlideRight() const { return mSpecialMode == 0x1A; } + bool checkSumouPunchStagger() const { return mSpecialMode == 0x1F; } + bool checkSumouTackleStagger() const { return mSpecialMode == 0x20; } + bool checkSumouGraspRelease() const { return mSpecialMode == 0x23; } void onHeavyState() { onNoResetFlg0(FLG0_UNK_40000000); } void onHeavyStateMidnaPanic() { diff --git a/include/d/actor/d_a_scene_exit.h b/include/d/actor/d_a_scene_exit.h index 23b7de6fab..033228f2ff 100644 --- a/include/d/actor/d_a_scene_exit.h +++ b/include/d/actor/d_a_scene_exit.h @@ -19,7 +19,7 @@ public: inline int create(); u8 getArg1() { return (fopAcM_GetParam(this) >> 8) & 0xFF; } - u8 getArg0() { return fopAcM_GetParam(this); } + u8 getArg0() { return fopAcM_GetParam(this) & 0xFF; } u8 getSwNo() { return fopAcM_GetParam(this) >> 0x18; } u16 getOffEventBit() { return home.angle.z & 0xFFF; } u16 getOnEventBit() { return home.angle.x & 0xFFF; } diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 3461e2ba0d..befe038a36 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -290,7 +290,7 @@ public: dVibration_c& getVibration() { return mVibration; } camera_class* getCamera(int idx) { return mCameraInfo[idx].mCamera; } void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; } - fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mPlayer[idx * 2]; } + fopAc_ac_c* getPlayer(int idx) { return mPlayerInfo[idx].mpPlayer; } dPa_control_c* getParticle() { return mParticle; } dEvent_manager_c& getEvtManager() { return mEvtManager; } dAttention_c* getAttention() { return &mAttention; } @@ -653,16 +653,16 @@ public: void* getItemTable() { return mItemTable; } void setPlayerPtr(int i, fopAc_ac_c* ptr) { mPlayerPtr[i] = ptr; } - void setPlayer(int i, fopAc_ac_c* player) { mPlayer[i] = (daAlink_c*)player; } - void setPlayerInfo(int i, fopAc_ac_c* ptr, int camIdx) { - mPlayer[i] = (daAlink_c*)ptr; - mPlayerCameraID[camIdx] = 0; + void setPlayer(int i, fopAc_ac_c* player) { mPlayerInfo[i].mpPlayer = player; } + void setPlayerInfo(int i, fopAc_ac_c* player, int cam) { + mPlayerInfo[i].mpPlayer = player; + mPlayerInfo[i].mCameraID = cam; } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] |= flag; } void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] &= ~flag; } u32 checkPlayerStatus(int param_0, int i, u32 flag) { return mPlayerStatus[param_0][i] & flag; } - int getPlayerCameraID(int i) { return mPlayerCameraID[i * 8]; } + int getPlayerCameraID(int i) { return mPlayerInfo[i].mCameraID; } int getCameraPlayer1ID(int i) { return mCameraInfo[i].field_0x5; } int getCameraPlayer2ID(int i) { return mCameraInfo[i].field_0x6; } int getCameraWinID(int i) { return mCameraInfo[i].field_0x4; } @@ -814,8 +814,10 @@ public: /* 0x04E0E */ u16 mStatus; /* 0x04E10 */ dDlst_window_c mWindow[1]; /* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1]; - /* 0x04E74 */ daAlink_c* mPlayer[1]; - /* 0x04E78 */ s8 mPlayerCameraID[1]; + /* 0x04E74 */ struct { + /* 0x0 */ fopAc_ac_c* mpPlayer; + /* 0x4 */ s8 mCameraID; + } mPlayerInfo[1]; /* 0x04E7C */ fopAc_ac_c* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong /* 0x04E84 */ dComIfG_item_info_class mItemInfo; /* 0x04FB0 */ dComIfG_MesgCamInfo_c mMesgCamInfo; @@ -3990,8 +3992,8 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* i_pos, inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* i_pos, const dKy_tevstr_c* param_3) { - return dComIfGp_particle_set(param_0, param_1, i_pos, param_3, 0, 0, 0xFF, 0, 0xFFFFFFFF, 0, - 0, 0); + return dComIfGp_particle_set(param_0, param_1, i_pos, param_3, NULL, NULL, 0xFF, NULL, -1, NULL, + NULL, NULL); } inline JPABaseEmitter* dComIfGp_particle_set(u16 i_resID, const cXyz* i_pos, diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 2a145bf496..8122b42fb7 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -169,8 +169,8 @@ public: BOOL checkCommandCatch() { return mCommand == dEvtCmd_INCATCH_e; } BOOL checkCommandDoor() { return mCommand == dEvtCmd_INDOOR_e; } BOOL checkCommandDemoAccrpt() { return mCommand == dEvtCmd_INDEMO_e; } - bool checkCommandTalk() { return mCommand == dEvtCmd_INTALK_e; } - bool checkCommandItem() { return mCommand == dEvtCmd_INGETITEM_e; } + BOOL checkCommandTalk() { return mCommand == dEvtCmd_INTALK_e; } + BOOL checkCommandItem() { return mCommand == dEvtCmd_INGETITEM_e; } void setCommand(u16 command) { mCommand = command; } void setMapToolId(u8 id) { mMapToolId = id; } @@ -309,14 +309,14 @@ public: void setBallModelEffect(dKy_tevstr_c*); void drawBallModel(dKy_tevstr_c*); - bool checkWolfNoLock() const { return mFlags & fopEn_flag_WolfNoLock; } + BOOL checkWolfNoLock() const { return mFlags & fopEn_flag_WolfNoLock; } BOOL checkHeadLockFlg() const { return mFlags & fopEn_flag_HeadLock; } BOOL checkWolfBiteDamage() const { return mFlags & fopEn_flag_WolfBiteDamage; } BOOL checkWolfDownPullFlg() const { return mFlags & fopEn_flag_WolfDownPull; } - bool checkDownFlg() { return mFlags & fopEn_flag_Down; } + BOOL checkDownFlg() { return mFlags & fopEn_flag_Down; } BOOL checkCutDownHitFlg() const { return mFlags & fopEn_flag_CutDownHit; } BOOL checkWolfDownStartFlg() const { return mFlags & fopEn_flag_WolfDownStart; } - bool checkDeadFlg() const { return mFlags & fopEn_flag_Dead; } + BOOL checkDeadFlg() const { return mFlags & fopEn_flag_Dead; } BOOL checkThrowMode(u8 param_1) const { return mThrowMode & param_1; } u32* getMidnaBindID(int i_idx) { return mMidnaBindID + i_idx; } diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 5f749ed073..18022e4b1a 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -250,7 +250,7 @@ public: * @param a The source Vec * @param b The output Vec */ - static void multVec(const Vec* a, Vec* b) { MTXMultVec(now, a, b); } + static void multVec(const Vec* a, Vec* b) { PSMTXMultVec(now, a, b); } /** * Multiplies a given Vec `a` by the `now` Matrix's "Scale-and-Rotate" component and places the result into Vec `b` @@ -268,7 +268,7 @@ public: * @param count The size of the array */ static void multVecArray(const Vec* src, Vec* dst, u32 count) { - MTXMultVecArray(now, src, dst, count); + PSMTXMultVecArray(now, src, dst, count); } static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); } @@ -327,7 +327,7 @@ public: */ static void ZrotM(s16 z) { mDoMtx_ZrotM(now, z); } - static void inverse() { MTXInverse(now, now); } + static void inverse() { PSMTXInverse(now, now); } static void inverseTranspose() { mDoMtx_inverseTranspose(now, now); } @@ -350,7 +350,7 @@ public: } static void identity() { - MTXIdentity(now); + PSMTXIdentity(now); } static Mtx now; diff --git a/src/JSystem/J2DGraph/J2DMatBlock.cpp b/src/JSystem/J2DGraph/J2DMatBlock.cpp index 847f58b3ae..44a46bda16 100644 --- a/src/JSystem/J2DGraph/J2DMatBlock.cpp +++ b/src/JSystem/J2DGraph/J2DMatBlock.cpp @@ -7,7 +7,7 @@ #include "JSystem/JUtility/JUTTexture.h" #include "dolphin/gx.h" -// NONMATCHING - instruction order +// NONMATCHING - instruction order. matches if const is removed from j2dDefaultColorChanInfo, but then it's in the wrong section void J2DColorBlock::initialize() { for (int i = 0; i < 2; i++) { mMatColor[i] = JUtility::TColor(j2dDefaultColInfo); diff --git a/src/JSystem/J2DGraph/J2DPane.cpp b/src/JSystem/J2DGraph/J2DPane.cpp index 6de4c1772f..231488bd77 100644 --- a/src/JSystem/J2DGraph/J2DPane.cpp +++ b/src/JSystem/J2DGraph/J2DPane.cpp @@ -343,7 +343,8 @@ void J2DPane::place(JGeometry::TBox2 const& box) { f32 xOff = tmpBox.i.x - mBounds.i.x; f32 yOff = tmpBox.i.y - mBounds.i.y; - for (J2DPane* child = getFirstChildPane(); child != NULL; child = child->getNextChildPane()) { + J2DPane* child; + for (child = getFirstChildPane(); child != NULL; child = child->getNextChildPane()) { child->mTranslateX += xOff; child->mTranslateY += yOff; if (xOff != 0 || yOff != 0) { @@ -432,10 +433,9 @@ void J2DPane::rotate(f32 angle) { } void J2DPane::clip(JGeometry::TBox2 const& bounds) { - JGeometry::TBox2 boxA(bounds); - JGeometry::TBox2 boxB(mGlobalBounds); - boxA.addPos(boxB.i); - mClipRect.intersect(boxA); + JGeometry::TBox2 box(bounds); + box.addPos(JGeometry::TVec2(mGlobalBounds.i.x, mGlobalBounds.i.y)); + mClipRect.intersect(box); } J2DPane* J2DPane::search(u64 tag) { diff --git a/src/JSystem/JAudio2/JAIStream.cpp b/src/JSystem/JAudio2/JAIStream.cpp index d859c85de7..e4a0c7dd4e 100644 --- a/src/JSystem/JAudio2/JAIStream.cpp +++ b/src/JSystem/JAudio2/JAIStream.cpp @@ -27,7 +27,7 @@ JAIStream::JAIStream(JAIStreamMgr* streamMgr, JAISoundStrategyMgr* so field_0x2c5 = 0; field_0x2c6 = 0; - for (int i = 0; i < CHANNEL_MAX; i++) { + for (int i = 0; i < NUM_CHILDREN; i++) { children_[i] = NULL; } } @@ -157,7 +157,7 @@ void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundAct } } - for (int i = 0; i < CHANNEL_MAX; i++) { + for (int i = 0; i < NUM_CHILDREN; i++) { inner_.aramStream_.setPitch(mixParams->mPitch); if (children_[i] != NULL) { inner_.aramStream_.setChannelVolume(i, children_[i]->mMove.params_.mVolume * mixParams->mVolume); @@ -186,7 +186,7 @@ void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundAct void JAIStream::die_JAIStream_() { die_JAISound_(); - for (int i = 0; i < CHANNEL_MAX; i++) { + for (int i = 0; i < NUM_CHILDREN; i++) { if (children_[i] != NULL) { delete children_[i]; children_[i] = NULL; @@ -231,7 +231,7 @@ void JAIStream::JAIStreamMgr_calc_() { } if (calc_JAISound_()) { - for (int i = 0; i < CHANNEL_MAX; i++) { + for (int i = 0; i < NUM_CHILDREN; i++) { if (children_[i] != NULL) { children_[i]->calc(); } diff --git a/src/JSystem/JAudio2/JASAramStream.cpp b/src/JSystem/JAudio2/JASAramStream.cpp index 984e6ea446..ba010aeb9b 100644 --- a/src/JSystem/JAudio2/JASAramStream.cpp +++ b/src/JSystem/JAudio2/JASAramStream.cpp @@ -9,6 +9,7 @@ #include "JSystem/JAudio2/JASDvdThread.h" #include "JSystem/JKernel/JKRAram.h" #include "JSystem/JKernel/JKRSolidHeap.h" +#include "JSystem/JSupport/JSupport.h" JASTaskThread* JASAramStream::sLoadThread; @@ -271,51 +272,55 @@ bool JASAramStream::load() { } u32 loop_end_block = (mLoopEnd - 1) / getBlockSamples(); u32 loop_start_block = mLoopStart / getBlockSamples(); - u32 block = mBlock; - if (block > loop_end_block) { + if (mBlock > loop_end_block) { return false; } + u32 offset = mBlock * (sBlockSize * mChannelNum + sizeof(BlockHeader)) + sizeof(Header); u32 size = sBlockSize * mChannelNum + sizeof(BlockHeader); - u32 offset = block * size + sizeof(Header); - u32 size2 = size; - if (block == loop_end_block) { - size2 = mDvdFileInfo.length - offset; + if (mBlock == loop_end_block) { + size = mDvdFileInfo.length - offset; } - if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size2, offset, 1) < 0) { + if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size, offset, 1) < 0) { + JUT_WARN(507, "%s", "DVDReadPrio Failed"); struct_80451261 = true; return false; } BlockHeader* bhead = (BlockHeader*)sReadBuffer; + JUT_ASSERT(512, bhead->tag == 'BLCK'); if (field_0x114 != 0) { return false; } - u32 uvar2 = field_0x148 + field_0x10c * sBlockSize; + u32 sp08 = field_0x148 + field_0x10c * sBlockSize; for (int i = 0; i < mChannelNum; i++) { - if (!JKRAram::mainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader), - uvar2 + sBlockSize * field_0x160 * i, - bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) { + (void)i; + if (!JKRMainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader), + sp08 + sBlockSize * field_0x160 * i, + bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) { + JUT_WARN(522, "%s", "JKRMainRamToAram Failed"); struct_80451261 = 1; return false; } } field_0x10c++; if (field_0x10c >= field_0x108) { - u32 uvar8 = field_0x108 - 1 + mBlock; + u32 r28 = mBlock; + r28 += field_0x108 - 1; if (mLoop) { - while (uvar8 > loop_end_block) { - uvar8 -= loop_end_block; - uvar8 += loop_start_block; + JUT_ASSERT(537, loop_start_block < loop_end_block); + while (r28 > loop_end_block) { + r28 -= loop_end_block; + r28 += loop_start_block; } } - if (uvar8 == loop_end_block || uvar8 + 2 == loop_end_block) { + if (r28 == loop_end_block || r28 + 2 == loop_end_block) { field_0x108 = field_0x160; OSSendMessage(&field_0x020, (OSMessage)5, OS_MESSAGE_BLOCK); } else { field_0x108 = field_0x160 - 1; } for (int i = 0; i < mChannelNum; i++) { - field_0x130[i] = bhead->field_0x8[i].field_0x0; - field_0x13c[i] = bhead->field_0x8[i].field_0x2; + field_0x130[i] = (s16)bhead->field_0x8[i].field_0x0; + field_0x13c[i] = (s16)bhead->field_0x8[i].field_0x2; } field_0x10c = 0; } @@ -379,17 +384,16 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, if (i_dspChannel->field_0x008 == 0) { if (i_channel == field_0x0a8) { field_0x12c = 0; - u32 uvar8 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064; - u32 uvar5 = field_0x0b4; - if (uvar8 <= uvar5) { - field_0x0b8 += uvar5 - uvar8; + u32 sp28 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064; + if (sp28 <= field_0x0b4) { + field_0x0b8 += field_0x0b4 - sp28; } else { if (!field_0x0c0) { - field_0x0b8 += uvar5; - field_0x0b8 += block_samples * mBufCount - uvar8; + field_0x0b8 += field_0x0b4; + field_0x0b8 += block_samples * mBufCount - sp28; } else { - field_0x0b8 += uvar5; - field_0x0b8 += block_samples * mBufCount - uvar8 + field_0x0b8 += field_0x0b4; + field_0x0b8 += block_samples * mBufCount - sp28 - i_dspChannel->field_0x110; field_0x0b8 -= mLoopEnd; field_0x0b8 += mLoopStart; @@ -403,6 +407,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, } } if (field_0x0b8 > mLoopEnd) { + JUT_WARN(686, "%s", "mReadSample > mLoopEnd"); struct_80451261 = true; } f32 fvar1 = field_0x0c4; @@ -427,8 +432,8 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, field_0x128 = 0; field_0x12c |= 8; } - i_dspChannel->field_0x074 -= block_samples * mBufCount - - (field_0x0bc * block_samples + mLoopEnd % block_samples); + int sp20 = field_0x0bc * block_samples + mLoopEnd % block_samples; + i_dspChannel->field_0x074 -= block_samples * mBufCount - sp20; field_0x11c = i_dspChannel->field_0x074; field_0x12c |= 1; field_0x0bc += (mLoopEnd - 1) / block_samples - mLoopStart / block_samples + 1; @@ -438,12 +443,13 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, if (uvar4 != 0) { uvar4--; } - uvar5 = uvar4 / sBlockSize; - getBlockSamples(); - if (uvar5 != field_0x0b0) { - bool cmp = uvar5 < field_0x0b0; - while (uvar5 != field_0x0b0) { + u32 sp18 = uvar4 / sBlockSize; + u32 sp14 = (mLoopEnd - 1) / getBlockSamples(); + if (sp18 != field_0x0b0) { + bool cmp = sp18 < field_0x0b0; + while (sp18 != field_0x0b0) { if (!sLoadThread->sendCmdMsg(loadToAramTask, this)) { + JUT_WARN(741, "sendCmdMsg Failed %d %d (%d %d)", i_dspChannel->field_0x070, i_channel->field_0x104, sp18, field_0x0b0); struct_80451261 = true; break; } @@ -491,6 +497,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, } field_0x0b4 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064; if (field_0x118 >= field_0x160 - 2) { + JUT_WARN_DEVICE(810, 1, "%s", "buffer under error"); field_0x0ae |= 4; } } else { @@ -507,14 +514,15 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, i_dspChannel->field_0x102 = field_0x128; } } - int i = 0; - for (; i < 6; i++) { - if (i_channel == mChannels[i]) { + int ch = 0; + for (; ch < 6; ch++) { + if (i_channel == mChannels[ch]) { break; } } - i_dspChannel->field_0x104 = field_0x130[i]; - i_dspChannel->field_0x106 = field_0x13c[i]; + JUT_ASSERT(834, ch < CHANNEL_MAX); + i_dspChannel->field_0x104 = (s16)field_0x130[ch]; + i_dspChannel->field_0x106 = (s16)field_0x13c[ch]; } break; case JASChannel::CB_STOP: @@ -529,16 +537,16 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, if (!open_channel) { field_0x114 = 1; if (!sLoadThread->sendCmdMsg(finishTask, this)) { + JUT_WARN(854, "%s", "sendCmdMsg finishTask Failed"); struct_80451261 = true; return; } } break; } - i_channel->mPauseFlag = field_0x0ae != 0; + i_channel->setPauseFlag(field_0x0ae != 0); } -// NONMATCHING instruction ordering / regalloc s32 JASAramStream::channelProc() { OSMessage msg; while (OSReceiveMessage(&field_0x020, &msg, OS_MESSAGE_NOBLOCK)) { @@ -562,7 +570,7 @@ s32 JASAramStream::channelProc() { channelStart(); break; case 1: - channelStop((u32)msg >> 0x10); + channelStop(JSUHiHalf((u32)msg)); break; case 2: field_0x0ae |= 1; diff --git a/src/JSystem/JAudio2/JAUAudioMgr.cpp b/src/JSystem/JAudio2/JAUAudioMgr.cpp index ad67533941..a13ab0fbbc 100644 --- a/src/JSystem/JAudio2/JAUAudioMgr.cpp +++ b/src/JSystem/JAudio2/JAUAudioMgr.cpp @@ -6,8 +6,11 @@ #include "JSystem/JAudio2/JAUAudioMgr.h" #include "JSystem/JAudio2/JASHeapCtrl.h" +#include "JSystem/JAudio2/JAUStreamAramMgr.h" // Here to generate JASHeap::__defctor (ctor generated by default arguments) void dummyDefCtor() { JASHeap dummy[20]; + JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(NULL, 0) JAUStreamStaticAramMgr_<1>(); + streamStaticAramMgr->reserveAram(NULL, 0, 0x14); } diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h index 749acdcbf9..8accb8bf94 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h +++ b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/bitset.h @@ -28,10 +28,20 @@ template<> class __bitset_base<1> { public: __bitset_base() { data = 0; } - bool test(size_t pos) const { return data & (1 << pos); } + bool test(size_t pos) const { + u32 r31 = 1UL << pos; + return data & r31; + } bool any() const { return data != 0; } - void set(size_t pos, bool val) { data |= (1 << pos); } - void reset(size_t pos) { data &= ~(1 << pos); } + void set(size_t pos, bool val) { + u32 r31 = 1UL << pos; + if (val) { + data |= r31; + } else { + data &= ~r31; + } + } + void reset(size_t pos) { data &= ~(1UL << pos); } private: size_t data; }; diff --git a/src/SSystem/SComponent/c_m3d.cpp b/src/SSystem/SComponent/c_m3d.cpp index 1eea1ff0d9..726ceeeedf 100644 --- a/src/SSystem/SComponent/c_m3d.cpp +++ b/src/SSystem/SComponent/c_m3d.cpp @@ -39,19 +39,20 @@ static f32 dummy(f32 x) { bool cM3d_Len2dSqPntAndSegLine(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 p5, f32 p6, f32* param_7, f32* param_8, f32* param_9) { bool retVal = false; - f32 param_5 = p5 - param_3; - f32 param_6 = p6 - param_4; - f32 len = param_5 * param_5 + param_6 * param_6; + f32 f31 = p5 - param_3; + f32 f30 = p6 - param_4; + f32 len = f31 * f31 + f30 * f30; + f32 f29; if (cM3d_IsZero(len)) { *param_9 = 0.0f; - return retVal; + return false; } else { - len = (param_5 * (param_1 - param_3) + param_6 * (param_2 - param_4)) / len; - if (len >= 0.0f && len <= 1.0f) { + f29 = (f31 * (param_1 - param_3) + f30 * (param_2 - param_4)) / len; + if (f29 >= 0.0f && f29 <= 1.0f) { retVal = true; } - *param_7 = param_3 + param_5 * len; - *param_8 = param_4 + param_6 * len; + *param_7 = param_3 + f31 * f29; + *param_8 = param_4 + f30 * f29; *param_9 = cM3d_Len2dSq(*param_7, *param_8, param_1, param_2); return retVal; } diff --git a/src/Z2AudioLib/Z2AudioMgr.cpp b/src/Z2AudioLib/Z2AudioMgr.cpp index 14af97ccd0..8a4a3930bd 100644 --- a/src/Z2AudioLib/Z2AudioMgr.cpp +++ b/src/Z2AudioLib/Z2AudioMgr.cpp @@ -24,7 +24,6 @@ Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) { field_0x519 = false; } -// NONMATCHING JASPoolAllocObject<_> locations void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive* seqArc) { JAU_JASInitializer JASInitializer; JASInitializer.audioMemSize_ = memSize; @@ -62,6 +61,10 @@ void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive categoryArrangement.mItems[8].mMaxInactiveSe = 5; categoryArrangement.mItems[9].mMaxActiveSe = 8; categoryArrangement.mItems[9].mMaxInactiveSe = 4; + #if PLATFORM_WII || PLATFORM_SHIELD + categoryArrangement.mItems[10].mMaxInactiveSe = 4; + categoryArrangement.mItems[11].mMaxInactiveSe = 2; + #endif seMgr->setCategoryArrangement(categoryArrangement); seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 0); @@ -74,6 +77,9 @@ void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0); seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0); seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 0); + #if PLATFORM_WII || PLATFORM_SHIELD + seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0); + #endif seMgr->getParams()->moveVolume(1.0f, 0); diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp index ec533cb3bf..872097c77d 100644 --- a/src/d/actor/d_a_alink.cpp +++ b/src/d/actor/d_a_alink.cpp @@ -9,6 +9,7 @@ #include "JSystem/J2DGraph/J2DAnmLoader.h" #include "JSystem/J3DGraphBase/J3DMaterial.h" #include "JSystem/J3DGraphLoader/J3DAnmLoader.h" +#include "JSystem/J3DGraphBase/J3DDrawBuffer.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "SSystem/SComponent/c_math.h" #include "d/d_item.h" @@ -34,6 +35,7 @@ #include "d/actor/d_a_tag_mhint.h" #include "d/actor/d_a_tag_mmsg.h" #include "d/actor/d_a_tag_lantern.h" +#include "d/actor/d_a_horse.h" #include "m_Do/m_Do_controller_pad.h" #include "d/d_bomb.h" #include "d/d_meter2_info.h" @@ -2687,7 +2689,7 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { } } } else { - field_0x28fc = -1; + field_0x28fc = fpcM_ERROR_PROCESS_ID_e; field_0x30f8 = 0; } } @@ -4279,12 +4281,12 @@ void daAlink_c::playerInit() { field_0x2f97 = -1; for (int i = 0; i < 0x10; i++) { - mShieldArrowIDs[i] = -1; + mShieldArrowIDs[i] = fpcM_ERROR_PROCESS_ID_e; } - mAtnActorID = -1; - mMsgClassID = -1; - field_0x28f8 = -1; - field_0x28fc = -1; + mAtnActorID = fpcM_ERROR_PROCESS_ID_e; + mMsgClassID = fpcM_ERROR_PROCESS_ID_e; + field_0x28f8 = fpcM_ERROR_PROCESS_ID_e; + field_0x28fc = fpcM_ERROR_PROCESS_ID_e; field_0x2e54.init(&mLinkAcch, mpHIO->mBasic.m.mWaterSurfaceEffectHeight, field_0x598); field_0x3108 = shape_angle.y; @@ -4581,7 +4583,7 @@ int daAlink_c::create() { field_0x2900 = fopAcM_create(PROC_Obj_IceLeaf, 0x1FFFF, ¤t.pos, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1); } else { - field_0x2900 = -1; + field_0x2900 = fpcM_ERROR_PROCESS_ID_e; } } @@ -4592,7 +4594,7 @@ int daAlink_c::create() { (startMode == 14 && !dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) || (startPoint == -4 && !(var_r24 = fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchPortal, ¤t.pos))) || - (field_0x2900 != -1 && !fopAcM_SearchByID(field_0x2900)) || + (field_0x2900 != fpcM_ERROR_PROCESS_ID_e && !fopAcM_SearchByID(field_0x2900)) || (checkCanoeStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL)) || (checkBoarStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL)) || (startMode == 13 && @@ -4699,7 +4701,7 @@ static int daAlink_Create(fopAc_ac_c* i_this) { return static_cast(i_this)->create(); } -s32 daAlink_c::setRoomInfo() { +int daAlink_c::setRoomInfo() { s32 roomID; if (mProcID != PROC_TW_GATE) { @@ -15585,9 +15587,8 @@ int daAlink_c::procFrontRollSuccessInit() { setFrontRollCrashShock(mRollCrashFlg); onResetFlg0(RFLG0_FRONT_ROLL_CRASH); } else { - f32 tmp_3 = 3.0f; - mUnderFrameCtrl[0].setFrame(tmp_3); - getNowAnmPackUnder(UNDER_0)->setFrame(tmp_3); + mUnderFrameCtrl[0].setFrame(3.0f); + getNowAnmPackUnder(UNDER_0)->setFrame(3.0f); } field_0x3588 = l_halfAtnWaitBaseAnime; diff --git a/src/d/actor/d_a_alink_boom.inc b/src/d/actor/d_a_alink_boom.inc index 47b92eac7e..7c4183284c 100644 --- a/src/d/actor/d_a_alink_boom.inc +++ b/src/d/actor/d_a_alink_boom.inc @@ -69,7 +69,7 @@ void daAlink_c::cancelBoomerangLock(fopAc_ac_c* i_actor) { } fopAc_ac_c* daAlink_c::getBoomerangActor() { - if (mThrowBoomerangAcKeep.getID() != 0xFFFFFFFF) { + if (mThrowBoomerangAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { return mThrowBoomerangAcKeep.getActor(); } diff --git a/src/d/actor/d_a_alink_bottle.inc b/src/d/actor/d_a_alink_bottle.inc index c120591690..eff70af024 100644 --- a/src/d/actor/d_a_alink_bottle.inc +++ b/src/d/actor/d_a_alink_bottle.inc @@ -31,12 +31,12 @@ static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1) { return 1; } -s32 daAlink_c::getBottleOpenAppearItem() const { +fpc_ProcID daAlink_c::getBottleOpenAppearItem() const { if (mProcID == PROC_BOTTLE_OPEN) { return mEquipItem; } - return -1; + return fpcM_ERROR_PROCESS_ID_e; } BOOL daAlink_c::checkOilBottleItemNotGet(u16 i_itemNo) { @@ -735,7 +735,7 @@ int daAlink_c::procBottleGetInit(int param_0) { } dComIfGp_setPlayerStatus1(0, 0x4001000); - mMsgClassID = -1; + mMsgClassID = fpcM_ERROR_PROCESS_ID_e; field_0x3194 = 0; field_0x32cc = var_r30 + 0x65; diff --git a/src/d/actor/d_a_alink_canoe.inc b/src/d/actor/d_a_alink_canoe.inc index e2bbd910e3..ec15963d0b 100644 --- a/src/d/actor/d_a_alink_canoe.inc +++ b/src/d/actor/d_a_alink_canoe.inc @@ -678,12 +678,12 @@ int daAlink_c::procCanoeWait() { return 1; } -// NONMATCHING - incorrect code gen related to daAlink_ANM +// NONMATCHING - regalloc, equivalent int daAlink_c::procCanoeRowInit(int param_0) { fopAc_ac_c* temp_r26 = mRideAcKeep.getActor(); field_0x3198 = -2; - daAlink_ANM var_r29; + int var_r29; if (param_0 < 0) { if (checkInputOnR()) { s16 sp8 = (s16)(field_0x2fe2 - shape_angle.y); @@ -722,19 +722,26 @@ int daAlink_c::procCanoeRowInit(int param_0) { } if (spC == 1) { - var_r29 = (daAlink_ANM)(var_r28 == 2 ? (int)ANM_CANOE_ROW_RIGHT_BACK : (int)ANM_CANOE_ROW_LEFT_BACK); + if (var_r28 == 2) { + var_r29 = ANM_CANOE_ROW_RIGHT_BACK; + } else { + var_r29 = ANM_CANOE_ROW_LEFT_BACK; + } if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar5.field_0x3012 == 1)) { return procCanoePaddleShiftInit(var_r29); } } else { - var_r29 = (daAlink_ANM)(var_r28 == 2 ? (int)ANM_CANOE_ROW_RIGHT : (int)ANM_CANOE_ROW_LEFT); + if (var_r28 == 2) { + var_r29 = ANM_CANOE_ROW_RIGHT; + } else { + var_r29 = ANM_CANOE_ROW_LEFT; + } if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar5.field_0x3012 == 1)) { return procCanoePaddleShiftInit(var_r29); } } - } else { if (param_0 == -3) { if (mProcVar5.field_0x3012 == 1) { @@ -751,8 +758,11 @@ int daAlink_c::procCanoeRowInit(int param_0) { var_r29 = ANM_CANOE_ROW_LEFT; } } + + // Need something here that generates no code in order for debug branches to match. + (void)0; } else { - var_r29 = (daAlink_ANM)param_0; + var_r29 = param_0; } commonProcInit(PROC_CANOE_ROW); diff --git a/src/d/actor/d_a_alink_guard.inc b/src/d/actor/d_a_alink_guard.inc index 084103d8ff..45899c7609 100644 --- a/src/d/actor/d_a_alink_guard.inc +++ b/src/d/actor/d_a_alink_guard.inc @@ -44,10 +44,10 @@ void daAlink_c::stickArrowIncrement(int param_0) { s16 arrow_num = 0; for (int i = 0; i < 16; i++) { - if (mShieldArrowIDs[i] != -1) { + if (mShieldArrowIDs[i] != fpcM_ERROR_PROCESS_ID_e) { if (field_0x2f7c[i] == 0 || param_0) { arrow_num++; - mShieldArrowIDs[i] = -1; + mShieldArrowIDs[i] = fpcM_ERROR_PROCESS_ID_e; field_0x2f7c[i] = 0; } else { field_0x2f7c[i]--; @@ -75,7 +75,7 @@ void daAlink_c::setArrowShieldActor(fopAc_ac_c* i_actor, int param_1) { int arrow_num = 0; for (; arrow_num < 16; arrow_num++) { - if (mShieldArrowIDs[arrow_num] == -1) { + if (mShieldArrowIDs[arrow_num] == fpcM_ERROR_PROCESS_ID_e) { mShieldArrowIDs[arrow_num] = new_arrow_id; field_0x2f7c[arrow_num] = 10; break; diff --git a/src/d/actor/d_a_alink_horse.inc b/src/d/actor/d_a_alink_horse.inc index 431ee62947..bdd3c0e5f8 100644 --- a/src/d/actor/d_a_alink_horse.inc +++ b/src/d/actor/d_a_alink_horse.inc @@ -1174,7 +1174,7 @@ int daAlink_c::checkNextActionHorse() { return procHorseWaitInit(); } -// NONMATCHING - regalloc +// NONMATCHING - regalloc, equivalent BOOL daAlink_c::checkHorseGetOff() { return (checkHorseRide() && dComIfGp_getHorseActor() != NULL && dComIfGp_getHorseActor()->checkGetOff()) || diff --git a/src/d/actor/d_a_alink_whistle.inc b/src/d/actor/d_a_alink_whistle.inc index ea07c1d6e9..628e209a5e 100644 --- a/src/d/actor/d_a_alink_whistle.inc +++ b/src/d/actor/d_a_alink_whistle.inc @@ -146,7 +146,7 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s mProcVar0.field_0x3008 = 0; mProcVar4.field_0x3010 = 0; mProcVar5.field_0x3012 = 0; - mMsgClassID = -1; + mMsgClassID = fpcM_ERROR_PROCESS_ID_e; mNormalSpeed = 0.0f; current.angle.y = shape_angle.y; field_0x2f98 = 4; @@ -168,7 +168,6 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s } -// NONMATCHING - small regalloc int daAlink_c::procGrassWhistleWait() { if (mProcVar5.field_0x3012 != 0) { if (checkEndMessage(field_0x32cc)) { @@ -189,7 +188,7 @@ int daAlink_c::procGrassWhistleWait() { mProcVar0.field_0x3008--; if (mProcVar0.field_0x3008 == 0) { - daHorse_c* horse_p = dComIfGp_getHorseActor(); + daHorse_c* horse_p = (daHorse_c*)dComIfGp_getHorseActor(); daNPC_TK_c* tk_p = (daNPC_TK_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchWhistle, NULL); if (tk_p != NULL) { diff --git a/src/d/actor/d_a_alink_wolf.inc b/src/d/actor/d_a_alink_wolf.inc index 8095f93a0a..77b172f6a7 100644 --- a/src/d/actor/d_a_alink_wolf.inc +++ b/src/d/actor/d_a_alink_wolf.inc @@ -3814,7 +3814,7 @@ static void* daAlink_searchWolfHowl(fopAc_ac_c* i_actor, void* i_data) { } void daAlink_c::setWolfHowlNotHappen(int param_0) { - mMsgClassID = -1; + mMsgClassID = fpcM_ERROR_PROCESS_ID_e; if (field_0x3198 == 0xEE) { field_0x32cc = 0x532; @@ -3945,7 +3945,7 @@ int daAlink_c::procWolfHowlDemoInit() { dCam_getBody()->StartEventCamera(12, fopAcM_GetID(this), 0); mProcVar1.field_0x300a = 0; - mMsgClassID = -1; + mMsgClassID = fpcM_ERROR_PROCESS_ID_e; field_0x32cc = 0x5DD; mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = -1; diff --git a/src/d/actor/d_a_b_dr.cpp b/src/d/actor/d_a_b_dr.cpp index 5fb7adac5f..b5dad17e5e 100644 --- a/src/d/actor/d_a_b_dr.cpp +++ b/src/d/actor/d_a_b_dr.cpp @@ -880,17 +880,17 @@ void daB_DR_c::mHabatakiAnmSet(int param_0) { } break; case ANM_DR_BRAKE_TO_HOVER: - if (mpModelMorf->isStop()) { - if (param_0 != 4) { - goto lbl_805bc4e0; // fakematch? - } - - setBck(ANM_DR_FLAP, 2, 3.0f, 1.0f); + if (!mpModelMorf->isStop()) { + break; } - break; + if (param_0 == 4) { + setBck(ANM_DR_FLAP, 2, 3.0f, 1.0f); + break; + } + /* fallthrough */ default: - lbl_805bc4e0: setBck(ANM_DR_HOVERING, 2, 3.0f, 1.0f); + /* fallthrough */ case ANM_DR_HOVERING: if ((int)mpModelMorf->getFrame() >= (int)(mpModelMorf->getEndFrame() - 1.0f) && param_0 == 4) { setBck(ANM_DR_FLAP, 2, 3.0f, 1.0f); diff --git a/src/d/actor/d_a_npc_bans.cpp b/src/d/actor/d_a_npc_bans.cpp index cfe52d1c7f..c107a11d65 100644 --- a/src/d/actor/d_a_npc_bans.cpp +++ b/src/d/actor/d_a_npc_bans.cpp @@ -658,15 +658,21 @@ void daNpc_Bans_c::reset() { switch (mType) { case TYPE_POST_TWILIGHT: + break; case TYPE_TWILIGHT: + break; case TYPE_COLIN_KIDNAPPED: + break; case TYPE_MAKING_BOMBS: + break; case TYPE_SHOP: + break; default: - daNpcT_offTmpBit(57); // dSv_event_tmp_flag_c::T_0057 - Kakariko Village (inside) - Barnes bomb shop - setAngle(angle); break; } + + daNpcT_offTmpBit(57); // dSv_event_tmp_flag_c::T_0057 - Kakariko Village (inside) - Barnes bomb shop + setAngle(angle); } void daNpc_Bans_c::afterJntAnm(int param_1) { diff --git a/src/d/actor/d_a_npc_impal.cpp b/src/d/actor/d_a_npc_impal.cpp index 25838fe112..0d797f2773 100644 --- a/src/d/actor/d_a_npc_impal.cpp +++ b/src/d/actor/d_a_npc_impal.cpp @@ -503,7 +503,7 @@ void daNpcImpal_c::setMotionAnm(int i_idx, f32 i_morf) { case ANM_10: case ANM_11: break; - // Is this a bug from the original developers? + // !@bug Is this a bug from the original developers? case ANM_12: iVar5 = 1; case ANM_2: diff --git a/src/d/actor/d_a_npc_shaman.cpp b/src/d/actor/d_a_npc_shaman.cpp index 5bf21f7d57..7f932a7b25 100644 --- a/src/d/actor/d_a_npc_shaman.cpp +++ b/src/d/actor/d_a_npc_shaman.cpp @@ -411,8 +411,11 @@ void daNpc_Sha_c::reset() { switch (mType) { case 0: + break; case 1: break; + default: + break; } setAngle(angle); diff --git a/src/d/actor/d_a_npc_zelda.cpp b/src/d/actor/d_a_npc_zelda.cpp index a6c2dfad6a..79070ef87d 100644 --- a/src/d/actor/d_a_npc_zelda.cpp +++ b/src/d/actor/d_a_npc_zelda.cpp @@ -366,12 +366,15 @@ void daNpc_Zelda_c::reset() { acStack_20.setall(0); acStack_20.y = home.angle.y; + switch (field_0xf80) { case 0: + break; default: - setAngle(acStack_20); break; } + + setAngle(acStack_20); } void daNpc_Zelda_c::afterJntAnm(int param_0) { diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index d59d689d97..2f13d5978e 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -496,15 +496,11 @@ u32 daPy_py_c::checkCarryStartLightBallB() { } f32 daPy_py_c::getSpinnerRideSpeed() const { - f32 rideSpeed; - if (checkSpinnerRide()) { - rideSpeed = speedF; + return speedF; } else { - rideSpeed = 0.0f; + return 0.0f; } - - return rideSpeed; } bool daPy_py_c::checkSpinnerReflectEffect() { diff --git a/src/d/actor/d_a_scene_exit.cpp b/src/d/actor/d_a_scene_exit.cpp index e86bfca349..9ed25bd34c 100644 --- a/src/d/actor/d_a_scene_exit.cpp +++ b/src/d/actor/d_a_scene_exit.cpp @@ -56,7 +56,6 @@ static int daScex_Execute(daScex_c* i_this) { return i_this->execute(); } -// NONMATCHING - regalloc, this matches debug but not retail :/ int daScex_c::execute() { daPy_py_c* player = daPy_getPlayerActorClass(); cXyz spC; diff --git a/src/d/actor/d_a_tag_Lv7Gate.cpp b/src/d/actor/d_a_tag_Lv7Gate.cpp index 2457f4da6c..0f40c60b9c 100644 --- a/src/d/actor/d_a_tag_Lv7Gate.cpp +++ b/src/d/actor/d_a_tag_Lv7Gate.cpp @@ -221,13 +221,14 @@ int daTagLv7Gate_c::execute() { // Fakematch dComIfG_play_c& play = g_dComIfG_gameInfo.getPlay(); if (dComIfGp_event_runCheck() != 0 && !eventInfo.checkCommandTalk()) { - s32 cut_index = dComIfGp_evmng_getMyStaffId(l_arcName, NULL, 0); + dEvent_manager_c& evtMgr = dComIfGp_getEventManager(); + s32 cut_index = evtMgr.getMyStaffId(l_arcName, NULL, 0); if (cut_index != -1) { - int* cut_name = (int*)play.getEvtManager().getMyNowCutName(cut_index); // Fakematch + int* cut_name = (int*)evtMgr.getMyNowCutName(cut_index); // Fakematch daPy_getPlayerActorClass()->onShieldBackBone(); - if (dComIfGp_evmng_getIsAddvance(cut_index)) { + if (evtMgr.getIsAddvance(cut_index)) { switch (*cut_name) { case '0002': field_0x5b1 = true; @@ -237,25 +238,31 @@ int daTagLv7Gate_c::execute() { break; case '0003': break; + default: + JUT_ASSERT(455, FALSE); + break; } } switch (*cut_name) { case '0001': - dComIfGp_evmng_cutEnd(cut_index); + evtMgr.cutEnd(cut_index); break; case '0002': - mDoAud_seStartLevel(Z2SE_EN_DR_DEMO_FIRST, &mPos1, 0, 0); + Z2GetAudioMgr()->seStartLevel(Z2SE_EN_DR_DEMO_FIRST, &mPos1, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); if (!field_0x5b1) { - dComIfGp_evmng_cutEnd(cut_index); + evtMgr.cutEnd(cut_index); } break; case '0003': break; + default: + JUT_ASSERT(477, FALSE); + break; } if (eventInfo.checkCommandDemoAccrpt() && mEvtId != -1 && - dComIfGp_evmng_endCheck(mEvtId)) { + evtMgr.endCheck(mEvtId)) { // dComIfGp_event_reset(); play.getEvent().reset(); // Fakematch mEvtId = -1; diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 623da54fcf..5bc923bbf3 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -38,13 +38,15 @@ static __d_timer_info_c dComIfG_mTimerInfo; dComIfG_inf_c g_dComIfG_gameInfo; void dComIfG_play_c::init() { - for (int i = 0; i < 1; i++) { - mPlayer[i] = NULL; - mPlayerCameraID[i] = -1; + for (int i = 0; i < ARRAY_SIZE(mPlayerInfo); i++) { + mPlayerInfo[i].mpPlayer = NULL; + mPlayerInfo[i].mCameraID = -1; + } + for (int i = 0; i < ARRAY_SIZE(mCameraInfo); i++) { + mCameraInfo[i].mCamera = NULL; } - mCameraInfo[0].mCamera = NULL; - for (int i = 0; i < 2; i++) { + for (int i = 0; i < ARRAY_SIZE(mPlayerPtr); i++) { mPlayerPtr[i] = NULL; } diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index 5fae08c7fc..7fa86e9728 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -571,6 +571,7 @@ BOOL fopEn_enemy_c::initBallModel() { return true; } + bool fopEn_enemy_c::checkBallModelDraw() { return (mFlags & fopEn_flag_Down) && !(mFlags & (fopEn_flag_WolfDownPullEnd | fopEn_flag_WolfDownPull | fopEn_flag_CutDownHit)); }