daObj_BouMato_c OK (#2264)

* daObj_BouMato_c OK

* daObjGraRock_c Matched except template function order

* daBkyRock_c OK
This commit is contained in:
hatal175 2024-12-12 22:58:40 +02:00 committed by GitHub
parent 559fcb3a16
commit ee992eb80c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 1226 additions and 1773 deletions

View File

@ -1,7 +1,7 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
daBkyRock_c_createHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:global
daBkyRock_c_createHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:local
__ct__11daBkyRock_cFv = .text:0x00000098; // type:function size:0xBC scope:global
__ct__Q211daBkyRock_c10_pieceDataFv = .text:0x00000154; // type:function size:0xC scope:global
__dt__8dCcD_CylFv = .text:0x00000160; // type:function size:0xCC scope:global
@ -27,16 +27,16 @@ initChangeModeAfter__11daBkyRock_cFv = .text:0x0000103C; // type:function size:0
pieceMove__11daBkyRock_cFv = .text:0x00001058; // type:function size:0x170 scope:global
pieceMoveInit__11daBkyRock_cFv = .text:0x000011C8; // type:function size:0x290 scope:global
callBombEmt__11daBkyRock_cFiPCUs = .text:0x00001458; // type:function size:0x138 scope:global
daBkyRock_create__FP11daBkyRock_c = .text:0x00001590; // type:function size:0x54 scope:global
daBkyRock_Delete__FP11daBkyRock_c = .text:0x000015E4; // type:function size:0x20 scope:global
daBkyRock_execute__FP11daBkyRock_c = .text:0x00001604; // type:function size:0x20 scope:global
daBkyRock_draw__FP11daBkyRock_c = .text:0x00001624; // type:function size:0x20 scope:global
daBkyRock_create__FP11daBkyRock_c = .text:0x00001590; // type:function size:0x54 scope:local
daBkyRock_Delete__FP11daBkyRock_c = .text:0x000015E4; // type:function size:0x20 scope:local
daBkyRock_execute__FP11daBkyRock_c = .text:0x00001604; // type:function size:0x20 scope:local
daBkyRock_draw__FP11daBkyRock_c = .text:0x00001624; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001644; // type:function size:0x48 scope:global
__sinit_d_a_obj_bky_rock_cpp = .text:0x0000168C; // type:function size:0x58 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
VIBMODE_POWER = .rodata:0x00000000; // type:object size:0xC scope:global
VIBMODE_POWER = .rodata:0x00000000; // type:object size:0xC scope:local
PARTICLE_SCALE = .rodata:0x0000000C; // type:object size:0x8 scope:global
PARTICLE_OFFSET_POS_Y = .rodata:0x00000014; // type:object size:0x8 scope:global
FIRST_PARTICLE_NAME = .rodata:0x0000001C; // type:object size:0x8 scope:global
@ -75,14 +75,14 @@ PIECE_SCALE_BASE$4100 = .rodata:0x00000148; // type:object size:0x8 scope:local
@4165 = .rodata:0x00000160; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000164; // type:object size:0x7 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
l_arcName = .data:0x00000020; // type:object size:0x4 scope:global data:4byte
l_arcName = .data:0x00000020; // type:object size:0x4 scope:local data:4byte
@3933 = .data:0x00000024; // type:object size:0xC scope:local
@3934 = .data:0x00000030; // type:object size:0xC scope:local
@3935 = .data:0x0000003C; // type:object size:0xC scope:local
s_exeProc__11daBkyRock_c = .data:0x00000048; // type:object size:0x24 scope:global data:4byte
daBkyRock_METHODS = .data:0x0000006C; // type:object size:0x20 scope:global
daBkyRock_METHODS = .data:0x0000006C; // type:object size:0x20 scope:local
g_profile_BkyRock = .data:0x0000008C; // type:object size:0x30 scope:global
__vt__11daBkyRock_c = .data:0x000000BC; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x000000C8; // type:object size:0xC scope:global

View File

@ -26,11 +26,11 @@ setSwayParam__15daObj_BouMato_cFP10fopAc_ac_c = .text:0x00001108; // type:functi
setEnvTevColor__15daObj_BouMato_cFv = .text:0x0000129C; // type:function size:0x5C scope:global
setRoomNo__15daObj_BouMato_cFv = .text:0x000012F8; // type:function size:0x44 scope:global
setMtx__15daObj_BouMato_cFv = .text:0x0000133C; // type:function size:0x84 scope:global
daObj_BouMato_Create__FPv = .text:0x000013C0; // type:function size:0x20 scope:global
daObj_BouMato_Delete__FPv = .text:0x000013E0; // type:function size:0x20 scope:global
daObj_BouMato_Execute__FPv = .text:0x00001400; // type:function size:0x20 scope:global
daObj_BouMato_Draw__FPv = .text:0x00001420; // type:function size:0x20 scope:global
daObj_BouMato_IsDelete__FPv = .text:0x00001440; // type:function size:0x8 scope:global
daObj_BouMato_Create__FPv = .text:0x000013C0; // type:function size:0x20 scope:local
daObj_BouMato_Delete__FPv = .text:0x000013E0; // type:function size:0x20 scope:local
daObj_BouMato_Execute__FPv = .text:0x00001400; // type:function size:0x20 scope:local
daObj_BouMato_Draw__FPv = .text:0x00001420; // type:function size:0x20 scope:local
daObj_BouMato_IsDelete__FPv = .text:0x00001440; // type:function size:0x8 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001448; // type:function size:0x48 scope:global
__sinit_d_a_obj_boumato_cpp = .text:0x00001490; // type:function size:0x74 scope:local
__dt__21daObj_BouMato_Param_cFv = .text:0x00001504; // type:function size:0x48 scope:global
@ -41,7 +41,7 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
m__21daObj_BouMato_Param_c = .rodata:0x00000000; // type:object size:0x1C scope:global
l_ccDObjData = .rodata:0x0000001C; // type:object size:0x30 scope:global
l_ccDObjData = .rodata:0x0000001C; // type:object size:0x30 scope:local
@3956 = .rodata:0x0000004C; // type:object size:0x4 scope:local
@3957 = .rodata:0x00000050; // type:object size:0x4 scope:local
@3958 = .rodata:0x00000054; // type:object size:0x4 scope:local
@ -62,11 +62,11 @@ l_ccDObjData = .rodata:0x0000001C; // type:object size:0x30 scope:global
@4356 = .rodata:0x00000098; // type:object size:0x4 scope:local
@4359 = .rodata:0x000000A0; // type:object size:0x8 scope:local
@stringBase0 = .rodata:0x000000A8; // type:object size:0x13 scope:local data:string_table
l_ccDCyl = .data:0x00000000; // type:object size:0x44 scope:global
l_resName = .data:0x00000044; // type:object size:0x4 scope:global data:4byte
l_ccDCyl = .data:0x00000000; // type:object size:0x44 scope:local
l_resName = .data:0x00000044; // type:object size:0x4 scope:local data:4byte
jntCoOffset$4044 = .data:0x00000048; // type:object size:0x18 scope:local
jntCoData$4045 = .data:0x00000060; // type:object size:0xC scope:local
daObj_BouMato_MethodTable = .data:0x0000006C; // type:object size:0x20 scope:global
daObj_BouMato_MethodTable = .data:0x0000006C; // type:object size:0x20 scope:local
g_profile_OBJ_BOUMATO = .data:0x0000008C; // type:object size:0x30 scope:global
__vt__12dBgS_ObjAcch = .data:0x000000BC; // type:object size:0x24 scope:global
__vt__10cCcD_GStts = .data:0x000000E0; // type:object size:0xC scope:global
@ -78,7 +78,7 @@ __vt__8cM3dGLin = .data:0x0000011C; // type:object size:0xC scope:global
__vt__15daObj_BouMato_c = .data:0x00000128; // type:object size:0xC scope:global
__vt__21daObj_BouMato_Param_c = .data:0x00000134; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
l_findActorPtrs = .bss:0x00000008; // type:object size:0x190 scope:global
l_findCount = .bss:0x00000198; // type:object size:0x4 scope:global data:4byte
l_findActorPtrs = .bss:0x00000008; // type:object size:0x190 scope:local
l_findCount = .bss:0x00000198; // type:object size:0x4 scope:local data:4byte
@3830 = .bss:0x0000019C; // type:object size:0xC scope:local
l_HIO = .bss:0x000001A8; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x000001A8; // type:object size:0x4 scope:local data:4byte

View File

@ -1774,11 +1774,11 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_bemos"),
ActorRel(NonMatching, "d_a_obj_bhbridge"),
ActorRel(Matching, "d_a_obj_bk_leaf"),
ActorRel(NonMatching, "d_a_obj_bky_rock"),
ActorRel(Matching, "d_a_obj_bky_rock"),
ActorRel(Matching, "d_a_obj_bmWindow"),
ActorRel(NonMatching, "d_a_obj_bmshutter"),
ActorRel(Matching, "d_a_obj_bombf"),
ActorRel(NonMatching, "d_a_obj_boumato"),
ActorRel(Matching, "d_a_obj_boumato"),
ActorRel(NonMatching, "d_a_obj_brg"),
ActorRel(Matching, "d_a_obj_bsGate"),
ActorRel(NonMatching, "d_a_obj_bubblePilar"),
@ -1830,7 +1830,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_gomikabe"),
ActorRel(NonMatching, "d_a_obj_gra2"),
ActorRel(Matching, "d_a_obj_graWall"),
ActorRel(NonMatching, "d_a_obj_gra_rock"),
ActorRel(Equivalent, "d_a_obj_gra_rock"),
ActorRel(Matching, "d_a_obj_grave_stone"),
ActorRel(Matching, "d_a_obj_groundwater"),
ActorRel(NonMatching, "d_a_obj_grz_rock"),

View File

@ -17,6 +17,7 @@ enum CcG_Tg_HitMark {
CcG_Tg_UNK_MARK_3 = 3,
CcG_Tg_UNK_MARK_6 = 6,
CcG_Tg_UNK_MARK_8 = 8,
CcG_Tg_UNK_MARK_9 = 9,
};
class cCcD_PntAttr;

View File

@ -58,6 +58,7 @@ public:
void setBombArrowExplode() { field_0x950 = 0; }
bool checkBombArrow() const { return mArrowType == true; }
u32 getHitAcID() { return mHitAcID; }
void setShoot() { fopAcM_SetParam(this, 1); }
void setChargeShoot() { fopAcM_SetParam(this, 2); }

View File

@ -587,6 +587,7 @@ u8 daNpcT_getDistTableIdx(int param_0, int param_1);
BOOL daNpcT_chkDoBtnIsSpeak(fopAc_ac_c* i_ActorP);
void daNpcT_offTmpBit(u32 i_idx);
void daNpcT_onTmpBit(u32 i_idx);
BOOL daNpcT_chkTmpBit(u32 i_idx);
void daNpcT_onEvtBit(u32 i_idx);
struct daBaseNpc_matAnm_c {
@ -1005,6 +1006,7 @@ BOOL daNpcF_chkEvtBit(u32 i_idx);
void daNpcF_onEvtBit(u32 i_idx);
BOOL daNpcF_chkTmpBit(u32 i_idx);
void daNpcF_offTmpBit(u32 i_idx);
u8 daNpcF_getDistTableIdx(int param_0, int param_1);
BOOL daNpcF_chkPointInArea(cXyz, cXyz, cXyz, s16);
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3);
s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);

View File

@ -1,6 +1,8 @@
#ifndef D_A_OBJ_BKY_ROCK_H
#define D_A_OBJ_BKY_ROCK_H
#include "d/d_cc_d.h"
#include "d/d_model.h"
#include "f_op/f_op_actor_mng.h"
/**
@ -11,41 +13,72 @@
* @details
*
*/
class daBkyRock_c : public fopAc_ac_c {
class daBkyRock_c : public fopAc_ac_c, public request_of_phase_process_class {
public:
struct _pieceData {
public:
/* 80BB6914 */ _pieceData();
/* 80BB6914 */ _pieceData() { mMdlObj.mpObj = NULL; }
/* 0x00 */ dMdl_obj_c mMdlObj;
/* 0x34 */ Vec position;
/* 0x40 */ f32 targetX;
/* 0x44 */ f32 targetZ;
/* 0x48 */ f32 scale;
/* 0x4C */ f32 speedY;
/* 0x50 */ s16 rotationX;
/* 0x52 */ s16 rotationZ;
/* 0x54 */ s16 rotationSpeed;
};
typedef void (daBkyRock_c::*exeProc)();
enum Mode {
MODE_0,
MODE_1,
MODE_2,
};
/* 80BB6858 */ daBkyRock_c();
/* 80BB6B5C */ ~daBkyRock_c();
/* 80BB6C4C */ void create();
/* 80BB6D60 */ void execute();
/* 80BB6D84 */ void draw();
/* 80BB6EB8 */ void Delete();
/* 80BB6B5C */ virtual ~daBkyRock_c();
/* 80BB6C4C */ int create();
/* 80BB6D60 */ int execute();
/* 80BB6D84 */ int draw();
/* 80BB6EB8 */ int Delete();
/* 80BB6F64 */ void setModelMtx();
/* 80BB6FD4 */ void createHeap();
/* 80BB6FD4 */ int createHeap();
/* 80BB7144 */ void init();
/* 80BB72FC */ void middleExe();
/* 80BB7364 */ void exeModeNoDamage();
/* 80BB7458 */ void exeModeDamage();
/* 80BB75D8 */ void exeModePiece();
/* 80BB7690 */ void chkHitBombArrow();
/* 80BB7690 */ bool chkHitBombArrow();
/* 80BB776C */ void initChangeModeBefore();
/* 80BB77FC */ void initChangeModeAfter();
/* 80BB7818 */ void pieceMove();
/* 80BB7988 */ void pieceMoveInit();
/* 80BB7C18 */ void callBombEmt(int, u16 const*);
static u8 const s_CcDCyl[68];
static u8 s_exeProc[36];
u8 getSwBit0() { return fopAcM_GetParamBit(this, 4, 8); }
u8 getSwBit1() { return fopAcM_GetParamBit(this, 12, 8); }
s8 getNameNo() { return fopAcM_GetParamBit(this, 0, 4); }
static dCcD_SrcCyl const s_CcDCyl;
static exeProc s_exeProc[3];
private:
/* 0x568 */ u8 field_0x568[0xf50 - 0x568];
/* 0x568 */ int mVibrationTimer;
/* 0x578 */ u8 mMode;
/* 0x579 */ bool field_0x579;
/* 0x57A */ bool field_0x57a;
/* 0x57B */ Mtx mMtx;
/* 0x5AC */ dBgW* mBgW;
/* 0x5B0 */ dCcD_Stts mStts;
/* 0x5EC */ dCcD_Cyl mCyls[2];
/* 0x864 */ J3DModel* mModels[3];
/* 0x870 */ _pieceData mPieces[20];
};
STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50);
//STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50);
#endif /* D_A_OBJ_BKY_ROCK_H */

View File

@ -1,6 +1,8 @@
#ifndef D_A_OBJ_BOUMATO_H
#define D_A_OBJ_BOUMATO_H
#include "d/d_bg_s_acch.h"
#include "d/d_jnt_col.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
@ -13,34 +15,64 @@
*
*/
class daObj_BouMato_c : public fopAc_ac_c {
private:
/* 0x568 */ int field_0x568;
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* mModel;
/* 0x578 */ dBgS_ObjAcch mAcch;
/* 0x750 */ dCcD_Stts mStts;
/* 0x78C */ dBgS_AcchCir mAcchCir;
/* 0x7CC */ cBgS_GndChk mGndChk;
/* 0x808 */ dCcD_Cyl mCyl;
/* 0x944 */ cM3dGCyl mCyl2;
/* 0x95C */ cM3dGLin mGLin;
/* 0x978 */ dBgS_LinChk mLinChk;
/* 0x9E8 */ dJntCol_c mJntCol;
/* 0x9F8 */ csXyz field_0x9f8[3];
/* 0xA0A */ u16 field_0xa0a;
/* 0xA0C */ int mCutType;
/* 0xA10 */ int field_0xa10;
/* 0xA14 */ f32 mGroundH;
/* 0xA18 */ f32 field_0xa18[3];
/* 0xA24 */ s16 field_0xa24[3];
/* 0xA2A */ s16 field_0xa2a;
/* 0xA2C */ int mShadowId;
/* 0xA30 */ s16 field_0xa30;
/* 0xA32 */ u8 field_0xa32;
/* 0xA34 */ fpc_ProcID mTargetId;
/* 0xA38 */ u8 field_0xa38;
/* 0xA39 */ bool mIsCurTurnRight;
public:
/* 80BBAFEC */ ~daObj_BouMato_c();
/* 80BBB230 */ void create();
/* 80BBB770 */ void CreateHeap();
/* 80BBB800 */ void Delete();
/* 80BBB834 */ void Execute();
/* 80BBBD80 */ void Draw();
/* 80BBBE50 */ void createHeapCallBack(fopAc_ac_c*);
/* 80BBBE70 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80BBBEA0 */ void srchArrow(void*, void*);
/* 80BBAFEC */ virtual ~daObj_BouMato_c();
/* 80BBB230 */ int create();
/* 80BBB770 */ int CreateHeap();
/* 80BBB800 */ int Delete();
/* 80BBB834 */ int Execute();
/* 80BBBD80 */ int Draw();
/* 80BBBE50 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80BBBE70 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80BBBEA0 */ static void* srchArrow(void*, void*);
/* 80BBBF4C */ void deleteStuckArrow();
/* 80BBBFF8 */ void getResName();
/* 80BBBFF8 */ char* getResName();
/* 80BBC008 */ void setSwayParam(fopAc_ac_c*);
/* 80BBC19C */ void setEnvTevColor();
/* 80BBC1F8 */ void setRoomNo();
/* 80BBC23C */ void setMtx();
private:
/* 0x568 */ u8 field_0x568[0xa40 - 0x568];
u8 getType() { return 0; }
u8 getOffSwBit() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
u8 getOnSwBit() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
void setCutType(u8 cutType) { mCutType = cutType; }
};
STATIC_ASSERT(sizeof(daObj_BouMato_c) == 0xa40);
class daObj_BouMato_Param_c {
public:
/* 80BBC404 */ ~daObj_BouMato_Param_c();
/* 80BBC404 */ virtual ~daObj_BouMato_Param_c() {}
static u8 const m[28];
static f32 const m[7];
};

View File

@ -1,6 +1,8 @@
#ifndef D_A_OBJ_GRA_ROCK_H
#define D_A_OBJ_GRA_ROCK_H
#include "d/d_bg_s_acch.h"
#include "d/d_bg_s_movebg_actor.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
@ -12,7 +14,7 @@
* @details
*
*/
class daObjGraRock_c : public fopAc_ac_c {
class daObjGraRock_c : public dBgS_MoveBgActor {
public:
/* 80C110F8 */ void setAttnPos();
/* 80C11444 */ void setBaseMtx();
@ -21,21 +23,39 @@ public:
/* 80C11730 */ void setEnvTevColor();
/* 80C1178C */ void setRoomNo();
/* 80C117D0 */ void col_set();
/* 80C11964 */ void checkHitAt(cCcD_Obj*);
/* 80C11970 */ void Create();
/* 80C11B68 */ void CreateHeap();
/* 80C11C64 */ void create();
/* 80C11FF0 */ void Execute(f32 (**)[3][4]);
/* 80C120FC */ void Draw();
/* 80C121C4 */ void Delete();
/* 80C11964 */ int checkHitAt(cCcD_Obj*);
/* 80C11970 */ int Create();
/* 80C11B68 */ int CreateHeap();
/* 80C11C64 */ int create();
/* 80C11FF0 */ int Execute(Mtx**);
/* 80C120FC */ int Draw();
/* 80C121C4 */ int Delete();
static u8 const mCcDCyl[68];
static dCcD_SrcCyl const mCcDCyl;
private:
/* 0x568 */ u8 field_0x568[0x9cc - 0x568];
/* 0x5A0 */ request_of_phase_process_class mPhases[5];
/* 0x5C8 */ J3DModel* mModel;
/* 0x5CC */ mDoExt_btpAnm mBtp;
/* 0x5E4 */ dBgS_ObjAcch mAcch;
/* 0x7BC */ dCcD_Stts mStts;
/* 0x7F8 */ dBgS_AcchCir mAcchCir;
/* 0x838 */ dCcD_Cyl mCyl;
/* 0x974 */ cBgS_GndChk mGndChk;
/* 0x9B0 */ s16 field_0x9b0;
/* 0x9B2 */ s16 field_0x9b2;
/* 0x9B4 */ s16 field_0x9b4;
/* 0x9B6 */ s16 field_0x9b6;
/* 0x9B8 */ s16 field_0x9b8;
/* 0x9BA */ s16 field_0x9ba;
/* 0x9BC */ u8 field_0x9bc;
/* 0x9BD */ u8 field_0x9bd;
/* 0x9BD */ s16 field_0x9be;
/* 0x9C0 */ u32 mParticleIds[2];
/* 0x9BD */ u8 field_0x9c8;
};
STATIC_ASSERT(sizeof(daObjGraRock_c) == 0x9cc);
//STATIC_ASSERT(sizeof(daObjGraRock_c) == 0x9cc);
#endif /* D_A_OBJ_GRA_ROCK_H */

View File

@ -2,6 +2,7 @@
#define D_D_MODEL_H
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "m_Do/m_Do_mtx.h"
class J3DModelData;
class dKy_tevstr_c;
@ -9,6 +10,7 @@ class dKy_tevstr_c;
class dMdl_obj_c {
public:
MtxP getMtx() { return mMtx; }
void setMtx(Mtx mtx) { cMtx_copy(mtx, mMtx); }
/* 0x00 */ Mtx mMtx;
/* 0x30 */ dMdl_obj_c* mpObj;

View File

@ -796,4 +796,4 @@ enum {
PROC_GAMEOVER = 0x0317,
};
#endif /* D_PROCNAME_H */
#endif /* D_PROCNAME_H */

View File

@ -396,6 +396,14 @@ inline f32 fopAcM_getCullSizeFar(const fopAc_ac_c* i_actor) {
return i_actor->cullSizeFar;
}
inline const Vec* fopAcM_getCullSizeBoxMin(const fopAc_ac_c* i_actor) {
return &i_actor->cull.box.min;
}
inline const Vec* fopAcM_getCullSizeBoxMax(const fopAc_ac_c* i_actor) {
return &i_actor->cull.box.max;
}
inline void fopAcM_SetCullSize(fopAc_ac_c* i_actor, s8 i_cullsize) {
i_actor->cullType = i_cullsize;
}

View File

@ -33,6 +33,7 @@ public:
void setPlayMode(int i_mode) { mFrameCtrl.setAttribute(i_mode); }
void setLoopFrame(f32 i_frame) { mFrameCtrl.setLoop(i_frame); }
bool isStop() { return mFrameCtrl.checkState(1) || mFrameCtrl.getRate() == 0.0f; }
bool isLoop() { return mFrameCtrl.checkState(2); }
void reset() { mFrameCtrl.reset(); }
BOOL checkFrame(f32 frame) { return mFrameCtrl.checkPass(frame); }

View File

@ -50,7 +50,7 @@ static dCcD_SrcGObjInf const l_ccDObjData =
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
{dCcD_SE_STONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg
{0x0}, // mGObjCo
};
};
/* 80BA6CE0-80BA6D24 000030 0044+00 1/2 0/0 0/0 .data l_ccDCyl */
static dCcD_SrcCyl l_ccDCyl = {

File diff suppressed because it is too large Load Diff

View File

@ -4,162 +4,31 @@
*/
#include "d/actor/d_a_obj_boumato.h"
#include "d/d_cc_d.h"
#include "dol2asm.h"
#include "SSystem/SComponent/c_counter.h"
#include "d/actor/d_a_arrow.h"
#include "d/actor/d_a_npc.h"
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
static const char* dummyString() { return ""; }
/* 80BBC470-80BBC48C 000000 001C+00 4/4 0/0 0/0 .rodata m__21daObj_BouMato_Param_c */
f32 const daObj_BouMato_Param_c::m[7] = {
0.0f, -3.0f, 1.0f, 400.0f, 300.0f, 4.0f, 20.0f,
};
//
// Forward References:
//
extern "C" void __dt__15daObj_BouMato_cFv();
extern "C" void __dt__5csXyzFv();
extern "C" void create__15daObj_BouMato_cFv();
extern "C" void __ct__5csXyzFv();
extern "C" void __dt__8cM3dGLinFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__12dBgS_AcchCirFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void CreateHeap__15daObj_BouMato_cFv();
extern "C" void Delete__15daObj_BouMato_cFv();
extern "C" void Execute__15daObj_BouMato_cFv();
extern "C" void Draw__15daObj_BouMato_cFv();
extern "C" void createHeapCallBack__15daObj_BouMato_cFP10fopAc_ac_c();
extern "C" void
tgHitCallBack__15daObj_BouMato_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf();
extern "C" void srchArrow__15daObj_BouMato_cFPvPv();
extern "C" void deleteStuckArrow__15daObj_BouMato_cFv();
extern "C" void getResName__15daObj_BouMato_cFv();
extern "C" void setSwayParam__15daObj_BouMato_cFP10fopAc_ac_c();
extern "C" void setEnvTevColor__15daObj_BouMato_cFv();
extern "C" void setRoomNo__15daObj_BouMato_cFv();
extern "C" void setMtx__15daObj_BouMato_cFv();
extern "C" static void daObj_BouMato_Create__FPv();
extern "C" static void daObj_BouMato_Delete__FPv();
extern "C" static void daObj_BouMato_Execute__FPv();
extern "C" static void daObj_BouMato_Draw__FPv();
extern "C" static bool daObj_BouMato_IsDelete__FPv();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" void __sinit_d_a_obj_boumato_cpp();
extern "C" void __dt__21daObj_BouMato_Param_cFv();
extern "C" static void func_80BBC44C();
extern "C" static void func_80BBC454();
extern "C" u8 const m__21daObj_BouMato_Param_c[28];
extern "C" extern char const* const d_a_obj_boumato__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_XrotM__FPA4_fs();
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void mDoMtx_ZrotM__FPA4_fs();
extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fpcEx_IsExist__FUi();
extern "C" void fpcSch_JudgeByID__FPvPv();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void
dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void __ct__9dJntCol_cFv();
extern "C" void init__9dJntCol_cFP10fopAc_ac_cPC13dJntColData_cP8J3DModeli();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void endCheck__16dEvent_manager_cFs();
extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
extern "C" void cutEnd__16dEvent_manager_cFi();
extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
extern "C" void __ct__12dBgS_AcchCirFv();
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 __ct__11dBgS_LinChkFv();
extern "C" void __dt__11dBgS_LinChkFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Move__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void __dt__12dCcD_GObjInfFv();
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
extern "C" void daNpcT_chkEvtBit__FUl();
extern "C" void daNpcT_offTmpBit__FUl();
extern "C" void daNpcT_chkTmpBit__FUl();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void __ct__11cBgS_GndChkFv();
extern "C" void __dt__11cBgS_GndChkFv();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void __dt__8cM3dGCirFv();
extern "C" void SetC__8cM3dGCylFRC4cXyz();
extern "C" void SetH__8cM3dGCylFf();
extern "C" void SetR__8cM3dGCylFf();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_25();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 80BBC518-80BBC518 0000A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BBC518 = "";
SECTION_DEAD static char const* const stringBase_80BBC519 = "H_BouMato";
#pragma pop
/* 80BBC48C-80BBC4BC 00001C 0030+00 1/1 0/0 0/0 .rodata l_ccDObjData */
static dCcD_SrcGObjInf const l_ccDObjData =
{
{0x0, {{0x0, 0x0, 0}, {0xD8FBFDFF, 0x1F}, 0x79}}, // mObj
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
{dCcD_SE_STONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg
{0x0}, // mGObjCo
};
/* 80BBC52C-80BBC570 000000 0044+00 2/2 0/0 0/0 .data l_ccDCyl */
static dCcD_SrcCyl l_ccDCyl = {
{
{0x0, {{0x0, 0x0, 0x0}, {0x0, 0x0}, 0x0}}, // mObj
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg
{0x0}, // mGObjCo
}, // mObjInf
l_ccDObjData, // mObjInf
{
{0.0f, 0.0f, 0.0f}, // mCenter
0.0f, // mRadius
@ -168,28 +37,340 @@ static dCcD_SrcCyl l_ccDCyl = {
};
/* 80BBC570-80BBC574 -00001 0004+00 1/1 0/0 0/0 .data l_resName */
SECTION_DATA static void* l_resName = (void*)(((char*)&d_a_obj_boumato__stringBase0) + 0x1);
static char* l_resName = "H_BouMato";
/* 80BBC574-80BBC58C 000048 0018+00 1/0 0/0 0/0 .data jntCoOffset$4044 */
SECTION_DATA static u8 jntCoOffset[24] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
static Vec jntCoOffset[2] = {
{0.0f, 0.0f, 0.0f},
{0.0f, 300.0f, 0.0f},
};
/* 80BBC58C-80BBC598 -00001 000C+00 1/1 0/0 0/0 .data jntCoData$4045 */
SECTION_DATA static void* jntCoData[3] = {
(void*)0x01010000,
(void*)0x40800000,
(void*)&jntCoOffset,
// /* 80BBC58C-80BBC598 -00001 000C+00 1/1 0/0 0/0 .data jntCoData$4045 */
static dJntColData_c jntCoData = {
1, 1, 0, 4.0f, jntCoOffset,
};
/* 80BBAFEC-80BBB1F4 0000EC 0208+00 1/0 0/0 0/0 .text __dt__15daObj_BouMato_cFv */
daObj_BouMato_c::~daObj_BouMato_c() {
OS_REPORT("|%06d:%x|daObj_BouMato_c -> デストラクト\n", g_Counter, this);
dComIfG_resDelete(&mPhase, getResName());
}
/* 80BBB230-80BBB558 000330 0328+00 1/1 0/0 0/0 .text create__15daObj_BouMato_cFv */
int daObj_BouMato_c::create() {
fopAcM_SetupActor(this, daObj_BouMato_c);
field_0xa32 = getType();
int rv = dComIfG_resLoad(&mPhase, getResName());
if (rv == cPhs_COMPLEATE_e) {
OS_REPORT("\t(%s:%d) onSWBit:%02x, offSWBit:%02x<%08x>\n", fopAcM_getProcNameString(this), getType(), getOnSwBit(),
getOffSwBit(), fopAcM_GetParam(this));
OS_REPORT("\n");
if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x810) == 0) {
return cPhs_ERROR_e;
}
mModel->getModelData();
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f);
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
&mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
mAcch.CrrPos(dComIfG_Bgsp());
mGndChk = mAcch.m_gnd;
mGroundH = mAcch.GetGroundH();
setEnvTevColor();
setRoomNo();
mStts.Init(0xff, 0, this);
mCyl.Set(l_ccDCyl);
mCyl.SetStts(&mStts);
mCyl.SetTgHitCallback(tgHitCallBack);
daNpcT_offTmpBit(0x3c);
daNpcT_offTmpBit(0x3f);
daNpcT_offTmpBit(0x40);
daNpcT_offTmpBit(0x41);
daNpcT_offTmpBit(0x42);
mTargetId = -1;
Execute();
}
return rv;
}
/* 80BBB770-80BBB800 000870 0090+00 1/1 0/0 0/0 .text CreateHeap__15daObj_BouMato_cFv */
int daObj_BouMato_c::CreateHeap() {
J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(getResName(), 4);
JUT_ASSERT(374, 0 != mdlData_p);
mModel = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
if (mModel == NULL) {
return 0;
}
return mJntCol.init(this, &jntCoData, mModel, 1) ? 1 : 0;
}
/* 80BBB800-80BBB834 000900 0034+00 1/1 0/0 0/0 .text Delete__15daObj_BouMato_cFv */
int daObj_BouMato_c::Delete() {
OS_REPORT("|%06d:%x|daObj_BouMato_c -> Delete\n", g_Counter, this);
this->~daObj_BouMato_c();
return 1;
}
/* 80BBB834-80BBBD80 000934 054C+00 2/2 0/0 0/0 .text Execute__15daObj_BouMato_cFv */
int daObj_BouMato_c::Execute() {
cXyz cStack_34;
cXyz local_40;
mStts.Move();
u8 dVar1 = field_0xa38;
field_0xa38 = 1;
if (getOnSwBit() == 0xff || (getOnSwBit() != 0xff && dComIfGs_isSwitch(getOnSwBit(), fopAcM_GetRoomNo(this)))) {
if (daNpcT_chkTmpBit(0x3c) || (daNpcT_chkEvtBit(0x4b) && daNpcT_chkEvtBit(0x4c))) {
field_0xa38 = 0;
}
}
attention_info.flags = 0;
if (field_0xa38 == 1 && dVar1 == 0) {
deleteStuckArrow();
}
dComIfG_play_c& play = g_dComIfG_gameInfo.play;
if (play.getEvent().runCheck() && !eventInfo.checkCommandTalk()) {
if (eventInfo.checkCommandDemoAccrpt() && dComIfGp_getEventManager().endCheck(field_0xa30)) {
play.getEvent().reset();
field_0xa30 = -1;
} else {
int staffId = dComIfGp_getEventManager().getMyStaffId("BouMato", this, -1);
if (staffId != -1) {
dComIfGp_getEventManager().cutEnd(staffId);
}
}
}
if (field_0xa10 != 0) {
field_0xa10--;
}
if (field_0xa10 == 0 && mCyl.ChkTgHit()) {
if (mCyl.GetTgHitObj()->ChkAtType(AT_TYPE_ARROW)) {
mTargetId = fopAcM_GetID(mCyl.GetTgHitAc());
if (getOffSwBit() != 0xff) {
if (!dComIfGs_isSwitch(getOffSwBit(), fopAcM_GetRoomNo(this))) {
dComIfGs_onSwitch(getOffSwBit(), fopAcM_GetRoomNo(this));
}
}
fopAcM_seStartCurrent(this, Z2SE_OBJ_ARW_TRGT_BRK_LAST, 0);
}
setSwayParam(mCyl.GetTgHitAc());
}
fopAcM_posMoveF(this, mStts.GetCCMoveP());
mAcch.CrrPos(dComIfG_Bgsp());
mGndChk = mAcch.m_gnd;
mGroundH = mAcch.GetGroundH();
if (mGroundH != -1e9f) {
setEnvTevColor();
setRoomNo();
}
for (int i = 0; i < 3; i++) {
if (mIsCurTurnRight) {
mDoMtx_stack_c::YrotS(field_0xa24[i]);
cStack_34.set(0.0f, 0.0f, field_0xa18[i]);
mDoMtx_stack_c::multVec(&cStack_34, &local_40);
field_0x9f8[i].x = local_40.z;
field_0x9f8[i].z = -local_40.x;
field_0xa24[i] -= cM_deg2s(45.0f);
} else {
mDoMtx_stack_c::YrotS(field_0xa2a);
cStack_34.set(0.0f, 0.0f,
field_0xa18[i] * cM_ssin(field_0xa24[i]));
mDoMtx_stack_c::multVec((Vec*)&cStack_34, (Vec*)&local_40);
field_0x9f8[i].x = local_40.z;
field_0x9f8[i].z = -local_40.x;
field_0xa24[i] += cM_deg2s(45.0f);
}
}
cLib_addCalc2(field_0xa18, 0, 0.075f, 50.0f);
cLib_addCalc2(field_0xa18 + 1, 0, 0.1f, 100.0f);
cLib_addCalc2(field_0xa18 + 2, 0, 0.125f, 125.0f);
setMtx();
attention_info.position = current.pos;
attention_info.position.y += daObj_BouMato_Param_c::m[0];
eyePos = attention_info.position;
if (field_0xa38 == 0) {
mCyl.SetC(current.pos);
mCyl.SetH(daObj_BouMato_Param_c::m[4]);
mCyl.SetR(daObj_BouMato_Param_c::m[5]);
dComIfG_Ccsp()->Set(&mCyl);
}
mCyl.ClrTgHit();
return 1;
}
/* 80BBBD80-80BBBE50 000E80 00D0+00 1/1 0/0 0/0 .text Draw__15daObj_BouMato_cFv */
int daObj_BouMato_c::Draw() {
if (field_0xa38 == 0) {
g_env_light.settingTevStruct(0, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
mDoExt_modelUpdateDL(mModel);
if (mGroundH != -1e9f) {
mShadowId =
dComIfGd_setShadow(mShadowId, 1, mModel, &current.pos, daObj_BouMato_Param_c::m[3],
20.0f, current.pos.y, mGroundH, mGndChk, &tevStr, 0, 1.0f,
dDlst_shadowControl_c::getSimpleTex());
}
}
return 1;
}
/* 80BBBE50-80BBBE70 000F50 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__15daObj_BouMato_cFP10fopAc_ac_c */
int daObj_BouMato_c::createHeapCallBack(fopAc_ac_c* i_this) {
return static_cast<daObj_BouMato_c*>(i_this)->CreateHeap();
}
/* 80BBBE70-80BBBEA0 000F70 0030+00 1/1 0/0 0/0 .text
* tgHitCallBack__15daObj_BouMato_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
void daObj_BouMato_c::tgHitCallBack(fopAc_ac_c* param_1, dCcD_GObjInf* param_2,
fopAc_ac_c* param_3, dCcD_GObjInf* param_4) {
u8 cutType = 0;
if (param_3 != NULL) {
if (fopAcM_GetProfName(param_3) == PROC_ALINK) {
cutType = static_cast<daPy_py_c*>(param_3)->getCutType();
} else {
cutType = daPy_py_c::CUT_TYPE_NM_VERTICAL;
}
}
static_cast<daObj_BouMato_c*>(param_1)->setCutType(cutType);
}
/* ############################################################################################## */
/* 80BBC678-80BBC808 000008 0190+00 2/2 0/0 0/0 .bss l_findActorPtrs */
static daArrow_c* l_findActorPtrs[100];
/* 80BBC808-80BBC80C 000198 0004+00 2/2 0/0 0/0 .bss l_findCount */
static u32 l_findCount;
/* 80BBBEA0-80BBBF4C 000FA0 00AC+00 1/1 0/0 0/0 .text srchArrow__15daObj_BouMato_cFPvPv
*/
void* daObj_BouMato_c::srchArrow(void* param_1, void* param_2) {
if (l_findCount < 100 && param_1 != NULL && param_1 != param_2) {
if (fopAcM_IsExecuting(fopAcM_GetID(param_1)) && fopAcM_GetName(param_1) == PROC_ARROW &&
static_cast<daArrow_c*>(param_1)->getHitAcID() != -1)
{
l_findActorPtrs[l_findCount] = (daArrow_c*)param_1;
l_findCount++;
}
}
return NULL;
}
/* 80BBBF4C-80BBBFF8 00104C 00AC+00 1/1 0/0 0/0 .text deleteStuckArrow__15daObj_BouMato_cFv */
void daObj_BouMato_c::deleteStuckArrow() {
l_findCount = 0;
fopAcM_Search(srchArrow, this);
for (int i = 0; i < (int)l_findCount; i++) {
daArrow_c* pArrow = l_findActorPtrs[i];
if (this == fopAcM_SearchByID(pArrow->getHitAcID())) {
fopAcM_delete(pArrow);
}
}
}
/* 80BBBFF8-80BBC008 0010F8 0010+00 3/3 0/0 0/0 .text getResName__15daObj_BouMato_cFv */
char* daObj_BouMato_c::getResName() {
return l_resName;
}
/* 80BBC008-80BBC19C 001108 0194+00 1/1 0/0 0/0 .text
* setSwayParam__15daObj_BouMato_cFP10fopAc_ac_c */
void daObj_BouMato_c::setSwayParam(fopAc_ac_c* param_1) {
f32 dVar7 = 1.0f;
f32 local_48[3] = {0.0f, 0.0f, daObj_BouMato_Param_c::m[6]};;
field_0xa2a = (fopAcM_searchActorAngleY(this, param_1) - shape_angle.y) + 0x8000;
field_0xa10 = 8;
mIsCurTurnRight = false;
if (fopAcM_GetProfName(param_1) == PROC_ALINK) {
switch (mCutType) {
case daPy_py_c::CUT_TYPE_NM_RIGHT:
case daPy_py_c::CUT_TYPE_NM_LEFT:
case daPy_py_c::CUT_TYPE_FINISH_LEFT:
case daPy_py_c::CUT_TYPE_FINISH_VERTICAL:
if (mCutType == daPy_py_c::CUT_TYPE_NM_RIGHT) {
field_0xa2a -= 0x4000;
}
if (mCutType == daPy_py_c::CUT_TYPE_NM_LEFT) {
field_0xa2a += 0x4000;
}
dVar7 = 0.6f;
break;
case daPy_py_c::CUT_TYPE_TURN_RIGHT:
field_0xa10 = 20;
mIsCurTurnRight = true;
break;
default:
dVar7 = 0.6f;
break;
}
} else {
dVar7 = 0.6f;
}
for (int i = 0; i < 3; i++) {
field_0xa18[i] = dVar7 * cM_deg2s(local_48[i]);
field_0xa24[i] = 0x4000;
}
}
/* 80BBC19C-80BBC1F8 00129C 005C+00 2/2 0/0 0/0 .text setEnvTevColor__15daObj_BouMato_cFv
*/
void daObj_BouMato_c::setEnvTevColor() {
tevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(mGndChk);
tevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(mGndChk);
}
/* 80BBC1F8-80BBC23C 0012F8 0044+00 2/2 0/0 0/0 .text setRoomNo__15daObj_BouMato_cFv */
void daObj_BouMato_c::setRoomNo() {
s32 roomId = dComIfG_Bgsp().GetRoomId(mGndChk);
fopAcM_SetRoomNo(this, roomId);
mStts.SetRoomId(roomId);
}
/* 80BBC23C-80BBC2C0 00133C 0084+00 1/1 0/0 0/0 .text setMtx__15daObj_BouMato_cFv */
void daObj_BouMato_c::setMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle);
mDoMtx_stack_c::XrotM(field_0x9f8[2].x);
mDoMtx_stack_c::ZrotM(field_0x9f8[2].z);
mDoMtx_stack_c::scaleM(scale);
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80BBC2C0-80BBC2E0 0013C0 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Create__FPv */
static int daObj_BouMato_Create(void* i_this) {
return static_cast<daObj_BouMato_c*>(i_this)->create();
}
/* 80BBC2E0-80BBC300 0013E0 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Delete__FPv */
static int daObj_BouMato_Delete(void* i_this) {
return static_cast<daObj_BouMato_c*>(i_this)->Delete();
}
/* 80BBC300-80BBC320 001400 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Execute__FPv */
static int daObj_BouMato_Execute(void* i_this) {
return static_cast<daObj_BouMato_c*>(i_this)->Execute();
}
/* 80BBC320-80BBC340 001420 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Draw__FPv */
static int daObj_BouMato_Draw(void* i_this) {
return static_cast<daObj_BouMato_c*>(i_this)->Draw();
}
/* 80BBC340-80BBC348 001440 0008+00 1/0 0/0 0/0 .text daObj_BouMato_IsDelete__FPv */
static int daObj_BouMato_IsDelete(void* i_this) {
return 1;
}
/* 80BBC818-80BBC81C 0001A8 0004+00 1/1 0/0 0/0 .bss l_HIO */
static daObj_BouMato_Param_c l_HIO;
/* 80BBC598-80BBC5B8 -00001 0020+00 1/0 0/0 0/0 .data daObj_BouMato_MethodTable */
static actor_method_class daObj_BouMato_MethodTable = {
(process_method_func)daObj_BouMato_Create__FPv,
(process_method_func)daObj_BouMato_Delete__FPv,
(process_method_func)daObj_BouMato_Execute__FPv,
(process_method_func)daObj_BouMato_IsDelete__FPv,
(process_method_func)daObj_BouMato_Draw__FPv,
(process_method_func)daObj_BouMato_Create,
(process_method_func)daObj_BouMato_Delete,
(process_method_func)daObj_BouMato_Execute,
(process_method_func)daObj_BouMato_IsDelete,
(process_method_func)daObj_BouMato_Draw,
};
/* 80BBC5B8-80BBC5E8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_BOUMATO */
@ -210,443 +391,4 @@ extern actor_process_profile_definition g_profile_OBJ_BOUMATO = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80BBC5E8-80BBC60C 0000BC 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80BBC454,
(void*)NULL,
(void*)NULL,
(void*)func_80BBC44C,
};
/* 80BBC60C-80BBC618 0000E0 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 80BBC618-80BBC624 0000EC 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 80BBC624-80BBC630 0000F8 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */
SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_AcchCirFv,
};
/* 80BBC630-80BBC63C 000104 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80BBC63C-80BBC648 000110 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80BBC648-80BBC654 00011C 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGLin */
SECTION_DATA extern void* __vt__8cM3dGLin[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGLinFv,
};
/* 80BBC654-80BBC660 000128 000C+00 2/2 0/0 0/0 .data __vt__15daObj_BouMato_c */
SECTION_DATA extern void* __vt__15daObj_BouMato_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15daObj_BouMato_cFv,
};
/* 80BBAFEC-80BBB1F4 0000EC 0208+00 1/0 0/0 0/0 .text __dt__15daObj_BouMato_cFv */
daObj_BouMato_c::~daObj_BouMato_c() {
// NONMATCHING
}
/* 80BBB1F4-80BBB230 0002F4 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */
// csXyz::~csXyz() {
extern "C" void __dt__5csXyzFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BBC470-80BBC48C 000000 001C+00 4/4 0/0 0/0 .rodata m__21daObj_BouMato_Param_c */
SECTION_RODATA u8 const daObj_BouMato_Param_c::m[28] = {
0x00, 0x00, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xC8,
0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BBC470, &daObj_BouMato_Param_c::m);
/* 80BBC48C-80BBC4BC 00001C 0030+00 1/1 0/0 0/0 .rodata l_ccDObjData */
SECTION_RODATA static u8 const l_ccDObjData[48] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xD8, 0xFB, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BBC48C, &l_ccDObjData);
/* 80BBC4BC-80BBC4C0 00004C 0004+00 0/1 0/0 0/0 .rodata @3956 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3956 = -300.0f;
COMPILER_STRIP_GATE(0x80BBC4BC, &lit_3956);
#pragma pop
/* 80BBC4C0-80BBC4C4 000050 0004+00 0/1 0/0 0/0 .rodata @3957 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3957 = -50.0f;
COMPILER_STRIP_GATE(0x80BBC4C0, &lit_3957);
#pragma pop
/* 80BBC4C4-80BBC4C8 000054 0004+00 0/1 0/0 0/0 .rodata @3958 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3958 = 300.0f;
COMPILER_STRIP_GATE(0x80BBC4C4, &lit_3958);
#pragma pop
/* 80BBC4C8-80BBC4CC 000058 0004+00 0/1 0/0 0/0 .rodata @3959 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3959 = 450.0f;
COMPILER_STRIP_GATE(0x80BBC4C8, &lit_3959);
#pragma pop
/* 80BBB230-80BBB558 000330 0328+00 1/1 0/0 0/0 .text create__15daObj_BouMato_cFv */
void daObj_BouMato_c::create() {
// NONMATCHING
}
/* 80BBB558-80BBB55C 000658 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
// csXyz::csXyz() {
extern "C" void __ct__5csXyzFv() {
/* empty function */
}
/* 80BBB55C-80BBB5A4 00065C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGLinFv */
// cM3dGLin::~cM3dGLin() {
extern "C" void __dt__8cM3dGLinFv() {
// NONMATCHING
}
/* 80BBB5A4-80BBB5EC 0006A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80BBB5EC-80BBB634 0006EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80BBB634-80BBB6A4 000734 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
// dBgS_AcchCir::~dBgS_AcchCir() {
extern "C" void __dt__12dBgS_AcchCirFv() {
// NONMATCHING
}
/* 80BBB6A4-80BBB700 0007A4 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
}
/* 80BBB700-80BBB770 000800 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80BBB770-80BBB800 000870 0090+00 1/1 0/0 0/0 .text CreateHeap__15daObj_BouMato_cFv */
void daObj_BouMato_c::CreateHeap() {
// NONMATCHING
}
/* 80BBB800-80BBB834 000900 0034+00 1/1 0/0 0/0 .text Delete__15daObj_BouMato_cFv */
void daObj_BouMato_c::Delete() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BBC4CC-80BBC4D0 00005C 0004+00 0/3 0/0 0/0 .rodata @4241 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4241 = 1.0f;
COMPILER_STRIP_GATE(0x80BBC4CC, &lit_4241);
#pragma pop
/* 80BBC4D0-80BBC4D4 000060 0004+00 0/1 0/0 0/0 .rodata @4242 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4242 = -1.0f;
COMPILER_STRIP_GATE(0x80BBC4D0, &lit_4242);
#pragma pop
/* 80BBC4D4-80BBC4D8 000064 0004+00 0/2 0/0 0/0 .rodata @4243 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4243 = -1000000000.0f;
COMPILER_STRIP_GATE(0x80BBC4D4, &lit_4243);
#pragma pop
/* 80BBC4D8-80BBC4DC 000068 0004+00 0/1 0/0 0/0 .rodata @4244 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4244[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BBC4D8, &lit_4244);
#pragma pop
/* 80BBC4DC-80BBC4E0 00006C 0004+00 0/1 0/0 0/0 .rodata @4245 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4245 = 3.0f / 40.0f;
COMPILER_STRIP_GATE(0x80BBC4DC, &lit_4245);
#pragma pop
/* 80BBC4E0-80BBC4E4 000070 0004+00 0/1 0/0 0/0 .rodata @4246 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4246 = 50.0f;
COMPILER_STRIP_GATE(0x80BBC4E0, &lit_4246);
#pragma pop
/* 80BBC4E4-80BBC4E8 000074 0004+00 0/1 0/0 0/0 .rodata @4247 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4247 = 1.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BBC4E4, &lit_4247);
#pragma pop
/* 80BBC4E8-80BBC4EC 000078 0004+00 0/1 0/0 0/0 .rodata @4248 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4248 = 100.0f;
COMPILER_STRIP_GATE(0x80BBC4E8, &lit_4248);
#pragma pop
/* 80BBC4EC-80BBC4F0 00007C 0004+00 0/1 0/0 0/0 .rodata @4249 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4249 = 0.125f;
COMPILER_STRIP_GATE(0x80BBC4EC, &lit_4249);
#pragma pop
/* 80BBC4F0-80BBC4F4 000080 0004+00 0/1 0/0 0/0 .rodata @4250 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4250 = 125.0f;
COMPILER_STRIP_GATE(0x80BBC4F0, &lit_4250);
#pragma pop
/* 80BBC518-80BBC518 0000A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BBC523 = "BouMato";
#pragma pop
/* 80BBB834-80BBBD80 000934 054C+00 2/2 0/0 0/0 .text Execute__15daObj_BouMato_cFv */
void daObj_BouMato_c::Execute() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BBC4F4-80BBC4F8 000084 0004+00 0/1 0/0 0/0 .rodata @4266 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4266 = 20.0f;
COMPILER_STRIP_GATE(0x80BBC4F4, &lit_4266);
#pragma pop
/* 80BBBD80-80BBBE50 000E80 00D0+00 1/1 0/0 0/0 .text Draw__15daObj_BouMato_cFv */
void daObj_BouMato_c::Draw() {
// NONMATCHING
}
/* 80BBBE50-80BBBE70 000F50 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__15daObj_BouMato_cFP10fopAc_ac_c */
void daObj_BouMato_c::createHeapCallBack(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BBBE70-80BBBEA0 000F70 0030+00 1/1 0/0 0/0 .text
* tgHitCallBack__15daObj_BouMato_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
void daObj_BouMato_c::tgHitCallBack(fopAc_ac_c* param_0, dCcD_GObjInf* param_1,
fopAc_ac_c* param_2, dCcD_GObjInf* param_3) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BBC678-80BBC808 000008 0190+00 2/2 0/0 0/0 .bss l_findActorPtrs */
static u8 l_findActorPtrs[400];
/* 80BBC808-80BBC80C 000198 0004+00 2/2 0/0 0/0 .bss l_findCount */
static u8 l_findCount[4];
/* 80BBBEA0-80BBBF4C 000FA0 00AC+00 1/1 0/0 0/0 .text srchArrow__15daObj_BouMato_cFPvPv
*/
void daObj_BouMato_c::srchArrow(void* param_0, void* param_1) {
// NONMATCHING
}
/* 80BBBF4C-80BBBFF8 00104C 00AC+00 1/1 0/0 0/0 .text deleteStuckArrow__15daObj_BouMato_cFv */
void daObj_BouMato_c::deleteStuckArrow() {
// NONMATCHING
}
/* 80BBBFF8-80BBC008 0010F8 0010+00 3/3 0/0 0/0 .text getResName__15daObj_BouMato_cFv */
void daObj_BouMato_c::getResName() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BBC4F8-80BBC504 000088 000C+00 0/1 0/0 0/0 .rodata @4327 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4327[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BBC4F8, &lit_4327);
#pragma pop
/* 80BBC504-80BBC508 000094 0004+00 0/1 0/0 0/0 .rodata @4355 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4355 = 3.0f / 5.0f;
COMPILER_STRIP_GATE(0x80BBC504, &lit_4355);
#pragma pop
/* 80BBC508-80BBC510 000098 0004+04 0/1 0/0 0/0 .rodata @4356 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4356[1 + 1 /* padding */] = {
0x43360B61,
/* padding */
0x00000000,
};
COMPILER_STRIP_GATE(0x80BBC508, &lit_4356);
#pragma pop
/* 80BBC510-80BBC518 0000A0 0008+00 0/1 0/0 0/0 .rodata @4359 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4359[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BBC510, &lit_4359);
#pragma pop
/* 80BBC008-80BBC19C 001108 0194+00 1/1 0/0 0/0 .text
* setSwayParam__15daObj_BouMato_cFP10fopAc_ac_c */
void daObj_BouMato_c::setSwayParam(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BBC19C-80BBC1F8 00129C 005C+00 2/2 0/0 0/0 .text setEnvTevColor__15daObj_BouMato_cFv
*/
void daObj_BouMato_c::setEnvTevColor() {
// NONMATCHING
}
/* 80BBC1F8-80BBC23C 0012F8 0044+00 2/2 0/0 0/0 .text setRoomNo__15daObj_BouMato_cFv */
void daObj_BouMato_c::setRoomNo() {
// NONMATCHING
}
/* 80BBC23C-80BBC2C0 00133C 0084+00 1/1 0/0 0/0 .text setMtx__15daObj_BouMato_cFv */
void daObj_BouMato_c::setMtx() {
// NONMATCHING
}
/* 80BBC2C0-80BBC2E0 0013C0 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Create__FPv */
static void daObj_BouMato_Create(void* param_0) {
// NONMATCHING
}
/* 80BBC2E0-80BBC300 0013E0 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Delete__FPv */
static void daObj_BouMato_Delete(void* param_0) {
// NONMATCHING
}
/* 80BBC300-80BBC320 001400 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Execute__FPv */
static void daObj_BouMato_Execute(void* param_0) {
// NONMATCHING
}
/* 80BBC320-80BBC340 001420 0020+00 1/0 0/0 0/0 .text daObj_BouMato_Draw__FPv */
static void daObj_BouMato_Draw(void* param_0) {
// NONMATCHING
}
/* 80BBC340-80BBC348 001440 0008+00 1/0 0/0 0/0 .text daObj_BouMato_IsDelete__FPv */
static bool daObj_BouMato_IsDelete(void* param_0) {
return true;
}
/* 80BBC348-80BBC390 001448 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BBC660-80BBC66C 000134 000C+00 2/2 0/0 0/0 .data __vt__21daObj_BouMato_Param_c */
SECTION_DATA extern void* __vt__21daObj_BouMato_Param_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__21daObj_BouMato_Param_cFv,
};
/* 80BBC80C-80BBC818 00019C 000C+00 1/1 0/0 0/0 .bss @3830 */
static u8 lit_3830[12];
/* 80BBC818-80BBC81C 0001A8 0004+00 1/1 0/0 0/0 .bss l_HIO */
static u8 l_HIO[4];
/* 80BBC390-80BBC404 001490 0074+00 0/0 1/0 0/0 .text __sinit_d_a_obj_boumato_cpp */
void __sinit_d_a_obj_boumato_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80BBC390, __sinit_d_a_obj_boumato_cpp);
#pragma pop
/* 80BBC404-80BBC44C 001504 0048+00 2/1 0/0 0/0 .text __dt__21daObj_BouMato_Param_cFv */
daObj_BouMato_Param_c::~daObj_BouMato_Param_c() {
// NONMATCHING
}
/* 80BBC44C-80BBC454 00154C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80BBC44C() {
// NONMATCHING
}
/* 80BBC454-80BBC45C 001554 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80BBC454() {
// NONMATCHING
}
/* 80BBC518-80BBC518 0000A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -4,334 +4,322 @@
*/
#include "d/actor/d_a_obj_gra_rock.h"
#include "dol2asm.h"
#include "d/actor/d_a_npc.h"
#include "d/d_bg_w.h"
//
// Forward References:
//
extern "C" void setAttnPos__14daObjGraRock_cFv();
extern "C" void setBaseMtx__14daObjGraRock_cFv();
extern "C" void setPrtcl__14daObjGraRock_cFv();
extern "C" void bombParticleSet__14daObjGraRock_cFv();
extern "C" void setEnvTevColor__14daObjGraRock_cFv();
extern "C" void setRoomNo__14daObjGraRock_cFv();
extern "C" void col_set__14daObjGraRock_cFv();
extern "C" void checkHitAt__14daObjGraRock_cFP8cCcD_Obj();
extern "C" void Create__14daObjGraRock_cFv();
extern "C" void CreateHeap__14daObjGraRock_cFv();
extern "C" void create__14daObjGraRock_cFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" void Execute__14daObjGraRock_cFPPA3_A4_f();
extern "C" void Draw__14daObjGraRock_cFv();
extern "C" void Delete__14daObjGraRock_cFv();
extern "C" static void daObjGraRock_Draw__FP14daObjGraRock_c();
extern "C" static void daObjGraRock_Execute__FP14daObjGraRock_c();
extern "C" static bool daObjGraRock_IsDelete__FP14daObjGraRock_c();
extern "C" static void daObjGraRock_Delete__FP14daObjGraRock_c();
extern "C" static void daObjGraRock_create__FP10fopAc_ac_c();
extern "C" void func_80C122F0(void* _this, s16*);
extern "C" void func_80C1230C(void* _this, u8*);
extern "C" void func_80C12328(void* _this, int, int);
extern "C" static void func_80C123A4();
extern "C" static void func_80C123AC();
extern "C" u8 const mCcDCyl__14daObjGraRock_c[68];
extern "C" extern char const* const d_a_obj_gra_rock__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_ZXYrotS__FPA4_fsss();
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void play__14mDoExt_baseAnmFv();
extern "C" void init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss();
extern "C" void entry__13mDoExt_btpAnmFP16J3DMaterialTables();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void LockonTarget__12dAttention_cFl();
extern "C" void LockonTruth__12dAttention_cFv();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
extern "C" void dBgS_MoveBGProc_TypicalRotY__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 __ct__16dBgS_MoveBgActorFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" void
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
extern "C" void daNpcF_chkEvtBit__FUl();
extern "C" void daNpcF_onEvtBit__FUl();
extern "C" void daNpcF_getDistTableIdx__Fii();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void cM_rndF__Ff();
extern "C" void __ct__11cBgS_GndChkFv();
extern "C" void ChkUsed__9cBgW_BgIdCFv();
extern "C" void SetC__8cM3dGCylFRC4cXyz();
extern "C" void SetH__8cM3dGCylFf();
extern "C" void SetR__8cM3dGCylFf();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_27();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 80C123BC-80C12400 000000 0044+00 3/3 0/0 0/0 .rodata mCcDCyl__14daObjGraRock_c */
SECTION_RODATA u8 const daObjGraRock_c::mCcDCyl[68] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
dCcD_SrcCyl const daObjGraRock_c::mCcDCyl = {
{
{0x0, {{0x0, 0x0, 0x0}, {0x2020, 0x11}, 0x0}}, // mObj
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjTg
{0x0}, // mGObjCo
}, // mObjInf
{
{0.0f, 0.0f, 0.0f}, // mCenter
0.0f, // mRadius
0.0f // mHeight
} // mCyl
};
COMPILER_STRIP_GATE(0x80C123BC, &daObjGraRock_c::mCcDCyl);
/* 80C12400-80C12404 000044 0004+00 1/4 0/0 0/0 .rodata @3857 */
SECTION_RODATA static u8 const lit_3857[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80C12400, &lit_3857);
/* 80C12404-80C12408 000048 0004+00 0/2 0/0 0/0 .rodata @3858 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3858 = 680.0f;
COMPILER_STRIP_GATE(0x80C12404, &lit_3858);
#pragma pop
/* 80C12408-80C1240C 00004C 0004+00 0/2 0/0 0/0 .rodata @3859 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3859 = 145.0f;
COMPILER_STRIP_GATE(0x80C12408, &lit_3859);
#pragma pop
/* 80C1240C-80C12410 000050 0004+00 4/6 0/0 0/0 .rodata @3860 */
SECTION_RODATA static f32 const lit_3860 = 1.0f;
COMPILER_STRIP_GATE(0x80C1240C, &lit_3860);
/* 80C12410-80C12414 000054 0004+00 0/2 0/0 0/0 .rodata @3861 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3861 = -1.0f;
COMPILER_STRIP_GATE(0x80C12410, &lit_3861);
#pragma pop
/* 80C12414-80C1241C 000058 0004+04 0/1 0/0 0/0 .rodata @3862 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3862[1 + 1 /* padding */] = {
90.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80C12414, &lit_3862);
#pragma pop
/* 80C1241C-80C12424 000060 0008+00 1/2 0/0 0/0 .rodata @3864 */
SECTION_RODATA static u8 const lit_3864[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C1241C, &lit_3864);
/* 80C110F8-80C11444 000078 034C+00 1/1 0/0 0/0 .text setAttnPos__14daObjGraRock_cFv */
void daObjGraRock_c::setAttnPos() {
// NONMATCHING
cXyz cStack_50(0.0f, 680.0f, 145.0f);
mDoMtx_stack_c::ZXYrotS(current.angle.x, current.angle.y, current.angle.z);
mDoMtx_stack_c::multVec(&cStack_50, &attention_info.position);
attention_info.position += current.pos;
attention_info.distances[0] = daNpcF_getDistTableIdx(8, 5);
attention_info.flags = 1;
dAttention_c& attention = dComIfGp_getAttention();
if (attention.LockonTruth()) {
if (attention.LockonTarget(0) == this && field_0x9bc == 0 && field_0x9b6 == 0) {
field_0x9b6 = 90;
field_0x9bd = 3;
s16 sVar4 = cLib_getRndValue(0, 0x10000);
s16 sVar5 = cLib_getRndValue(0x400, 0x200);
field_0x9b2 = sVar5 * cM_scos(sVar4);
field_0x9b4 = sVar5 * cM_ssin(sVar4);
field_0x9b8 = cLib_getRndValue(2, 2);
field_0x9ba = cLib_getRndValue(2, 2);
Z2GetAudioMgr()->seStart(Z2SE_OBJ_ZR_GRN_ROCK_GRGR, &current.pos, 0, 0, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
Z2GetAudioMgr()->seStart(Z2SE_GRA_V_YURAYURA, &attention_info.position, 0, 0, 1.0f,
1.0f, -1.0f, -1.0f, 0);
}
field_0x9bc = 1;
} else {
field_0x9bc = 0;
}
if (cLib_calcTimer(&field_0x9b6) != 0) {
current.angle.x = ((f32)field_0x9b2 * (f32)field_0x9b6 / 90.0f) * cM_ssin((field_0x9b8 * (field_0x9b6 * 0x10000)) / 90);
current.angle.z = ((f32)field_0x9b4 * (f32)field_0x9b6 / 90.0f) * cM_ssin((field_0x9ba * (field_0x9b6 * 0x10000)) / 90);
setPrtcl();
}
shape_angle = current.angle;
}
/* 80C11444-80C114C0 0003C4 007C+00 2/2 0/0 0/0 .text setBaseMtx__14daObjGraRock_cFv */
void daObjGraRock_c::setBaseMtx() {
// NONMATCHING
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
}
/* ############################################################################################## */
/* 80C12424-80C12428 000068 0004+00 1/1 0/0 0/0 .rodata l_prticles_id$3890 */
SECTION_RODATA static u8 const l_prticles_id[4] = {
0x87,
0x5F,
0x87,
0x60,
static u16 const l_prticles_id[2] = {
0x875F,
0x8760,
};
COMPILER_STRIP_GATE(0x80C12424, &l_prticles_id);
/* 80C114C0-80C1157C 000440 00BC+00 1/1 0/0 0/0 .text setPrtcl__14daObjGraRock_cFv */
void daObjGraRock_c::setPrtcl() {
// NONMATCHING
for (int i = 0; i < 2; i++) {
mParticleIds[i] = dComIfGp_particle_set(mParticleIds[i], l_prticles_id[i], &current.pos,
&current.angle, &scale);
}
}
/* 80C1157C-80C11730 0004FC 01B4+00 1/1 0/0 0/0 .text bombParticleSet__14daObjGraRock_cFv
*/
void daObjGraRock_c::bombParticleSet() {
// NONMATCHING
dComIfGp_particle_set(0x875b, &current.pos, &tevStr, &current.angle, 0);
dComIfGp_particle_set(0x8767, &current.pos, &tevStr, &current.angle, 0);
dComIfGp_particle_set(0x875c, &current.pos, &tevStr, &current.angle, 0);
dComIfGp_particle_set(0x875d, &current.pos, &tevStr, &current.angle, 0);
dComIfGp_particle_set(0x875e, &current.pos, &tevStr, &current.angle, 0);
}
/* 80C11730-80C1178C 0006B0 005C+00 1/1 0/0 0/0 .text setEnvTevColor__14daObjGraRock_cFv
*/
void daObjGraRock_c::setEnvTevColor() {
// NONMATCHING
tevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(mGndChk);
tevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(mGndChk);
}
/* 80C1178C-80C117D0 00070C 0044+00 1/1 0/0 0/0 .text setRoomNo__14daObjGraRock_cFv */
void daObjGraRock_c::setRoomNo() {
// NONMATCHING
s32 roomId = dComIfG_Bgsp().GetRoomId(mGndChk);
fopAcM_SetRoomNo(this, roomId);
mStts.SetRoomId(roomId);
}
/* 80C117D0-80C11964 000750 0194+00 1/1 0/0 0/0 .text col_set__14daObjGraRock_cFv */
void daObjGraRock_c::col_set() {
// NONMATCHING
if (mCyl.ChkTgHit()) {
if (checkHitAt(mCyl.GetTgHitObj())) {
cXyz acStack_2c(0.0f, 680.0f, 145.0f);
mDoMtx_stack_c::ZXYrotS(current.angle.x, current.angle.y, current.angle.z);
mDoMtx_stack_c::multVec(&acStack_2c, &acStack_2c);
acStack_2c += current.pos;
bombParticleSet();
daNpcF_onEvtBit(0x150);
dComIfGs_onSwitch(field_0x9c8, fopAcM_GetRoomNo(this));
csXyz local_34(current.angle);
local_34.x = 2;
fopAcM_create(PROC_NPC_GRA, 0x5fffff00, &acStack_2c, fopAcM_GetRoomNo(this), &local_34, 0,
-1);
Z2GetAudioMgr()->seStart(Z2SE_OBJ_ZR_GRN_ROCK_BRK, &current.pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
0);
fopAcM_delete(this);
return;
}
mCyl.ClrTgHit();
}
dComIfG_Ccsp()->Set(&mCyl);
}
/* 80C11964-80C11970 0008E4 000C+00 1/1 0/0 0/0 .text checkHitAt__14daObjGraRock_cFP8cCcD_Obj */
void daObjGraRock_c::checkHitAt(cCcD_Obj* param_0) {
// NONMATCHING
int daObjGraRock_c::checkHitAt(cCcD_Obj* hitObj) {
return hitObj->ChkAtType(AT_TYPE_BOMB) ? 1 : 0;
}
/* ############################################################################################## */
/* 80C12428-80C1242C 00006C 0004+00 0/1 0/0 0/0 .rodata @4024 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4024 = 0xC3A438D5;
COMPILER_STRIP_GATE(0x80C12428, &lit_4024);
#pragma pop
/* 80C1242C-80C12430 000070 0004+00 0/1 0/0 0/0 .rodata @4025 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4025 = -150.0f;
COMPILER_STRIP_GATE(0x80C1242C, &lit_4025);
#pragma pop
/* 80C12430-80C12434 000074 0004+00 0/1 0/0 0/0 .rodata @4026 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4026 = 0xC3C01581;
COMPILER_STRIP_GATE(0x80C12430, &lit_4026);
#pragma pop
/* 80C12434-80C12438 000078 0004+00 0/1 0/0 0/0 .rodata @4027 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4027 = 0x43A1274C;
COMPILER_STRIP_GATE(0x80C12434, &lit_4027);
#pragma pop
/* 80C12438-80C1243C 00007C 0004+00 0/1 0/0 0/0 .rodata @4028 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4028 = 0x4483F1C2;
COMPILER_STRIP_GATE(0x80C12438, &lit_4028);
#pragma pop
/* 80C1243C-80C12440 000080 0004+00 0/1 0/0 0/0 .rodata @4029 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4029 = 0x43C89F9E;
COMPILER_STRIP_GATE(0x80C1243C, &lit_4029);
#pragma pop
/* 80C11970-80C11B68 0008F0 01F8+00 1/0 0/0 0/0 .text Create__14daObjGraRock_cFv */
void daObjGraRock_c::Create() {
// NONMATCHING
int daObjGraRock_c::Create() {
setBaseMtx();
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -328.444f, -150.0f,
-384.168f, 322.307f,
1055.554931640625f, 401.247f);
mAcchCir.SetWall(0.0f, 0.0f);
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
&mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
mStts.Init(0xff, 0, this);
mCyl.Set(mCcDCyl);
mCyl.SetStts(&mStts);
fopAcM_getCullSizeBoxMin(this);
const Vec* cullMax = fopAcM_getCullSizeBoxMax(this);
f32 fVar1;
if (cullMax->x > cullMax->z) {
fVar1 = cullMax->x;
} else {
fVar1 = cullMax->z;
}
mCyl.SetC(current.pos);
mCyl.SetH(cullMax->y);
mCyl.SetR(fVar1);
mAcch.CrrPos(dComIfG_Bgsp());
mGndChk = mAcch.m_gnd;
setEnvTevColor();
setRoomNo();
for (int i = 0; i < 2; i++) {
mParticleIds[i] = 0xffffffff;
}
field_0x9b0 = 0;
field_0x9b6 = 0;
field_0x9bc = 0;
field_0x9bd = 0;
field_0x9be = cLib_getRndValue(90, 90);
return 1;
}
/* ############################################################################################## */
/* 80C12440-80C12440 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C12440 = "M_VBom";
SECTION_DEAD static char const* const stringBase_80C12447 = "grA_base";
SECTION_DEAD static char const* const stringBase_80C12450 = "grA_mdl";
SECTION_DEAD static char const* const stringBase_80C12458 = "grA_Rock";
SECTION_DEAD static char const* const stringBase_80C12461 = "grA_RockD";
SECTION_DEAD static char const* const stringBase_80C1246B = "M_VBom_Zora.bmd";
SECTION_DEAD static char const* const stringBase_80C1247B = "M_VBom_Zora.btp";
#pragma pop
/* 80C1249C-80C124B0 -00001 0014+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName[5] = {
(void*)&d_a_obj_gra_rock__stringBase0,
(void*)(((char*)&d_a_obj_gra_rock__stringBase0) + 0x7),
(void*)(((char*)&d_a_obj_gra_rock__stringBase0) + 0x10),
(void*)(((char*)&d_a_obj_gra_rock__stringBase0) + 0x18),
(void*)(((char*)&d_a_obj_gra_rock__stringBase0) + 0x21),
static char* l_arcName[5] = {
"M_VBom",
"grA_base",
"grA_mdl",
"grA_Rock",
"grA_RockD",
};
/* 80C11B68-80C11C64 000AE8 00FC+00 1/0 0/0 0/0 .text CreateHeap__14daObjGraRock_cFv */
void daObjGraRock_c::CreateHeap() {
// NONMATCHING
int daObjGraRock_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName[0], "M_VBom_Zora.bmd");
JUT_ASSERT(488, modelData != 0);
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11020084);
if (mModel == NULL) {
return 0;
}
J3DAnmTexPattern* btp_p =
(J3DAnmTexPattern*)dComIfG_getObjectRes(l_arcName[0], "M_VBom_Zora.btp");
JUT_ASSERT(501, btp_p != 0);
if (mBtp.init(modelData, btp_p, 1, 2, 1.0f, 0, -1) == 0) {
return 0;
}
mBtp.setPlaySpeed(1.0f);
return 1;
}
/* ############################################################################################## */
/* 80C12440-80C12440 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C1248B = "M_VBom_Zora.dzb";
#pragma pop
/* 80C11C64-80C11EA8 000BE4 0244+00 1/1 0/0 0/0 .text create__14daObjGraRock_cFv */
int daObjGraRock_c::create() {
fopAcM_SetupActor(this, daObjGraRock_c);
field_0x9c8 = fopAcM_GetParam(this);
int i;
int completedNum;
int rv;
completedNum = 0;
for (i = 0; i < 5; i++) {
rv = dComIfG_resLoad(&mPhases[i], l_arcName[i]);
if (rv == cPhs_ERROR_e || rv == cPhs_UNK3_e) {
return cPhs_ERROR_e;
}
if (rv == cPhs_COMPLEATE_e) {
completedNum++;
}
}
if (i == completedNum) {
int dzb_id = dComIfG_getObjctResName2Index(l_arcName[0], "M_VBom_Zora.dzb");
JUT_ASSERT(550, dzb_id != -1);
rv = MoveBGCreate(l_arcName[0], dzb_id,
dBgS_MoveBGProc_TypicalRotY, 0x2d50, NULL);
if (daNpcF_chkEvtBit(0x150)) {
rv = cPhs_ERROR_e;
}
if (rv == cPhs_ERROR_e) {
return rv;
}
}
return rv;
}
/* 80C11FF0-80C120FC 000F70 010C+00 1/0 0/0 0/0 .text Execute__14daObjGraRock_cFPPA3_A4_f
*/
int daObjGraRock_c::Execute(Mtx** pMtx) {
mBtp.play();
if (field_0x9bd != 0) {
if (mBtp.isLoop()) {
if (cLib_calcTimer(&field_0x9bd) == 0) {
mBtp.setPlaySpeed(0.0f);
field_0x9be = cLib_getRndValue(90, 90);
}
} else {
mBtp.setPlaySpeed(1.0f);
}
} else {
if (cLib_calcTimer(&field_0x9be) == 0) {
mBtp.setPlaySpeed(1.0);
if (mBtp.isLoop()) {
field_0x9be = cLib_getRndValue(90, 90);
mBtp.setPlaySpeed(0.0f);
}
} else {
mBtp.setPlaySpeed(0.0f);
}
}
col_set();
*pMtx = &mBgMtx;
setAttnPos();
setBaseMtx();
return 1;
}
/* 80C120FC-80C121C4 00107C 00C8+00 1/0 0/0 0/0 .text Draw__14daObjGraRock_cFv */
int daObjGraRock_c::Draw() {
g_env_light.settingTevStruct(0, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
dComIfGd_setListBG();
mBtp.entry(mModel->getModelData());
mDoExt_modelUpdateDL(mModel);
dComIfGd_setList();
return 1;
}
/* 80C121C4-80C1225C 001144 0098+00 1/0 0/0 0/0 .text Delete__14daObjGraRock_cFv */
int daObjGraRock_c::Delete() {
for (int i = 0; i < 5; i = i + 1) {
dComIfG_resDelete(&mPhases[i], l_arcName[i]);
}
if (mpBgW != NULL && mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Release(mpBgW) != 0) {
OS_REPORT("Release Error\n");
}
}
return 1;
}
/* 80C1225C-80C12288 0011DC 002C+00 1/0 0/0 0/0 .text daObjGraRock_Draw__FP14daObjGraRock_c */
static int daObjGraRock_Draw(daObjGraRock_c* i_this) {
return i_this->Draw();
}
/* 80C12288-80C122A8 001208 0020+00 1/0 0/0 0/0 .text daObjGraRock_Execute__FP14daObjGraRock_c */
static int daObjGraRock_Execute(daObjGraRock_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80C122A8-80C122B0 001228 0008+00 1/0 0/0 0/0 .text daObjGraRock_IsDelete__FP14daObjGraRock_c */
static int daObjGraRock_IsDelete(daObjGraRock_c* i_this) {
return 1;
}
/* 80C122B0-80C122D0 001230 0020+00 1/0 0/0 0/0 .text daObjGraRock_Delete__FP14daObjGraRock_c */
static int daObjGraRock_Delete(daObjGraRock_c* i_this) {
return i_this->MoveBGDelete();
}
/* 80C122D0-80C122F0 001250 0020+00 1/0 0/0 0/0 .text daObjGraRock_create__FP10fopAc_ac_c
*/
static int daObjGraRock_create(fopAc_ac_c* i_this) {
return static_cast<daObjGraRock_c*>(i_this)->create();
}
/* 80C124B0-80C124D0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjGraRock_Method */
static actor_method_class l_daObjGraRock_Method = {
(process_method_func)daObjGraRock_create__FP10fopAc_ac_c,
(process_method_func)daObjGraRock_Delete__FP14daObjGraRock_c,
(process_method_func)daObjGraRock_Execute__FP14daObjGraRock_c,
(process_method_func)daObjGraRock_IsDelete__FP14daObjGraRock_c,
(process_method_func)daObjGraRock_Draw__FP14daObjGraRock_c,
(process_method_func)daObjGraRock_create,
(process_method_func)daObjGraRock_Delete,
(process_method_func)daObjGraRock_Execute,
(process_method_func)daObjGraRock_IsDelete,
(process_method_func)daObjGraRock_Draw,
};
/* 80C124D0-80C12500 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_GraRock */
@ -352,148 +340,4 @@ extern actor_process_profile_definition g_profile_Obj_GraRock = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80C12500-80C1250C 000064 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80C1250C-80C12518 000070 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80C12518-80C1253C 00007C 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80C123AC,
(void*)NULL,
(void*)NULL,
(void*)func_80C123A4,
};
/* 80C1253C-80C12548 0000A0 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12J3DFrameCtrlFv,
};
/* 80C12548-80C12570 0000AC 0028+00 1/1 0/0 0/0 .data __vt__14daObjGraRock_c */
SECTION_DATA extern void* __vt__14daObjGraRock_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__14daObjGraRock_cFv,
(void*)Create__14daObjGraRock_cFv,
(void*)Execute__14daObjGraRock_cFPPA3_A4_f,
(void*)Draw__14daObjGraRock_cFv,
(void*)Delete__14daObjGraRock_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80C11C64-80C11EA8 000BE4 0244+00 1/1 0/0 0/0 .text create__14daObjGraRock_cFv */
void daObjGraRock_c::create() {
// NONMATCHING
}
/* 80C11EA8-80C11EF0 000E28 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80C11EF0-80C11F38 000E70 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80C11F38-80C11FA8 000EB8 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80C11FA8-80C11FF0 000F28 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
// J3DFrameCtrl::~J3DFrameCtrl() {
extern "C" void __dt__12J3DFrameCtrlFv() {
// NONMATCHING
}
/* 80C11FF0-80C120FC 000F70 010C+00 1/0 0/0 0/0 .text Execute__14daObjGraRock_cFPPA3_A4_f
*/
void daObjGraRock_c::Execute(f32 (**param_0)[3][4]) {
// NONMATCHING
}
/* 80C120FC-80C121C4 00107C 00C8+00 1/0 0/0 0/0 .text Draw__14daObjGraRock_cFv */
void daObjGraRock_c::Draw() {
// NONMATCHING
}
/* 80C121C4-80C1225C 001144 0098+00 1/0 0/0 0/0 .text Delete__14daObjGraRock_cFv */
void daObjGraRock_c::Delete() {
// NONMATCHING
}
/* 80C1225C-80C12288 0011DC 002C+00 1/0 0/0 0/0 .text daObjGraRock_Draw__FP14daObjGraRock_c */
static void daObjGraRock_Draw(daObjGraRock_c* param_0) {
// NONMATCHING
}
/* 80C12288-80C122A8 001208 0020+00 1/0 0/0 0/0 .text daObjGraRock_Execute__FP14daObjGraRock_c */
static void daObjGraRock_Execute(daObjGraRock_c* param_0) {
// NONMATCHING
}
/* 80C122A8-80C122B0 001228 0008+00 1/0 0/0 0/0 .text daObjGraRock_IsDelete__FP14daObjGraRock_c */
static bool daObjGraRock_IsDelete(daObjGraRock_c* param_0) {
return true;
}
/* 80C122B0-80C122D0 001230 0020+00 1/0 0/0 0/0 .text daObjGraRock_Delete__FP14daObjGraRock_c */
static void daObjGraRock_Delete(daObjGraRock_c* param_0) {
// NONMATCHING
}
/* 80C122D0-80C122F0 001250 0020+00 1/0 0/0 0/0 .text daObjGraRock_create__FP10fopAc_ac_c
*/
static void daObjGraRock_create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80C122F0-80C1230C 001270 001C+00 2/2 0/0 0/0 .text cLib_calcTimer<s>__FPs */
extern "C" void func_80C122F0(void* _this, s16* param_0) {
// NONMATCHING
}
/* 80C1230C-80C12328 00128C 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
extern "C" void func_80C1230C(void* _this, u8* param_0) {
// NONMATCHING
}
/* 80C12328-80C123A4 0012A8 007C+00 3/3 0/0 0/0 .text cLib_getRndValue<i>__Fii */
extern "C" void func_80C12328(void* _this, int param_0, int param_1) {
// NONMATCHING
}
/* 80C123A4-80C123AC 001324 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80C123A4() {
// NONMATCHING
}
/* 80C123AC-80C123B4 00132C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80C123AC() {
// NONMATCHING
}
/* 80C12440-80C12440 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */