summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/d/actor/d_a_npc_bouS.h3
-rw-r--r--include/d/actor/d_a_npc_wrestler.h178
-rw-r--r--include/d/actor/d_a_tag_arena.h2
-rw-r--r--include/f_op/f_op_actor_mng.h4
-rw-r--r--src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/cmath.h5
-rw-r--r--src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h1
-rw-r--r--src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c7
-rw-r--r--src/d/actor/d_a_npc_chat.cpp6
-rw-r--r--src/d/actor/d_a_npc_wrestler.cpp709
9 files changed, 584 insertions, 331 deletions
diff --git a/include/d/actor/d_a_npc_bouS.h b/include/d/actor/d_a_npc_bouS.h
index d1836db9ab..eba7f50f59 100644
--- a/include/d/actor/d_a_npc_bouS.h
+++ b/include/d/actor/d_a_npc_bouS.h
@@ -131,8 +131,7 @@ public:
}
void setHome() {
- current.pos = home.pos;
- old.pos = current.pos;
+ old.pos = current.pos = home.pos;
shape_angle.y = home.angle.y;
}
void offDispFlag() { mDispFlag = 0; }
diff --git a/include/d/actor/d_a_npc_wrestler.h b/include/d/actor/d_a_npc_wrestler.h
index d7e3116911..a5e867545c 100644
--- a/include/d/actor/d_a_npc_wrestler.h
+++ b/include/d/actor/d_a_npc_wrestler.h
@@ -16,16 +16,16 @@ struct daNpcWrestler_HIOParamSub {
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 mWallH;
/* 0x08 */ f32 mWallR;
- /* 0x0C */ f32 field_0xc; // リアル影サイズ (Real Shadow Size)
+ /* 0x0C */ f32 real_shadow_size; // リアル影サイズ (Real Shadow Size)
/* 0x10 */ f32 field_0x10;
- /* 0x14 */ f32 field_0x14; // 見合う距離 (Right Distance)
+ /* 0x14 */ f32 reasonable_distance; // 見合う距離 (Right Distance)
/* 0x18 */ f32 grapple_distance; // 組み合い距離 (Grapple Distance)
- /* 0x1C */ f32 field_0x1c; // 再配置距離 (Reconfiguration Distance)
+ /* 0x1C */ f32 reconfig_distance; // 再配置距離 (Reconfiguration Distance)
/* 0x20 */ s16 lateral_movement_time; // 横移動時間 (Lateral Movement Time)
/* 0x22 */ s16 horizontal_movement_speed; // 横移動速度 (Horizontal Movement Speed)
/* 0x24 */ s16 stagger_time; // ふらふら時間 (Stagger Time)
/* 0x26 */ s16 wait_time; // 待ち時間 (Wait Time)
- /* 0x28 */ s16 field_0x28; // 曲がり限界 (Bending Limit)
+ /* 0x28 */ s16 bending_limit; // 曲がり限界 (Bending Limit)
/* 0x2C */ struct {
f32 lateral_movement_chance; // 横移動 の確率 (Lateral Movement Chance)
f32 hit_chance; // 張り手 の確率 (Hit Chance)
@@ -39,16 +39,13 @@ struct daNpcWrestler_HIOParamSub {
/* 0x6C */ s16 ai_action; // AI行動 (AI Action)
/* 0x6E */ s16 ready_appearance_time; // Ready? 出現時間 (Ready? Appearance Time)
/* 0x70 */ s16 fight_appearance_time; // Fight! 出現時間 (Fight! Appearance Time)
- /* 0x72 */ s16 field_0x72;
/* 0x74 */ s32 slap_hit_impact; // 張り手Hit衝撃 (Slap Hit Impact)
/* 0x78 */ s16 rotation; // 回転割り (Rotating)
- /* 0x7A */ s16 field_0x7a;
/* 0x7C */ f32 camera_rotation_angle; // カメラ回転角 (Camera Rotation Angle)
- /* 0x80 */ f32 field_0x80; // 音 土俵際距離 (Sound, Distance From Edge Of Ring)
- /* 0x84 */ f32 field_0x84; // 動 土俵際距離 (Movement, Distance From Edge Of Ring)
+ /* 0x80 */ f32 ring_edge_sound; // 音 土俵際距離 (Sound, Distance From Edge Of Ring)
+ /* 0x84 */ f32 ring_edge_movement; // 動 土俵際距離 (Movement, Distance From Edge Of Ring)
/* 0x88 */ f32 fade_speed;
/* 0x8C */ s16 field_0x8c;
- /* 0x8E */ s16 field_0x8e;
/* 0x90 */ f32 field_0x90;
/* 0x94 */ f32 field_0x94;
/* 0x98 */ f32 field_0x98;
@@ -58,7 +55,6 @@ struct daNpcWrestler_HIOParamSub {
/* 0xA8 */ s16 field_0xa8;
/* 0xAA */ s16 field_0xaa;
/* 0xAC */ s16 field_0xac;
- /* 0xAE */ s16 field_0xae;
/* 0xB0 */ f32 field_0xb0;
/* 0xB4 */ s16 field_0xb4;
/* 0xB6 */ s16 field_0xb6;
@@ -94,27 +90,24 @@ public:
/* 0x04 */ daNpcWrestler_HIOParamSub* field_0x4;
};
-class daNpcWrestler_HIO_c
-#ifdef DEBUG
-: public mDoHIO_entry_c
-#endif
-{
+class daNpcWrestler_HIO_c : public mDoHIO_entry_c {
public:
- daNpcWrestler_HIO_c() {
- for (int i = 0; i < 2; i++) {
- field_0x19c[i].setParam(&field_0x8.mTypeParams[i]);
- }
- }
+ daNpcWrestler_HIO_c();
virtual ~daNpcWrestler_HIO_c() {}
+ void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
- void listenPropertyEvent(JORPropertyEvent*);
- /* 0x004 */ u8 field_0x4[0x8 - 0x4];
- /* 0x008 */ daNpcWrestler_HIOParam field_0x8;
+ /* 0x008 */ daNpcWrestler_HIOParam m;
/* 0x19C */ daNpcWrestler_HIO_Node_c field_0x19c[2];
};
+#if DEBUG
+#define NPC_WRESTLER_HIO_CLASS daNpcWrestler_HIO_c
+#else
+#define NPC_WRESTLER_HIO_CLASS daNpcWrestler_Param_c
+#endif
+
struct WrestlerParamList {
daNpc_GetParam1* bck_list;
daNpc_GetParam2* face_list;
@@ -147,95 +140,94 @@ public:
/* 80B30170 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80B301BC */ bool checkStartUp();
/* 80B308B0 */ void reset();
- /* 80B30AD8 */ int setAction(actionFunc);
+ /* 80B30AD8 */ inline int setAction(actionFunc);
/* 80B30BEC */ void checkArenaInfo();
/* 80B30CA4 */ bool checkArenaSub(fopAc_ac_c*);
/* 80B30D48 */ void setOnToArena(f32);
- /* 80B30F00 */ bool wait(void*);
- /* 80B316F4 */ bool talk(void*);
- /* 80B31EB0 */ bool demo(void*);
- /* 80B32058 */ bool gotoArena(void*);
- /* 80B32444 */ bool gotoLiving(void*);
- /* 80B32850 */ bool sumouReady(void*);
- /* 80B331CC */ bool sumouWait(void*);
- /* 80B339EC */ bool checkOutOfArenaP();
- /* 80B33B3C */ bool setNextAction();
- /* 80B34654 */ bool sumouPunchHit(void*);
- /* 80B34CD0 */ bool sumouPunchChaseHit(void*);
- /* 80B35364 */ bool sumouPunchMiss(void*);
- /* 80B35780 */ bool checkOutOfArenaW();
+ /* 80B30F00 */ inline bool wait(void*);
+ /* 80B316F4 */ inline bool talk(void*);
+ /* 80B31EB0 */ inline bool demo(void*);
+ /* 80B32058 */ inline bool gotoArena(void*);
+ /* 80B32444 */ inline bool gotoLiving(void*);
+ /* 80B32850 */ inline bool sumouReady(void*);
+ /* 80B331CC */ inline bool sumouWait(void*);
+ /* 80B339EC */ inline bool checkOutOfArenaP();
+ /* 80B33B3C */ inline bool setNextAction();
+ /* 80B34654 */ inline bool sumouPunchHit(void*);
+ /* 80B34CD0 */ inline bool sumouPunchChaseHit(void*);
+ /* 80B35364 */ inline bool sumouPunchMiss(void*);
+ /* 80B35780 */ inline bool checkOutOfArenaW();
/* 80B358F0 */ cXyz getJointPos(int);
- /* 80B35968 */ bool sumouPunchDraw(void*);
- /* 80B3606C */ bool sumouTackleHit(void*);
- /* 80B36908 */ bool sumouTackleMiss(void*);
- /* 80B36C8C */ bool sumouTackleDraw(void*);
- /* 80B37270 */ bool sumouSideStep(void*);
- /* 80B378F4 */ bool sumouLostBalance(void*);
- /* 80B37C30 */ bool sumouPunchShock(void*);
- /* 80B37FB8 */ bool sumouPunchChaseShock(void*);
- /* 80B38518 */ bool sumouPunchStagger(void*);
- /* 80B389A4 */ bool sumouTackleShock(void*);
- /* 80B38C90 */ bool sumouTackleStagger(void*);
- /* 80B39334 */ bool sumouTackleStaggerRelease(void*);
- /* 80B39554 */ bool sumouTacklePush(void*);
- /* 80B39C18 */ bool sumouTackleRelease(void*);
- /* 80B39F88 */ bool demoSumouReady(void*);
- /* 80B3AE24 */ bool demoSumouWin(void*);
- /* 80B3B4B4 */ bool demoSumouLose(void*);
- /* 80B3BC84 */ bool demoSumouWin2(void*);
- /* 80B3C278 */ bool demoSumouLose2(void*);
- /* 80B3CA2C */ bool demoSumouUnilateralWin(void*);
- /* 80B3D0C0 */ bool demoTalkAfterLose(void*);
- /* 80B3D584 */ BOOL EvCut_grDSEntry(int);
- /* 80B3DB50 */ BOOL EvCut_grDSEntry2(int);
- /* 80B3DCE8 */ BOOL EvCut_grDSEntry3_4(int);
- /* 80B3E0FC */ BOOL EvCut_grDSEntry5(int);
- /* 80B3E584 */ BOOL EvCut_grDSLose(int);
- /* 80B3EF10 */ void setWrestlerVoice();
- /* 80B3FCE8 */ void playMotion();
- /* 80B40B3C */ void lookat();
+ /* 80B35968 */ inline bool sumouPunchDraw(void*);
+ /* 80B3606C */ inline bool sumouTackleHit(void*);
+ /* 80B36908 */ inline bool sumouTackleMiss(void*);
+ /* 80B36C8C */ inline bool sumouTackleDraw(void*);
+ /* 80B37270 */ inline bool sumouSideStep(void*);
+ /* 80B378F4 */ inline bool sumouLostBalance(void*);
+ /* 80B37C30 */ inline bool sumouPunchShock(void*);
+ /* 80B37FB8 */ inline bool sumouPunchChaseShock(void*);
+ /* 80B38518 */ inline bool sumouPunchStagger(void*);
+ /* 80B389A4 */ inline bool sumouTackleShock(void*);
+ /* 80B38C90 */ inline bool sumouTackleStagger(void*);
+ /* 80B39334 */ inline bool sumouTackleStaggerRelease(void*);
+ /* 80B39554 */ inline bool sumouTacklePush(void*);
+ /* 80B39C18 */ inline bool sumouTackleRelease(void*);
+ /* 80B39F88 */ inline bool demoSumouReady(void*);
+ /* 80B3AE24 */ inline bool demoSumouWin(void*);
+ /* 80B3B4B4 */ inline bool demoSumouLose(void*);
+ /* 80B3BC84 */ inline bool demoSumouWin2(void*);
+ /* 80B3C278 */ inline bool demoSumouLose2(void*);
+ /* 80B3CA2C */ inline bool demoSumouUnilateralWin(void*);
+ /* 80B3D0C0 */ inline bool demoTalkAfterLose(void*);
+ /* 80B3D584 */ inline BOOL EvCut_grDSEntry(int);
+ /* 80B3DB50 */ inline BOOL EvCut_grDSEntry2(int);
+ /* 80B3DCE8 */ inline BOOL EvCut_grDSEntry3_4(int);
+ /* 80B3E0FC */ inline BOOL EvCut_grDSEntry5(int);
+ /* 80B3E584 */ inline BOOL EvCut_grDSLose(int);
+ /* 80B3EF10 */ inline void setWrestlerVoice();
+ /* 80B3FCE8 */ inline void playMotion();
+ /* 80B40B3C */ inline void lookat();
/* 80B2F4A0 */ virtual ~daNpcWrestler_c();
- /* 80B3EAE4 */ void setParam();
- /* 80B3EB94 */ BOOL main();
- /* 80B404FC */ BOOL ctrlBtk();
+ /* 80B3EAE4 */ inline void setParam();
+ /* 80B3EB94 */ inline BOOL main();
+ /* 80B404FC */ inline BOOL ctrlBtk();
/* 80B4166C */ void adjustShapeAngle() {}
- /* 80B405E8 */ void setAttnPos();
- /* 80B3023C */ bool setExpressionAnm(int, bool);
- /* 80B30654 */ bool setExpressionBtp(int);
- /* 80B316C8 */ void setExpression(int, f32);
- /* 80B3074C */ void setMotionAnm(int, f32);
+ /* 80B405E8 */ inline void setAttnPos();
+ /* 80B3023C */ inline bool setExpressionAnm(int, bool);
+ /* 80B30654 */ inline bool setExpressionBtp(int);
+ /* 80B316C8 */ inline void setExpression(int, f32);
+ /* 80B3074C */ inline void setMotionAnm(int, f32);
/* 80B31680 */ void setMotion(int, f32, int);
- /* 80B40D1C */ BOOL drawDbgInfo();
- /* 80B40D24 */ void drawOtherMdls();
+ /* 80B40D1C */ inline BOOL drawDbgInfo();
+ /* 80B40D24 */ inline void drawOtherMdls();
s16 getMessageNo() { return (fopAcM_GetParam(this) >> 8) & 0xFFFF; }
int getWrestlerAction() { return mWrestlerAction; }
u8 getType() { return argument & 0x7F; }
u8 getWrestlerType() { return getType(); }
bool chkAction(actionFunc i_action) { return i_action == field_0xdcc; }
- bool selectAction();
+ inline bool selectAction();
s8 getArenaNo() { return (u8)fopAcM_GetParam(this); }
u32 getStatusNo() { return fopAcM_GetParam(this) >> 24; }
- void setLookMode(int);
- BOOL chkFindPlayer();
- BOOL step(s16, int);
- bool setTalkAngle();
- void setStepAngle();
- void setExpressionTalkAfter();
+ inline void setLookMode(int);
+ inline BOOL chkFindPlayer();
+ inline BOOL step(s16, int);
+ inline bool setTalkAngle();
+ inline void setStepAngle();
+ inline void setExpressionTalkAfter();
void initTalkAngle() { mTurnMode = 0; }
- void setNextSumouEvent(int);
- csXyz* fopAcM_GetHomeAngle_p(fopAc_ac_c* i_actor) { return &i_actor->home.angle; }
- void setBackToLiving();
+ inline void setNextSumouEvent(int);
+ inline void setBackToLiving();
void offWrestlerNoDraw() { mWrestlerNoDraw = 0; }
void onWrestlerNoDraw() { mWrestlerNoDraw = 1; }
- void initDemoCamera_ArenaSide();
- void sumouAI();
- s16 oppositeToPlayer();
- void correctGraspPosAngle(bool);
- void initDemoCamera_ReadyLink();
- void initDemoCamera_ReadyWrestler();
- void playExpression();
+ inline void initDemoCamera_ArenaSide();
+ inline void sumouAI();
+ inline s16 oppositeToPlayer();
+ inline void correctGraspPosAngle(bool);
+ inline void initDemoCamera_ReadyLink();
+ inline void initDemoCamera_ReadyWrestler();
+ inline void playExpression();
static EventFn mEvtSeqList[7];
diff --git a/include/d/actor/d_a_tag_arena.h b/include/d/actor/d_a_tag_arena.h
index bb2d158185..fc7031d672 100644
--- a/include/d/actor/d_a_tag_arena.h
+++ b/include/d/actor/d_a_tag_arena.h
@@ -13,7 +13,7 @@ public:
cXyz getArenaPos() { return home.pos; }
f32 getArenaExtent() { return scale.x * 100.0f; }
s16 getArenaAngle() { return home.angle.y; }
- u16 getArenaNo() { return fopAcM_GetParam(this) & 0xFF; }
+ s16 getArenaNo() { return fopAcM_GetParam(this) & 0xFF; }
};
#endif /* D_A_TAG_ARENA_H */
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 52a032253f..b71590829e 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -425,6 +425,10 @@ inline void fopAcM_SetOldPosition(fopAc_ac_c* i_actor, f32 x, f32 y, f32 z) {
i_actor->old.pos.set(x, y, z);
}
+inline csXyz* fopAcM_GetHomeAngle_p(fopAc_ac_c* i_actor) {
+ return &i_actor->home.angle;
+}
+
inline void fopAcM_SetHomePosition(fopAc_ac_c* i_actor, f32 x, f32 y, f32 z) {
i_actor->home.pos.set(x, y, z);
}
diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/cmath.h b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/cmath.h
index 9b05ec65a9..93524cc491 100644
--- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/cmath.h
+++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/cmath.h
@@ -42,6 +42,11 @@ inline float tan(float num) {
inline float pow(float x, float y) {
return ::pow(x, y);
}
+
+inline float pow(float x, int y) {
+ // FIXME: Needs to use powf
+ return ::pow(x, y);
+}
} // namespace std
#endif
diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h
index 34b65626aa..23dd1334e9 100644
--- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h
+++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h
@@ -63,6 +63,7 @@ double frexp(double, int*);
double ldexp(double, int);
double modf(double, double*);
double pow(double, double);
+float powf(float, float);
double sin(double);
float sinf(float);
double sqrt(double);
diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c
index dc48afa66e..650114d46f 100644
--- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c
+++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c
@@ -3,4 +3,9 @@
/* 8036C780-8036C7A0 3670C0 0020+00 0/0 3/3 24/24 .text pow */
double pow(double x, double y) {
return __ieee754_pow(x, y);
-} \ No newline at end of file
+}
+
+float powf(float x, float y) {
+ // FIXME: Is this correct?
+ return __ieee754_pow(x, y);
+}
diff --git a/src/d/actor/d_a_npc_chat.cpp b/src/d/actor/d_a_npc_chat.cpp
index 12aab6db5c..2e258c1ce2 100644
--- a/src/d/actor/d_a_npc_chat.cpp
+++ b/src/d/actor/d_a_npc_chat.cpp
@@ -3950,7 +3950,7 @@ bool daNpcChat_c::wait(void* param_1) {
if (
dKy_darkworld_check() == 0 && daPy_py_c::checkNowWolf() &&
- fopAcM_searchPlayerDistanceXZ2(this) < std::pow(500.0, 2.0) || mFear
+ fopAcM_searchPlayerDistanceXZ2(this) < std::pow(500.0f, 2.0f) || mFear
) {
setAction(&daNpcChat_c::fear);
if (!mFear) {
@@ -3988,8 +3988,7 @@ bool daNpcChat_c::wait(void* param_1) {
setMotion(i_motion, -1.0f, 1);
}
- if (mTalkFlag) {
- if (dComIfGp_event_getTalkPartner() != this) {
+ if (mTalkFlag && dComIfGp_event_getTalkPartner() != this) {
if (field_0xe51 == 1) {
setMotion(MOT_SITWAIT_A, -1.0f, 0);
} else if (field_0xe51 == 2) {
@@ -3997,7 +3996,6 @@ bool daNpcChat_c::wait(void* param_1) {
} else {
setMotion(MOT_WAIT_A, -1.0f, 0);
}
- }
}
} else if (mTalkFlag) {
mMode = 0;
diff --git a/src/d/actor/d_a_npc_wrestler.cpp b/src/d/actor/d_a_npc_wrestler.cpp
index 61ae710576..0d3cbf6fe8 100644
--- a/src/d/actor/d_a_npc_wrestler.cpp
+++ b/src/d/actor/d_a_npc_wrestler.cpp
@@ -15,6 +15,9 @@
#include "d/d_camera.h"
#include "m_Do/m_Do_graphic.h"
#include "d/d_meter2_info.h"
+#if DEBUG
+#include "JSystem/JHostIO/JORFile.h"
+#endif
enum Bou3_RES_File_ID {
/* BCK */
@@ -359,18 +362,7 @@ static char* l_evtNames[7] = {
static char* l_myName = "Wrestler";
/* 80B42E24-80B42E28 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static daNpcWrestler_Param_c l_HIO;
-
-/* 80B4266C-80B426C0 000874 0054+00 0/2 0/0 0/0 .data mEvtSeqList__15daNpcWrestler_c */
-daNpcWrestler_c::EventFn daNpcWrestler_c::mEvtSeqList[7] = {
- NULL,
- &daNpcWrestler_c::EvCut_grDSEntry,
- &daNpcWrestler_c::EvCut_grDSEntry2,
- &daNpcWrestler_c::EvCut_grDSEntry3_4,
- &daNpcWrestler_c::EvCut_grDSEntry3_4,
- &daNpcWrestler_c::EvCut_grDSEntry5,
- &daNpcWrestler_c::EvCut_grDSLose,
-};
+static NPC_WRESTLER_HIO_CLASS l_HIO;
/* 80B416DC-80B41870 000000 0194+00 35/35 0/0 0/0 .rodata m__21daNpcWrestler_Param_c */
const daNpcWrestler_HIOParam daNpcWrestler_Param_c::m = {
@@ -410,16 +402,13 @@ const daNpcWrestler_HIOParam daNpcWrestler_Param_c::m = {
0,
30,
60,
- 0,
3,
10,
- 0,
0.5f,
180.0f,
500.0f,
0.05f,
15,
- 0,
0.0f,
30.0f,
20.0f,
@@ -429,7 +418,6 @@ const daNpcWrestler_HIOParam daNpcWrestler_Param_c::m = {
400,
400,
0xFF00,
- 0,
400.0f,
14,
11,
@@ -501,6 +489,151 @@ const daNpcWrestler_HIOParam daNpcWrestler_Param_c::m = {
0.0f,
};
+#if DEBUG
+void daNpcWrestler_HIO_Node_c::genMessage(JORMContext* ctext) {
+ // Real shadow size
+ ctext->genSlider("リアル影サイズ", &field_0x4->real_shadow_size, 0.0f, 1000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // reasonable distance
+ ctext->genSlider("見合う距離", &field_0x4->reasonable_distance, 0.0f, 500.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // grappling distance
+ ctext->genSlider("組み合い距離", &field_0x4->grapple_distance, 0.0f, 200.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // reconfig distance
+ ctext->genSlider("再配置距離", &field_0x4->reconfig_distance, 0.0f, 500.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // lateral movement time
+ ctext->genSlider("横移動時間", &field_0x4->lateral_movement_time, 0, 150, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // lateral movement speed
+ ctext->genSlider("横移動速度", &field_0x4->horizontal_movement_speed, 0, 0x1000, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // wandering time
+ ctext->genSlider("ふらふら時間", &field_0x4->stagger_time, 0, 300, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // waiting time
+ ctext->genSlider("待ち時間", &field_0x4->wait_time, 0, 300, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // "§ ↓Please set it so that the total sum is 100↓ §"
+ ctext->genLabel("§ ↓全部足して100になるように設定してください↓ §", 0, 0, NULL, -1, -1, 0x200, 0x18);
+ // "§ Practice Use §"
+ ctext->genLabel("§ 練習用 §", 0, 0, NULL, -1, -1, 0x200, 0x18);
+ // lateral movement probability
+ ctext->genSlider(" 横移動 の確率", &field_0x4->chances[0].lateral_movement_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // slap probability
+ ctext->genSlider(" 張り手 の確率", &field_0x4->chances[0].hit_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // tackle probability
+ ctext->genSlider("タックルの確率", &field_0x4->chances[0].tackle_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // waiting probability
+ ctext->genSlider(" 待 機 の確率", &field_0x4->chances[0].wait_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // "§ For production use §"
+ ctext->genLabel("§ 本番用 §", 0, 0, NULL, -1, -1, 0x200, 0x18);
+ // lateral movement probability
+ ctext->genSlider(" 横移動 の確率", &field_0x4->chances[1].lateral_movement_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // slap probability
+ ctext->genSlider(" 張り手 の確率", &field_0x4->chances[1].hit_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // tackle probability
+ ctext->genSlider("タックルの確率", &field_0x4->chances[1].tackle_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // waiting probability
+ ctext->genSlider(" 待 機 の確率", &field_0x4->chances[1].wait_chance,
+ 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // "§ ↑Please set it so that the total sum is 100↑ §"
+ ctext->genLabel("§ ↑全部足して100になるように設定してください↑ §", 0, 0, NULL, -1, -1, 0x200, 0x18);
+ // bending limit
+ ctext->genSlider("曲がり限界", &field_0x4->bending_limit, 0, 0x1000, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+}
+
+daNpcWrestler_HIO_c::daNpcWrestler_HIO_c() {
+ m = daNpcWrestler_Param_c::m;
+ for (int i = 0; i < 2; i++) {
+ field_0x19c[i].setParam(&m.mTypeParams[i]);
+ }
+}
+
+void daNpcWrestler_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
+ char msg_buffer[1988];
+ JORReflexible::listenPropertyEvent(event);
+
+ JORFile aJStack_910;
+ int len;
+ switch (reinterpret_cast<u32>(event->id)) {
+ case 0x40000002:
+ if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
+ memset(msg_buffer, 0, 2000);
+ len = 0;
+ daNpcF_commonListenPropertyEvent(msg_buffer, &len, &m.common);
+ len = strlen(msg_buffer);
+ aJStack_910.writeData(msg_buffer, len);
+ aJStack_910.close();
+ OS_REPORT("write append success!::%6d\n", len);
+ } else {
+ OS_REPORT("write append failure!\n");
+ }
+ break;
+ }
+}
+
+void daNpcWrestler_HIO_c::genMessage(JORMContext* ctext) {
+ // TODO
+ // Horizontal speed
+ ctext->genSlider("水平速度", &m.horizontal_speed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // vertical velocity
+ ctext->genSlider("垂直速度", &m.vertical_speed, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // --- AI action ---
+ ctext->startComboBox("AI行動", &m.ai_action, 0, NULL, 0xffff, 0xffff, 0x100, 0x1a);
+ // no specification
+ ctext->genComboBoxItem("指定無し", 0);
+ // lateral movement
+ ctext->genComboBoxItem("横移動", 1);
+ // slap
+ ctext->genComboBoxItem("張り手", 2);
+ // tackle
+ ctext->genComboBoxItem("タックル", 3);
+ // wait
+ ctext->genComboBoxItem("待ち", 4);
+ ctext->endComboBox();
+ // rotating share
+ ctext->genSlider("回転割り", &m.rotation, 0, 30, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // Slap hit impact
+ ctext->startComboBox("張り手Hit衝撃", &m.slap_hit_impact, 0, NULL, 0xffff, 0xffff, 0x100, 0x1a);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER1", 1);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER2", 2);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER3", 3);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER4", 4);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER5", 5);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER6", 6);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER7", 7);
+ ctext->genComboBoxItem("VIBMODE_Q_POWER8", 8);
+ ctext->endComboBox();
+ // Ready? Appearance time
+ ctext->genSlider("Ready? 出現時間", &m.ready_appearance_time, 0, 300, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // Fight! Appearance time
+ ctext->genSlider("Fight! 出現時間", &m.fight_appearance_time, 0, 300, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // camera rotation angle
+ ctext->genSlider("カメラ回転角", &m.camera_rotation_angle, 0.0f, 2.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // sound at the edge of the ring
+ ctext->genSlider("音 土俵際距離", &m.ring_edge_sound, 0.0f, 500.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // movement at the edge of the ring
+ ctext->genSlider("動 土俵際距離", &m.ring_edge_movement, 0.0f, 500.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ daNpcF_commonGenMessage(ctext, &m.common);
+ // Bo
+ ctext->genNode("ボウ", &field_0x19c[0], 0, 0);
+ // Elder Goron Fatso
+ ctext->genNode("長老ゴロン デブ", &field_0x19c[1], 0, 0);
+}
+#endif
+
+/* 80B4266C-80B426C0 000874 0054+00 0/2 0/0 0/0 .data mEvtSeqList__15daNpcWrestler_c */
+daNpcWrestler_c::EventFn daNpcWrestler_c::mEvtSeqList[7] = {
+ NULL,
+ &daNpcWrestler_c::EvCut_grDSEntry,
+ &daNpcWrestler_c::EvCut_grDSEntry2,
+ &daNpcWrestler_c::EvCut_grDSEntry3_4,
+ &daNpcWrestler_c::EvCut_grDSEntry3_4,
+ &daNpcWrestler_c::EvCut_grDSEntry5,
+ &daNpcWrestler_c::EvCut_grDSLose,
+};
+
daNpcWrestler_c::daNpcWrestler_c() {
// empty function
}
@@ -512,6 +645,10 @@ daNpcWrestler_c::~daNpcWrestler_c() {
if (heap != NULL) {
mpMorf->stopZelAnime();
}
+
+#if DEBUG
+ l_HIO.removeHIO();
+#endif
}
/* 80B2F688-80B2F974 0004E8 02EC+00 1/1 0/0 0/0 .text Create__15daNpcWrestler_cFv */
@@ -528,12 +665,17 @@ cPhs__Step daNpcWrestler_c::Create() {
}
if (phase == cPhs_COMPLEATE_e) {
- if (!fopAcM_entrySolidHeap(this, createHeapCallBack, mType == 0 ? 0x49B0 : 0x3A40)) {
+ u32 i_size = mType == 0 ? 0x49B0 : 0x3A40;
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, i_size)) {
return cPhs_ERROR_e;
}
- field_0xbd8 = &daNpcWrestler_Param_c::m;
+ field_0xbd8 = &l_HIO.m;
field_0xbdc = &field_0xbd8->mTypeParams[mType];
+#if DEBUG
+ // Sumo wrestler:
+ l_HIO.entryHIO("力士");
+#endif
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -160.0f, -50.0f, -160.0f, 160.0f, 220.0f, 160.0f);
@@ -565,10 +707,13 @@ cPhs__Step daNpcWrestler_c::Create() {
/* 80B2F974-80B2FBF4 0007D4 0280+00 1/1 0/0 0/0 .text CreateHeap__15daNpcWrestler_cFv */
int daNpcWrestler_c::CreateHeap() {
- J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resName[mType], l_bmdGetParamList[mType]);
+ J3DModelData* mdlData_p = NULL;
+ J3DModel* model = NULL;
+ mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resName[mType], l_bmdGetParamList[mType]);
JUT_ASSERT(830, NULL != mdlData_p);
- mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020284);
+ u32 reg_r23 = 0x11020284;
+ mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, reg_r23);
if (mpMorf != NULL && mpMorf->getModel() == NULL) {
mpMorf->stopZelAnime();
mpMorf = NULL;
@@ -577,7 +722,7 @@ int daNpcWrestler_c::CreateHeap() {
return 0;
}
- J3DModel* model = mpMorf->getModel();
+ model = mpMorf->getModel();
for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
}
@@ -598,7 +743,7 @@ int daNpcWrestler_c::CreateHeap() {
/* 80B2FDB0-80B2FDE4 000C10 0034+00 1/1 0/0 0/0 .text Delete__15daNpcWrestler_cFv */
int daNpcWrestler_c::Delete() {
- fopAcM_GetID(this);
+ fopAcM_RegisterDeleteID(this, "NPC_WRESTLER");
this->~daNpcWrestler_c();
return 1;
}
@@ -618,7 +763,7 @@ int daNpcWrestler_c::Draw() {
J3DModelData* model_data = mpMorf->getModel()->getModelData();
model_data->getMaterialNodePointer(1)->setMaterialAnm(mpMatAnm);
- return draw(FALSE, FALSE, field_0xbdc->field_0xc, NULL, FALSE);
+ return draw(FALSE, FALSE, field_0xbdc->real_shadow_size, NULL, FALSE);
}
/* 80B2FE84-80B30150 000CE4 02CC+00 1/1 0/0 0/0 .text ctrlJoint__15daNpcWrestler_cFP8J3DJointP8J3DModel */
@@ -711,7 +856,7 @@ bool daNpcWrestler_c::checkStartUp() {
}
/* 80B405E8-80B40B3C 011448 0554+00 1/1 0/0 0/0 .text setAttnPos__15daNpcWrestler_cFv */
-inline void daNpcWrestler_c::setAttnPos() {
+void daNpcWrestler_c::setAttnPos() {
static cXyz eyeOffset(-10.0f, 10.0f, 0.0f);
cXyz* attnPos = NULL;
cXyz sp44, sp50, sp5c;
@@ -783,7 +928,7 @@ inline void daNpcWrestler_c::setAttnPos() {
}
/* 80B3023C-80B30654 00109C 0418+00 2/0 0/0 0/0 .text setExpressionAnm__15daNpcWrestler_cFib */
-inline bool daNpcWrestler_c::setExpressionAnm(int param_1, bool param_2) {
+bool daNpcWrestler_c::setExpressionAnm(int param_1, bool param_2) {
mAnmFlags &= 0xFFFFE03F;
J3DAnmTransform* anmTransform = (field_0xe04->bck_list[param_1].fileIdx >= 0) ?
@@ -925,7 +1070,7 @@ inline bool daNpcWrestler_c::setExpressionAnm(int param_1, bool param_2) {
}
/* 80B30654-80B3074C 0014B4 00F8+00 1/0 0/0 0/0 .text setExpressionBtp__15daNpcWrestler_cFi */
-inline bool daNpcWrestler_c::setExpressionBtp(int param_1) {
+bool daNpcWrestler_c::setExpressionBtp(int param_1) {
J3DAnmTexPattern* anmTexPattern = (field_0xe04->btp_list[param_1].fileIdx >= 0) ?
getTexPtrnAnmP(l_resName[mType], field_0xe04->btp_list[param_1].fileIdx) : NULL;
@@ -951,39 +1096,44 @@ inline bool daNpcWrestler_c::setExpressionBtp(int param_1) {
return 0;
}
-inline void daNpcWrestler_c::setBackToLiving() {
- if (mType != 1) {
- daPy_py_c* player = daPy_getPlayerActorClass();
- daNpcBouS_c* bou = (daNpcBouS_c*)fpcM_SearchByID(parentActorID);
- JUT_ASSERT(2205, bou != NULL);
+void daNpcWrestler_c::setBackToLiving() {
+ if (mType == 1) {
+ return;
+ }
- bou->setMessageNo(7);
- bou->setForcibleTalk();
- bou->onDispFlag();
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ daNpcBouS_c* bou = (daNpcBouS_c*)fpcM_SearchByID(parentActorID);
+ JUT_ASSERT(2205, bou != NULL);
- s16 sVar1 = fopAcM_GetHomeAngle_p(bou)->y + 0x8000;
- mDoMtx_stack_c::transS(fopAcM_GetPosition(bou));
- mDoMtx_stack_c::YrotM(fopAcM_GetShapeAngle_p(bou)->y);
- cXyz sp28(0.0f, 0.0f, field_0xbdc->field_0x1c);
- mDoMtx_stack_c::multVec(&sp28, &sp28);
+ bou->setMessageNo(7);
+ bou->setForcibleTalk();
+ bou->onDispFlag();
- player->setPlayerPosAndAngle(&sp28, sVar1, 0);
+ s16 sVar1 = fopAcM_GetHomeAngle_p(bou)->y + 0x8000;
+ mDoMtx_stack_c::transS(fopAcM_GetPosition(bou));
+ mDoMtx_stack_c::YrotM(fopAcM_GetShapeAngle_p(bou)->y);
+ cXyz sp28(0.0f, 0.0f, field_0xbdc->reconfig_distance);
+ mDoMtx_stack_c::multVec(&sp28, &sp28);
- if (mType == 0) {
- player->setClothesChange(0);
- OS_REPORT("リンクさん!出番です!着替えてください!\n"); // Link! It's your turn! Get changed!
- }
+ player->setPlayerPosAndAngle(&sp28, sVar1, 0);
- if (daNpcF_chkTmpBit(0x2F)) {
- fopAcM_onSwitch(this, 0x46);
- }
+ if (mType == 0) {
+ player->setClothesChange(0);
+ OS_REPORT("リンクさん!出番です!着替えてください!\n"); // Link! It's your turn! Get changed!
+ }
- field_0xe99 = 1;
+ if (daNpcF_chkTmpBit(0x2F)) {
+ fopAcM_onSwitch(this, 0x46);
}
+
+ field_0xe99 = 1;
}
/* 80B3074C-80B308B0 0015AC 0164+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcWrestler_cFif */
void daNpcWrestler_c::setMotionAnm(int param_1, f32 param_2) {
+#if DEBUG
+ const static int btkType = 0;
+#endif
J3DAnmTransformKey* anmTransformKey = (field_0xe04->bck_list[param_1].fileIdx >= 0)?
getTrnsfrmKeyAnmP(l_resName[mType], field_0xe04->bck_list[param_1].fileIdx) : NULL;
@@ -1005,6 +1155,48 @@ void daNpcWrestler_c::setMotionAnm(int param_1, f32 param_2) {
}
}
+#if DEBUG
+static s16 dummy_lit_123932(int sel) {
+ const s16 arr[2] = {0x00C8, 0x00FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123935(int sel) {
+ const s16 arr[2] = {0xC800, 0x00FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123941(int sel) {
+ const s16 arr[2] = {0x0000, 0xC8FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_1239443(int sel) {
+ const s16 arr[2] = {0x0000, 0xC8FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123947(int sel) {
+ const s16 arr[2] = {0x0000, 0xC8FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123950(int sel) {
+ const s16 arr[2] = {0x8080, 0x80A0};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123953(int sel) {
+ const s16 arr[2] = {0x8080, 0x80A0};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123964(int sel) {
+ const s16 arr[2] = {0xFFFF, 0xFFFF};
+ return arr[sel];
+}
+#endif
+
/* 80B308B0-80B30AD8 001710 0228+00 1/1 0/0 0/0 .text reset__15daNpcWrestler_cFv */
void daNpcWrestler_c::reset() {
initialize();
@@ -1054,37 +1246,37 @@ void daNpcWrestler_c::reset() {
mMotionMorfOverride = 0.0f;
}
-inline void daNpcWrestler_c::setNextSumouEvent(int i_sumouEventNo) {
+void daNpcWrestler_c::setNextSumouEvent(int i_sumouEventNo) {
if (i_sumouEventNo == -1) {
i_sumouEventNo = mItemNo;
}
OS_REPORT("相撲イベント要求 ステータスNo=%d\n", i_sumouEventNo);
switch (i_sumouEventNo) {
- case 1:
- return;
-
case 2:
setAction(&daNpcWrestler_c::demoSumouReady);
- return;
+ break;
case 3:
setAction(&daNpcWrestler_c::sumouReady);
- return;
+ break;
case 4:
setAction(&daNpcWrestler_c::gotoLiving);
- return;
+ break;
+
+ default:
+ setAction(&daNpcWrestler_c::wait);
+ break;
+ case 1:
case 5:
- return;
+ break;
}
-
- setAction(&daNpcWrestler_c::wait);
}
/* 80B30AD8-80B30B80 001938 00A8+00 1/1 0/0 0/0 .text setAction__15daNpcWrestler_cFM15daNpcWrestler_cFPCvPvPv_b */
-inline int daNpcWrestler_c::setAction(actionFunc action) {
+int daNpcWrestler_c::setAction(actionFunc action) {
field_0xe96 = 3;
if (field_0xdcc != NULL) {
(this->*field_0xdcc)(NULL);
@@ -1101,7 +1293,8 @@ inline int daNpcWrestler_c::setAction(actionFunc action) {
/* 80B30B80-80B30BEC 0019E0 006C+00 1/1 0/0 0/0 .text s_sub1__FPvPv */
static void* s_sub1(void* i_actor, void* i_data) {
- if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_Tag_Arena && ((daNpcWrestler_c*)i_data)->checkArenaSub((daNpcWrestler_c*)i_actor)) {
+ if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_Tag_Arena
+ && ((daNpcWrestler_c*)i_data)->checkArenaSub((daNpcWrestler_c*)i_actor)) {
return i_actor;
}
@@ -1136,6 +1329,7 @@ bool daNpcWrestler_c::checkArenaSub(fopAc_ac_c* actor) {
/* 80B30CC8-80B30D48 001B28 0080+00 1/1 0/0 0/0 .text s_sub2__FPvPv */
static void* s_sub2(void* i_actor, void* i_data) {
+ (void) i_data;
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_GRA) {
daNpc_grA_c* goron = (daNpc_grA_c*)i_actor;
if (goron->getType() == 3) {
@@ -1178,13 +1372,13 @@ void daNpcWrestler_c::setOnToArena(f32 param_1) {
}
}
-inline void daNpcWrestler_c::setLookMode(int mode) {
- if (mode > -1 && mode < 4 && mode != mLookMode) {
+void daNpcWrestler_c::setLookMode(int mode) {
+ if (mode >= 0 && mode < 4 && mode != mLookMode) {
mLookMode = mode;
}
}
-inline BOOL daNpcWrestler_c::chkFindPlayer() {
+BOOL daNpcWrestler_c::chkFindPlayer() {
BOOL bVar1 = FALSE;
if (mActorMngr[0].getActorP() == NULL) {
bVar1 = chkPlayerInSpeakArea(this);
@@ -1203,7 +1397,7 @@ inline BOOL daNpcWrestler_c::chkFindPlayer() {
return bVar1;
}
-inline BOOL daNpcWrestler_c::step(s16 param_1, int param_2) {
+BOOL daNpcWrestler_c::step(s16 param_1, int param_2) {
if (mTurnMode == 0) {
s16 ang_diff = param_1 - mCurAngle.y;
if (mCurAngle.y == param_1) {
@@ -1236,7 +1430,7 @@ inline BOOL daNpcWrestler_c::step(s16 param_1, int param_2) {
return (1 < mTurnMode);
}
-inline void daNpcWrestler_c::playExpression() {
+void daNpcWrestler_c::playExpression() {
daNpcF_anmPlayData playData0 = {0x13, field_0xbd8->common.morf_frame, 0};
daNpcF_anmPlayData* pDat0[1] = {&playData0};
daNpcF_anmPlayData playData1 = {0x17, field_0xbd8->common.morf_frame, 1};
@@ -1266,7 +1460,7 @@ inline void daNpcWrestler_c::playExpression() {
}
/* 80B3FCE8-80B404FC 010B48 0814+00 1/2 0/0 0/0 .text playMotion__15daNpcWrestler_cFv */
-inline void daNpcWrestler_c::playMotion() {
+void daNpcWrestler_c::playMotion() {
daNpcF_anmPlayData playData0 = {0x39, field_0xbd8->common.morf_frame, 0};
daNpcF_anmPlayData* pDat0[1] = {&playData0};
daNpcF_anmPlayData playData1 = {0x39, 0.0f, 0};
@@ -1376,7 +1570,7 @@ inline void daNpcWrestler_c::playMotion() {
}
/* 80B40B3C-80B40D1C 01199C 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcWrestler_cFv */
-inline void daNpcWrestler_c::lookat() {
+void daNpcWrestler_c::lookat() {
daPy_py_c* player = NULL;
J3DModel* model = mpMorf->getModel();
BOOL snap = FALSE;
@@ -1428,7 +1622,7 @@ inline void daNpcWrestler_c::lookat() {
}
/* 80B33B3C-80B34654 00499C 0B18+00 1/1 0/0 0/0 .text setNextAction__15daNpcWrestler_cFv */
-inline bool daNpcWrestler_c::setNextAction() {
+bool daNpcWrestler_c::setNextAction() {
daPy_py_c* player = daPy_getPlayerActorClass();
if (mType == 1 && !player->checkEquipHeavyBoots()) {
@@ -1536,7 +1730,7 @@ inline bool daNpcWrestler_c::setNextAction() {
}
/* 80B30F00-80B31680 001D60 0780+00 13/1 0/0 0/0 .text wait__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::wait(void* param_1) {
+bool daNpcWrestler_c::wait(void* param_1) {
switch (field_0xe96) {
case 0: {
setExpression(5, -1.0f);
@@ -1554,22 +1748,14 @@ inline bool daNpcWrestler_c::wait(void* param_1) {
if (dComIfGp_event_chkTalkXY() == 0 || dComIfGp_evmng_ChkPresentEnd()) {
if (mType == 1 && field_0xe99 == 0 && daNpcF_chkEvtBit(0x3A)
&& !daNpcF_chkEvtBit(0x3E) && daNpcF_chkEvtBit(0x3F)) {
- s16 sVar1;
- if (current.pos.z > 200.0f) {
- sVar1 = 3;
- } else {
- sVar1 = 4;
- }
-
- mOrderEvtNo = sVar1;
-
+ mOrderEvtNo = (current.pos.z > 200.0f) ? 3 : 4;
changeEvent(l_resName[mType], l_evtNames[mOrderEvtNo], 1, 0xFFFF);
setAction(&daNpcWrestler_c::demo);
- break;
} else {
setAction(&daNpcWrestler_c::talk);
- break;
}
+
+ break;
}
} else {
dEvent_manager_c& ev_mng = dComIfGp_getEventManager();
@@ -1653,8 +1839,13 @@ void daNpcWrestler_c::setExpression(int i_expression, f32 i_expressionMorfOvveri
}
}
-inline bool daNpcWrestler_c::setTalkAngle() {
- s16 playerAngleY = (int) fopAcM_searchPlayerAngleY(this);
+bool daNpcWrestler_c::setTalkAngle() {
+#if VERSION == VERSION_SHIELD_DEBUG
+ s16 playerAngleY = fopAcM_searchPlayerAngleY(this);
+#else
+ // FIXME: Possible fakematch?
+ s16 playerAngleY = (int) fopAcM_searchPlayerAngleY(this);
+#endif
if (playerAngleY == mCurAngle.y) {
return true;
}
@@ -1668,7 +1859,7 @@ inline bool daNpcWrestler_c::setTalkAngle() {
return false;
}
-inline void daNpcWrestler_c::setExpressionTalkAfter() {
+void daNpcWrestler_c::setExpressionTalkAfter() {
switch (mExpression) {
case 1:
setExpression(3, -1.0f);
@@ -1685,7 +1876,7 @@ inline void daNpcWrestler_c::setExpressionTalkAfter() {
}
/* 80B316F4-80B31EB0 002554 07BC+00 3/0 0/0 0/0 .text talk__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::talk(void* param_1) {
+bool daNpcWrestler_c::talk(void* param_1) {
bool rv = false;
int i_expression, i_motion, iVar3;
@@ -1780,7 +1971,7 @@ inline bool daNpcWrestler_c::talk(void* param_1) {
}
/* 80B31EB0-80B32058 002D10 01A8+00 4/0 0/0 0/0 .text demo__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::demo(void* param_1) {
+bool daNpcWrestler_c::demo(void* param_1) {
dEvent_manager_c* eventManager = &dComIfGp_getEventManager();
switch (field_0xe96) {
@@ -1798,8 +1989,7 @@ inline bool daNpcWrestler_c::demo(void* param_1) {
}
if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager->endCheck(mEventIdx)) {
- u16 asdf = mOrderEvtNo;
- (void) asdf;
+ // How to load mOrderEvtNo ?
dComIfGp_event_reset();
mOrderEvtNo = 0;
mEventIdx = -1;
@@ -1824,9 +2014,8 @@ inline bool daNpcWrestler_c::demo(void* param_1) {
}
/* 80B32058-80B32444 002EB8 03EC+00 7/0 0/0 0/0 .text gotoArena__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::gotoArena(void* param_1) {
+bool daNpcWrestler_c::gotoArena(void* param_1) {
dCamera_c* camBody = dCam_getBody();
- int iVar1;
switch (field_0xe96) {
case 0:
@@ -1856,9 +2045,7 @@ inline bool daNpcWrestler_c::gotoArena(void* param_1) {
break;
case 1:
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 != 0) {
+ if (field_0xe80-- != 0) {
field_0xe9a = 1;
field_0xe80 = field_0xbd8->field_0x8c + 1;
field_0xe84++;
@@ -1866,9 +2053,7 @@ inline bool daNpcWrestler_c::gotoArena(void* param_1) {
break;
case 2: {
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 <= 0) {
+ if (field_0xe80-- <= 0) {
setNextSumouEvent(-1);
}
@@ -1896,7 +2081,7 @@ inline bool daNpcWrestler_c::gotoArena(void* param_1) {
}
/* 80B32444-80B32850 0032A4 040C+00 1/0 0/0 0/0 .text gotoLiving__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::gotoLiving(void* param_1) {
+bool daNpcWrestler_c::gotoLiving(void* param_1) {
dCamera_c* camBody = dCam_getBody();
int iVar1;
@@ -1963,15 +2148,13 @@ inline bool daNpcWrestler_c::gotoLiving(void* param_1) {
return true;
}
-inline void daNpcWrestler_c::initDemoCamera_ArenaSide() {
- dCamera_c* camBody = dCam_getBody();
-
- mDemoCamFovy = camBody->Fovy();
+void daNpcWrestler_c::initDemoCamera_ArenaSide() {
+ mDemoCamFovy = dCam_getBody()->Fovy();
field_0xe58 = field_0xbd8->field_0xac;
field_0xe54 = field_0xbd8->camera_rotation_angle * 65535.0f;
mDemoCam.mDemoCamCenter.set(mArenaPos.x, mArenaPos.y + 50.0f, mArenaPos.z);
- field_0xe5e = mArenaAngle;
+ field_0xe5e = s16(mArenaAngle);
mDoMtx_stack_c::transS(mDemoCam.mDemoCamCenter);
mDoMtx_stack_c::YrotM(field_0xe54 + fopAcM_GetShapeAngle_p(daPy_getPlayerActorClass())->y);
@@ -1983,7 +2166,6 @@ inline void daNpcWrestler_c::initDemoCamera_ArenaSide() {
bool daNpcWrestler_c::sumouReady(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
dCamera_c* camBody = dCam_getBody();
- int iVar1;
switch (field_0xe96) {
case 0:
@@ -2028,13 +2210,13 @@ bool daNpcWrestler_c::sumouReady(void* param_1) {
camBody->Stop();
camBody->SetTrimSize(2);
camBody->Set(mDemoCam.mDemoCamCenter, mDemoCam.mDemoCamEye, mDemoCamFovy, 0);
- setOnToArena(field_0xbdc->field_0x14 * 0.5f);
+ setOnToArena(field_0xbdc->reasonable_distance * 0.5f);
field_0xe9a = 0;
field_0xe84++;
break;
}
- setOnToArena(field_0xbdc->field_0x14 * 0.5f);
+ setOnToArena(field_0xbdc->reasonable_distance * 0.5f);
field_0xe9a = 0;
field_0xe84++;
// fallthrough
@@ -2061,10 +2243,7 @@ bool daNpcWrestler_c::sumouReady(void* param_1) {
break;
case 3:
- iVar1 = field_0xe80;
- field_0xe80--;
-
- if (iVar1 <= 0) {
+ if (field_0xe80-- <= 0) {
camBody->Set(mDemoCam.mDemoCamCenter, mDemoCam.mDemoCamEye, mDemoCamFovy, 0);
camBody->Reset(mDemoCam.mDemoCamCenter, mDemoCam.mDemoCamEye);
camBody->SetTrimSize(0);
@@ -2082,10 +2261,7 @@ bool daNpcWrestler_c::sumouReady(void* param_1) {
break;
case 4:
- iVar1 = field_0xe80;
- field_0xe80++;
-
- if (iVar1 > field_0xbd8->ready_appearance_time) {
+ if (field_0xe80++ > field_0xbd8->ready_appearance_time) {
dMeter2Info_setMeterString(0x515);
Z2GetAudioMgr()->seStart(Z2SE_SY_SUMO_READY, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
field_0xe80 = 0;
@@ -2094,9 +2270,7 @@ bool daNpcWrestler_c::sumouReady(void* param_1) {
break;
case 5:
- iVar1 = field_0xe80;
- field_0xe80++;
- if (iVar1 > field_0xbd8->fight_appearance_time) {
+ if (field_0xe80++ > field_0xbd8->fight_appearance_time) {
dMeter2Info_setMeterString(0x516);
Z2GetAudioMgr()->seStart(Z2SE_SY_SUMO_START, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
Z2GetAudioMgr()->changeSubBgmStatus(1);
@@ -2129,13 +2303,19 @@ bool daNpcWrestler_c::sumouReady(void* param_1) {
case 3: {
break;
}
+
+ default:
+ JUT_ASSERT(3181, FALSE);
+ break;
}
return 1;
}
-inline void daNpcWrestler_c::sumouAI() {
+void daNpcWrestler_c::sumouAI() {
if (mType == 1 && !daPy_getPlayerActorClass()->checkEquipHeavyBoots()) {
+ // The following is to force dbg asm stack to use r31:
+ int unused;
mWrestlerAction = 0;
return;
}
@@ -2163,13 +2343,13 @@ inline void daNpcWrestler_c::sumouAI() {
}
}
-inline s16 daNpcWrestler_c::oppositeToPlayer() {
+s16 daNpcWrestler_c::oppositeToPlayer() {
s16 rv = cLib_addCalcAngleS(&mCurAngle.y, fopAcM_searchPlayerAngleY(this), field_0xbd8->rotation, 0x4000, 0x40);
setAngle(mCurAngle.y);
return rv;
}
-inline void daNpcWrestler_c::correctGraspPosAngle(bool param_1) {
+void daNpcWrestler_c::correctGraspPosAngle(bool param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
cXyz sp24(0.0f, 0.0f, field_0xbdc->grapple_distance);
mDoMtx_stack_c::transS(*player->getViewerCurrentPosP());
@@ -2183,12 +2363,12 @@ inline void daNpcWrestler_c::correctGraspPosAngle(bool param_1) {
}
/* 80B339EC-80B33B3C 00484C 0150+00 13/13 0/0 0/0 .text checkOutOfArenaP__15daNpcWrestler_cFv */
-inline bool daNpcWrestler_c::checkOutOfArenaP() {
+bool daNpcWrestler_c::checkOutOfArenaP() {
if (mArenaInfo.chkFlag == 0) {
return false;
}
- f32 fVar1 = pow(mArenaExtent, 2.0);
+ f32 fVar1 = std::pow(mArenaExtent, 2);
daPy_py_c* player = daPy_getPlayerActorClass();
cXyz left_foot_pos = player->getLeftFootPos();
cXyz right_foot_pos = player->getRightFootPos();
@@ -2196,10 +2376,7 @@ inline bool daNpcWrestler_c::checkOutOfArenaP() {
}
/* 80B331CC-80B339EC 00402C 0820+00 14/0 0/0 0/0 .text sumouWait__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::sumouWait(void* param_1) {
- daPy_py_c* player;
- int iVar1;
-
+bool daNpcWrestler_c::sumouWait(void* param_1) {
switch (field_0xe96) {
case 0:
field_0xe80 = field_0xbdc->wait_time;
@@ -2211,21 +2388,20 @@ inline bool daNpcWrestler_c::sumouWait(void* param_1) {
field_0xe96 = 2;
break;
- case 2:
+ case 2: {
correctGraspPosAngle(true);
- if (cLib_distanceAngleS(mCurAngle.y, fopAcM_searchPlayerAngleY(this)) < 0x600) {
+ int dist_angle = cLib_distanceAngleS(mCurAngle.y, fopAcM_searchPlayerAngleY(this));
+ if (dist_angle < 0x600) {
setMotion(8, 6.0f, 0);
} else {
setMotion(9, 6.0f, 0);
}
if (!setNextAction()) {
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 < 0) {
- player = daPy_getPlayerActorClass();
- if (mType == 1 && !daPy_getPlayerActorClass()->checkEquipHeavyBoots()) {
+ if (field_0xe80-- < 0) {
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ if (mType == 1 && !player->checkEquipHeavyBoots()) {
setAction(&daNpcWrestler_c::sumouPunchHit);
daPy_getPlayerActorClass()->setSumouForcePunch();
} else {
@@ -2255,6 +2431,9 @@ inline bool daNpcWrestler_c::sumouWait(void* param_1) {
case 5:
setAction(&daNpcWrestler_c::sumouWait);
break;
+
+ default:
+ JUT_ASSERT(3294, FALSE);
}
}
}
@@ -2264,16 +2443,20 @@ inline bool daNpcWrestler_c::sumouWait(void* param_1) {
setAction(&daNpcWrestler_c::demoSumouWin2);
}
break;
+ }
case 3:
break;
+
+ default:
+ JUT_ASSERT(3310, FALSE);
}
return true;
}
/* 80B34654-80B34CD0 0054B4 067C+00 2/0 0/0 0/0 .text sumouPunchHit__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::sumouPunchHit(void* param_1) {
+bool daNpcWrestler_c::sumouPunchHit(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
int jointNo = mType == 0 ? 0x12 : 0x11;
cXyz sp2c;
@@ -2397,8 +2580,7 @@ bool daNpcWrestler_c::sumouPunchChaseHit(void* param_1) {
field_0xdd8->becomeImmortalEmitter();
}
- field_0xde0 = NULL;
- field_0xddc = NULL;
+ field_0xddc = field_0xde0 = NULL;
field_0xe96 = 2;
break;
@@ -2454,7 +2636,7 @@ bool daNpcWrestler_c::sumouPunchChaseHit(void* param_1) {
}
break;
- case 3:
+ case 3: {
if (field_0xdd8 != NULL) {
field_0xdd8->quitImmortalEmitter();
field_0xdd8 = NULL;
@@ -2471,24 +2653,29 @@ bool daNpcWrestler_c::sumouPunchChaseHit(void* param_1) {
}
mDoMtx_stack_c::transS(current.pos);
- mDoMtx_stack_c::YrotM(cLib_targetAngleY(daPy_getPlayerActorClass()->getViewerCurrentPosP(), &current.pos));
+ s16 tgt_angle = cLib_targetAngleY(daPy_getPlayerActorClass()->getViewerCurrentPosP(), &current.pos);
+ mDoMtx_stack_c::YrotM(tgt_angle);
current.pos.set(0.0f, 0.0f, -63.5f);
mDoMtx_stack_c::multVec(&current.pos, &current.pos);
break;
+ }
+
+ default:
+ JUT_ASSERT(3509, FALSE);
}
return true;
}
/* 80B35780-80B358F0 0065E0 0170+00 8/8 0/0 0/0 .text checkOutOfArenaW__15daNpcWrestler_cFv */
-inline bool daNpcWrestler_c::checkOutOfArenaW() {
+bool daNpcWrestler_c::checkOutOfArenaW() {
if (mArenaInfo.chkFlag == 0) {
return false;
}
int jointNo = mType == 0 ? 0x1A : 0x18;
int jointNo2 = mType == 0 ? 0x1E : 0x1B;
- f32 fVar1 = pow(mArenaExtent, 2.0);
+ f32 fVar1 = std::pow(mArenaExtent, 2);
field_0x89c = getJointPos(jointNo);
field_0x8a8 = getJointPos(jointNo2);
@@ -2496,7 +2683,7 @@ inline bool daNpcWrestler_c::checkOutOfArenaW() {
}
/* 80B35364-80B35780 0061C4 041C+00 1/0 0/0 0/0 .text sumouPunchMiss__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::sumouPunchMiss(void* param_1) {
+bool daNpcWrestler_c::sumouPunchMiss(void* param_1) {
// NONMATCHING - regalloc
daPy_py_c* player = daPy_getPlayerActorClass();
int jointNo = mType == 0 ? 0x12 : 0x11;
@@ -2586,8 +2773,7 @@ bool daNpcWrestler_c::sumouPunchDraw(void* param_1) {
field_0xdd8->setLifeTime(5);
}
- field_0xde0 = NULL;
- field_0xddc = NULL;
+ field_0xddc = field_0xde0 = NULL;
field_0xe96 = 2;
break;
@@ -2663,6 +2849,9 @@ bool daNpcWrestler_c::sumouPunchDraw(void* param_1) {
field_0xde0 = NULL;
}
break;
+
+ default:
+ JUT_ASSERT(3681, FALSE);
}
return true;
@@ -2709,8 +2898,7 @@ bool daNpcWrestler_c::sumouTackleHit(void* param_1) {
}
}
- field_0xde4 = NULL;
- field_0xde0 = NULL;
+ field_0xde0 = field_0xde4 = NULL;
if (mType != 0) {
setLookMode(0);
@@ -2803,6 +2991,9 @@ bool daNpcWrestler_c::sumouTackleHit(void* param_1) {
field_0xde4 = NULL;
}
break;
+
+ default:
+ JUT_ASSERT(3804, FALSE);
}
return true;
@@ -2838,6 +3029,9 @@ bool daNpcWrestler_c::sumouTackleMiss(void* param_1) {
setLookMode(2);
mActorMngr[0].entry(daPy_getPlayerActorClass());
break;
+
+ default:
+ JUT_ASSERT(3845, FALSE);
}
return true;
@@ -2853,10 +3047,7 @@ bool daNpcWrestler_c::sumouTackleDraw(void* param_1) {
case 0:
setExpressionAnm(0x12, true);
setMotion(0x14, -1.0f, 0);
- field_0xde4 = NULL;
- field_0xde0 = NULL;
- field_0xddc = NULL;
- field_0xdd8 = NULL;
+ field_0xdd8 = field_0xddc = field_0xde0 = field_0xde4 = NULL;
field_0xe96 = 2;
break;
@@ -2921,12 +3112,15 @@ bool daNpcWrestler_c::sumouTackleDraw(void* param_1) {
case 3:
break;
+
+ default:
+ JUT_ASSERT(3932, FALSE);
}
return true;
}
-inline void daNpcWrestler_c::setStepAngle() {
+void daNpcWrestler_c::setStepAngle() {
f32 fVar1[2];
int var_r25 = 0;
(void) var_r25;
@@ -2962,7 +3156,7 @@ inline void daNpcWrestler_c::setStepAngle() {
}
/* 80B37270-80B378F4 0080D0 0684+00 4/0 0/0 0/0 .text sumouSideStep__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::sumouSideStep(void* param_1) {
+bool daNpcWrestler_c::sumouSideStep(void* param_1) {
// NONMATCHING - g_dComIfG_gameInfo weirdness
switch (field_0xe96) {
case 0:
@@ -3047,8 +3241,9 @@ bool daNpcWrestler_c::sumouLostBalance(void* param_1) {
field_0xe96 = 2;
break;
- case 2:
- if (abs(oppositeToPlayer()) < 0x1000) {
+ case 2: {
+ s16 opp_to_player = oppositeToPlayer();
+ if (abs(opp_to_player) < 0x1000) {
setAction(&daNpcWrestler_c::sumouWait);
} else {
if (checkOutOfArenaP()) {
@@ -3060,9 +3255,13 @@ bool daNpcWrestler_c::sumouLostBalance(void* param_1) {
}
}
break;
+ }
case 3:
break;
+
+ default:
+ JUT_ASSERT(4046, FALSE);
}
return true;
@@ -3101,13 +3300,16 @@ bool daNpcWrestler_c::sumouPunchShock(void* param_1) {
case 3:
break;
+
+ default:
+ JUT_ASSERT(4092, FALSE);
}
return true;
}
/* 80B37FB8-80B38518 008E18 0560+00 2/0 0/0 0/0 .text sumouPunchChaseShock__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::sumouPunchChaseShock(void* param_1) {
+bool daNpcWrestler_c::sumouPunchChaseShock(void* param_1) {
// NONMATCHING - regalloc
daPy_py_c* player = daPy_getPlayerActorClass();
@@ -3193,6 +3395,9 @@ bool daNpcWrestler_c::sumouPunchStagger(void* param_1) {
case 3:
break;
+
+ default:
+ JUT_ASSERT(4191, FALSE);
}
return true;
@@ -3226,6 +3431,9 @@ bool daNpcWrestler_c::sumouTackleShock(void* param_1) {
case 3:
break;
+
+ default:
+ JUT_ASSERT(4236, FALSE);
}
return true;
}
@@ -3262,11 +3470,11 @@ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) {
fVar1 = getJointPos(jointNo).absXZ(mArenaPos);
fVar2 = getJointPos(jointNo2).absXZ(mArenaPos);
- if (fVar1 > field_0xbd8->field_0x80 || fVar2 > field_0xbd8->field_0x80) {
+ if (fVar1 > field_0xbd8->ring_edge_sound || fVar2 > field_0xbd8->ring_edge_sound) {
Z2GetAudioMgr()->changeSubBgmStatus(3);
}
- if (fVar1 > field_0xbd8->field_0x84 || fVar2 > field_0xbd8->field_0x84) {
+ if (fVar1 > field_0xbd8->ring_edge_movement || fVar2 > field_0xbd8->ring_edge_movement) {
player->setSumouPushFrontStop();
}
@@ -3282,10 +3490,10 @@ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) {
}
break;
}
+
case 3:
player->setSumouForceGraspCancel();
break;
-
default:
JUT_ASSERT(4311, FALSE);
break;
@@ -3319,13 +3527,16 @@ bool daNpcWrestler_c::sumouTackleStaggerRelease(void* param_1) {
case 3:
break;
+
+ default:
+ JUT_ASSERT(4355, FALSE);
}
return true;
}
/* 80B39554-80B39C18 00A3B4 06C4+00 1/0 0/0 0/0 .text sumouTacklePush__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::sumouTacklePush(void* param_1) {
+bool daNpcWrestler_c::sumouTacklePush(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
int jointNo, jointNo2;
f32 fVar1, fVar2;
@@ -3356,17 +3567,17 @@ inline bool daNpcWrestler_c::sumouTacklePush(void* param_1) {
fVar1 = player->getLeftFootPos().absXZ(mArenaPos);
fVar2 = player->getRightFootPos().absXZ(mArenaPos);
- if (fVar1 > field_0xbd8->field_0x80 || fVar2 > field_0xbd8->field_0x80) {
+ if (fVar1 > field_0xbd8->ring_edge_sound || fVar2 > field_0xbd8->ring_edge_sound) {
Z2GetAudioMgr()->changeSubBgmStatus(3);
}
- if (fVar1 > field_0xbd8->field_0x84 || fVar2 > field_0xbd8->field_0x84) {
+ if (fVar1 > field_0xbd8->ring_edge_movement || fVar2 > field_0xbd8->ring_edge_movement) {
player->setSumouPushFrontStop();
}
sVar1 = cLib_targetAngleY(mArenaPos, *player->getViewerCurrentPosP()) - mCurAngle.y;
- if (abs(sVar1) > field_0xbdc->field_0x28) {
- sVar1 = (sVar1 > 0) ? field_0xbdc->field_0x28 : (s16) -field_0xbdc->field_0x28;
+ if (abs(sVar1) > field_0xbdc->bending_limit) {
+ sVar1 = (sVar1 > 0) ? field_0xbdc->bending_limit : (s16) -field_0xbdc->bending_limit;
}
player->setSumouPushBackDirection(sVar1);
@@ -3402,9 +3613,10 @@ bool daNpcWrestler_c::sumouTackleRelease(void* param_1) {
field_0xe96 = 2;
break;
- case 2:
+ case 2: {
correctGraspPosAngle(true);
- if (mpMorf->getFrame() >= 23.0f && mpMorf->getFrame() <= 34.0f) {
+ f32 frame = mpMorf->getFrame();
+ if (frame >= 23.0f && frame <= 34.0f) {
int jointNo = mType == 0 ? 0x1A : 0x18;
int jointNo2 = mType == 0 ? 0x1E : 0x1B;
cXyz sp3c;
@@ -3428,6 +3640,7 @@ bool daNpcWrestler_c::sumouTackleRelease(void* param_1) {
setAction(&daNpcWrestler_c::sumouWait);
}
break;
+ }
case 3:
if (mType != 0) {
@@ -3435,12 +3648,15 @@ bool daNpcWrestler_c::sumouTackleRelease(void* param_1) {
mActorMngr[0].entry(daPy_getPlayerActorClass());
}
break;
+
+ default:
+ JUT_ASSERT(4506, FALSE);
}
return true;
}
-inline void daNpcWrestler_c::initDemoCamera_ReadyLink() {
+void daNpcWrestler_c::initDemoCamera_ReadyLink() {
field_0xe5e = mArenaAngle;
mDemoCamFovy = dCam_getBody()->Fovy();
field_0xe54 = 0.0f;
@@ -3454,7 +3670,7 @@ inline void daNpcWrestler_c::initDemoCamera_ReadyLink() {
mDoMtx_stack_c::multVec(&mDemoCam.mDemoCamCenter, &mDemoCam.mDemoCamCenter);
}
-inline void daNpcWrestler_c::initDemoCamera_ReadyWrestler() {
+void daNpcWrestler_c::initDemoCamera_ReadyWrestler() {
field_0xe5e = mArenaAngle + 0x8000;
mDemoCamFovy = dCam_getBody()->Fovy();
field_0xe54 = 0.0f;
@@ -3470,7 +3686,7 @@ inline void daNpcWrestler_c::initDemoCamera_ReadyWrestler() {
}
/* 80B39F88-80B3AE24 00ADE8 0E9C+00 2/0 0/0 0/0 .text demoSumouReady__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::demoSumouReady(void* param_1) {
+bool daNpcWrestler_c::demoSumouReady(void* param_1) {
dCamera_c* camBody = dCam_getBody();
bool dbg_0x9 = false;
@@ -3747,7 +3963,6 @@ bool daNpcWrestler_c::demoSumouWin(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
dCamera_c* camBody = dCam_getBody();
f32 fVar1;
- int iVar1;
switch (field_0xe96) {
case 0:
@@ -3786,9 +4001,7 @@ bool daNpcWrestler_c::demoSumouWin(void* param_1) {
break;
case 1:
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 <= 0) {
+ if (field_0xe80-- <= 0) {
camBody->Stop();
camBody->SetTrimSize(2);
field_0xe84++;
@@ -3834,11 +4047,10 @@ bool daNpcWrestler_c::demoSumouWin(void* param_1) {
}
break;
- case 3:
- if (cLib_addCalc(&mDemoCam.mDemoCamCenter.y, mDemoCam.field_0x18.y, 0.04f, 10.0f, 0.9f) == 0.0f) {
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 <= 0) {
+ case 3: {
+ f32 add_calc = cLib_addCalc(&mDemoCam.mDemoCamCenter.y, mDemoCam.field_0x18.y, 0.04f, 10.0f, 0.9f);
+ if (add_calc == 0.0f) {
+ if (field_0xe80-- <= 0) {
camBody->Reset(mDemoCam.mDemoCamCenter, mDemoCam.mDemoCamEye);
camBody->Start();
camBody->SetTrimSize(0);
@@ -3848,6 +4060,10 @@ bool daNpcWrestler_c::demoSumouWin(void* param_1) {
}
}
break;
+ }
+
+ default:
+ JUT_ASSERT(4952, FALSE);
}
if (field_0xe84 > 0) {
@@ -3858,6 +4074,9 @@ bool daNpcWrestler_c::demoSumouWin(void* param_1) {
case 3:
field_0xe99 = 1;
break;
+
+ default:
+ JUT_ASSERT(4966, FALSE);
}
return true;
@@ -3867,7 +4086,6 @@ bool daNpcWrestler_c::demoSumouWin(void* param_1) {
bool daNpcWrestler_c::demoSumouLose(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
dCamera_c* camBody = dCam_getBody();
- int iVar1;
f32 fVar1, fVar2, fVar3;
switch (field_0xe96) {
@@ -3934,9 +4152,7 @@ bool daNpcWrestler_c::demoSumouLose(void* param_1) {
}
}
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 <= 0) {
+ if (field_0xe80-- <= 0) {
int joint_no = mType == 0 ? 2 : 2;
fVar1 = cLib_addCalcPos(&mDemoCam.mDemoCamCenter, getJointPos(joint_no), 0.1f, 50.0f, 1.0f);
fVar2 = cLib_addCalc(&mDemoCam.mDemoCamEye.y, mDemoCam.field_0x24.y, 0.05f, 50.0f, 1.0f);
@@ -3962,11 +4178,10 @@ bool daNpcWrestler_c::demoSumouLose(void* param_1) {
field_0xe80 = 20;
field_0xe84++;
// fallthrough
- case 3:
- if (cLib_addCalc(&mDemoCam.mDemoCamCenter.y, mDemoCam.field_0x18.y, 0.04f, 10.0f, 0.2f) == 0.0f) {
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 <= 0) {
+ case 3: {
+ f32 add_calc = cLib_addCalc(&mDemoCam.mDemoCamCenter.y, mDemoCam.field_0x18.y, 0.04f, 10.0f, 0.2f);
+ if (add_calc == 0.0f) {
+ if (field_0xe80-- <= 0) {
player->changeDemoMode(1, 0, 0, 0);
camBody->Reset(mDemoCam.mDemoCamCenter, mDemoCam.mDemoCamEye);
camBody->Start();
@@ -3982,6 +4197,10 @@ bool daNpcWrestler_c::demoSumouLose(void* param_1) {
}
}
break;
+ }
+
+ default:
+ JUT_ASSERT(5094, FALSE);
}
if (field_0xe84 > 0) {
@@ -3992,6 +4211,9 @@ bool daNpcWrestler_c::demoSumouLose(void* param_1) {
case 3:
field_0xe99 = 1;
break;
+
+ default:
+ JUT_ASSERT(5102, FALSE);
}
return true;
@@ -4002,7 +4224,6 @@ bool daNpcWrestler_c::demoSumouWin2(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
dCamera_c* camBody = dCam_getBody();
f32 fVar1;
- int iVar1;
switch (field_0xe96) {
case 0:
@@ -4071,11 +4292,10 @@ bool daNpcWrestler_c::demoSumouWin2(void* param_1) {
}
break;
- case 2:
- if (cLib_addCalc(&mDemoCam.mDemoCamCenter.y, mDemoCam.field_0x18.y, 0.04f, 10.0f, 0.9f) == 0.0f) {
- iVar1 = field_0xe80;
- field_0xe80--;
- if (iVar1 <= 0) {
+ case 2: {
+ f32 add_calc = cLib_addCalc(&mDemoCam.mDemoCamCenter.y, mDemoCam.field_0x18.y, 0.04f, 10.0f, 0.9f);
+ if (add_calc == 0.0f) {
+ if (field_0xe80-- <= 0) {
camBody->Reset(mDemoCam.mDemoCamCenter, mDemoCam.mDemoCamEye);
camBody->Start();
camBody->SetTrimSize(0);
@@ -4085,6 +4305,10 @@ bool daNpcWrestler_c::demoSumouWin2(void* param_1) {
}
}
break;
+ }
+
+ default:
+ JUT_ASSERT(5213, FALSE);
}
if (field_0xe84 > 0) {
@@ -4096,6 +4320,9 @@ bool daNpcWrestler_c::demoSumouWin2(void* param_1) {
case 3:
field_0xe99 = 1;
break;
+
+ default:
+ JUT_ASSERT(5221, FALSE);
}
return true;
@@ -4242,7 +4469,7 @@ bool daNpcWrestler_c::demoSumouLose2(void* param_1) {
}
/* 80B3CA2C-80B3D0C0 00D88C 0694+00 4/0 0/0 0/0 .text demoSumouUnilateralWin__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::demoSumouUnilateralWin(void* param_1) {
+bool daNpcWrestler_c::demoSumouUnilateralWin(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
dCamera_c* camBody = dCam_getBody();
f32 fVar1;
@@ -4364,7 +4591,7 @@ inline bool daNpcWrestler_c::demoSumouUnilateralWin(void* param_1) {
}
/* 80B3D0C0-80B3D584 00DF20 04C4+00 2/0 0/0 0/0 .text demoTalkAfterLose__15daNpcWrestler_cFPv */
-inline bool daNpcWrestler_c::demoTalkAfterLose(void* param_1) {
+bool daNpcWrestler_c::demoTalkAfterLose(void* param_1) {
bool retval = false;
switch (field_0xe96) {
case 0:
@@ -4451,7 +4678,7 @@ inline bool daNpcWrestler_c::demoTalkAfterLose(void* param_1) {
}
/* 80B3D584-80B3DB50 00E3E4 05CC+00 3/0 0/0 0/0 .text EvCut_grDSEntry__15daNpcWrestler_cFi */
-inline BOOL daNpcWrestler_c::EvCut_grDSEntry(int i_cutIndex) {
+BOOL daNpcWrestler_c::EvCut_grDSEntry(int i_cutIndex) {
dEvent_manager_c& eventManager = dComIfGp_getEventManager();
int* cutName = (int*)eventManager.getMyNowCutName(i_cutIndex);
@@ -4566,7 +4793,7 @@ inline BOOL daNpcWrestler_c::EvCut_grDSEntry(int i_cutIndex) {
}
/* 80B3DB50-80B3DCE8 00E9B0 0198+00 1/0 0/0 0/0 .text EvCut_grDSEntry2__15daNpcWrestler_cFi */
-inline BOOL daNpcWrestler_c::EvCut_grDSEntry2(int i_cutIndex) {
+BOOL daNpcWrestler_c::EvCut_grDSEntry2(int i_cutIndex) {
dEvent_manager_c& eventManager = dComIfGp_getEventManager();
int* cutName = (int*)eventManager.getMyNowCutName(i_cutIndex);
@@ -4606,14 +4833,14 @@ inline BOOL daNpcWrestler_c::EvCut_grDSEntry2(int i_cutIndex) {
/* 80B3DCE8-80B3E0FC 00EB48 0414+00 2/0 0/0 0/0 .text EvCut_grDSEntry3_4__15daNpcWrestler_cFi */
BOOL daNpcWrestler_c::EvCut_grDSEntry3_4(int i_cutIndex) {
- dEvent_manager_c* eventManager = dComIfGp_getPEvtManager();
- int* cutName = (int*)eventManager->getMyNowCutName(i_cutIndex);
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int* cutName = (int*)eventManager.getMyNowCutName(i_cutIndex);
if (cutName == NULL) {
return FALSE;
}
- if (eventManager->getIsAddvance(i_cutIndex)){
+ if (eventManager.getIsAddvance(i_cutIndex)){
switch (*cutName) {
case '0001':
setLookMode(3);
@@ -4622,6 +4849,9 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry3_4(int i_cutIndex) {
initTalkAngle();
mMsgTimer = 0;
break;
+
+ default:
+ JUT_ASSERT(5766, FALSE);
}
}
@@ -4639,23 +4869,27 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry3_4(int i_cutIndex) {
switch (*cutName) {
case '0001':
if (setTalkAngle() && talkProc(NULL, TRUE, NULL)) {
- #ifdef DEBUG
+ s16 choice_no = mFlow.getChoiceNo();
+#ifdef DEBUG
char* choice;
- if (mFlow.getChoiceNo() == 0) {
+ if (choice_no == 0) {
choice = "はい";
} else {
choice = "いいえ";
}
OS_REPORT("二択分岐 %s\n", choice);
- #endif
+#endif
- if (mFlow.getChoiceNo() == 0) {
+ if (choice_no == 0) {
mOrderEvtNo = 5;
changeEvent(l_resName[mType], l_evtNames[mOrderEvtNo], 1, 0xFFFF);
}
return TRUE;
}
break;
+
+ default:
+ JUT_ASSERT(5800, FALSE);
}
return FALSE;
@@ -4663,10 +4897,10 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry3_4(int i_cutIndex) {
/* 80B3E0FC-80B3E584 00EF5C 0488+00 1/0 0/0 0/0 .text EvCut_grDSEntry5__15daNpcWrestler_cFi */
BOOL daNpcWrestler_c::EvCut_grDSEntry5(int i_cutIndex) {
- dEvent_manager_c* eventManager = dComIfGp_getPEvtManager();
- int* cutName = (int*)eventManager->getMyNowCutName(i_cutIndex);
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int* cutName = (int*)eventManager.getMyNowCutName(i_cutIndex);
- if (eventManager->getIsAddvance(i_cutIndex)) {
+ if (eventManager.getIsAddvance(i_cutIndex)) {
switch (*cutName) {
case '0001':
case '0002':
@@ -4676,12 +4910,17 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry5(int i_cutIndex) {
initTalkAngle();
mMsgTimer = 0;
break;
+
+ default:
+ JUT_ASSERT(5830, FALSE);
}
}
int iVar1 = mMsgTimer;
int i_expression, i_motion;
if (ctrlMsgAnm(i_expression, i_motion, this, FALSE) != 0) {
+ // The following is to force dbg asm stack to use r31:
+ int unused;
setExpression(i_expression, -1.0f);
setMotion(i_motion, -1.0f, 0);
} else if (iVar1 && mMsgTimer == 0) {
@@ -4691,7 +4930,7 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry5(int i_cutIndex) {
switch (*cutName) {
case '0001':
return TRUE;
-
+
case '0002':
if (setTalkAngle() && talkProc(NULL, TRUE, NULL)) {
mItemNo = 3;
@@ -4701,6 +4940,11 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry5(int i_cutIndex) {
mEventIdx = -1;
return TRUE;
}
+
+ break;
+
+ default:
+ JUT_ASSERT(5867, FALSE);
}
return FALSE;
@@ -4708,12 +4952,12 @@ BOOL daNpcWrestler_c::EvCut_grDSEntry5(int i_cutIndex) {
/* 80B3E584-80B3EA2C 00F3E4 04A8+00 1/0 0/0 0/0 .text EvCut_grDSLose__15daNpcWrestler_cFi */
BOOL daNpcWrestler_c::EvCut_grDSLose(int i_cutIndex) {
- dEvent_manager_c* eventManager = dComIfGp_getPEvtManager();
- int* cutName = (int*)eventManager->getMyNowCutName(i_cutIndex);
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int* cutName = (int*)eventManager.getMyNowCutName(i_cutIndex);
int* piVar1;
cXyz* pcVar1;
- if (eventManager->getIsAddvance(i_cutIndex)) {
+ if (eventManager.getIsAddvance(i_cutIndex)) {
switch (*cutName) {
case '0001':
break;
@@ -4741,12 +4985,17 @@ BOOL daNpcWrestler_c::EvCut_grDSLose(int i_cutIndex) {
initTalkAngle();
mMsgTimer = 0;
break;
+
+ default:
+ JUT_ASSERT(5909, FALSE);
}
}
int iVar1 = mMsgTimer;
int i_expression, i_motion;
if (ctrlMsgAnm(i_expression, i_motion, this, FALSE) != 0) {
+ // The following is to force dbg asm stack to use r31:
+ int unused;
setExpression(i_expression, -1.0f);
setMotion(i_motion, -1.0f, 0);
} else if (iVar1 != 0 && mMsgTimer == 0) {
@@ -4765,6 +5014,9 @@ BOOL daNpcWrestler_c::EvCut_grDSLose(int i_cutIndex) {
return TRUE;
}
break;
+
+ default:
+ JUT_ASSERT(5942, FALSE);
}
return FALSE;
@@ -4772,27 +5024,23 @@ BOOL daNpcWrestler_c::EvCut_grDSLose(int i_cutIndex) {
/* 80B3EA2C-80B3EA4C 00F88C 0020+00 1/0 0/0 0/0 .text daNpcWrestler_Create__FPv */
static int daNpcWrestler_Create(void* a_this) {
- daNpcWrestler_c* i_this = (daNpcWrestler_c*)a_this;
- return i_this->Create();
+ return ((daNpcWrestler_c*)a_this)->Create();
}
/* 80B3EA4C-80B3EA6C 00F8AC 0020+00 1/0 0/0 0/0 .text daNpcWrestler_Delete__FPv */
static int daNpcWrestler_Delete(void* a_this) {
- daNpcWrestler_c* i_this = (daNpcWrestler_c*)a_this;
- return i_this->Delete();
+ return ((daNpcWrestler_c*)a_this)->Delete();
}
/* 80B3EA6C-80B3EA8C 00F8CC 0020+00 1/0 0/0 0/0 .text daNpcWrestler_Execute__FPv */
static int daNpcWrestler_Execute(void* a_this) {
- daNpcWrestler_c* i_this = (daNpcWrestler_c*)a_this;
- return i_this->Execute();
+ return ((daNpcWrestler_c*)a_this)->Execute();
}
/* 80B3EA8C-80B3EAAC 00F8EC 0020+00 1/0 0/0 0/0 .text daNpcWrestler_Draw__FPv */
static int daNpcWrestler_Draw(void* a_this) {
- daNpcWrestler_c* i_this = (daNpcWrestler_c*)a_this;
- return i_this->Draw();
+ return ((daNpcWrestler_c*)a_this)->Draw();
}
/* 80B3EAAC-80B3EAB4 00F90C 0008+00 1/0 0/0 0/0 .text daNpcWrestler_IsDelete__FPv */
@@ -4801,10 +5049,14 @@ static int daNpcWrestler_IsDelete(void* a_this) {
}
/* 80B3EAE4-80B3EB94 00F944 00B0+00 1/0 0/0 0/0 .text setParam__15daNpcWrestler_cFv */
-inline void daNpcWrestler_c::setParam() {
- attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(5, 6);
+void daNpcWrestler_c::setParam() {
+ s16 reg_r30 = 5;
+ s16 reg_r29 = 6;
+ s16 reg_r28 = 3;
+ s16 reg_r27 = 6;
+ attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(reg_r30, reg_r29);
attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
- attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(3, 6);
+ attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(reg_r28, reg_r27);
attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e;
if (mType == 1 && daPy_py_c::checkNowWolf()) {
@@ -4816,7 +5068,7 @@ inline void daNpcWrestler_c::setParam() {
gravity = field_0xbd8->common.gravity;
}
-inline bool daNpcWrestler_c::selectAction() {
+bool daNpcWrestler_c::selectAction() {
actionFunc null_action = NULL;
if (null_action != NULL && chkAction(null_action) == FALSE) {
setAction(null_action);
@@ -4827,7 +5079,7 @@ inline bool daNpcWrestler_c::selectAction() {
}
/* 80B3EF10-80B3FCE8 00FD70 0DD8+00 1/1 0/0 0/0 .text setWrestlerVoice__15daNpcWrestler_cFv */
-inline void daNpcWrestler_c::setWrestlerVoice() {
+void daNpcWrestler_c::setWrestlerVoice() {
J3DAnmTransform* anmTransform = mpMorf->getAnm();
if (mType == 0) {
@@ -4970,7 +5222,7 @@ inline void daNpcWrestler_c::setWrestlerVoice() {
}
/* 80B3EB94-80B3EF10 00F9F4 037C+00 1/0 0/0 0/0 .text main__15daNpcWrestler_cFv */
-inline BOOL daNpcWrestler_c::main() {
+BOOL daNpcWrestler_c::main() {
if (!selectAction() && field_0xdcc != NULL) {
(this->*field_0xdcc)(NULL);
}
@@ -4987,14 +5239,11 @@ inline BOOL daNpcWrestler_c::main() {
}
/* 80B404FC-80B405E8 01135C 00EC+00 1/0 0/0 0/0 .text ctrlBtk__15daNpcWrestler_cFv */
-inline BOOL daNpcWrestler_c::ctrlBtk() {
- J3DAnmTextureSRTKey* btkAnm;
+BOOL daNpcWrestler_c::ctrlBtk() {
if (mpMatAnm != NULL) {
- if (field_0xe04->btk_list->fileIdx >= 0) {
- btkAnm = (J3DAnmTextureSRTKey*)getTexSRTKeyAnmP(l_resName[mType], field_0xe04->btk_list->fileIdx);
- } else {
- btkAnm = NULL;
- }
+ J3DAnmTextureSRTKey* btkAnm = (field_0xe04->btk_list->fileIdx >= 0)
+ ? (J3DAnmTextureSRTKey*)getTexSRTKeyAnmP(l_resName[mType], field_0xe04->btk_list->fileIdx)
+ : NULL;
if (btkAnm == mBtkAnm.getBtkAnm()) {
mpMatAnm->setNowOffsetX(cM_ssin(mEyeAngle.y) * 0.2f * -1.0f);
@@ -5010,12 +5259,12 @@ inline BOOL daNpcWrestler_c::ctrlBtk() {
}
/* 80B40D1C-80B40D24 011B7C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcWrestler_cFv */
-inline BOOL daNpcWrestler_c::drawDbgInfo() {
+BOOL daNpcWrestler_c::drawDbgInfo() {
return FALSE;
}
/* 80B40D24-80B40D28 011B84 0004+00 1/0 0/0 0/0 .text drawOtherMdls__15daNpcWrestler_cFv */
-inline void daNpcWrestler_c::drawOtherMdls() {
+void daNpcWrestler_c::drawOtherMdls() {
/* empty function */
}