From 23a1c940630435eaa0bbca45fb24156fc0d3db62 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Mon, 10 Nov 2025 21:25:00 -0500 Subject: [PATCH] Regalloc/debug/misc fixes (#2794) * Fix "0" asserts * More debug and regalloc fixes * Fix PTMF syntax for compatibility with other compilers * Fix some fakematches, link more TUs for J/P --- config/GZ2E01/rels/d_a_e_fs/symbols.txt | 1 + config/GZ2E01/rels/d_a_npc_gra/symbols.txt | 1 + configure.py | 14 +- include/JSystem/J2DGraph/J2DTevs.h | 6 +- include/JSystem/JAudio2/JASHeapCtrl.h | 2 +- include/d/actor/d_a_e_pm.h | 2 +- include/d/actor/d_a_mg_fshop.h | 15 -- include/d/actor/d_a_npc.h | 2 +- include/d/actor/d_a_npc_the.h | 2 +- include/d/actor/d_a_passer_mng.h | 2 +- include/d/d_event_data.h | 1 + include/d/d_event_manager.h | 1 + include/d/d_kankyo.h | 5 +- include/f_op/f_op_actor.h | 4 +- src/d/actor/d_a_alink_cut.inc | 2 +- src/d/actor/d_a_b_ds.cpp | 9 +- src/d/actor/d_a_balloon_2D.cpp | 2 - src/d/actor/d_a_bg.cpp | 7 + src/d/actor/d_a_bg_obj.cpp | 9 +- src/d/actor/d_a_boomerang.cpp | 5 +- src/d/actor/d_a_door_boss.cpp | 8 +- src/d/actor/d_a_door_shutter.cpp | 4 +- src/d/actor/d_a_e_ba.cpp | 1 - src/d/actor/d_a_e_dn.cpp | 4 +- src/d/actor/d_a_e_fs.cpp | 1 - src/d/actor/d_a_e_kg.cpp | 2 - src/d/actor/d_a_e_ot.cpp | 5 +- src/d/actor/d_a_e_pm.cpp | 2 - src/d/actor/d_a_e_po.cpp | 8 +- src/d/actor/d_a_e_pz.cpp | 1 - src/d/actor/d_a_e_rdy.cpp | 1 - src/d/actor/d_a_e_zh.cpp | 1 - src/d/actor/d_a_ep.cpp | 1 - src/d/actor/d_a_kago.cpp | 8 +- src/d/actor/d_a_kytag12.cpp | 53 ++--- src/d/actor/d_a_kytag14.cpp | 15 +- src/d/actor/d_a_mg_fshop.cpp | 264 ++------------------- src/d/actor/d_a_npc4.cpp | 10 +- src/d/actor/d_a_npc_ash.cpp | 30 +-- src/d/actor/d_a_npc_ashB.cpp | 24 +- src/d/actor/d_a_npc_cd.cpp | 1 - src/d/actor/d_a_npc_cdn3.cpp | 15 +- src/d/actor/d_a_npc_gra.cpp | 25 +- src/d/actor/d_a_npc_henna.cpp | 3 +- src/d/actor/d_a_npc_impal.cpp | 13 +- src/d/actor/d_a_npc_ks.cpp | 6 +- src/d/actor/d_a_npc_rafrel.cpp | 3 +- src/d/actor/d_a_npc_seic.cpp | 1 - src/d/actor/d_a_npc_shop0.cpp | 4 +- src/d/actor/d_a_npc_the.cpp | 28 +-- src/d/actor/d_a_npc_wrestler.cpp | 63 ++--- src/d/actor/d_a_npc_yelia.cpp | 30 +-- src/d/actor/d_a_npc_zrz.cpp | 32 +-- src/d/actor/d_a_obj_Y_taihou.cpp | 2 - src/d/actor/d_a_obj_barDesk.cpp | 4 +- src/d/actor/d_a_obj_bosswarp.cpp | 28 ++- src/d/actor/d_a_obj_bsGate.cpp | 6 +- src/d/actor/d_a_obj_cdoor.cpp | 14 +- src/d/actor/d_a_obj_chandelier.cpp | 10 +- src/d/actor/d_a_obj_fchain.cpp | 4 +- src/d/actor/d_a_obj_gm.cpp | 1 - src/d/actor/d_a_obj_hbombkoya.cpp | 1 - src/d/actor/d_a_obj_ladder.cpp | 1 - src/d/actor/d_a_obj_lv4CandleDemoTag.cpp | 1 - src/d/actor/d_a_obj_master_sword.cpp | 2 - src/d/actor/d_a_obj_mirror_screw.cpp | 8 +- src/d/actor/d_a_obj_pdoor.cpp | 2 +- src/d/actor/d_a_obj_sekizoa.cpp | 14 +- src/d/actor/d_a_obj_snowEffTag.cpp | 5 +- src/d/actor/d_a_obj_spinLift.cpp | 5 +- src/d/actor/d_a_obj_swBallB.cpp | 1 - src/d/actor/d_a_obj_toby.cpp | 1 - src/d/actor/d_a_obj_tobyhouse.cpp | 2 +- src/d/actor/d_a_obj_wood_statue.cpp | 2 +- src/d/actor/d_a_obj_zdoor.cpp | 1 - src/d/actor/d_a_obj_zrTurara.cpp | 6 +- src/d/actor/d_a_obj_zrTuraraRock.cpp | 4 +- src/d/actor/d_a_passer_mng.cpp | 2 +- src/d/actor/d_a_peru.cpp | 8 +- src/d/actor/d_a_swc00.cpp | 2 +- src/d/actor/d_a_tag_Lv6Gate.cpp | 4 +- src/d/actor/d_a_tag_wljump.cpp | 1 - src/d/d_attention.cpp | 4 +- src/d/d_com_inf_game.cpp | 4 +- src/d/d_msg_object.cpp | 1 - src/d/d_particle.cpp | 7 +- src/f_op/f_op_actor_mng.cpp | 4 +- 87 files changed, 314 insertions(+), 607 deletions(-) diff --git a/config/GZ2E01/rels/d_a_e_fs/symbols.txt b/config/GZ2E01/rels/d_a_e_fs/symbols.txt index 32ce0d1bea..9c90c29d5c 100644 --- a/config/GZ2E01/rels/d_a_e_fs/symbols.txt +++ b/config/GZ2E01/rels/d_a_e_fs/symbols.txt @@ -133,6 +133,7 @@ hioInit = .bss:0x00000048; // type:object size:0x1 data:byte @3933 = .bss:0x0000004C; // type:object size:0xC scope:local l_HIO = .bss:0x00000058; // type:object size:0x1C scope:global data:byte @4275 = .bss:0x00000074; // type:object size:0xC scope:local +init$2218 = .bss:0x00000080; // type:object size:0x1 scope:local align:1 sc$4274 = .bss:0x00000084; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000090; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000094; // type:object size:0x4 scope:global diff --git a/config/GZ2E01/rels/d_a_npc_gra/symbols.txt b/config/GZ2E01/rels/d_a_npc_gra/symbols.txt index 682dbfe114..e68d7cb061 100644 --- a/config/GZ2E01/rels/d_a_npc_gra/symbols.txt +++ b/config/GZ2E01/rels/d_a_npc_gra/symbols.txt @@ -419,6 +419,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @4083 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @5080 = .bss:0x00000058; // type:object size:0xC scope:local +init$2720 = .bss:0x00000064; // type:object size:0x1 scope:local eyeOffset$5079 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global diff --git a/configure.py b/configure.py index d2435cc443..9adb4158b5 100755 --- a/configure.py +++ b/configure.py @@ -1777,7 +1777,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ot"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ph"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_pm"), - ActorRel(MatchingFor("GZ2E01"), "d_a_e_po"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_po"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_pz"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_rb"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_rdb"), @@ -1861,7 +1861,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fairy"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fguard"), ActorRel(NonMatching, "d_a_npc_gnd"), - ActorRel(MatchingFor("GZ2E01"), "d_a_npc_gra", extra_cflags=[DANPCF_C_HACK]), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_gra", extra_cflags=[DANPCF_C_HACK]), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_grc", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_grd"), ActorRel(NonMatching, "d_a_npc_grm"), @@ -1948,7 +1948,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_zelda"), ActorRel(Equivalent, "d_a_npc_zra", extra_cflags=[DANPCF_C_HACK]), # weak func order ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_zrc", extra_cflags=[DANPCF_C_HACK]), - ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zrz", extra_cflags=[DANPCF_C_HACK]), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_zrz", extra_cflags=[DANPCF_C_HACK]), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_Lv5Key"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_Turara"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_TvCdlst"), @@ -2016,10 +2016,10 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gb"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_geyser"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_glowSphere"), - ActorRel(MatchingFor("GZ2E01"), "d_a_obj_gm"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gm"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_goGate"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gomikabe"), - ActorRel(MatchingFor("GZ2E01"), "d_a_obj_gra2"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gra2"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_graWall"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gra_rock"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_grave_stone"), @@ -2148,7 +2148,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pdoor"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pdtile"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pdwall"), - ActorRel(MatchingFor("GZ2E01"), "d_a_obj_picture"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_picture"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pillar"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_pleaf"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_poCandle"), @@ -2240,7 +2240,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_waterfall"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_wchain"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_wdStick"), - ActorRel(MatchingFor("GZ2E01"), "d_a_obj_web0"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_web0"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_web1"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_well_cover"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_wflag"), diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h index 845b94e89d..5eb407379d 100644 --- a/include/JSystem/J2DGraph/J2DTevs.h +++ b/include/JSystem/J2DGraph/J2DTevs.h @@ -564,7 +564,7 @@ struct J2DColorChanInfo { /* 0x0 */ u8 field_0x3; }; -inline u8 J2DCalcColorChanID(const J2DColorChanInfo& info) { return info.field_0x1; } +inline u16 J2DCalcColorChanID(u8 param_0) { return param_0; } extern const J2DColorChanInfo j2dDefaultColorChanInfo; /** @@ -577,11 +577,11 @@ public: setColorChanInfo(j2dDefaultColorChanInfo); } J2DColorChan(const J2DColorChanInfo& info) { - mColorChan = J2DCalcColorChanID(info); + mColorChan = J2DCalcColorChanID(info.field_0x1); } void setColorChanInfo(const J2DColorChanInfo& info) { - mColorChan = J2DCalcColorChanID(info); + mColorChan = J2DCalcColorChanID(info.field_0x1); } u16 getMatSrc() const { return mColorChan & 1; } diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index 754e65361c..c6cc34ae30 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -215,7 +215,7 @@ public: chunk = chunk->getNextChunk(); } - JUT_PANIC(362,"Cannnot free for JASMemChunkPool") + JUT_PANIC(362, "Cannnot free for JASMemChunkPool"); } /* 0x18 */ MemoryChunk* field_0x18; diff --git a/include/d/actor/d_a_e_pm.h b/include/d/actor/d_a_e_pm.h index 1c5bdd89ce..f612a8c684 100644 --- a/include/d/actor/d_a_e_pm.h +++ b/include/d/actor/d_a_e_pm.h @@ -89,7 +89,7 @@ private: /* 0x5BC */ u8 field_0x5bc[0x5DC - 0x5BC]; /* 0x5DC */ u8 mDoorAction; /* 0x5E0 */ dPath* mpPath; - /* 0x5E4 */ cXyz mPoint; + /* 0x5E4 */ Vec mPoint; /* 0x5F0 */ u8 mPathIndex; /* 0x5F4 */ int mPointIndex; /* 0x5F8 */ u8 mBossHealth; diff --git a/include/d/actor/d_a_mg_fshop.h b/include/d/actor/d_a_mg_fshop.h index 17d4c93caa..a30b855958 100644 --- a/include/d/actor/d_a_mg_fshop.h +++ b/include/d/actor/d_a_mg_fshop.h @@ -10,9 +10,6 @@ class J3DModelData; class dBgW; struct fs_weed_s { - /* 8086FED8 */ ~fs_weed_s(); - /* 8086FF38 */ fs_weed_s(); - /* 0x00 */ cXyz field_0x00[15]; /* 0xB4 */ f32 field_0xb4; /* 0xB8 */ f32 field_0xb8; @@ -20,9 +17,6 @@ struct fs_weed_s { }; struct fs_tsubo_s { - /* 8086FE98 */ ~fs_tsubo_s(); - /* 8086FED4 */ fs_tsubo_s(); - /* 0x00 */ cXyz field_0x00; /* 0x0C */ u8 field_0x0c[0x14 - 0x0c]; /* 0x14 */ J3DModel* field_0x14; @@ -34,9 +28,6 @@ struct fs_tsubo_s { }; struct fs_rod_s { - /* 8086FF84 */ ~fs_rod_s(); - /* 8086FFC0 */ fs_rod_s(); - /* 0x00 */ cXyz field_0x00; /* 0x0C */ u8 field_0x0C[0x14 - 0x0C]; /* 0x14 */ J3DModel* field_0x14; @@ -49,9 +40,6 @@ struct fs_rod_s { }; struct fs_lure_s { - /* 8086FFDC */ ~fs_lure_s(); - /* 80870018 */ fs_lure_s(); - /* 0x00 */ cXyz field_0x00; /* 0x0C */ s16 field_0x0c; /* 0x0E */ s16 field_0x0e; @@ -72,9 +60,6 @@ struct fs_lure_s { }; struct fs_koro2_s { - /* 8086FD78 */ ~fs_koro2_s(); - /* 8086FDB4 */ fs_koro2_s(); - /* 0x00 */ J3DModel* mpModel; /* 0x04 */ Mtx field_0x04; /* 0x34 */ s8 field_0x34; diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 35fba79603..9799bb2fee 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -1112,7 +1112,7 @@ public: struct daNpcF_anmPlayData { u16 idx; f32 morf; - s32 numLoops; + int numLoops; }; enum AnmFlags { diff --git a/include/d/actor/d_a_npc_the.h b/include/d/actor/d_a_npc_the.h index 437af22484..56aaf8d515 100644 --- a/include/d/actor/d_a_npc_the.h +++ b/include/d/actor/d_a_npc_the.h @@ -195,7 +195,7 @@ public: return true; } - void doNormalAction() { + void doNormalAction(int) { mOrderEvtNo = 0; if (mpNextActionFn != NULL) { if (mpNextActionFn == mpActionFn) { diff --git a/include/d/actor/d_a_passer_mng.h b/include/d/actor/d_a_passer_mng.h index 706fd41de4..c48a572384 100644 --- a/include/d/actor/d_a_passer_mng.h +++ b/include/d/actor/d_a_passer_mng.h @@ -244,7 +244,7 @@ public: break; default: OS_REPORT("%s: Line.%d arg=%d\n", "d_a_passer_mng.cpp", 1049, param_1); - JUT_PANIC(1050, 0); + JUT_ASSERT(1050, FALSE); break; } return paramLow << 8; diff --git a/include/d/d_event_data.h b/include/d/d_event_data.h index f07a900705..17549363c1 100644 --- a/include/d/d_event_data.h +++ b/include/d/d_event_data.h @@ -273,6 +273,7 @@ public: class dEvDtFlag_c { public: dEvDtFlag_c() {} + ~dEvDtFlag_c() {} BOOL flagCheck(int flag); BOOL flagSet(int flag); BOOL flagMaxCheck(int flag); diff --git a/include/d/d_event_manager.h b/include/d/d_event_manager.h index 4bbff6879d..f9d70c1f10 100644 --- a/include/d/d_event_manager.h +++ b/include/d/d_event_manager.h @@ -10,6 +10,7 @@ class fopAc_ac_c; class dEvent_exception_c { public: dEvent_exception_c() { mEventInfoIdx = -1; } + ~dEvent_exception_c() {} void init(); int setStartDemo(int mapToolID); const char* getEventName(); diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index 6360e4330c..4f2666ecb1 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -831,10 +831,7 @@ public: /* 0x2DB */ u8 door_light_influence_ratio; /* 0x2DC */ s16 unk_light_influence_ratio; /* 0x2DE */ u8 fish_pond_colreg_adjust_ON; - /* 0x2E0 */ s16 fish_pond_colreg_c0_R; - /* 0x2E2 */ s16 fish_pond_colreg_c0_G; - /* 0x2E4 */ s16 fish_pond_colreg_c0_B; - /* 0x2E6 */ u8 field_0x2E6[0x2E8 - 0x2E6]; + /* 0x2E0 */ GXColorS10 fish_pond_colreg_c0; /* 0x2E8 */ u8 water_mud_adjust_ON; /* 0x2EA */ s16 field_0x2ea; /* 0x2EC */ s16 field_0x2ec; diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 8c567e5046..c0092cbda7 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -180,7 +180,7 @@ public: void setArchiveName(char* name) { mArchiveName = name; } u8 getMapToolId() { return mMapToolId; } s16 getEventId() { return mEventId; } - s16 getIdx() { return mIndex; } + s16 getIdx() { return (s8)mIndex; } void setIdx(u8 i_idx) { mIndex = i_idx; } char* getArchiveName() { return mArchiveName; } BOOL chkCondition(u16 condition) { return (mCondition & condition) == condition; } @@ -195,7 +195,7 @@ public: /* 0x06 */ u16 mCondition; /* 0x08 */ s16 mEventId; /* 0x0A */ u8 mMapToolId; - /* 0x0B */ s8 mIndex; + /* 0x0B */ u8 mIndex; /* 0x0C */ char* mArchiveName; /* 0x10 */ u8 field_0x10; /* 0x14 */ void (*field_0x14)(void*); diff --git a/src/d/actor/d_a_alink_cut.inc b/src/d/actor/d_a_alink_cut.inc index 446bbd825c..8d01205b6d 100644 --- a/src/d/actor/d_a_alink_cut.inc +++ b/src/d/actor/d_a_alink_cut.inc @@ -1661,7 +1661,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { if (param_0) { var_f31 = cutData->mRightTurnInputStartFrame; } else { - var_f31 = cutData->mRightTurnAnm.mStartFrame; + var_f31 = anm_data->mStartFrame; } field_0x3484 = cutData->mRightAttackStartFrame; diff --git a/src/d/actor/d_a_b_ds.cpp b/src/d/actor/d_a_b_ds.cpp index 9888e8aef4..ba4a534351 100644 --- a/src/d/actor/d_a_b_ds.cpp +++ b/src/d/actor/d_a_b_ds.cpp @@ -1303,7 +1303,7 @@ void daB_DS_c::executeOpeningDemo() { mMode++; } break; - case 2: + case 2: { f32 calc_center = cLib_addCalcPos(&mCameraCenter, mOpCenterDt[1], 0.3f, 2.0f, 1.0f); f32 calc_eye = cLib_addCalcPos(&mCameraEye, mOpEyeDt[1], 0.3f, 2.0f, 1.0f); if (calc_center > 2.0f || calc_eye > 2.0f || cLib_calcTimer(&mModeTimer) != 0) { @@ -1323,6 +1323,7 @@ void daB_DS_c::executeOpeningDemo() { fopAcM_OffStatus(this, 0x4000); mMode++; // fallthrough + } case 3: mPedestalFallTimer = l_HIO.mPedestalFallTime; @@ -1519,7 +1520,7 @@ void daB_DS_c::executeOpeningDemo() { dComIfGp_getVibration().StartShock(4, 0x1f, cXyz(0.0f, 1.0f, 0.0f)); mMode++; // fallthrough - case 26: + case 26: { if (!field_0x85e && mpZantMorf->isStop()) { mpZantMorf->setAnm(static_cast(dComIfG_getObjectRes("B_DS", 67)), J3DFrameCtrl::EMode_LOOP, 1.0f, 1.0f, 0.0f, -1.0f); @@ -1562,6 +1563,7 @@ void daB_DS_c::executeOpeningDemo() { mMode = 30; field_0x85e = false; // fallthrough + } case 30: mCameraCenter.set(mOpCenterDt[12]); mCameraEye.set(mOpEyeDt[12]); @@ -2325,7 +2327,7 @@ void daB_DS_c::executeDamage() { mMode = 100; mSound.startCreatureSound(Z2SE_EN_DS_MDEMO_FALL, 0, -1); // fallthrough - case 100: + case 100: { gravity = -0.2f; if (current.pos.y > -1600.0f) { if (current.pos.y <= -300.0f) { @@ -2346,6 +2348,7 @@ void daB_DS_c::executeDamage() { &p2_angle, NULL, 0xff); mMode = 101; // fallthrough + } case 101: cLib_addCalc2(&mCameraCenter.y, down_center_dt[4].y, 0.7f, 10.0f); cLib_addCalc2(&mCameraEye.y, down_eye_dt[4].y, 0.7f, 10.0f); diff --git a/src/d/actor/d_a_balloon_2D.cpp b/src/d/actor/d_a_balloon_2D.cpp index b43bc5ac1a..c177fb2230 100644 --- a/src/d/actor/d_a_balloon_2D.cpp +++ b/src/d/actor/d_a_balloon_2D.cpp @@ -444,7 +444,6 @@ void daBalloon2D_c::setComboAlpha() { } /* 80654730-80654E8C 001350 075C+00 1/1 0/0 0/0 .text drawAddScore__13daBalloon2D_cFv */ -// NONMATCHING - field_0x0.x, regalloc void daBalloon2D_c::drawAddScore() { for (s32 i = 19; i >= 0; i--) { if (field_0x5f8[i].field_0xe != 0) { @@ -591,7 +590,6 @@ void daBalloon2D_HIO_c::resetAddScoreSetFlag() { } /* 80655250-80655304 001E70 00B4+00 1/0 0/0 0/0 .text daBalloon2D_create__FP13daBalloon2D_c */ -// NONMATCHING - vtable static int daBalloon2D_create(daBalloon2D_c* i_this) { fopAcM_ct(i_this, daBalloon2D_c); return i_this->create(); diff --git a/src/d/actor/d_a_bg.cpp b/src/d/actor/d_a_bg.cpp index f00759e8a6..e566507b5a 100644 --- a/src/d/actor/d_a_bg.cpp +++ b/src/d/actor/d_a_bg.cpp @@ -408,6 +408,13 @@ int daBg_c::draw() { break; } + #ifdef DEBUG + s16 sp56 = 0xFF; + if (g_kankyoHIO.navy.fish_pond_colreg_adjust_ON) { + sp50 = g_kankyoHIO.navy.fish_pond_colreg_c0; + } + #endif + f32 var_f31 = bgPart->tevstr->AmbCol.r / 10.0f; var_f31 *= var_f31; if (var_f31 > 1.0f) { diff --git a/src/d/actor/d_a_bg_obj.cpp b/src/d/actor/d_a_bg_obj.cpp index 849174ead3..5aa22856ea 100644 --- a/src/d/actor/d_a_bg_obj.cpp +++ b/src/d/actor/d_a_bg_obj.cpp @@ -131,7 +131,6 @@ u8* daBgObj_c::spec_data_c::initFarInfoBlock(u8* i_dataPtr) { /* 80459904-80459B64 000324 0260+00 1/1 0/0 1/1 .text Set__Q29daBgObj_c11spec_data_cFPv */ -// NONMATCHING - close-ish bool daBgObj_c::spec_data_c::Set(void* i_ptr) { JUT_ASSERT(496, i_ptr != NULL); @@ -160,7 +159,7 @@ bool daBgObj_c::spec_data_c::Set(void* i_ptr) { default: // Invalid data block type OS_REPORT_ERROR("データブロックタイプが不正です<%d>\n", block_type); - JUT_PANIC(527, "0"); + JUT_ASSERT(527, FALSE); } if (block_type == 0) { @@ -201,7 +200,7 @@ bool daBgObj_c::spec_data_c::Set(void* i_ptr) { default: // Invalid data block type OS_REPORT_ERROR("データブロックタイプが不正です<%d>\n", block_type); - JUT_PANIC(570, "0"); + JUT_ASSERT(570, FALSE); } if (block_type == 0) { @@ -242,7 +241,7 @@ bool daBgObj_c::spec_data_c::Set(void* i_ptr) { default: // "Data Block type invalid<%d>\n" OSReport_Error("データブロックタイプが不正です<%d>\n", block_type); - JUT_PANIC(619, "0"); + JUT_ASSERT(619, FALSE); break; } @@ -980,7 +979,7 @@ void daBgObj_c::setParticle() { default: // Multi MoveBG: Particle model number is invalid <%d> OS_REPORT_ERROR("マルチMoveBG:パーティクルモデル番号が不正<%d>\n", modelNumber); - JUT_PANIC(1689, "0"); + JUT_ASSERT(1689, FALSE); break; } JPABaseEmitter* emitter = dComIfGp_particle_set( diff --git a/src/d/actor/d_a_boomerang.cpp b/src/d/actor/d_a_boomerang.cpp index 1a34d28520..41061f37a3 100644 --- a/src/d/actor/d_a_boomerang.cpp +++ b/src/d/actor/d_a_boomerang.cpp @@ -932,7 +932,6 @@ void daBoomerang_c::setEffect() { } /* 804A0874-804A0F0C 002834 0698+00 2/0 0/0 0/0 .text procWait__13daBoomerang_cFv */ -// NONMATCHING - small regalloc int daBoomerang_c::procWait() { daAlink_c* player = daAlink_getAlinkActorClass(); speedF = 0.0f; @@ -973,7 +972,7 @@ int daBoomerang_c::procWait() { offStateFlg0(FLG0_10); } - current.angle.y += 0x1830; + current.angle.y += (s16)0x1830; shape_angle.x = current.angle.x; shape_angle.y = current.angle.y; shape_angle.z = 0x1000; @@ -993,7 +992,7 @@ int daBoomerang_c::procWait() { procMove(); } else if (dCam_getBody()->Mode() != 8) { if (dComIfGp_checkPlayerStatus0(0, 0x80000) && player->getAtnActor() != NULL && m_lockCnt < BOOMERANG_LOCK_MAX) { - fpc_ProcID atn_actor_id = fopAcM_GetID(player->getAtnActor()); + fpc_ProcID atn_actor_id = (fpc_ProcID)fopAcM_GetID(player->getAtnActor()); int var_r27 = 0; while (var_r27 < m_lockCnt) { diff --git a/src/d/actor/d_a_door_boss.cpp b/src/d/actor/d_a_door_boss.cpp index 5e196d9674..396824ea8b 100644 --- a/src/d/actor/d_a_door_boss.cpp +++ b/src/d/actor/d_a_door_boss.cpp @@ -357,10 +357,10 @@ BOOL daBdoor_c::actionEnd() { int daBdoor_c::execute() { typedef BOOL (daBdoor_c::*daBdoor_action)(); static daBdoor_action l_action[4] = { - &actionWait, - &actionCloseWait, - &actionOpen, - &actionEnd, + &daBdoor_c::actionWait, + &daBdoor_c::actionCloseWait, + &daBdoor_c::actionOpen, + &daBdoor_c::actionEnd, }; if (fopAcM_CheckStatus(this, 0x1000)) { mStaffID = dComIfGp_evmng_getMyStaffId(l_staff_name, NULL, 0); diff --git a/src/d/actor/d_a_door_shutter.cpp b/src/d/actor/d_a_door_shutter.cpp index 604a04827f..25d3aa6e97 100644 --- a/src/d/actor/d_a_door_shutter.cpp +++ b/src/d/actor/d_a_door_shutter.cpp @@ -933,7 +933,7 @@ int daDoor20_c::demoProc() { if (!field_0x584.init(anm, 1, 0, 1.0f, 0, -1, true) || !field_0x5a0.init(anm, 1, 0, 1.0f, 0, -1, true)) { - JUT_PANIC(1799, 0); + JUT_ASSERT(1799, FALSE); } field_0x67c = 0; openInit2(); @@ -945,7 +945,7 @@ int daDoor20_c::demoProc() { if (!field_0x584.init(anm, 1, 0, 1.0f, 0, -1, true) || !field_0x5a0.init(anm, 1, 0, 1.0f, 0, -1, true)) { - JUT_PANIC(1812, 0); + JUT_ASSERT(1812, FALSE); } field_0x67c = 0; openInit2(); diff --git a/src/d/actor/d_a_e_ba.cpp b/src/d/actor/d_a_e_ba.cpp index a7cb01b070..aa3ba4d769 100644 --- a/src/d/actor/d_a_e_ba.cpp +++ b/src/d/actor/d_a_e_ba.cpp @@ -178,7 +178,6 @@ static void damage_check(e_ba_class* i_this) { } /* 8067F2DC-8067F544 0006DC 0268+00 2/3 0/0 0/0 .text path_check__FP10e_ba_class */ -// NONMATCHING regalloc static BOOL path_check(e_ba_class* i_this) { fopEn_enemy_c* a_this = &i_this->mEnemy; if (i_this->mpPath != NULL) { diff --git a/src/d/actor/d_a_e_dn.cpp b/src/d/actor/d_a_e_dn.cpp index 1e16c3f5fe..3346926770 100644 --- a/src/d/actor/d_a_e_dn.cpp +++ b/src/d/actor/d_a_e_dn.cpp @@ -2947,7 +2947,6 @@ int c_start; /* 804ECB50-804ED83C 007A90 0CEC+00 2/1 0/0 0/0 .text daE_DN_Execute__FP10e_dn_class */ static int daE_DN_Execute(e_dn_class* i_this) { - // NONMATCHING if (i_this->field_0x10d8 != 0) { return 1; } @@ -3181,8 +3180,7 @@ static int daE_DN_Execute(e_dn_class* i_this) { def_se_set(&i_this->mSound, i_this->field_0xf7c.GetTgHitObj(), 40, 0); dScnPly_c::setPauseTimer(l_HIO.field_0x1c); i_this->field_0x6ec = 10; - // The following s16 cast makes ALL the difference in terms of regalloc! - cMtx_YrotS(*calc_mtx, (s16) a_this->shape_angle.y); + cMtx_YrotS(*calc_mtx, (s16)a_this->shape_angle.y); sp2c.x = KREG_F(0); sp2c.y = 120.0f + KREG_F(1); sp2c.z = 50.0f + KREG_F(2); diff --git a/src/d/actor/d_a_e_fs.cpp b/src/d/actor/d_a_e_fs.cpp index fddd3ceba6..d8582fb900 100644 --- a/src/d/actor/d_a_e_fs.cpp +++ b/src/d/actor/d_a_e_fs.cpp @@ -249,7 +249,6 @@ static void e_fs_wait(e_fs_class* i_this) { } /* 806BC264-806BC444 000884 01E0+00 1/1 0/0 0/0 .text e_fs_move__FP10e_fs_class */ -// NONMATCHING regalloc static void e_fs_move(e_fs_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->mEnemy; switch (i_this->mMode) { diff --git a/src/d/actor/d_a_e_kg.cpp b/src/d/actor/d_a_e_kg.cpp index c038b177bc..715ad6277a 100644 --- a/src/d/actor/d_a_e_kg.cpp +++ b/src/d/actor/d_a_e_kg.cpp @@ -20,8 +20,6 @@ public: /* 0x10 */ f32 mCheckRange; }; -// NONMATCHING - weak function order - /* 806F7EEC-806F7F24 0000EC 0038+00 1/1 0/0 0/0 .text __ct__12daE_KG_HIO_cFv */ daE_KG_HIO_c::daE_KG_HIO_c() { field_0x4 = -1; diff --git a/src/d/actor/d_a_e_ot.cpp b/src/d/actor/d_a_e_ot.cpp index e640d33f57..d901c4625e 100644 --- a/src/d/actor/d_a_e_ot.cpp +++ b/src/d/actor/d_a_e_ot.cpp @@ -167,7 +167,6 @@ void daE_OT_c::setActionMode(int i_action, int i_mode) { } /* 8073A510-8073A7B0 000330 02A0+00 1/1 0/0 0/0 .text damage_check__8daE_OT_cFv */ -// NONMATCHING regswap void daE_OT_c::damage_check() { if (mAction == ACT_DAMAGE) { return; @@ -182,7 +181,7 @@ void daE_OT_c::damage_check() { if (mCcSph.ChkCoHit()) { fopAc_ac_c* hit_actor = dCc_GetAc(mCcSph.GetCoHitObj()->GetAc()); - if (fopAcM_GetName(hit_actor) == PROC_E_DT + if (fopAcM_GetName(dCc_GetAc(hit_actor)) == PROC_E_DT && static_cast(hit_actor)->isFlyingAttack()) { setActionMode(ACT_DAMAGE, 10); @@ -197,7 +196,7 @@ void daE_OT_c::damage_check() { if (mCcSph.ChkTgHit()) { mAtInfo.mpCollider = mCcSph.GetTgHitObj(); - dCc_GetAc(mAtInfo.mpCollider->GetAc()); + fopAc_ac_c* ac = dCc_GetAc(mAtInfo.mpCollider->GetAc()); cc_at_check(this, &mAtInfo); dScnPly_c::setPauseTimer(0); if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK)) { diff --git a/src/d/actor/d_a_e_pm.cpp b/src/d/actor/d_a_e_pm.cpp index 640032cf9f..cf737a0731 100644 --- a/src/d/actor/d_a_e_pm.cpp +++ b/src/d/actor/d_a_e_pm.cpp @@ -355,7 +355,6 @@ static s16 s_TargetAngle; } // namespace /* 80742958-80742C94 000B58 033C+00 1/1 0/0 0/0 .text SearchFarP__8daE_PM_cFv */ -// NONMATCHING regalloc, instruction order void daE_PM_c::SearchFarP() { //! @bug best_distance is not initialized f32 best_distance; @@ -2500,7 +2499,6 @@ void daE_PM_c::DamageAction() { } /* 8074A210-8074A3DC 008410 01CC+00 1/1 0/0 0/0 .text At_Check__8daE_PM_cFv */ -// NONMATCHING regalloc void daE_PM_c::At_Check() { fopAc_ac_c* player = dComIfGp_getPlayer(0); mAtInfo.mpCollider = mCcCyl.GetTgHitObj(); diff --git a/src/d/actor/d_a_e_po.cpp b/src/d/actor/d_a_e_po.cpp index 67e0a930a0..d4278bc765 100644 --- a/src/d/actor/d_a_e_po.cpp +++ b/src/d/actor/d_a_e_po.cpp @@ -1006,7 +1006,7 @@ static void e_po_dead(e_po_class* i_this) { } break; - case 4: + case 4: { J3DModel* model_p = i_this->mpMorf3->getModel(); for (i = 0; i < 4; i++) { i_this->mParticleKeys[i] = @@ -1051,7 +1051,7 @@ static void e_po_dead(e_po_class* i_this) { i_this->field_0x788.y = i_this->mAcch.GetGroundH(); } } - + } case 6: if (i_this->field_0x74A[0] == 0) { local_100 = a_this->current.pos - i_this->field_0x788; @@ -2128,7 +2128,7 @@ static void e_po_holl_demo(e_po_class* i_this) { i_this->mType = 22; // Fallthrough - case 22: + case 22: { if (mArg0Check(i_this, 7) != 0) { cLib_addCalcPos(&i_this->field_0x844, mKcenterInit_dt[9], 0.5f, 20.0f, 10.0f); cLib_addCalcPos(&i_this->field_0x838, mKeyeInit_dt[9], 0.5f, 20.0f, 10.0f); @@ -2166,7 +2166,7 @@ static void e_po_holl_demo(e_po_class* i_this) { i_this->field_0x7E2 = 0; i_this->mType = 23; // Fallthrough - + } case 23: if (mHollDemoFlag < 24) { i_this->field_0x74A[2] = 10; diff --git a/src/d/actor/d_a_e_pz.cpp b/src/d/actor/d_a_e_pz.cpp index 8ca58707f6..d34a5f8496 100644 --- a/src/d/actor/d_a_e_pz.cpp +++ b/src/d/actor/d_a_e_pz.cpp @@ -428,7 +428,6 @@ void daE_PZ_c::executeSearchPoint() { } /* 807593CC-8075B7CC 000F4C 2400+00 2/1 0/0 0/0 .text executeOpeningDemo__8daE_PZ_cFv */ -// NONMATCHING - fopAcM_GetID not getting inlined, equivalent void daE_PZ_c::executeOpeningDemo() { static cXyz mPzCenterInit_dt[] = { cXyz(-50.0f, 10.0f, -3150.0f), diff --git a/src/d/actor/d_a_e_rdy.cpp b/src/d/actor/d_a_e_rdy.cpp index eb81681b74..1afcdf5294 100644 --- a/src/d/actor/d_a_e_rdy.cpp +++ b/src/d/actor/d_a_e_rdy.cpp @@ -490,7 +490,6 @@ inline u16 absoluteValue(s16 num) { } /* 8076CB24-8076CE10 000E44 02EC+00 2/2 0/0 0/0 .text search_bomb__FP11e_rdy_classi */ -// NONMATCHING regalloc static dBomb_c* search_bomb(e_rdy_class* i_this, BOOL param_1) { if ((i_this->field_0xaf0 & 0x10000000) == 0) { return NULL; diff --git a/src/d/actor/d_a_e_zh.cpp b/src/d/actor/d_a_e_zh.cpp index 19fc8d2e47..7e981e629c 100644 --- a/src/d/actor/d_a_e_zh.cpp +++ b/src/d/actor/d_a_e_zh.cpp @@ -445,7 +445,6 @@ bool daE_ZH_c::mColorSet(bool param_1, f32 param_2, f32 param_3) { /* 80829AD8-80829E44 000B98 036C+00 2/2 0/0 0/0 .text mReturnLineMove__8daE_ZH_cFv */ bool daE_ZH_c::mReturnLineMove() { - // NONMATCHING if (mS_Ball == NULL) { setActionMode(ACTION_EXECUTE_FLY_DELETE, 0); return false; diff --git a/src/d/actor/d_a_ep.cpp b/src/d/actor/d_a_ep.cpp index 95dfb660aa..898dd82e92 100644 --- a/src/d/actor/d_a_ep.cpp +++ b/src/d/actor/d_a_ep.cpp @@ -816,7 +816,6 @@ static int model_d[8] = { /* 8046A724-8046A858 0025A4 0134+00 1/1 0/0 0/0 .text daEp_CreateHeap__FP10fopAc_ac_c */ static int daEp_CreateHeap(fopAc_ac_c* a_this) { - // NONMATCHING - equiv in debug ep_class* i_this = (ep_class*)a_this; void* modelData = dComIfG_getObjectRes("Ep", model_d[i_this->field_0xa5a]); diff --git a/src/d/actor/d_a_kago.cpp b/src/d/actor/d_a_kago.cpp index 35d50436e5..ee1a264660 100644 --- a/src/d/actor/d_a_kago.cpp +++ b/src/d/actor/d_a_kago.cpp @@ -249,7 +249,7 @@ static u8 l_HIOInit; static daKago_HIO_c l_HIO; /* 80849BA8-8084A070 0006E8 04C8+00 4/4 0/0 0/0 .text checkGroundHeight__8daKago_cF4cXyzPf */ -// NONMATCHING - regalloc +// NONMATCHING - fpr regalloc f32 daKago_c::checkGroundHeight(cXyz i_pos, f32* o_step) { f32 retVal; @@ -393,8 +393,7 @@ f32 daKago_c::checkRoofHeight(cXyz param_0) { if (std::abs(current.pos.y - roofChkYVal) < 310.0f) { fopAc_ac_c* actor = dComIfG_Bgsp().GetActorPointer(roofChk); if (actor != NULL && fopAcM_GetName(actor) == PROC_Obj_RIVERROCK) { - daObjRIVERROCK_c* riverRock = (daObjRIVERROCK_c*)actor; - if (riverRock->mBreakSubAction == daObjRIVERROCK_c::BREAK_MOVE) { + if (((daObjRIVERROCK_c*)actor)->mBreakSubAction == daObjRIVERROCK_c::BREAK_MOVE) { field_0x6e5 = 1; } } @@ -2617,7 +2616,7 @@ bool daKago_c::executeFirstDemo() { } break; - case 3: + case 3: { dComIfGp_getEvent().setSkipProc(this, DemoSkipCallBack, 3); setMidnaTagPos(); @@ -2638,6 +2637,7 @@ bool daKago_c::executeFirstDemo() { } break; + } case 4: dComIfGp_getEvent().setSkipProc(this, DemoSkipCallBack, 2); diff --git a/src/d/actor/d_a_kytag12.cpp b/src/d/actor/d_a_kytag12.cpp index dbc7f0c980..9243e14af8 100644 --- a/src/d/actor/d_a_kytag12.cpp +++ b/src/d/actor/d_a_kytag12.cpp @@ -210,7 +210,7 @@ static int daKytag12_Execute_standard(kytag12_class* i_this) { effect_p->field_0x42 = 0; effect_p->mStatus++; /* fallthrough */ - case 1: + case 1: { var_f30 = cM_ssin(effect_p->field_0x3c); effect_p->field_0x3c += (((f32)(i & 31) * 6.8f) + 630.0f); @@ -231,6 +231,7 @@ static int daKytag12_Execute_standard(kytag12_class* i_this) { } } break; + } case 2: spB8 = effect_p->mBasePos + effect_p->mPosition; var_f29 = 0.0f; @@ -507,7 +508,7 @@ static int daKytag12_Execute_arrival(kytag12_class* i_this) { } switch (effect_p->mStatus) { - case 0: + case 0: { s16 temp_r3 = cM_rndF(0x10000); sp80.x = cM_rndFX(cM_ssin(temp_r3) * 1000.0f); @@ -529,7 +530,8 @@ static int daKytag12_Execute_arrival(kytag12_class* i_this) { effect_p->mPosition.z = -sp80.z; effect_p->mStatus++; break; - case 1: + } + case 1: { sp80.x = 0.0f; sp80.y = effect_p->mPosition.y; sp80.z = 0.0f; @@ -547,6 +549,7 @@ static int daKytag12_Execute_arrival(kytag12_class* i_this) { 0.01f); cLib_addCalc(&effect_p->mPosition.z, var_f21 * 20.0f, 0.1f, 10.0f, 0.01f); break; + } case 2: effect_p->mPosition.x = var_f21 * 20.0f; effect_p->mPosition.y = (var_f22 + 1.0f) * 20.0f; @@ -726,6 +729,7 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { EF_EVIL_EFF* effect_p = &temp_r25->mEffect[i]; var_f25 = 1.0f; + f32 f31; switch (effect_p->mStatus) { case 0: if (i < 500) { @@ -746,9 +750,8 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { effect_p->mBasePos.y = cM_rndF(6800.0f) + -3200.0f; effect_p->mBasePos.z = cM_rndFX(480.0f) + 5350.0f; - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -200.0f + -3000.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * -200.0f + -3000.0f; effect_p->field_0x24 = 1.0f; effect_p->field_0x38 = fabsf(var_f26) * 50.0f + 150.0f; @@ -756,9 +759,8 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { effect_p->mBasePos.y = cM_rndF(6800.0f) + -3200.0f; effect_p->mBasePos.z = cM_rndFX(510.0f) + 5300.0f; - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -200.0f + 3400.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * -200.0f + 3400.0f; effect_p->field_0x24 = 1.0f; effect_p->field_0x38 = fabsf(var_f26) * 50.0f + 150.0f; @@ -775,7 +777,7 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { effect_p->field_0x2c = 0.0f; effect_p->mStatus++; /* fallthrough */ - case 1: + case 1: { var_f26 = cM_ssin(effect_p->field_0x3c); effect_p->field_0x3c += ((f32)(i & 240) * 4.8f); @@ -790,6 +792,7 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { effect_p->field_0x38 = (temp_f7 * 10.0f + 85.0f) * 1.5f; } break; + } case 2: sp80 = effect_p->mBasePos + effect_p->mPosition; var_f25 = 0.0f; @@ -833,18 +836,15 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { effect_p->mStatus = 1; } - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -200.0f + -3000.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * -200.0f + -3000.0f; if (effect_p->mBasePos.y < -680.0f) { - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -20.0f + -2250.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * -20.0f + -2250.0f; } else if (effect_p->mBasePos.y < 0.0f) { - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -1160.0f + -3000.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * -1160.0f + -3000.0f; effect_p->mBasePos.y += 10.0f; } } else if (i >= 1500 && i < 2000) { @@ -854,18 +854,15 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) { effect_p->mStatus = 1; } - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * 200.0f + 3400.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * 200.0f + 3400.0f; if (effect_p->mBasePos.y < -380.0f) { - f32 temp_f2 = (effect_p->mBasePos.y / 1000.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -20.0f + 2700.0f; + f31 = (effect_p->mBasePos.y / 1000.0f); + effect_p->mBasePos.x = f31 * -20.0f + 2700.0f; } else if (effect_p->mBasePos.y < 200.0f) { - f32 temp_f2 = (effect_p->mBasePos.y / -800.0f); - temp_f2 = temp_f2; // fake match? idk how else to fix instruction order - effect_p->mBasePos.x = temp_f2 * -1060.0f + 3200.0f; + f31 = (effect_p->mBasePos.y / -800.0f); + effect_p->mBasePos.x = f31 * -1060.0f + 3200.0f; effect_p->mBasePos.y += 10.0f; } } diff --git a/src/d/actor/d_a_kytag14.cpp b/src/d/actor/d_a_kytag14.cpp index 0386b9816e..be78e30df7 100644 --- a/src/d/actor/d_a_kytag14.cpp +++ b/src/d/actor/d_a_kytag14.cpp @@ -9,6 +9,7 @@ #include "d/actor/d_a_kytag14.h" #include "d/d_com_inf_game.h" #include "f_op/f_op_actor_mng.h" +#include "d/d_debug_viewer.h" /* 80529998-805299A0 000078 0008+00 1/0 0/0 0/0 .text daKytag14_Draw__FP13kytag14_class */ @@ -18,6 +19,7 @@ static int daKytag14_Draw(kytag14_class*) { /* 805299A0-80529B34 000080 0194+00 1/0 0/0 0/0 .text daKytag14_Execute__FP13kytag14_class */ static int daKytag14_Execute(kytag14_class* i_this) { + fopAc_ac_c* actor = i_this; BOOL event1_set = true; BOOL event2_unset = true; BOOL switch1_set = true; @@ -28,7 +30,7 @@ static int daKytag14_Execute(kytag14_class* i_this) { } if (i_this->mEventID1 != 0xFFFF) { - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { + if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { event1_set = true; } else { event1_set = false; @@ -36,7 +38,7 @@ static int daKytag14_Execute(kytag14_class* i_this) { } if (i_this->mEventID2 != 0xFFFF) { - if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { + if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { event2_unset = true; } else { event2_unset = false; @@ -61,6 +63,15 @@ static int daKytag14_Execute(kytag14_class* i_this) { if (event1_set == true && event2_unset == true && switch1_set == true && switch2_unset == true) { + #ifdef DEBUG + if (!g_kankyoHIO.navy.display_save_location) { + dDbVw_Report(20, 16, "TAG SavMem STAGE[%s] Room[%d] Lp[%d]", dComIfGp_getStartStageName(), i_this->mSaveRoomNo, i_this->mSavePoint); + if (i_this->mSaveRoomNo == -1) { + OSReport_Error("\n セーブ復帰位置タグの部屋指定に-1指定!\n"); + JUT_ASSERT(250, FALSE); + } + } + #endif g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().set( dComIfGp_getStartStageName(), i_this->mSaveRoomNo, i_this->mSavePoint); } diff --git a/src/d/actor/d_a_mg_fshop.cpp b/src/d/actor/d_a_mg_fshop.cpp index 2a9e32a8b3..8b0c6f5980 100644 --- a/src/d/actor/d_a_mg_fshop.cpp +++ b/src/d/actor/d_a_mg_fshop.cpp @@ -19,169 +19,6 @@ #include "SSystem/SComponent/c_math.h" #include "Z2AudioLib/Z2Instances.h" -// -// Forward References: -// - -extern "C" static void ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c(); -extern "C" static void Reel_CallBack__FP8J3DJointi(); -extern "C" static void frog_CallBack__FP8J3DJointi(); -extern "C" static void koro2_draw__FP11fshop_class(); -extern "C" static void daFshop_Draw__FP11fshop_class(); -extern "C" static void lure_set__FP11fshop_class(); -extern "C" static void rod_set__FP11fshop_class(); -extern "C" void __dt__4cXyzFv(); -extern "C" static void s_fish_sub__FPvPv(); -extern "C" static void tsubo_set__FP11fshop_class(); -extern "C" static void weed_control__FP11fshop_classP9fs_weed_s(); -extern "C" static void stage_copy__FP11fshop_classP11fshop_class(); -extern "C" static void koro2_mtx_set__FP11fshop_class(); -extern "C" static void s_sel_sub__FPvPv(); -extern "C" static void s_ball_sub__FPvPv(); -extern "C" static void koro2_game__FP11fshop_class(); -extern "C" static void ball_wall_check__FP11fshop_class(); -extern "C" static void daFshop_Execute__FP11fshop_class(); -extern "C" static bool daFshop_IsDelete__FP11fshop_class(); -extern "C" static void daFshop_Delete__FP11fshop_class(); -extern "C" static void koro2_heapinit__FP10fopAc_ac_c(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void BalluseHeapInit__FP10fopAc_ac_c(); -extern "C" static void daFshop_Create__FP10fopAc_ac_c(); -extern "C" void __dt__10fs_koro2_sFv(); -extern "C" void __ct__10fs_koro2_sFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10fs_tsubo_sFv(); -extern "C" void __ct__10fs_tsubo_sFv(); -extern "C" void __dt__9fs_weed_sFv(); -extern "C" void __ct__9fs_weed_sFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8fs_rod_sFv(); -extern "C" void __ct__8fs_rod_sFv(); -extern "C" void __dt__9fs_lure_sFv(); -extern "C" void __ct__9fs_lure_sFv(); -extern "C" void __sinit_d_a_mg_fshop_cpp(); -extern "C" static void func_80870070(); -extern "C" static void func_80870078(); -extern "C" extern char const* const d_a_mg_fshop__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotS__FPA4_fs(); -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void push__14mDoMtx_stack_cFv(); -extern "C" void pop__14mDoMtx_stack_cFv(); -extern "C" void transM__14mDoMtx_stack_cFfff(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void init__19mDoExt_3DlineMat0_cFUsUsi(); -extern "C" void update__19mDoExt_3DlineMat0_cFifR8_GXColorUsP12dKy_tevstr_c(); -extern "C" void update__19mDoExt_3DlineMat0_cFiR8_GXColorP12dKy_tevstr_c(); -extern "C" void setMat__26mDoExt_3DlineMatSortPacketFP18mDoExt_3DlineMat_c(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc(); -extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void fpcSch_JudgeForPName__FPvPv(); -extern "C" void addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc(); -extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai(); -extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj(); -extern "C" void getEventReg__11dSv_event_cCFUs(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void LineCross__4cBgSFP11cBgS_LinChk(); -extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void OnWallSort__9dBgS_AcchFv(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f(); -extern "C" void __ct__4dBgWFv(); -extern "C" void Move__4dBgWFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dTimer_getRestTimeMs__Fv(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ml__4cXyzCFf(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_rndFX__Ff(); -extern "C" void cM_initRnd2__Fiii(); -extern "C" void cM_rndF2__Ff(); -extern "C" void cM_rndFX2__Ff(); -extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalc0__FPfff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void MtxScale__FfffUc(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void _savegpr_14(); -extern "C" void _savegpr_17(); -extern "C" void _savegpr_18(); -extern "C" void _savegpr_19(); -extern "C" void _savegpr_20(); -extern "C" void _savegpr_21(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_14(); -extern "C" void _restgpr_17(); -extern "C" void _restgpr_18(); -extern "C" void _restgpr_19(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_21(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5]; -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - /* 8086C06C-8086C08C 0000EC 0020+00 1/1 0/0 0/0 .text * ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */ static void ride_call_back(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) { @@ -1664,7 +1501,6 @@ static int ball_wall_check(fshop_class* param_1) { } /* 8086DA00-8086E6C4 001A80 0CC4+00 2/1 0/0 0/0 .text daFshop_Execute__FP11fshop_class */ -// NONMATCHING Regalloc, instruction order issues static int daFshop_Execute(fshop_class* param_1) { fopAc_ac_c* pPlayer = dComIfGp_getPlayer(0); cXyz local_c0; @@ -1702,7 +1538,7 @@ static int daFshop_Execute(fshop_class* param_1) { param_1->field_0x428d = 10; case 2: bVar5 = TRUE; - param_1->scale.x = 0.24f; + param_1->scale.x = 0.24000001f; break; } @@ -1713,7 +1549,7 @@ static int daFshop_Execute(fshop_class* param_1) { MtxPosition(¶m_1->speed, ¶m_1->field_0x4064); param_1->field_0x4064 = param_1->speed; param_1->current.pos += param_1->field_0x4064; - if (param_1->speed.x != 0.0f || param_1->speed.z != 0.0f) { + if (param_1->speed.x || param_1->speed.z) { param_1->current.angle.y = cM_atan2s(param_1->speed.x, param_1->speed.z); } param_1->speed.y -= 3.5f; @@ -1836,7 +1672,7 @@ static int daFshop_Execute(fshop_class* param_1) { (fabsf(local_d8.z) * 0.1f + 0.2f)); } } - camera_class* pmVar11 = dComIfGp_getCamera(0); + camera_class* pmVar11 = (camera_class*)dComIfGp_getCamera(0); mDoMtx_stack_c::transS(param_1->current.pos.x, param_1->current.pos.y, param_1->current.pos.z); mDoMtx_stack_c::scaleM(param_1->scale.x, param_1->scale.x, @@ -2367,13 +2203,19 @@ SECTION_DATA static u8 check_kind[8] = { 0xF5, 0x7F, 0xF4, 0x7F, 0xF3, 0x7F, 0xF2, 0x7F, }; +/* 8086F634-8086FD78 0036B4 0744+00 1/0 0/0 0/0 .text daFshop_Create__FP10fopAc_ac_c */ +static void daFshop_Create(fopAc_ac_c* param_0) { + // NONMATCHING + fopAcM_ct(param_0, fshop_class); +} + /* 808708BC-808708DC -00001 0020+00 1/0 0/0 0/0 .data l_daFshop_Method */ static actor_method_class l_daFshop_Method = { - (process_method_func)daFshop_Create__FP10fopAc_ac_c, - (process_method_func)daFshop_Delete__FP11fshop_class, - (process_method_func)daFshop_Execute__FP11fshop_class, - (process_method_func)daFshop_IsDelete__FP11fshop_class, - (process_method_func)daFshop_Draw__FP11fshop_class, + (process_method_func)daFshop_Create, + (process_method_func)daFshop_Delete, + (process_method_func)daFshop_Execute, + (process_method_func)daFshop_IsDelete, + (process_method_func)daFshop_Draw, }; /* 808708DC-8087090C -00001 0030+00 0/0 0/0 1/0 .data g_profile_FSHOP */ @@ -2394,82 +2236,4 @@ extern actor_process_profile_definition g_profile_FSHOP = { fopAc_CULLBOX_0_e, // cullType }; -/* 8086F634-8086FD78 0036B4 0744+00 1/0 0/0 0/0 .text daFshop_Create__FP10fopAc_ac_c */ -static void daFshop_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 8086FD78-8086FDB4 003DF8 003C+00 1/1 0/0 0/0 .text __dt__10fs_koro2_sFv */ -fs_koro2_s::~fs_koro2_s() { - // NONMATCHING -} - -/* 8086FDB4-8086FDB8 003E34 0004+00 1/1 0/0 0/0 .text __ct__10fs_koro2_sFv */ -// fs_koro2_s::fs_koro2_s() { -extern "C" void __ct__10fs_koro2_sFv() { - /* empty function */ -} - -/* 8086FDB8-8086FE28 003E38 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 8086FE28-8086FE98 003EA8 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 8086FE98-8086FED4 003F18 003C+00 1/1 0/0 0/0 .text __dt__10fs_tsubo_sFv */ -fs_tsubo_s::~fs_tsubo_s() { - // NONMATCHING -} - -/* 8086FED4-8086FED8 003F54 0004+00 1/1 0/0 0/0 .text __ct__10fs_tsubo_sFv */ -// fs_tsubo_s::fs_tsubo_s() { -extern "C" void __ct__10fs_tsubo_sFv() { - /* empty function */ -} - -/* 8086FED8-8086FF38 003F58 0060+00 1/1 0/0 0/0 .text __dt__9fs_weed_sFv */ -fs_weed_s::~fs_weed_s() { - // NONMATCHING -} - -/* 8086FF38-8086FF80 003FB8 0048+00 1/1 0/0 0/0 .text __ct__9fs_weed_sFv */ -// fs_weed_s::fs_weed_s() { -extern "C" void __ct__9fs_weed_sFv() { - // NONMATCHING -} - -/* 8086FF80-8086FF84 004000 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 8086FF84-8086FFC0 004004 003C+00 1/1 0/0 0/0 .text __dt__8fs_rod_sFv */ -fs_rod_s::~fs_rod_s() { - // NONMATCHING -} - -/* 8086FFC0-8086FFDC 004040 001C+00 1/1 0/0 0/0 .text __ct__8fs_rod_sFv */ -// fs_rod_s::fs_rod_s() { -extern "C" void __ct__8fs_rod_sFv() { - // NONMATCHING -} - -/* 8086FFDC-80870018 00405C 003C+00 1/1 0/0 0/0 .text __dt__9fs_lure_sFv */ -fs_lure_s::~fs_lure_s() { - // NONMATCHING -} - -/* 80870018-8087001C 004098 0004+00 1/1 0/0 0/0 .text __ct__9fs_lure_sFv */ -// fs_lure_s::fs_lure_s() { -extern "C" void __ct__9fs_lure_sFv() { - /* empty function */ -} - AUDIO_INSTANCES; diff --git a/src/d/actor/d_a_npc4.cpp b/src/d/actor/d_a_npc4.cpp index 2ce0f04567..d886c4c70f 100644 --- a/src/d/actor/d_a_npc4.cpp +++ b/src/d/actor/d_a_npc4.cpp @@ -1065,7 +1065,6 @@ BOOL daNpcF_c::playAllAnm() { * an animation index for that phase of the expression, the number of interpolation frames, and * the number of loops before moving on to the next phase (or 0 for the last phase). */ -// NONMATCHING - regalloc, matches debug void daNpcF_c::playExpressionAnm(daNpcF_c::daNpcF_anmPlayData*** anm) { daNpcF_anmPlayData* playData = NULL; f32 morf; @@ -1105,7 +1104,6 @@ void daNpcF_c::playExpressionAnm(daNpcF_c::daNpcF_anmPlayData*** anm) { * an animation index for that phase of the motion, the number of interpolation frames, and the * number of loops before moving on to the next phase (or 0 for the last phase). */ -// NONMATCHING - regalloc, matches debug void daNpcF_c::playMotionAnm(daNpcF_c::daNpcF_anmPlayData*** anm) { daNpcF_anmPlayData* playData = NULL; f32 morf; @@ -1515,16 +1513,16 @@ u8 daNpcF_c::getDistTableIdx(int param_0, int param_1) { } /* 801542A0-8015436C 14EBE0 00CC+00 0/0 0/0 6/6 .text getEvtAreaTagP__8daNpcF_cFii */ -// NONMATCHING regalloc fopAc_ac_c* daNpcF_c::getEvtAreaTagP(int i_type, int i_no) { + int r29 = 0; + f32 f31 = G_CM3D_F_INF; mFindCount = 0; mSrchActorName = PROC_TAG_EVTAREA; fpcM_Search(this->srchActor, this); for (int i = 0; i < mFindCount; i++) { - daTag_EvtArea_c* evt_area = static_cast(mFindActorPList[i]); - if (i_type == evt_area->getType() && i_no == evt_area->getNo()) { - return evt_area; + if (i_type == static_cast(mFindActorPList[i])->getType() && i_no == static_cast(mFindActorPList[i])->getNo()) { + return static_cast(mFindActorPList[i]); } } diff --git a/src/d/actor/d_a_npc_ash.cpp b/src/d/actor/d_a_npc_ash.cpp index 8238de3e37..a0a99d7281 100644 --- a/src/d/actor/d_a_npc_ash.cpp +++ b/src/d/actor/d_a_npc_ash.cpp @@ -209,11 +209,11 @@ static char* l_myName = "Ash"; daNpcAsh_c::EventFn daNpcAsh_c::mEvtSeqList[6] = { NULL, - &EvCut_Introduction, - &EvCut_Meeting, - &EvCut_WiretapSponsor, - &EvCut_WiretapEntrant, - &EvCut_WiretapEntrant, + &daNpcAsh_c::EvCut_Introduction, + &daNpcAsh_c::EvCut_Meeting, + &daNpcAsh_c::EvCut_WiretapSponsor, + &daNpcAsh_c::EvCut_WiretapEntrant, + &daNpcAsh_c::EvCut_WiretapEntrant, }; /* 809582EC-80958430 0000EC 0144+00 1/1 0/0 0/0 .text __ct__10daNpcAsh_cFv */ @@ -623,9 +623,9 @@ void daNpcAsh_c::reset() { } if (mType == TYPE_BAR) { - setAction(&wait_type0); + setAction(&daNpcAsh_c::wait_type0); } else { - setAction(&wait_type1); + setAction(&daNpcAsh_c::wait_type1); } } @@ -845,12 +845,12 @@ bool daNpcAsh_c::wait_type0(void* param_0) { mOrderEvtNo = 3; changeEvent(l_arcNames[0], l_evtNames[mOrderEvtNo], 1, -1); } else { - setAction(&talk); + setAction(&daNpcAsh_c::talk); } } } else { if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0) != -1) { - setAction(&demo); + setAction(&daNpcAsh_c::demo); } } } else { @@ -918,7 +918,7 @@ bool daNpcAsh_c::wait_type1(void* param_0) { case 1: if (daNpcF_chkTmpBit(0x74)) { - setAction(&leave); + setAction(&daNpcAsh_c::leave); } break; } @@ -955,7 +955,7 @@ bool daNpcAsh_c::talk(void* param_0) { if (field_0xf5f <= 2 || mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { if (talkProc(NULL, 1, NULL)) { mActorMngr[0].entry(daPy_getPlayerActorClass()); - setAction(&wait_type0); + setAction(&daNpcAsh_c::wait_type0); ret = true; } else { s32 prev_msg_timer = mMsgTimer; @@ -1024,18 +1024,18 @@ bool daNpcAsh_c::demo(void* param_0) { mOrderEvtNo = 0; mEventIdx = -1; if (mType == TYPE_BAR) { - setAction(&wait_type0); + setAction(&daNpcAsh_c::wait_type0); } else { - setAction(&wait_type1); + setAction(&daNpcAsh_c::wait_type1); } } } else { mOrderEvtNo = 0; mEventIdx = -1; if (mType == TYPE_BAR) { - setAction(&wait_type0); + setAction(&daNpcAsh_c::wait_type0); } else { - setAction(&wait_type1); + setAction(&daNpcAsh_c::wait_type1); } } break; diff --git a/src/d/actor/d_a_npc_ashB.cpp b/src/d/actor/d_a_npc_ashB.cpp index 6727d71726..827a199e4a 100644 --- a/src/d/actor/d_a_npc_ashB.cpp +++ b/src/d/actor/d_a_npc_ashB.cpp @@ -99,7 +99,7 @@ static char* l_myName = "AshB"; /* 809625B0-809625C8 000198 0018+00 1/2 0/0 0/0 .data mEvtSeqList__11daNpcAshB_c */ daNpcAshB_c::EventFn daNpcAshB_c::mEvtSeqList[2] = { NULL, - &EvCut_Appear, + &daNpcAshB_c::EvCut_Appear, }; /* 8095DE4C-8095DFD0 0000EC 0184+00 1/1 0/0 0/0 .text __ct__11daNpcAshB_cFv */ @@ -605,7 +605,7 @@ void daNpcAshB_c::reset() { field_0xded = 0; field_0xdee = 0; - setAction(&wait); + setAction(&daNpcAshB_c::wait); } /* 8095F21C-8095F2C4 0014BC 00A8+00 1/1 0/0 0/0 .text @@ -734,7 +734,7 @@ bool daNpcAshB_c::wait(void* param_0) { u8 preitemno = dComIfGp_event_getPreItemNo(); if (preitemno == fpcNm_ITEM_ASHS_SCRIBBLING) { mFlowID = 504; - setAction(&talk); + setAction(&daNpcAshB_c::talk); } else { s16 evt_idx = dComIfGp_getEventManager().getEventIdx(this, "NO_RESPONSE", 0xff); @@ -743,12 +743,12 @@ bool daNpcAshB_c::wait(void* param_0) { } } } else { - setAction(&talk); + setAction(&daNpcAshB_c::talk); } } else { int mystaffid = dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0); if (mystaffid != -1) { - setAction(&demo); + setAction(&daNpcAshB_c::demo); } } } else { @@ -857,10 +857,10 @@ bool daNpcAshB_c::talk(void* param_0) { dComIfGp_getEvent().reset(this); fopAcM_orderChangeEventId(this, evt_idx, 1, -1); field_0x9ec = 1; - setAction(&wait); + setAction(&daNpcAshB_c::wait); } } else { - setAction(&wait); + setAction(&daNpcAshB_c::wait); } ret = true; @@ -906,6 +906,7 @@ bool daNpcAshB_c::talk(void* param_0) { // NONMATCHING - extra instruction at dComIfGp_event_runCheck() causing regalloc issues? bool daNpcAshB_c::demo(void* param_0) { dEvent_manager_c& evtmgr = dComIfGp_getEventManager(); + BOOL r26 = FALSE; switch (mMode) { case 0: @@ -915,13 +916,15 @@ bool daNpcAshB_c::demo(void* param_0) { // fallthrough case 2: - if (dComIfGp_event_runCheck() != 0 && !eventInfo.checkCommandTalk()) { + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { s32 staff_id = evtmgr.getMyStaffId(l_myName, NULL, 0); if (staff_id != -1) { mStaffID = staff_id; + JUT_ASSERT(1523, mEvtSeqList[mOrderEvtNo] != 0); if ((this->*(mEvtSeqList[mOrderEvtNo]))(staff_id)) { evtmgr.cutEnd(staff_id); } + r26 = TRUE; } if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && evtmgr.endCheck(mEventIdx)) @@ -929,7 +932,7 @@ bool daNpcAshB_c::demo(void* param_0) { dComIfGp_event_reset(); mOrderEvtNo = 0; mEventIdx = -1; - setAction(&wait); + setAction(&daNpcAshB_c::wait); } } @@ -937,6 +940,9 @@ bool daNpcAshB_c::demo(void* param_0) { case 3: break; + + default: + JUT_ASSERT(1551, FALSE); } return true; diff --git a/src/d/actor/d_a_npc_cd.cpp b/src/d/actor/d_a_npc_cd.cpp index a1f852c08c..bd04408fbe 100644 --- a/src/d/actor/d_a_npc_cd.cpp +++ b/src/d/actor/d_a_npc_cd.cpp @@ -396,7 +396,6 @@ daNpcCd_HIO_c l_Cd_HIO; /* 801563C8-80156B4C 150D08 0784+00 0/0 0/0 2/2 .text setAttention__9daNpcCd_cFi */ int daNpcCd_c::setAttention(int i_idx) { - // NONMATCHING static cXyz const a_eyeOfsTbl[30] = { cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), diff --git a/src/d/actor/d_a_npc_cdn3.cpp b/src/d/actor/d_a_npc_cdn3.cpp index 578d979813..28069ee977 100644 --- a/src/d/actor/d_a_npc_cdn3.cpp +++ b/src/d/actor/d_a_npc_cdn3.cpp @@ -426,11 +426,8 @@ void daNpcCdn3_c::executePath() { m_path.setNextPoint(current.pos); } else { if (mSeqNum < 0 || mSeqNum >= 44) { - #ifdef DEBUG - JUT_PANIC(517, 0); - #else OSReport_Error("城下町の町人 パス点引数設定値異常 引数1モーションシーケンス=%dが異常です。\n", mSeqNum); - #endif + JUT_ASSERT(517, FALSE); } field_0xb68 = 0; setAction(MODE_WAIT); @@ -505,7 +502,7 @@ void daNpcCdn3_c::executePath() { } break; default: - JUT_PANIC(598, 0); + JUT_ASSERT(598, FALSE); break; } @@ -650,7 +647,7 @@ void daNpcCdn3_c::executeTalk() { setAngle(); return; default: - JUT_PANIC(741, 0); + JUT_ASSERT(741, FALSE); } } @@ -1040,7 +1037,7 @@ void daNpcCdn3_c::setSchedule(daTagSchedule_c* param_1) { mFlowNodeNum = mTagSched->getFlowNodeNum(); if (mSeqNum < 0 || mSeqNum >= 44) { OSReport_Error("城下町の町人 スケジュールタグ設定値異常 引数1モーションシーケンス=%dが異常です。\n", mSeqNum); - JUT_PANIC(1825, 0); + JUT_ASSERT(1825, FALSE); } if (mTagSched->getStartEnd() == 0) { current.pos.set(m_path.getPoint(0)); @@ -1081,7 +1078,7 @@ void daNpcCdn3_c::setSchedule(daTagSchedule_c* param_1) { dayStr = "土"; break; default: - JUT_PANIC(1856, 0); + JUT_ASSERT(1856, FALSE); break; } OS_REPORT("町人スケジュールセット\n"); @@ -1574,7 +1571,7 @@ int daNpcCdn3_c::create() { mFlowNodeNum = getFlowNodeNum(); if (mSeqNum < 0 || 44 <= mSeqNum) { OSReport_Error("城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n", mSeqNum); - JUT_PANIC(175, 0); + JUT_ASSERT(175, FALSE); } int rv = loadResrc(m_type, mObjNum); if (rv == cPhs_COMPLEATE_e) { diff --git a/src/d/actor/d_a_npc_gra.cpp b/src/d/actor/d_a_npc_gra.cpp index 9291437129..62108da632 100644 --- a/src/d/actor/d_a_npc_gra.cpp +++ b/src/d/actor/d_a_npc_gra.cpp @@ -1884,14 +1884,7 @@ enum Event_Cut_Nums { BOOL daNpc_grA_c::doEvent() { dEvent_manager_c* manager = NULL; BOOL ret = FALSE; -#if VERSION != VERSION_SHIELD_DEBUG - // TODO: gameInfo fake match to force reuse of pointer - dComIfG_play_c* play = &g_dComIfG_gameInfo.play; - if (play->getEvent().runCheck()) -#else - if (dComIfGp_event_runCheck()) -#endif - { + if (dComIfGp_event_runCheck() != FALSE) { manager = &dComIfGp_getEventManager(); if (field_0x1691 == 0) { mOrderNewEvt = 0; @@ -1936,41 +1929,25 @@ BOOL daNpc_grA_c::doEvent() { if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && manager->endCheck(mEventIdx)) { switch (mOrderEvtNo) { case 5: -#if VERSION != VERSION_SHIELD_DEBUG - play->getEvent().reset(); -#else dComIfGp_event_reset(); -#endif mOrderEvtNo = 0; mEventIdx = -1; field_0x1693 = field_0x1692 = 0; fpcM_Search(s_subCarry, this); break; case 6: -#if VERSION != VERSION_SHIELD_DEBUG - play->getEvent().reset(); -#else dComIfGp_event_reset(); -#endif mOrderEvtNo = 0; mEventIdx = -1; break; case 7: -#if VERSION != VERSION_SHIELD_DEBUG - play->getEvent().reset(); -#else dComIfGp_event_reset(); -#endif mOrderEvtNo = 0; mEventIdx = -1; fopAcM_delete(this); break; default: -#if VERSION != VERSION_SHIELD_DEBUG - play->getEvent().reset(); -#else dComIfGp_event_reset(); -#endif mOrderEvtNo = 0; mEventIdx = -1; break; diff --git a/src/d/actor/d_a_npc_henna.cpp b/src/d/actor/d_a_npc_henna.cpp index 3af6503bdb..5f123d08c7 100644 --- a/src/d/actor/d_a_npc_henna.cpp +++ b/src/d/actor/d_a_npc_henna.cpp @@ -1516,7 +1516,7 @@ static void demo_camera_shop(npc_henna_class* i_this) { case 7: i_this->mMsgFlow.init(actor, 0x33e, 0, NULL); break; - case 8: + case 8: { dScnKy_env_light_c* kankyo = dKy_getEnvlight(); if (kankyo->raincnt == 0) { hour = kankyo->daytime / 15.0f; @@ -1529,6 +1529,7 @@ static void demo_camera_shop(npc_henna_class* i_this) { i_this->mMsgFlow.init(actor, 0x347, 0, NULL); } break; + } case 0xb: i_this->mMsgFlow.init(actor, 0x35f, 0, NULL); break; diff --git a/src/d/actor/d_a_npc_impal.cpp b/src/d/actor/d_a_npc_impal.cpp index a8a833bef4..7191112f13 100644 --- a/src/d/actor/d_a_npc_impal.cpp +++ b/src/d/actor/d_a_npc_impal.cpp @@ -900,14 +900,7 @@ bool daNpcImpal_c::demo(void* param_0) { setMotion(MOT_0, -1.0f, false); mMode = 2; case 2: { -#if VERSION != VERSION_SHIELD_DEBUG - // TODO: gameInfo fake match to force reuse of pointer - dComIfG_play_c* play = &g_dComIfG_gameInfo.play; - if (play->getEvent().runCheck() && !eventInfo.checkCommandTalk()) -#else - if (dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk()) -#endif - { + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { dEvent_manager_c& event_manager = dComIfGp_getEventManager(); s32 staff_id = dComIfGp_evmng_getMyStaffId(l_myName, NULL, 0); @@ -923,11 +916,7 @@ bool daNpcImpal_c::demo(void* param_0) { event_manager.endCheck(mEventIdx)) { if (!field_0x9ec) { -#if VERSION != VERSION_SHIELD_DEBUG - play->getEvent().reset(); -#else dComIfGp_event_reset(); -#endif } field_0x9ec = 0; diff --git a/src/d/actor/d_a_npc_ks.cpp b/src/d/actor/d_a_npc_ks.cpp index b5a5aad9e3..f4a4aea6d1 100644 --- a/src/d/actor/d_a_npc_ks.cpp +++ b/src/d/actor/d_a_npc_ks.cpp @@ -555,13 +555,13 @@ static void npc_ks_pole_ori(npc_ks_class* i_this) { a_this->current.angle.y = ((obj_so_class*)actor_p)->actor.shape_angle.y; a_this->current.angle.x = ((obj_so_class*)actor_p)->actor.shape_angle.x; a_this->current.pos = ((obj_so_class*)actor_p)->actor.current.pos; - // The following causes regswap in the debug build when uncommented... - //a_this->current.pos.y += TREG_F(3); + a_this->current.pos.y += TREG_F(3); if (leader->field_0xb42 == 0) { if (!dComIfGs_isSwitch(20, fopAcM_GetRoomNo(a_this))) { cXyz sp2c(11497.0f, 3764.0f, 3810.0f); - sp2c -= dComIfGp_getPlayer(0)->current.pos; + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + sp2c -= player->current.pos; sp2c.y = 0.0f; if (sp2c.abs() < 300.0f) { leader->field_0xb42 = 110; diff --git a/src/d/actor/d_a_npc_rafrel.cpp b/src/d/actor/d_a_npc_rafrel.cpp index 592284ad22..ddd32e31c0 100644 --- a/src/d/actor/d_a_npc_rafrel.cpp +++ b/src/d/actor/d_a_npc_rafrel.cpp @@ -996,7 +996,7 @@ bool daNpcRafrel_c::wait_type01(void* param_0) { speedF = 0.0f; field_0xe10 = 2; break; - case 2: + case 2: { if (isSneaking()) { setLookMode(LOOK_NONE, NULL); } else if (field_0xe14 != 0 && mType == 1) { @@ -1105,6 +1105,7 @@ bool daNpcRafrel_c::wait_type01(void* param_0) { } } break; + } case 3: default: JUT_ASSERT(1634, FALSE); diff --git a/src/d/actor/d_a_npc_seic.cpp b/src/d/actor/d_a_npc_seic.cpp index cc1e7c121e..02d0e2926f 100644 --- a/src/d/actor/d_a_npc_seic.cpp +++ b/src/d/actor/d_a_npc_seic.cpp @@ -269,7 +269,6 @@ void daNpc_seiC_c::reset() { /* 80AC7C1C-80AC7D34 0007BC 0118+00 1/0 0/0 0/0 .text setParam__12daNpc_seiC_cFv */ void daNpc_seiC_c::setParam() { - // NONMATCHING selectAction(); srchActors(); diff --git a/src/d/actor/d_a_npc_shop0.cpp b/src/d/actor/d_a_npc_shop0.cpp index 456e44c13e..8ec7ffeaad 100644 --- a/src/d/actor/d_a_npc_shop0.cpp +++ b/src/d/actor/d_a_npc_shop0.cpp @@ -191,7 +191,7 @@ int daNpc_Shop0_c::init() { eventInfo.setArchiveName(getResName()); field_0x9e8 = -1; - setProcess(daNpc_Shop0_c::wait, NULL, 0); + setProcess(&daNpc_Shop0_c::wait, NULL, 0); setRoomInf(); return execute(); } @@ -347,7 +347,7 @@ int daNpc_Shop0_c::talk(void* i_stat_loc) { break; case 1: if (cut_alert(-1, 0) != 0) { - setProcess(daNpc_Shop0_c::wait, NULL, 0); + setProcess(&daNpc_Shop0_c::wait, NULL, 0); } break; case 2: diff --git a/src/d/actor/d_a_npc_the.cpp b/src/d/actor/d_a_npc_the.cpp index cd1595a862..854f9570b2 100644 --- a/src/d/actor/d_a_npc_the.cpp +++ b/src/d/actor/d_a_npc_the.cpp @@ -177,14 +177,14 @@ char* daNpcThe_c::mEvtCutNameList[4] = { daNpcThe_c::EventFn daNpcThe_c::mEvtCutList[4] = { NULL, - &EvCut_TwResistance, - &EvCut_TwResistance, - &EvCut_Introduction, + &daNpcThe_c::EvCut_TwResistance, + &daNpcThe_c::EvCut_TwResistance, + &daNpcThe_c::EvCut_Introduction, }; int daNpcThe_c::Draw() { mpMorf->getModel()->getModelData()->getMaterialNodePointer(2)->setMaterialAnm(mpMatAnm); - ActionFn action_test = &test; + ActionFn action_test = &daNpcThe_c::test; int is_test = mpActionFn == action_test; return draw(is_test, false, mpHIO->m.common.real_shadow_size, NULL, false); } @@ -1114,11 +1114,11 @@ void daNpcThe_c::setParam() { ActionFn next_action = mpNextActionFn; mpNextActionFn = NULL; if (mpHIO->m.common.debug_mode_ON) { - mpNextActionFn = &test; + mpNextActionFn = &daNpcThe_c::test; } else if (mTwilight) { - mpNextActionFn = &waitTW; + mpNextActionFn = &daNpcThe_c::waitTW; } else { - mpNextActionFn = &wait; + mpNextActionFn = &daNpcThe_c::wait; } if (mpNextActionFn != next_action) { for (int i = 3; i < 3; i++) { @@ -1162,7 +1162,7 @@ void daNpcThe_c::setParam() { // NONMATCHING dComIfG_gameInfo issues BOOL daNpcThe_c::main() { if (!doEvent()) { - doNormalAction(); + doNormalAction(1); } if (field_0x9ee) { @@ -1251,17 +1251,17 @@ BOOL daNpcThe_c::doEvent() { u8 item_no = dComIfGp_event_getPreItemNo(); if (item_no == 0x80) { mFlowID = 0x430; - if (chkAction(&talk)) { + if (chkAction(&daNpcThe_c::talk)) { (this->*mpActionFn)(NULL); } else { - setAction(&talk); + setAction(&daNpcThe_c::talk); } } else if (item_no == 0x81) { mFlowID = 0x431; - if (chkAction(&talk)) { + if (chkAction(&daNpcThe_c::talk)) { (this->*mpActionFn)(NULL); } else { - setAction(&talk); + setAction(&daNpcThe_c::talk); } } else { s16 event_idx = @@ -1270,10 +1270,10 @@ BOOL daNpcThe_c::doEvent() { fopAcM_orderChangeEventId(this, event_idx, 1, 0xffff); } } else { - if (chkAction(&talk)) { + if (chkAction(&daNpcThe_c::talk)) { (this->*mpActionFn)(NULL); } else { - setAction(&talk); + setAction(&daNpcThe_c::talk); } } ret = true; diff --git a/src/d/actor/d_a_npc_wrestler.cpp b/src/d/actor/d_a_npc_wrestler.cpp index 6f58231794..61ae710576 100644 --- a/src/d/actor/d_a_npc_wrestler.cpp +++ b/src/d/actor/d_a_npc_wrestler.cpp @@ -1621,7 +1621,7 @@ inline bool daNpcWrestler_c::wait(void* param_1) { } default: { - JUT_PANIC(2769, "0") + JUT_ASSERT(2769, FALSE); break; } } @@ -1772,7 +1772,7 @@ inline bool daNpcWrestler_c::talk(void* param_1) { } default: { - JUT_PANIC(2858, "0"); + JUT_ASSERT(2858, FALSE); } } @@ -1815,7 +1815,7 @@ inline bool daNpcWrestler_c::demo(void* param_1) { } default: { - JUT_PANIC(2912, "0"); + JUT_ASSERT(2912, FALSE); break; } } @@ -1876,7 +1876,7 @@ inline bool daNpcWrestler_c::gotoArena(void* param_1) { } default: { - JUT_PANIC(2969, "0"); + JUT_ASSERT(2969, FALSE); break; } } @@ -1887,7 +1887,7 @@ inline bool daNpcWrestler_c::gotoArena(void* param_1) { } default: { - JUT_PANIC(2974, "0"); + JUT_ASSERT(2974, FALSE); break; } } @@ -1944,7 +1944,7 @@ inline bool daNpcWrestler_c::gotoLiving(void* param_1) { } default: { - JUT_PANIC(3032, "0"); + JUT_ASSERT(3032, FALSE); break; } } @@ -1955,7 +1955,7 @@ inline bool daNpcWrestler_c::gotoLiving(void* param_1) { } default: { - JUT_PANIC(3037, "0"); + JUT_ASSERT(3037, FALSE); break; } } @@ -2119,7 +2119,7 @@ bool daNpcWrestler_c::sumouReady(void* param_1) { break; default: - JUT_PANIC(3181, "0"); + JUT_ASSERT(3181, FALSE); break; } @@ -2371,7 +2371,7 @@ inline bool daNpcWrestler_c::sumouPunchHit(void* param_1) { } default: { - JUT_PANIC(3411, "0"); + JUT_ASSERT(3411, FALSE); break; } } @@ -2552,7 +2552,7 @@ inline bool daNpcWrestler_c::sumouPunchMiss(void* param_1) { } default: { - JUT_PANIC(3579, "0"); + JUT_ASSERT(3579, FALSE); } } @@ -2670,8 +2670,7 @@ bool daNpcWrestler_c::sumouPunchDraw(void* param_1) { /* 80B3606C-80B36908 006ECC 089C+00 5/0 0/0 0/0 .text sumouTackleHit__15daNpcWrestler_cFPv */ bool daNpcWrestler_c::sumouTackleHit(void* param_1) { - // NONMATCHING - regalloc - daPy_py_c* player = daPy_getPlayerActorClass(); + daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass(); int jointNo = mType == 0 ? 0 : 0; cXyz sp2c; @@ -3028,7 +3027,7 @@ inline bool daNpcWrestler_c::sumouSideStep(void* param_1) { } default: { - JUT_PANIC(4008, "0"); + JUT_ASSERT(4008, FALSE); break; } } @@ -3154,7 +3153,7 @@ inline bool daNpcWrestler_c::sumouPunchChaseShock(void* param_1) { break; default: - JUT_PANIC(4149, "0"); + JUT_ASSERT(4149, FALSE); } return true; @@ -3237,7 +3236,6 @@ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) { daPy_py_c* player = daPy_getPlayerActorClass(); int jointNo = mType == 0 ? 0x1A : 0x18; int jointNo2 = mType == 0 ? 0x1E : 0x1B; - cXyz sp58; f32 fVar1, fVar2; switch (field_0xe96) { @@ -3249,8 +3247,9 @@ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) { field_0xe96 = 2; break; - case 2: + case 2: { correctGraspPosAngle(true); + cXyz sp58; mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(jointNo)); mDoMtx_stack_c::multVecZero(&sp58); sp58.y = current.pos.y; @@ -3282,10 +3281,14 @@ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) { setAction(&daNpcWrestler_c::sumouTackleStaggerRelease); } break; - + } case 3: player->setSumouForceGraspCancel(); break; + + default: + JUT_ASSERT(4311, FALSE); + break; } return true; @@ -3382,7 +3385,7 @@ inline bool daNpcWrestler_c::sumouTacklePush(void* param_1) { break; default: { - JUT_PANIC(4435, "0"); + JUT_ASSERT(4435, FALSE); break; } } @@ -3718,7 +3721,7 @@ inline bool daNpcWrestler_c::demoSumouReady(void* param_1) { break; default: - JUT_PANIC(4821, "0"); + JUT_ASSERT(4821, FALSE); break; } @@ -3732,7 +3735,7 @@ inline bool daNpcWrestler_c::demoSumouReady(void* param_1) { break; default: - JUT_PANIC(4828, "0"); + JUT_ASSERT(4828, FALSE); break; } @@ -4218,7 +4221,7 @@ bool daNpcWrestler_c::demoSumouLose2(void* param_1) { } default: - JUT_PANIC(5347, "0"); + JUT_ASSERT(5347, FALSE); break; } @@ -4232,7 +4235,7 @@ bool daNpcWrestler_c::demoSumouLose2(void* param_1) { break; default: - JUT_PANIC(5355, "0"); + JUT_ASSERT(5355, FALSE); } return true; @@ -4339,7 +4342,7 @@ inline bool daNpcWrestler_c::demoSumouUnilateralWin(void* param_1) { } default: - JUT_PANIC(5478, "0"); + JUT_ASSERT(5478, FALSE); break; } @@ -4353,7 +4356,7 @@ inline bool daNpcWrestler_c::demoSumouUnilateralWin(void* param_1) { break; default: - JUT_PANIC(5486, "0"); + JUT_ASSERT(5486, FALSE); break; } @@ -4429,7 +4432,7 @@ inline bool daNpcWrestler_c::demoTalkAfterLose(void* param_1) { break; default: - JUT_PANIC(5571, "0"); + JUT_ASSERT(5571, FALSE); break; } break; @@ -4440,7 +4443,7 @@ inline bool daNpcWrestler_c::demoTalkAfterLose(void* param_1) { break; default: - JUT_PANIC(5579, "0"); + JUT_ASSERT(5579, FALSE); break; } @@ -4482,7 +4485,7 @@ inline BOOL daNpcWrestler_c::EvCut_grDSEntry(int i_cutIndex) { break; default: - JUT_PANIC(5622, "0"); + JUT_ASSERT(5622, FALSE); break; } } @@ -4554,7 +4557,7 @@ inline BOOL daNpcWrestler_c::EvCut_grDSEntry(int i_cutIndex) { } default: { - JUT_PANIC(5688, "0"); + JUT_ASSERT(5688, FALSE); break; } } @@ -4576,7 +4579,7 @@ inline BOOL daNpcWrestler_c::EvCut_grDSEntry2(int i_cutIndex) { break; default: - JUT_PANIC(5715, "0"); + JUT_ASSERT(5715, FALSE); break; } } @@ -4594,7 +4597,7 @@ inline BOOL daNpcWrestler_c::EvCut_grDSEntry2(int i_cutIndex) { return TRUE; default: - JUT_PANIC(5735, "0"); + JUT_ASSERT(5735, FALSE); break; } diff --git a/src/d/actor/d_a_npc_yelia.cpp b/src/d/actor/d_a_npc_yelia.cpp index 0e7cf13987..90906b3a74 100644 --- a/src/d/actor/d_a_npc_yelia.cpp +++ b/src/d/actor/d_a_npc_yelia.cpp @@ -217,11 +217,11 @@ char* daNpc_Yelia_c::mCutNameList[6] = { /* 80B530B8-80B53100 000BDC 0048+00 1/2 0/0 0/0 .data mCutList__13daNpc_Yelia_c */ BOOL (daNpc_Yelia_c::*daNpc_Yelia_c::mCutList[6])(int) = { NULL, - &cutConversationAboutLoopHole, - &cutTWResistance, - &cutTakeWoodStatue, - &cutClothTry, - &cutThankYou, + &daNpc_Yelia_c::cutConversationAboutLoopHole, + &daNpc_Yelia_c::cutTWResistance, + &daNpc_Yelia_c::cutTakeWoodStatue, + &daNpc_Yelia_c::cutClothTry, + &daNpc_Yelia_c::cutThankYou, }; enum Type { @@ -645,7 +645,7 @@ void daNpc_Yelia_c::setParam() { /* 80B4E2C0-80B4E5BC 0010A0 02FC+00 1/0 0/0 0/0 .text checkChangeEvt__13daNpc_Yelia_cFv */ BOOL daNpc_Yelia_c::checkChangeEvt() { - if (!chkAction(&talk)) { + if (!chkAction(&daNpc_Yelia_c::talk)) { mPreItemNo = 0; if (dComIfGp_event_chkTalkXY()) { if (dComIfGp_evmng_ChkPresentEnd()) { @@ -791,10 +791,10 @@ void daNpc_Yelia_c::srchActors() { /* 80B4E7C8-80B4E868 0015A8 00A0+00 1/0 0/0 0/0 .text evtTalk__13daNpc_Yelia_cFv */ BOOL daNpc_Yelia_c::evtTalk() { - if (chkAction(&talk)) { + if (chkAction(&daNpc_Yelia_c::talk)) { (this->*mpAction)(NULL); } else { - setAction(&talk); + setAction(&daNpc_Yelia_c::talk); } return TRUE; } @@ -923,13 +923,13 @@ BOOL daNpc_Yelia_c::selectAction() { mpNextAction = NULL; switch (mType) { case TYPE_HORSE: - mpNextAction = &horseWait; + mpNextAction = &daNpc_Yelia_c::horseWait; break; case TYPE_REMINISCENCE: - mpNextAction = &reminiscence; + mpNextAction = &daNpc_Yelia_c::reminiscence; break; default: - mpNextAction = &wait; + mpNextAction = &daNpc_Yelia_c::wait; break; } return TRUE; @@ -1541,7 +1541,7 @@ BOOL daNpc_Yelia_c::talk(void* param_0) { case MODE_ENTER: case MODE_INIT: if (!mStagger.checkStagger()) { - if (&horseWait == mpNextAction) { + if (&daNpc_Yelia_c::horseWait == mpNextAction) { mFaceMotionSeqMngr.setNo(FACE_HORSE_LOOKBACK, -1.0f, FALSE, 0); mMotionSeqMngr.setNo(MOTION_HORSE_LOOKBACK, -1.0f, FALSE, 0); } @@ -1552,13 +1552,13 @@ BOOL daNpc_Yelia_c::talk(void* param_0) { case MODE_RUN: if (!mStagger.checkStagger()) { - if (&horseWait == mpNextAction && mMotionSeqMngr.getNo() == MOTION_HORSE_LOOKBACK) { + if (&daNpc_Yelia_c::horseWait == mpNextAction && mMotionSeqMngr.getNo() == MOTION_HORSE_LOOKBACK) { if (mMotionSeqMngr.checkEndSequence()) { mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, FALSE, 0); mMotionSeqMngr.setNo(MOTION_HORSE_WAIT_C, -1.0f, FALSE, 0); } return FALSE; - } else if (mTwilight || mPlayerAngle == mCurAngle.y || &horseWait == mpNextAction + } else if (mTwilight || mPlayerAngle == mCurAngle.y || &daNpc_Yelia_c::horseWait == mpNextAction || (mType == TYPE_KAKARIKO && !daNpcT_chkEvtBit(0x11f)) || mType == TYPE_AFTER_ESCORT) { @@ -1568,7 +1568,7 @@ BOOL daNpc_Yelia_c::talk(void* param_0) { mMode = MODE_EXIT; } mJntAnm.lookPlayer(false); - if (mTwilight || &horseWait == mpNextAction) { + if (mTwilight || &daNpc_Yelia_c::horseWait == mpNextAction) { mJntAnm.lookNone(false); } } else { diff --git a/src/d/actor/d_a_npc_zrz.cpp b/src/d/actor/d_a_npc_zrz.cpp index 55c3408ee9..c5734cb276 100644 --- a/src/d/actor/d_a_npc_zrz.cpp +++ b/src/d/actor/d_a_npc_zrz.cpp @@ -169,13 +169,13 @@ char* daNpc_zrZ_c::mEvtCutNameList[8] = { /* 80B9B434-80B9B494 0001B0 0060+00 0/2 0/0 0/0 .data mEvtCutList__11daNpc_zrZ_c */ daNpc_zrZ_c::EventFn daNpc_zrZ_c::mEvtCutList[8] = { NULL, - &ECut_helpPrince, - &ECut_comeHere, - &ECut_restoreLink, - &ECut_clothesGet, - &ECut_getAfter, - &ECut_sealRelease, - &ECut_srSkip, + &daNpc_zrZ_c::ECut_helpPrince, + &daNpc_zrZ_c::ECut_comeHere, + &daNpc_zrZ_c::ECut_restoreLink, + &daNpc_zrZ_c::ECut_clothesGet, + &daNpc_zrZ_c::ECut_getAfter, + &daNpc_zrZ_c::ECut_sealRelease, + &daNpc_zrZ_c::ECut_srSkip, }; /* 80B93DCC-80B93F84 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__11daNpc_zrZ_cFv */ @@ -322,9 +322,9 @@ int daNpc_zrZ_c::Execute() { int daNpc_zrZ_c::Draw() { mpMorf->getModel()->getModelData()->getMaterialNodePointer(1)->setMaterialAnm(mpMatAnm); if (mType == 1) { - return draw(chkAction(&test), false, daNpc_zrZ_Param_c::m.mShadowDepth, NULL, false); + return draw(chkAction(&daNpc_zrZ_c::test), false, daNpc_zrZ_Param_c::m.mShadowDepth, NULL, false); } else { - return daNpcF_c::draw(chkAction(&test), false, daNpc_zrZ_Param_c::m.mShadowDepth, + return daNpcF_c::draw(chkAction(&daNpc_zrZ_c::test), false, daNpc_zrZ_Param_c::m.mShadowDepth, NULL, false); } } @@ -949,7 +949,7 @@ void daNpc_zrZ_c::reset() { if (mDemoMode == DEMO_WAIT) { mIsLeading = false; tevStr.TevColor.a = 0; - mpNextActionFn = &wait; + mpNextActionFn = &daNpc_zrZ_c::wait; } else if (mDemoMode == DEMO_COME_HERE || mDemoMode == DEMO_COME_HERE_2) { mIsLeading = false; tevStr.TevColor.a = 0xff; @@ -1045,17 +1045,17 @@ BOOL daNpc_zrZ_c::setAction(ActionFn i_action) { BOOL daNpc_zrZ_c::selectAction() { mpNextActionFn = NULL; if (daNpc_zrZ_Param_c::m.mTest) { - mpNextActionFn = &test; + mpNextActionFn = &daNpc_zrZ_c::test; } else { switch (mDemoMode) { case DEMO_COME_HERE: - mpNextActionFn = &comeHere; + mpNextActionFn = &daNpc_zrZ_c::comeHere; break; case DEMO_COME_HERE_2: - mpNextActionFn = &comeHere2; + mpNextActionFn = &daNpc_zrZ_c::comeHere2; break; default: - mpNextActionFn = &wait; + mpNextActionFn = &daNpc_zrZ_c::wait; break; } } @@ -1102,10 +1102,10 @@ BOOL daNpc_zrZ_c::doEvent() { } if (eventInfo.checkCommandTalk()) { - if (chkAction(&talk)) { + if (chkAction(&daNpc_zrZ_c::talk)) { (this->*mpActionFn)(NULL); } else if (dComIfGp_event_chkTalkXY() == false || dComIfGp_evmng_ChkPresentEnd()) { - setAction(&talk); + setAction(&daNpc_zrZ_c::talk); } ret = true; } else { diff --git a/src/d/actor/d_a_obj_Y_taihou.cpp b/src/d/actor/d_a_obj_Y_taihou.cpp index 633f4e69cf..6b04b07cd1 100644 --- a/src/d/actor/d_a_obj_Y_taihou.cpp +++ b/src/d/actor/d_a_obj_Y_taihou.cpp @@ -69,7 +69,6 @@ static fopAc_ac_c* pushPullcallBack(fopAc_ac_c* param_0, fopAc_ac_c* param_1, s1 /* 80B9FD5C-80B9FDE8 00035C 008C+00 1/1 0/0 0/0 .text searchIronBallCallback__FPvPv */ static void* searchIronBallCallback(void* i_actor, void* i_data) { - // NONMATCHING daObjYtaihou_c* taihou_rhs = (daObjYtaihou_c*)i_data; if (fopAcM_GetProfName(i_actor) == PROC_Obj_Carry) { daObjCarry_c* pCarry = ((daObjCarry_c*)i_actor); @@ -198,7 +197,6 @@ void daObjYtaihou_c::setMtx() { /* 80BA0208-80BA045C 000808 0254+00 1/1 0/0 0/0 .text rotateCheck__14daObjYtaihou_cFv */ void daObjYtaihou_c::rotateCheck() { - // NONMATCHING if (shape_angle.y != current.angle.z) { cLib_chaseAngleS(¤t.angle.x, 0xbe, 5); if (cLib_chaseAngleS(&shape_angle.y, current.angle.z, current.angle.x)) { diff --git a/src/d/actor/d_a_obj_barDesk.cpp b/src/d/actor/d_a_obj_barDesk.cpp index c96edc2217..9a938e983e 100644 --- a/src/d/actor/d_a_obj_barDesk.cpp +++ b/src/d/actor/d_a_obj_barDesk.cpp @@ -87,8 +87,8 @@ int daBarDesk_c::Execute(Mtx** i_mtxP) { void daBarDesk_c::windowProc() { typedef void (daBarDesk_c::*daBarDesk_modeFunc)(); static daBarDesk_modeFunc mode_proc[2] = { - &modeWait, - &modeBreak, + &daBarDesk_c::modeWait, + &daBarDesk_c::modeBreak, }; (this->*mode_proc[mMode])(); } diff --git a/src/d/actor/d_a_obj_bosswarp.cpp b/src/d/actor/d_a_obj_bosswarp.cpp index 3d9f4bf613..89c97ab704 100644 --- a/src/d/actor/d_a_obj_bosswarp.cpp +++ b/src/d/actor/d_a_obj_bosswarp.cpp @@ -315,17 +315,17 @@ int daObjBossWarp_c::execute() { void daObjBossWarp_c::event_proc_call() { typedef void (daObjBossWarp_c::*daObjBossWarp_action)(); static daObjBossWarp_action l_func[11] = { - &actionWait, - &actionOrderEvent, - &actionEvent, - &actionWaitWarp, - &actionOrderWarpEvent, - &actionWarpEvent, - &actionDead, - &actionOrderChkEvent, - &actionChkEvent, - &actionOrderCancelEvent, - &actionCancelEvent, + &daObjBossWarp_c::actionWait, + &daObjBossWarp_c::actionOrderEvent, + &daObjBossWarp_c::actionEvent, + &daObjBossWarp_c::actionWaitWarp, + &daObjBossWarp_c::actionOrderWarpEvent, + &daObjBossWarp_c::actionWarpEvent, + &daObjBossWarp_c::actionDead, + &daObjBossWarp_c::actionOrderChkEvent, + &daObjBossWarp_c::actionChkEvent, + &daObjBossWarp_c::actionOrderCancelEvent, + &daObjBossWarp_c::actionCancelEvent, }; (this->*l_func[mAction])(); } @@ -494,7 +494,7 @@ int daObjBossWarp_c::demoProc() { if (dComIfGp_evmng_getIsAddvance(mStaffId)) { switch (act_idx) { - case 0: // WAIT + case 0: { // WAIT int* timer = dComIfGp_evmng_getMyIntegerP(mStaffId, "Timer"); if (timer == NULL) { mTimer = 1; @@ -502,13 +502,15 @@ int daObjBossWarp_c::demoProc() { mTimer = *timer; } break; - case 1: // APPEAR + } + case 1: { // APPEAR int level = getNowLevel(); if (level >= 0 && level < 10 && l_dangeon_clr_bitNo[level] > 0) { dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[l_dangeon_clr_bitNo[level]]); } appear(0); break; + } case 2: // DISAPPEAR disappear(0); break; diff --git a/src/d/actor/d_a_obj_bsGate.cpp b/src/d/actor/d_a_obj_bsGate.cpp index c2dfa07350..83952e67cf 100644 --- a/src/d/actor/d_a_obj_bsGate.cpp +++ b/src/d/actor/d_a_obj_bsGate.cpp @@ -76,9 +76,9 @@ static daBsGate_HIO_c l_HIO; void daBsGate_c::moveGate() { typedef void (daBsGate_c::*daBsGate_modeFunc)(); static daBsGate_modeFunc mode_proc[3] = { - &modeWait, - &modeOpen, - &modeClose, + &daBsGate_c::modeWait, + &daBsGate_c::modeOpen, + &daBsGate_c::modeClose, }; u8 was_open = mOpen; mOpen = fopAcM_isSwitch(this, fopAcM_GetParam(this) & 0xff); diff --git a/src/d/actor/d_a_obj_cdoor.cpp b/src/d/actor/d_a_obj_cdoor.cpp index 3bdd5184b8..2be5b8fab3 100644 --- a/src/d/actor/d_a_obj_cdoor.cpp +++ b/src/d/actor/d_a_obj_cdoor.cpp @@ -189,9 +189,9 @@ void daObjCdoor_c::execCdoor() { void daObjCdoor_c::execWgate() { typedef void (daObjCdoor_c::*daObjCdoor_modeFunc)(); static daObjCdoor_modeFunc mode_proc[3] = { - &modeWait, - &modeOpen, - &modeClose, + &daObjCdoor_c::modeWait, + &daObjCdoor_c::modeOpen, + &daObjCdoor_c::modeClose, }; u8 was_open = mIsOpen; mIsOpen = fopAcM_isSwitch(this, mSw); @@ -258,10 +258,10 @@ static int daObjCdoor_Execute(daObjCdoor_c* i_this) { void daObjCdoor_c::event_proc_call() { typedef void (daObjCdoor_c::*daObjCdoor_eventFunc)(); static daObjCdoor_eventFunc l_func[4] = { - &actionWait, - &actionOrderEvent, - &actionEvent, - &actionDead, + &daObjCdoor_c::actionWait, + &daObjCdoor_c::actionOrderEvent, + &daObjCdoor_c::actionEvent, + &daObjCdoor_c::actionDead, }; (this->*l_func[mAction])(); } diff --git a/src/d/actor/d_a_obj_chandelier.cpp b/src/d/actor/d_a_obj_chandelier.cpp index 7fc7d2d294..d833a5a0a9 100644 --- a/src/d/actor/d_a_obj_chandelier.cpp +++ b/src/d/actor/d_a_obj_chandelier.cpp @@ -14,11 +14,11 @@ static char* l_arcName = "L9Chand"; /* 80BC8DA4-80BC8DE0 000060 003C+00 1/2 0/0 0/0 .data s_exeProc__17daObjChandelier_c */ daObjChandelier_proc daObjChandelier_c::s_exeProc[5] = { - &exeModeWait, - &exeModeStartSwg, - &exeModeDown, - &exeModeEndSwg, - &exeModeHookSwg, + &daObjChandelier_c::exeModeWait, + &daObjChandelier_c::exeModeStartSwg, + &daObjChandelier_c::exeModeDown, + &daObjChandelier_c::exeModeEndSwg, + &daObjChandelier_c::exeModeHookSwg, }; /* 80BC7F38-80BC7F74 000078 003C+00 2/2 0/0 0/0 .text __ct__17daObjChandelier_cFv */ diff --git a/src/d/actor/d_a_obj_fchain.cpp b/src/d/actor/d_a_obj_fchain.cpp index 3913229d63..7df40339c5 100644 --- a/src/d/actor/d_a_obj_fchain.cpp +++ b/src/d/actor/d_a_obj_fchain.cpp @@ -126,7 +126,6 @@ static Vec const wolfChainBaseOffset = { }; /* 80BE6868-80BE7174 0008E8 090C+00 1/1 0/0 0/0 .text execute__13daObjFchain_cFv */ -// NONMATCHING - regalloc, stack int daObjFchain_c::execute() { if (dComIfGp_event_runCheck()) { if (dComIfGp_getEventManager().getRunEventName() != NULL) { @@ -249,9 +248,8 @@ int daObjFchain_c::execute() { if (field_0x584 == 0) { field_0x584 = 1; sp_30 = field_0x79c; - for (int i = 0; i < 22; i++) { + for (i = 0; i < 22; i++, sp_30++) { *sp_30 = cXyz::Zero; - sp_30++; } field_0x586 = 5; } diff --git a/src/d/actor/d_a_obj_gm.cpp b/src/d/actor/d_a_obj_gm.cpp index 5c1645c716..ba8cc3cc3b 100644 --- a/src/d/actor/d_a_obj_gm.cpp +++ b/src/d/actor/d_a_obj_gm.cpp @@ -154,7 +154,6 @@ static void ito_pos_set(obj_gm_class* i_this) { /* 80BFB508-80BFBA14 0004A8 050C+00 1/1 0/0 0/0 .text bg_fix__FP12obj_gm_class */ static void bg_fix(obj_gm_class* i_this) { - // NONMATCHING - incorrect instruction generated at line 258 fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->actor; cXyz sp28, sp34; diff --git a/src/d/actor/d_a_obj_hbombkoya.cpp b/src/d/actor/d_a_obj_hbombkoya.cpp index 6a63d7035b..0d1d943b7d 100644 --- a/src/d/actor/d_a_obj_hbombkoya.cpp +++ b/src/d/actor/d_a_obj_hbombkoya.cpp @@ -256,7 +256,6 @@ int daObjHBombkoya_c::Delete() { /* 80C1C1A8-80C1C2BC 0009A8 0114+00 1/0 0/0 0/0 .text * daObjHBombkoya_create1st__FP16daObjHBombkoya_c */ -// NONMATCHING - vtable issues, read more below static int daObjHBombkoya_create1st(daObjHBombkoya_c* i_this) { fopAcM_ct(i_this, daObjHBombkoya_c); diff --git a/src/d/actor/d_a_obj_ladder.cpp b/src/d/actor/d_a_obj_ladder.cpp index c505de2326..ff937d5d34 100644 --- a/src/d/actor/d_a_obj_ladder.cpp +++ b/src/d/actor/d_a_obj_ladder.cpp @@ -173,7 +173,6 @@ int daObjLadder::Act_c::CreateHeap() { /* 8058D1D8-8058D378 0000F8 01A0+00 1/0 0/0 0/0 .text Create__Q211daObjLadder5Act_cFv */ int daObjLadder::Act_c::Create() { - // NONMATCHING fopAcM_SetMtx(this, mModel->getBaseTRMtx()); init_mtx(); fopAcM_setCullSizeBox(this, -55.0f, -1.0f, -10.0f, 55.0f, attr_type(mType).field_0x4 + 41.0f, diff --git a/src/d/actor/d_a_obj_lv4CandleDemoTag.cpp b/src/d/actor/d_a_obj_lv4CandleDemoTag.cpp index 28c0226967..220bd87641 100644 --- a/src/d/actor/d_a_obj_lv4CandleDemoTag.cpp +++ b/src/d/actor/d_a_obj_lv4CandleDemoTag.cpp @@ -32,7 +32,6 @@ void dalv4CandleDemoTag_c::setBaseMtx() { } /* 80C5CA90-80C5CBA4 000190 0114+00 1/1 0/0 0/0 .text create__20dalv4CandleDemoTag_cFv */ -// NONMATCHING - vtables need work int dalv4CandleDemoTag_c::create() { fopAcM_ct(this, dalv4CandleDemoTag_c); diff --git a/src/d/actor/d_a_obj_master_sword.cpp b/src/d/actor/d_a_obj_master_sword.cpp index 4fb9f50264..13568508e8 100644 --- a/src/d/actor/d_a_obj_master_sword.cpp +++ b/src/d/actor/d_a_obj_master_sword.cpp @@ -10,8 +10,6 @@ #include "d/d_com_inf_game.h" #include "d/d_meter2_info.h" -// NONMATCHING - vtable order. I think it has something to do with the inline functions. - /* 80C91940-80C91944 000000 0004+00 2/2 0/0 0/0 .rodata mAttr__18daObjMasterSword_c */ daObjMasterSword_Attr_c const daObjMasterSword_c::mAttr = {1.0f}; diff --git a/src/d/actor/d_a_obj_mirror_screw.cpp b/src/d/actor/d_a_obj_mirror_screw.cpp index ea102ceef9..72e55b8c05 100644 --- a/src/d/actor/d_a_obj_mirror_screw.cpp +++ b/src/d/actor/d_a_obj_mirror_screw.cpp @@ -26,12 +26,12 @@ daObjMirrorScrew_c::attr const daObjMirrorScrew_c::M_attr = { */ daObjMirrorScrew_actionFunc daObjMirrorScrew_c::ActionTable[2][2] = { { - &initWait, - &executeWait, + &daObjMirrorScrew_c::initWait, + &daObjMirrorScrew_c::executeWait, }, { - &initDown, - &executeDown, + &daObjMirrorScrew_c::initDown, + &daObjMirrorScrew_c::executeDown, }, }; diff --git a/src/d/actor/d_a_obj_pdoor.cpp b/src/d/actor/d_a_obj_pdoor.cpp index 4d05d9c679..20ef8dda5a 100644 --- a/src/d/actor/d_a_obj_pdoor.cpp +++ b/src/d/actor/d_a_obj_pdoor.cpp @@ -76,7 +76,7 @@ int daObjPDoor_c::Create() { shape_angle.y = home.angle.y + 0x1555; } else if (!isSw2) { OS_REPORT("城下町押引扉:SW1,SW2共にONになっています!\n"); - JUT_PANIC(235, "0"); + JUT_ASSERT(235, FALSE); } else { mDoorDirection = -1; shape_angle.y = home.angle.y - 0x1555; diff --git a/src/d/actor/d_a_obj_sekizoa.cpp b/src/d/actor/d_a_obj_sekizoa.cpp index 7f17d71f4c..25d74915a3 100644 --- a/src/d/actor/d_a_obj_sekizoa.cpp +++ b/src/d/actor/d_a_obj_sekizoa.cpp @@ -388,10 +388,11 @@ fopAc_ac_c* daObj_Sekizoa_c::getKMsgTagP() { /* 80CCF03C-80CCF138 000DDC 00FC+00 1/1 0/0 0/0 .text isDelete__15daObj_Sekizoa_cFv */ int daObj_Sekizoa_c::isDelete() { + bool ret; switch (mType) { case TYPE_0: case TYPE_1: - bool ret = false; + ret = false; if (getBitSW2() != 0xFF) { if (dComIfGs_isSwitch(getBitSW2(), fopAcM_GetRoomNo(this))) { ret = true; @@ -1268,7 +1269,7 @@ void daObj_Sekizoa_c::jump() { break; case 2: - case 3: + case 3: { cXyz temp_vec2; if (mMotionSeqMngr.getNo() == 7 || mMotionSeqMngr.getNo() == 18) { @@ -1324,7 +1325,7 @@ void daObj_Sekizoa_c::jump() { } } break; - + } case 4: if (mMotionSeqMngr.checkEndSequence() != 0) { mMotionSeqMngr.setNo(getGameMotionNo(), -1.0f, 0, 0); @@ -2046,18 +2047,17 @@ int daObj_Sekizoa_c::cutGoal(int i_staffIdx) { } break; - case 1: + case 1: { f32 temp_float = mGoalStatueAngle; cLib_chaseF(&mGoalStatueAngle, 0.0f, mGoalStatueTurnSpeed); - int temp_diff = mGoalStatueAngle - temp_float; - current.angle.y -= temp_diff; + current.angle.y -= (int)(mGoalStatueAngle - temp_float); shape_angle.y = current.angle.y; mCurAngle.y = current.angle.y; if (mMotionSeqMngr.checkEndSequence() != 0) { ret = 1; } break; - + } case 2: if (mMotionSeqMngr.checkEndSequence() != 0) { ret = 1; diff --git a/src/d/actor/d_a_obj_snowEffTag.cpp b/src/d/actor/d_a_obj_snowEffTag.cpp index eb193f7961..92597760ef 100644 --- a/src/d/actor/d_a_obj_snowEffTag.cpp +++ b/src/d/actor/d_a_obj_snowEffTag.cpp @@ -64,14 +64,13 @@ bool daSnowEffTag_c::playerAreaCheck() { if (player_p->current.pos.y < current.pos.y || player_p->current.pos.y > current.pos.y + scale.y * 100.0f) { - return false; + return in_area; } else { cXyz pos_diff = current.pos - player_p->current.pos; f32 dist_to_player = pos_diff.absXZ(); - // supposed to be std::fabs, but it changes regalloc if (dist_to_player <= - mMaxSize - field_0x574 * fabsf(player_p->current.pos.y - current.pos.y)) + mMaxSize - field_0x574 * std::fabs(player_p->current.pos.y - current.pos.y)) { in_area = true; } else { diff --git a/src/d/actor/d_a_obj_spinLift.cpp b/src/d/actor/d_a_obj_spinLift.cpp index 4f78efdd03..dd8298846d 100644 --- a/src/d/actor/d_a_obj_spinLift.cpp +++ b/src/d/actor/d_a_obj_spinLift.cpp @@ -73,7 +73,10 @@ int daSpinLift_c::CreateHeap() { (J3DModelData*)dComIfG_getObjectRes(l_resNameIdx[mModelType], l_bmdIdx[mModelType]); JUT_ASSERT(222, modelData != NULL); mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); - return mpModel == NULL ? 0 : 1; + if (mpModel == NULL) { + return 0; + } + return 1; } /* 80CE3F1C-80CE40FC 00025C 01E0+00 1/1 0/0 0/0 .text create__12daSpinLift_cFv */ diff --git a/src/d/actor/d_a_obj_swBallB.cpp b/src/d/actor/d_a_obj_swBallB.cpp index d230e63016..86f5ad2048 100644 --- a/src/d/actor/d_a_obj_swBallB.cpp +++ b/src/d/actor/d_a_obj_swBallB.cpp @@ -382,7 +382,6 @@ void daObjSwBallB_c::PutCrrPos() { } /* 80CF56A4-80CF582C 001164 0188+00 1/1 0/0 0/0 .text draw__14daObjSwBallB_cFv */ -// NONMATCHING int daObjSwBallB_c::draw() { g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); g_env_light.setLightTevColorType_MAJI(mModel, &tevStr); diff --git a/src/d/actor/d_a_obj_toby.cpp b/src/d/actor/d_a_obj_toby.cpp index 8c700f5472..5126deb1b5 100644 --- a/src/d/actor/d_a_obj_toby.cpp +++ b/src/d/actor/d_a_obj_toby.cpp @@ -443,7 +443,6 @@ static int daObj_Toby_Delete(obj_toby_class* i_this) { } /* 80D149DC-80D14BD4 00133C 01F8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -// nonmatching - regalloc static int useHeapInit(fopAc_ac_c* a_this) { obj_toby_class* i_this = (obj_toby_class*)a_this; void* modelData; diff --git a/src/d/actor/d_a_obj_tobyhouse.cpp b/src/d/actor/d_a_obj_tobyhouse.cpp index b291b74685..8faf971065 100644 --- a/src/d/actor/d_a_obj_tobyhouse.cpp +++ b/src/d/actor/d_a_obj_tobyhouse.cpp @@ -521,7 +521,7 @@ void daObjTobyHouse_c::sceneChange() { exitId = 3; break; default: - JUT_PANIC(936, "0"); + JUT_ASSERT(936, FALSE); } dStage_changeScene(exitId, 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1); diff --git a/src/d/actor/d_a_obj_wood_statue.cpp b/src/d/actor/d_a_obj_wood_statue.cpp index 44b21c2d16..d08109428e 100644 --- a/src/d/actor/d_a_obj_wood_statue.cpp +++ b/src/d/actor/d_a_obj_wood_statue.cpp @@ -333,7 +333,7 @@ int daObjWStatue_c::actionSwOnWait() { } break; default: - JUT_PANIC(644, "0"); + JUT_ASSERT(644, FALSE); } return 1; diff --git a/src/d/actor/d_a_obj_zdoor.cpp b/src/d/actor/d_a_obj_zdoor.cpp index bd9c347487..9f12781447 100644 --- a/src/d/actor/d_a_obj_zdoor.cpp +++ b/src/d/actor/d_a_obj_zdoor.cpp @@ -316,7 +316,6 @@ int daZdoor_c::create1st() { /* 80D3FACC-80D3FCE8 00070C 021C+00 1/0 0/0 0/0 .text Execute__9daZdoor_cFPPA3_A4_f */ int daZdoor_c::Execute(Mtx** i_mtx) { - // NONMATCHING s16 current_open_angle = mOpenAngle; set_cyl(); diff --git a/src/d/actor/d_a_obj_zrTurara.cpp b/src/d/actor/d_a_obj_zrTurara.cpp index fd0243700e..89de362dfe 100644 --- a/src/d/actor/d_a_obj_zrTurara.cpp +++ b/src/d/actor/d_a_obj_zrTurara.cpp @@ -145,9 +145,9 @@ int daZrTurara_c::Execute(Mtx** i_mtxP) { void daZrTurara_c::move() { typedef void (daZrTurara_c::*daZrTurara_modeFunc)(); static daZrTurara_modeFunc mode_proc[3] = { - &modeWait, - &modeBreak, - &modeEnd, + &daZrTurara_c::modeWait, + &daZrTurara_c::modeBreak, + &daZrTurara_c::modeEnd, }; (this->*mode_proc[mMode])(); mCcCyl.SetR(130.0f); diff --git a/src/d/actor/d_a_obj_zrTuraraRock.cpp b/src/d/actor/d_a_obj_zrTuraraRock.cpp index 6dada73a78..c33aa9bbb4 100644 --- a/src/d/actor/d_a_obj_zrTuraraRock.cpp +++ b/src/d/actor/d_a_obj_zrTuraraRock.cpp @@ -112,8 +112,8 @@ int daZrTuraRc_c::Execute() { void daZrTuraRc_c::move() { typedef void (daZrTuraRc_c::*daZrTuraRc_modeFunc)(); static daZrTuraRc_modeFunc mode_proc[2] = { - &modeDrop, - &modeDropEnd, + &daZrTuraRc_c::modeDrop, + &daZrTuraRc_c::modeDropEnd, }; (this->*mode_proc[mMode])(); mCcSph.SetR(mScaleF * 130.0f); diff --git a/src/d/actor/d_a_passer_mng.cpp b/src/d/actor/d_a_passer_mng.cpp index cbc21e8f8f..dd3e566c39 100644 --- a/src/d/actor/d_a_passer_mng.cpp +++ b/src/d/actor/d_a_passer_mng.cpp @@ -502,7 +502,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) { break; default: OS_REPORT("%s: Line.%d arg=%d\n", "d_a_passer_mng.cpp", 921, param_1); - JUT_PANIC(922, 0); + JUT_ASSERT(922, FALSE); } return paramLow << 8; } diff --git a/src/d/actor/d_a_peru.cpp b/src/d/actor/d_a_peru.cpp index 4b96a22787..b766e0b8ab 100644 --- a/src/d/actor/d_a_peru.cpp +++ b/src/d/actor/d_a_peru.cpp @@ -810,7 +810,7 @@ int daPeru_c::demo_walk_to_link(int param_0) { fopAc_ac_c* actor = mActors[2].getActorP(); if (actor == NULL) { OS_REPORT("-----there is no player!!\n"); - JUT_PANIC(1948, 0); + JUT_ASSERT(1948, FALSE); } cLib_chaseAngleS(&mCurAngle.y, fopAcM_searchActorAngleY(this, actor), 0x800); current.angle.y = mCurAngle.y; @@ -1013,7 +1013,7 @@ int daPeru_c::_cutAppear_Init(int const& param_1) { if (fopAcM_SearchByName(PROC_MIDNA, &midna) != 0) { if (midna == NULL) { OS_REPORT("---- there is no midna!!\n"); - JUT_PANIC(2446, 0); + JUT_ASSERT(2446, FALSE); } else { mJntAnm.lookActor(midna, 0.0, 0); } @@ -1184,7 +1184,7 @@ void daPeru_c::_catdoor_open() { daObjCatDoor_c* pCatDoor = (daObjCatDoor_c*)mActors[1].getActorP(); if (pCatDoor == NULL) { OS_REPORT("---- there is no catdoor!! ----!!\n"); - JUT_PANIC(2799, 0); + JUT_ASSERT(2799, FALSE); } else { pCatDoor->setDoorOpen(); } @@ -1196,7 +1196,7 @@ void daPeru_c::_catdoor_open_demoskip() { daObjCatDoor_c* pCatDoor = (daObjCatDoor_c*)mActors[1].getActorP(); if (pCatDoor == NULL) { OS_REPORT("---- there is no catdoor!! ----!!\n"); - JUT_PANIC(2829, 0); + JUT_ASSERT(2829, FALSE); } else { pCatDoor->_toDoorOpened(); } diff --git a/src/d/actor/d_a_swc00.cpp b/src/d/actor/d_a_swc00.cpp index d6fd866b05..219ca5dc6a 100644 --- a/src/d/actor/d_a_swc00.cpp +++ b/src/d/actor/d_a_swc00.cpp @@ -146,7 +146,7 @@ int daSwc00_c::execute() { break; default: OSReport_Error("領域スイッチ:引数0が不正値<%d>です\n", type); - JUT_PANIC(289, "0"); + JUT_ASSERT(289, FALSE); break; } diff --git a/src/d/actor/d_a_tag_Lv6Gate.cpp b/src/d/actor/d_a_tag_Lv6Gate.cpp index 4879661ac9..b0f42939ab 100644 --- a/src/d/actor/d_a_tag_Lv6Gate.cpp +++ b/src/d/actor/d_a_tag_Lv6Gate.cpp @@ -199,7 +199,7 @@ inline int daTagLv6Gate_c::execute() { fopAcM_delete(parentActorID); break; default: - JUT_PANIC(332, "0"); + JUT_ASSERT(332, FALSE); } } @@ -213,7 +213,7 @@ inline int daTagLv6Gate_c::execute() { eventManager.cutEnd(cut_index); break; default: - JUT_PANIC(345, "0"); + JUT_ASSERT(345, FALSE); } if (eventInfo.checkCommandDemoAccrpt() && mEvtId != -1 && diff --git a/src/d/actor/d_a_tag_wljump.cpp b/src/d/actor/d_a_tag_wljump.cpp index a90a1dfec4..0a4a17284b 100644 --- a/src/d/actor/d_a_tag_wljump.cpp +++ b/src/d/actor/d_a_tag_wljump.cpp @@ -63,7 +63,6 @@ static int daTagWljump_Delete(daTagWljump_c* i_this) { } /* 80D65090-80D6587C 000250 07EC+00 1/1 0/0 0/0 .text execute__13daTagWljump_cFv */ -// NONMATCHING - reg swap (regs match on debug, probably an inline issue) int daTagWljump_c::execute() { attention_info.flags = 0; diff --git a/src/d/d_attention.cpp b/src/d/d_attention.cpp index 95fffaf762..61cc3bac2a 100644 --- a/src/d/d_attention.cpp +++ b/src/d/d_attention.cpp @@ -1880,9 +1880,7 @@ int dAttCatch_c::request(fopAc_ac_c* i_reqActor, u8 i_itemNo, f32 i_horizontalDi if (i_angle != 0) { cSGlobe globe(vec_to_player); - csXyz* player_angle_p = fopAcM_GetShapeAngle_p(player); - - s16 angle = globe.U() - player_angle_p->y; + s16 angle = globe.U() - fopAcM_GetShapeAngle_p(player)->y; if (angle < 0) { angle = -angle; } diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 75fc3ee91e..d7396fa1b2 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -1637,8 +1637,10 @@ void dComIfGp_createSubExpHeap2D() { u32 size = dComIfGp_getExpHeap2D()->getTotalFreeSize() * (2.0f / 5.0f); for (int i = 0; i < 2; i++) { + JUT_ASSERT(3573, dComIfGp_getSubExpHeap2D(i) == NULL); if (dComIfGp_getSubExpHeap2D(i) == NULL) { - JKRExpHeap* i_heap = JKRExpHeap::create(size, dComIfGp_getExpHeap2D(), false); + JKRExpHeap* i_heap = JKRCreateExpHeap(size, dComIfGp_getExpHeap2D(), false); + JUT_ASSERT(3576, i_heap != NULL); dComIfGp_setSubExpHeap2D(i, i_heap); } } diff --git a/src/d/d_msg_object.cpp b/src/d/d_msg_object.cpp index 94506d8656..0180a3a703 100644 --- a/src/d/d_msg_object.cpp +++ b/src/d/d_msg_object.cpp @@ -642,7 +642,6 @@ void dMsgObject_c::setMessageIndex(u32 revoIndex, u32 param_2, bool param_3) { } /* 80233E70-80233F84 22E7B0 0114+00 1/1 1/1 0/0 .text setMessageIndexDemo__12dMsgObject_cFUlb */ -// NONMATCHING reg swap void dMsgObject_c::setMessageIndexDemo(u32 revoMsgIndex, bool param_2) { field_0x158 = revoMsgIndex; revoMsgIndex = getRevoMessageIndex(revoMsgIndex); diff --git a/src/d/d_particle.cpp b/src/d/d_particle.cpp index 0ef5810063..6ff34964e9 100644 --- a/src/d/d_particle.cpp +++ b/src/d/d_particle.cpp @@ -2117,7 +2117,7 @@ void dPa_gen_b_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* p JGeometry::TVec3 aTStack_a4; JGeometry::TVec3 aTStack_b0; JGeometry::TVec3 local_bc; - u8 uVar7 = param_1->getGlobalAlpha() & 0xff; + u8 uVar7 = param_1->getGlobalAlpha(); JGeometry::TVec3 local_c8; JGeometry::TVec3 local_d4; JGeometry::TVec3 local_e0; @@ -2138,10 +2138,7 @@ void dPa_gen_b_light8PcallBack::draw(JPABaseEmitter* param_1, JPABaseParticle* p local_80[1][3] = local_8c.y; local_80[2][2] = 1.0f; local_80[2][3] = local_8c.z; - local_80[2][1] = 0.0f; - local_80[2][0] = 0.0f; - local_80[1][2] = 0.0f; - local_80[0][2] = 0.0f; + local_80[0][2] = local_80[1][2] = local_80[2][0] = local_80[2][1] = 0.0f; GXLoadPosMtxImm(local_80, 0); GXLoadNrmMtxImm(local_80, 0); JGeometry::TVec3 local_104; diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index df12777291..86afed4d5c 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -2020,12 +2020,12 @@ fopAc_ac_c* fopAcM_searchFromName(char const* name, u32 param0, u32 param1) { /* 8001D6F0-8001D7A0 018030 00B0+00 1/1 0/0 0/0 .text fopAcM_findObject4EventCB__FP10fopAc_ac_cPv */ fopAc_ac_c* fopAcM_findObject4EventCB(fopAc_ac_c* i_actor, void* i_data) { - fopAcM_search4ev_prm* prm = (fopAcM_search4ev_prm*)i_data; - if (i_data == NULL || !fopAcM_IsExecuting(fopAcM_GetID(i_actor))) { return NULL; } + fopAcM_search4ev_prm* prm = (fopAcM_search4ev_prm*)i_data; + if (prm->procname == fopAcM_GetProfName(i_actor) && prm->argument == i_actor->argument) { if (prm->event_id < 0 || prm->event_id == i_actor->eventInfo.getIdx()) { return i_actor;