mirror of https://github.com/zeldaret/tp.git
obj_mato / obj_nagaisu (#2714)
This commit is contained in:
parent
40e61bf913
commit
0520ce1757
|
|
@ -2096,7 +2096,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_magLiftRot"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_maki"),
|
||||
ActorRel(Equivalent, "d_a_obj_master_sword"), # weak function and vtable order (dBgS_AcchCir/dBgS_ObjAcch)
|
||||
ActorRel(NonMatching, "d_a_obj_mato"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mato"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mhole"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mie"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_6pole"),
|
||||
|
|
|
|||
|
|
@ -2,11 +2,31 @@
|
|||
#define D_A_OBJ_MATO_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_path.h"
|
||||
|
||||
class daObjMATO_c;
|
||||
|
||||
struct MatoData_s {
|
||||
/* 0x000 */ J3DModel* model;
|
||||
/* 0x004 */ dCcD_Stts ccStts;
|
||||
/* 0x040 */ dCcD_Cyl ccCyl;
|
||||
/* 0x17C */ cXyz pos;
|
||||
/* 0x188 */ cXyz scale;
|
||||
/* 0x194 */ csXyz rot;
|
||||
/* 0x19C */ void (daObjMATO_c::*action)(int);
|
||||
/* 0x1A8 */ void (daObjMATO_c::*prev_action)(int);
|
||||
/* 0x1B4 */ int mode;
|
||||
/* 0x1B8 */ s16 rot_speed;
|
||||
/* 0x1BA */ u8 type;
|
||||
/* 0x1BB */ u8 is_hit;
|
||||
/* 0x1BC */ u8 timer;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
* @class daObjMATO_c
|
||||
* @brief Target (???)
|
||||
* @brief Flight by Fowl Rupee Target
|
||||
*
|
||||
* @details
|
||||
*
|
||||
|
|
@ -20,23 +40,23 @@ public:
|
|||
/* 80C91F74 */ void wait(int);
|
||||
/* 80C92044 */ void disappear(int);
|
||||
/* 80C921A8 */ void getRupee(int);
|
||||
/* 80C922AC */ void execute();
|
||||
/* 80C92380 */ void _delete();
|
||||
/* 80C922AC */ int execute();
|
||||
/* 80C92380 */ int _delete();
|
||||
/* 80C9243C */ void setBaseMtx();
|
||||
/* 80C92650 */ void mato_init();
|
||||
/* 80C927AC */ void create();
|
||||
/* 80C92650 */ int mato_init();
|
||||
/* 80C927AC */ int create();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x39f8 - 0x568];
|
||||
inline int CreateHeap();
|
||||
inline int draw();
|
||||
|
||||
/* 0x0568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x0570 */ dPath* mpPath;
|
||||
/* 0x0574 */ MatoData_s mData[30];
|
||||
/* 0x39F4 */ u16 field_0x39f4;
|
||||
/* 0x39F6 */ u8 field_0x39f6;
|
||||
/* 0x39F7 */ u8 mIsAddSimpleModel;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjMATO_c) == 0x39f8);
|
||||
|
||||
struct MatoData_s {
|
||||
public:
|
||||
/* 80C92924 */ ~MatoData_s();
|
||||
/* 80C92A50 */ MatoData_s();
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_MATO_H */
|
||||
|
|
|
|||
|
|
@ -5,6 +5,40 @@
|
|||
#include "d/d_cc_d.h"
|
||||
#include "d/d_model.h"
|
||||
|
||||
class daObjNagaisu_c;
|
||||
|
||||
// child seat / couch?
|
||||
class daObjIsuChild_c {
|
||||
public:
|
||||
/* 80C9FA90 */ daObjIsuChild_c();
|
||||
/* 80C9FCDC */ virtual ~daObjIsuChild_c();
|
||||
/* 80C9FD4C */ int createHeap();
|
||||
/* 80C9FE28 */ void create(daObjNagaisu_c*, dCcD_Stts*);
|
||||
/* 80C9FF54 */ int execute();
|
||||
/* 80CA0034 */ int draw(dMdl_c*);
|
||||
/* 80CA00B8 */ int Delete();
|
||||
/* 80CA0118 */ bool chkHit();
|
||||
/* 80CA0180 */ void callEmt();
|
||||
|
||||
void setDeadFlg(bool i_flg) { mIsDead = i_flg; }
|
||||
bool getDeadFlg() { return mIsDead; }
|
||||
|
||||
void setPos(const cXyz& i_pos) {
|
||||
mPos.x = i_pos.x;
|
||||
mPos.y = i_pos.y;
|
||||
mPos.z = i_pos.z;
|
||||
}
|
||||
|
||||
static const dCcD_SrcCyl s_CcDCyl;
|
||||
|
||||
/* 0x004 */ dMdl_obj_c mMdlObj;
|
||||
/* 0x038 */ Vec mPos;
|
||||
/* 0x044 */ dCcD_Cyl mCcCyl[2];
|
||||
/* 0x2BC */ Mtx mBgMtx;
|
||||
/* 0x2EC */ dBgW* mpBgW;
|
||||
/* 0x2F0 */ bool mIsDead;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
* @class daObjNagaisu_c
|
||||
|
|
@ -13,40 +47,25 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjNagaisu_c : public fopAc_ac_c {
|
||||
class daObjNagaisu_c : public fopAc_ac_c, public request_of_phase_process_class {
|
||||
public:
|
||||
/* 80C9F3D8 */ daObjNagaisu_c();
|
||||
/* 80C9F4B8 */ ~daObjNagaisu_c();
|
||||
/* 80C9F5A8 */ void createHeap();
|
||||
/* 80C9F668 */ void create();
|
||||
/* 80C9F7A8 */ void Delete();
|
||||
/* 80C9F81C */ void draw();
|
||||
/* 80C9F8C4 */ void execute();
|
||||
/* 80C9F4B8 */ virtual ~daObjNagaisu_c();
|
||||
/* 80C9F5A8 */ int createHeap();
|
||||
/* 80C9F668 */ int create();
|
||||
/* 80C9F7A8 */ int Delete();
|
||||
/* 80C9F81C */ int draw();
|
||||
/* 80C9F8C4 */ int execute();
|
||||
/* 80C9F914 */ void init();
|
||||
/* 80C9F944 */ void setIsu();
|
||||
|
||||
static u8 const REMOVE_ISU_IDX[28];
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xb6e4 - 0x568];
|
||||
static const int REMOVE_ISU_IDX[];
|
||||
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
/* 0x578 */ dCcD_Stts mCcStts;
|
||||
/* 0x5B4 */ daObjIsuChild_c mChild[60];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjNagaisu_c) == 0xb6e4);
|
||||
|
||||
// child seat / couch?
|
||||
class daObjIsuChild_c {
|
||||
public:
|
||||
/* 80C9FA90 */ daObjIsuChild_c();
|
||||
/* 80C9FCDC */ ~daObjIsuChild_c();
|
||||
/* 80C9FD4C */ void createHeap();
|
||||
/* 80C9FE28 */ void create(daObjNagaisu_c*, dCcD_Stts*);
|
||||
/* 80C9FF54 */ void execute();
|
||||
/* 80CA0034 */ void draw(dMdl_c*);
|
||||
/* 80CA00B8 */ void Delete();
|
||||
/* 80CA0118 */ void chkHit();
|
||||
/* 80CA0180 */ void callEmt();
|
||||
|
||||
static u8 const s_CcDCyl[68];
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_NAGAISU_H */
|
||||
|
|
|
|||
|
|
@ -6,367 +6,397 @@
|
|||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_mato.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void setAction__11daObjMATO_cFM11daObjMATO_cFPCvPvi_vi();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" static void daObjMATO_Create__FP10fopAc_ac_c();
|
||||
extern "C" static void daObjMATO_Delete__FP11daObjMATO_c();
|
||||
extern "C" void action__11daObjMATO_cFv();
|
||||
extern "C" void hit_check__11daObjMATO_cFv();
|
||||
extern "C" void start_wait__11daObjMATO_cFi();
|
||||
extern "C" void wait__11daObjMATO_cFi();
|
||||
extern "C" void disappear__11daObjMATO_cFi();
|
||||
extern "C" void getRupee__11daObjMATO_cFi();
|
||||
extern "C" void execute__11daObjMATO_cFv();
|
||||
extern "C" void _delete__11daObjMATO_cFv();
|
||||
extern "C" void setBaseMtx__11daObjMATO_cFv();
|
||||
extern "C" static void daObjMATO_Draw__FP11daObjMATO_c();
|
||||
extern "C" static void daObjMATO_Execute__FP11daObjMATO_c();
|
||||
extern "C" void mato_init__11daObjMATO_cFv();
|
||||
extern "C" void create__11daObjMATO_cFv();
|
||||
extern "C" void __dt__10MatoData_sFv();
|
||||
extern "C" void __ct__10MatoData_sFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__10dCcD_GSttsFv();
|
||||
extern "C" static bool daObjMATO_IsDelete__FP11daObjMATO_c();
|
||||
extern "C" void __dt__10cCcD_GSttsFv();
|
||||
extern "C" extern char const* const d_a_obj_mato__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_createItemForSimpleDemo__FPC4cXyziiPC5csXyzPC4cXyzff();
|
||||
extern "C" void addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc();
|
||||
extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai();
|
||||
extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void dPath_GetRoomPath__Fii();
|
||||
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 ChkCoHit__12dCcD_GObjInfFv();
|
||||
extern "C" void GetCoHitObj__12dCcD_GObjInfFv();
|
||||
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void GetAc__8cCcD_ObjFv();
|
||||
extern "C" void Set__4cCcSFP8cCcD_Obj();
|
||||
extern "C" void SetC__8cM3dGCylFRC4cXyz();
|
||||
extern "C" void SetH__8cM3dGCylFf();
|
||||
extern "C" void SetR__8cM3dGCylFf();
|
||||
extern "C" void cLib_chaseF__FPfff();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void __ptmf_test();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_22();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_22();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "f_op/f_op_camera_mng.h"
|
||||
|
||||
/* 80C91B58-80C91C1C 000078 00C4+00 5/5 0/0 0/0 .text
|
||||
* setAction__11daObjMATO_cFM11daObjMATO_cFPCvPvi_vi */
|
||||
void daObjMATO_c::setAction(void (daObjMATO_c::*param_0)(int), int param_1) {
|
||||
// NONMATCHING
|
||||
void daObjMATO_c::setAction(void (daObjMATO_c::*i_action)(int), int i_no) {
|
||||
if (mData[i_no].action != NULL) {
|
||||
mData[i_no].mode = -1;
|
||||
(this->*mData[i_no].action)(i_no);
|
||||
}
|
||||
|
||||
mData[i_no].prev_action = mData[i_no].action;
|
||||
mData[i_no].action = i_action;
|
||||
mData[i_no].mode = 0;
|
||||
(this->*mData[i_no].action)(i_no);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92C50-80C92C6C 000000 001C+00 6/6 0/0 0/0 .rodata l_B_ling_bmd_table */
|
||||
SECTION_RODATA static u8 const l_B_ling_bmd_table[28] = {
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
|
||||
0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
|
||||
static const int l_B_ling_bmd_table[] = {
|
||||
4,
|
||||
3,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
4,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C92C50, &l_B_ling_bmd_table);
|
||||
|
||||
/* 80C92CD4-80C92CD4 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C92CD4 = "B_ling";
|
||||
#pragma pop
|
||||
int daObjMATO_c::CreateHeap() {
|
||||
int i;
|
||||
J3DModelData* a_pModelData[2];
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
a_pModelData[i] = (J3DModelData*)dComIfG_getObjectRes("B_ling", l_B_ling_bmd_table[i]);
|
||||
JUT_ASSERT(174, a_pModelData[i] != NULL);
|
||||
}
|
||||
|
||||
for (i = 0; i < mpPath->m_num; i++) {
|
||||
mData[i].model = mDoExt_J3DModel__create(a_pModelData[mData[i].type], J3DMdlFlag_DifferedDLBuffer, BMD_DEFAULT_DIFF_FLAGS);
|
||||
if (mData[i].model == NULL) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C91C1C-80C91D04 00013C 00E8+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
static void useHeapInit(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
return ((daObjMATO_c*)i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 80C91D04-80C91D24 000224 0020+00 1/0 0/0 0/0 .text daObjMATO_Create__FP10fopAc_ac_c */
|
||||
static void daObjMATO_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjMATO_Create(fopAc_ac_c* i_this) {
|
||||
fpc_ProcID id = fopAcM_GetID(i_this);
|
||||
return ((daObjMATO_c*)i_this)->create();
|
||||
}
|
||||
|
||||
/* 80C91D24-80C91D48 000244 0024+00 1/0 0/0 0/0 .text daObjMATO_Delete__FP11daObjMATO_c
|
||||
*/
|
||||
static void daObjMATO_Delete(daObjMATO_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjMATO_Delete(daObjMATO_c* i_this) {
|
||||
fpc_ProcID id = fopAcM_GetID(i_this);
|
||||
i_this->_delete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C91D48-80C91DE4 000268 009C+00 1/1 0/0 0/0 .text action__11daObjMATO_cFv */
|
||||
void daObjMATO_c::action() {
|
||||
// NONMATCHING
|
||||
int i;
|
||||
for (i = 0; i < mpPath->m_num; i++) {
|
||||
if (field_0x39f6 != 0 && !mData[i].is_hit) {
|
||||
mData[i].rot.y = fopCamM_GetAngleY(dComIfGp_getCamera(0));
|
||||
}
|
||||
|
||||
(this->*mData[i].action)(i);
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
namespace {
|
||||
/* 80C92CDC-80C92D20 000000 0044+00 1/1 0/0 0/0 .data cc_cyl_src__26@unnamed@d_a_obj_mato_cpp@ */
|
||||
SECTION_DATA static u8 data_80C92CDC[68] = {
|
||||
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, 0x01, 0x19,
|
||||
0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80C92D20-80C92D2C -00001 000C+00 1/1 0/0 0/0 .data @3843 */
|
||||
SECTION_DATA static void* lit_3843[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)disappear__11daObjMATO_cFi,
|
||||
static dCcD_SrcCyl cc_cyl_src = {
|
||||
{
|
||||
{0, {{0, 0, 0}, {0, 0}, 0x119}},
|
||||
{dCcD_SE_13, 0, 0, 0, 0},
|
||||
{dCcD_SE_NONE, 0, 0, 0, 2},
|
||||
{2},
|
||||
},
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
150.0f,
|
||||
300.0f,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/* 80C91DE4-80C91ECC 000304 00E8+00 1/1 0/0 0/0 .text hit_check__11daObjMATO_cFv */
|
||||
void daObjMATO_c::hit_check() {
|
||||
// NONMATCHING
|
||||
if (field_0x39f6 != 0) {
|
||||
for (int i = 0; i < mpPath->m_num; i++) {
|
||||
if (!mData[i].is_hit) {
|
||||
mData[i].ccStts.Move();
|
||||
if (mData[i].ccCyl.ChkCoHit()) {
|
||||
fopAc_ac_c* a_pCoHitAc = dCc_GetAc(mData[i].ccCyl.GetCoHitObj()->GetAc());
|
||||
if (fopAcM_GetName(a_pCoHitAc) == PROC_ALINK) {
|
||||
mData[i].is_hit = TRUE;
|
||||
getRupee(i);
|
||||
setAction(&daObjMATO_c::disappear, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92C6C-80C92C70 00001C 0004+00 2/4 0/0 0/0 .rodata @3878 */
|
||||
SECTION_RODATA static u8 const lit_3878[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C92C6C, &lit_3878);
|
||||
|
||||
/* 80C92D2C-80C92D38 -00001 000C+00 1/1 0/0 0/0 .data @3867 */
|
||||
SECTION_DATA static void* lit_3867[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)wait__11daObjMATO_cFi,
|
||||
};
|
||||
|
||||
/* 80C91ECC-80C91F74 0003EC 00A8+00 2/0 0/0 0/0 .text start_wait__11daObjMATO_cFi */
|
||||
void daObjMATO_c::start_wait(int param_0) {
|
||||
// NONMATCHING
|
||||
void daObjMATO_c::start_wait(int i_no) {
|
||||
if (mData[i_no].mode == 0) {
|
||||
mData[i_no].is_hit = FALSE;
|
||||
mData[i_no].rot.setall(0);
|
||||
mData[i_no].scale.setall(0.0f);
|
||||
mData[i_no].mode++;
|
||||
} else if (mData[i_no].mode != -1 && field_0x39f6 != 0) {
|
||||
setAction(&daObjMATO_c::wait, i_no);
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92C70-80C92C74 000020 0004+00 1/2 0/0 0/0 .rodata @3900 */
|
||||
SECTION_RODATA static f32 const lit_3900 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92C70, &lit_3900);
|
||||
|
||||
/* 80C92C74-80C92C78 000024 0004+00 1/1 0/0 0/0 .rodata @3901 */
|
||||
SECTION_RODATA static f32 const lit_3901 = 0.25f;
|
||||
COMPILER_STRIP_GATE(0x80C92C74, &lit_3901);
|
||||
|
||||
/* 80C92D38-80C92D44 -00001 000C+00 1/1 0/0 0/0 .data @3891 */
|
||||
SECTION_DATA static void* lit_3891[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)disappear__11daObjMATO_cFi,
|
||||
};
|
||||
|
||||
/* 80C91F74-80C92044 000494 00D0+00 1/0 0/0 0/0 .text wait__11daObjMATO_cFi */
|
||||
void daObjMATO_c::wait(int param_0) {
|
||||
// NONMATCHING
|
||||
void daObjMATO_c::wait(int i_no) {
|
||||
if (mData[i_no].mode == 0) {
|
||||
mData[i_no].mode++;
|
||||
} else if (mData[i_no].mode != -1) {
|
||||
if (field_0x39f6 != 0) {
|
||||
cLib_chaseF(&mData[i_no].scale.x, 1.0f, 0.25f);
|
||||
cLib_chaseF(&mData[i_no].scale.y, 1.0f, 0.25f);
|
||||
cLib_chaseF(&mData[i_no].scale.z, 1.0f, 0.25f);
|
||||
} else {
|
||||
setAction(&daObjMATO_c::disappear, i_no);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92C78-80C92C94 000028 001C+00 0/1 0/0 0/0 .rodata l_rupee_itemno_table */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_rupee_itemno_table[28] = {
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07,
|
||||
static const int l_rupee_itemno_table[] = {
|
||||
fpcNm_ITEM_GREEN_RUPEE,
|
||||
fpcNm_ITEM_BLUE_RUPEE,
|
||||
fpcNm_ITEM_YELLOW_RUPEE,
|
||||
fpcNm_ITEM_RED_RUPEE,
|
||||
fpcNm_ITEM_PURPLE_RUPEE,
|
||||
fpcNm_ITEM_ORANGE_RUPEE,
|
||||
fpcNm_ITEM_SILVER_RUPEE,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C92C78, &l_rupee_itemno_table);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92C94-80C92C9C 000044 0007+01 0/1 0/0 0/0 .rodata l_rupee_count_table */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_rupee_count_table[7 + 1 /* padding */] = {
|
||||
0x01,
|
||||
0x05,
|
||||
0x0A,
|
||||
0x14,
|
||||
0x32,
|
||||
0x64,
|
||||
0xC8,
|
||||
/* padding */
|
||||
0x00,
|
||||
static const u8 l_rupee_count_table[] = {
|
||||
1,
|
||||
5,
|
||||
10,
|
||||
20,
|
||||
50,
|
||||
100,
|
||||
200,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C92C94, &l_rupee_count_table);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92C9C-80C92CB8 00004C 001C+00 0/1 0/0 0/0 .rodata l_rupee_getse */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_rupee_getse[28] = {
|
||||
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00,
|
||||
0x00, 0x72, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x72,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C92C9C, &l_rupee_getse);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92CB8-80C92CBC 000068 0004+00 0/1 0/0 0/0 .rodata @3934 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3934 = 1.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92CB8, &lit_3934);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92CBC-80C92CC0 00006C 0004+00 0/1 0/0 0/0 .rodata @3935 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3935 = 1.5f;
|
||||
COMPILER_STRIP_GATE(0x80C92CBC, &lit_3935);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92CC0-80C92CC4 000070 0004+00 0/1 0/0 0/0 .rodata @3936 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3936 = 1.0f / 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92CC0, &lit_3936);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92D44-80C92D50 -00001 000C+00 1/1 0/0 0/0 .data @3924 */
|
||||
SECTION_DATA static void* lit_3924[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)start_wait__11daObjMATO_cFi,
|
||||
static const u32 l_rupee_getse[] = {
|
||||
Z2SE_GREEN_LUPY_GET,
|
||||
Z2SE_BLUE_LUPY_GET,
|
||||
Z2SE_BLUE_LUPY_GET,
|
||||
Z2SE_RED_LUPY_GET,
|
||||
Z2SE_RED_LUPY_GET,
|
||||
Z2SE_RED_LUPY_GET,
|
||||
Z2SE_RED_LUPY_GET,
|
||||
};
|
||||
|
||||
/* 80C92044-80C921A8 000564 0164+00 2/0 0/0 0/0 .text disappear__11daObjMATO_cFi */
|
||||
void daObjMATO_c::disappear(int param_0) {
|
||||
// NONMATCHING
|
||||
void daObjMATO_c::disappear(int i_no) {
|
||||
if (mData[i_no].mode == 0) {
|
||||
mData[i_no].timer = 20;
|
||||
mData[i_no].rot_speed = 0x2000;
|
||||
mData[i_no].mode++;
|
||||
} else if (mData[i_no].mode != -1) {
|
||||
if (mData[i_no].mode == 1) {
|
||||
mData[i_no].rot.y += mData[i_no].rot_speed;
|
||||
|
||||
mData[i_no].timer--;
|
||||
if (mData[i_no].timer == 0) {
|
||||
mData[i_no].mode++;
|
||||
}
|
||||
} else if (mData[i_no].mode == 2) {
|
||||
mData[i_no].rot.y += mData[i_no].rot_speed;
|
||||
|
||||
cLib_chaseF(&mData[i_no].scale.x, 0.0f, 0.1f);
|
||||
cLib_chaseF(&mData[i_no].scale.y, 1.5f, 0.05f);
|
||||
cLib_chaseF(&mData[i_no].scale.z, 0.0f, 0.1f);
|
||||
|
||||
if (!mData[i_no].scale.x && !mData[i_no].scale.z) {
|
||||
mData[i_no].mode++;
|
||||
}
|
||||
} else if (field_0x39f6 == 0) {
|
||||
setAction(&daObjMATO_c::start_wait, i_no);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92CC4-80C92CC8 000074 0004+00 0/1 0/0 0/0 .rodata @3959 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3959 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92CC4, &lit_3959);
|
||||
#pragma pop
|
||||
|
||||
/* 80C921A8-80C922AC 0006C8 0104+00 1/1 0/0 0/0 .text getRupee__11daObjMATO_cFi */
|
||||
void daObjMATO_c::getRupee(int param_0) {
|
||||
// NONMATCHING
|
||||
void daObjMATO_c::getRupee(int i_no) {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
cXyz size(1.0f, 1.0f, 1.0f);
|
||||
csXyz angle;
|
||||
angle.x = angle.z = 0;
|
||||
angle.y = player->shape_angle.y;
|
||||
|
||||
fopAcM_createItemForSimpleDemo(¤t.pos, l_rupee_itemno_table[mData[i_no].type], fopAcM_GetRoomNo(this), &angle, &size, 0.0f, 0.0f);
|
||||
dComIfGp_setItemRupeeCount(l_rupee_count_table[mData[i_no].type]);
|
||||
mDoAud_seStart(l_rupee_getse[mData[i_no].type], NULL, 0, 0);
|
||||
}
|
||||
|
||||
/* 80C922AC-80C92380 0007CC 00D4+00 1/1 0/0 0/0 .text execute__11daObjMATO_cFv */
|
||||
void daObjMATO_c::execute() {
|
||||
// NONMATCHING
|
||||
int daObjMATO_c::execute() {
|
||||
u8 swbit = (fopAcM_GetParam(this) & 0xFF00) >> 8;
|
||||
if (swbit != 0xFF) {
|
||||
if (field_0x39f6 != 0) {
|
||||
if (!dComIfGs_isSwitch(swbit, fopAcM_GetRoomNo(this)) && field_0x39f4 != 0) {
|
||||
field_0x39f4--;
|
||||
if (field_0x39f4 == 0) {
|
||||
field_0x39f6 = 0;
|
||||
}
|
||||
}
|
||||
} else if (dComIfGs_isSwitch(swbit, fopAcM_GetRoomNo(this))) {
|
||||
field_0x39f6 = 1;
|
||||
field_0x39f4 = 1500;
|
||||
}
|
||||
}
|
||||
|
||||
hit_check();
|
||||
action();
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C92380-80C9243C 0008A0 00BC+00 1/1 0/0 0/0 .text _delete__11daObjMATO_cFv */
|
||||
void daObjMATO_c::_delete() {
|
||||
// NONMATCHING
|
||||
int daObjMATO_c::_delete() {
|
||||
if (mIsAddSimpleModel) {
|
||||
J3DModelData* a_pModelData[2];
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
a_pModelData[i] = (J3DModelData*)dComIfG_getObjectRes("B_ling", l_B_ling_bmd_table[i]);
|
||||
dComIfGp_removeSimpleModel(a_pModelData[i], fopAcM_GetRoomNo(this));
|
||||
}
|
||||
}
|
||||
|
||||
dComIfG_resDelete(&mPhase, "B_ling");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92CC8-80C92CCC 000078 0004+00 0/1 0/0 0/0 .rodata @4039 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4039 = 420.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92CC8, &lit_4039);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92CCC-80C92CD0 00007C 0004+00 0/1 0/0 0/0 .rodata @4040 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4040 = 190.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92CCC, &lit_4040);
|
||||
#pragma pop
|
||||
|
||||
/* 80C92CD0-80C92CD4 000080 0004+00 0/1 0/0 0/0 .rodata @4041 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4041 = 840.0f;
|
||||
COMPILER_STRIP_GATE(0x80C92CD0, &lit_4041);
|
||||
#pragma pop
|
||||
|
||||
/* 80C9243C-80C92584 00095C 0148+00 1/1 0/0 0/0 .text setBaseMtx__11daObjMATO_cFv */
|
||||
void daObjMATO_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
cXyz sp8;
|
||||
for (int i = 0; i < mpPath->m_num; i++) {
|
||||
mDoMtx_stack_c::transS(mData[i].pos);
|
||||
mDoMtx_stack_c::ZXYrotM(mData[i].rot);
|
||||
mData[i].model->setBaseScale(mData[i].scale);
|
||||
mData[i].model->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
sp8 = mData[i].pos;
|
||||
sp8.y -= 420.0f + hREG_F(0);
|
||||
|
||||
mData[i].ccCyl.SetC(sp8);
|
||||
mData[i].ccCyl.SetR((190.0f + hREG_F(2)) * mData[i].scale.x);
|
||||
mData[i].ccCyl.SetH((840.0f + hREG_F(1)) * mData[i].scale.y);
|
||||
dComIfG_Ccsp()->Set(&mData[i].ccCyl);
|
||||
}
|
||||
}
|
||||
|
||||
int daObjMATO_c::draw() {
|
||||
for (int i = 0; i < mpPath->m_num; i++) {
|
||||
g_env_light.settingTevStruct(0, &mData[i].pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mData[i].model, &tevStr);
|
||||
dComIfGp_entrySimpleModel(mData[i].model, fopAcM_GetRoomNo(this));
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C92584-80C92630 000AA4 00AC+00 1/0 0/0 0/0 .text daObjMATO_Draw__FP11daObjMATO_c */
|
||||
static void daObjMATO_Draw(daObjMATO_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjMATO_Draw(daObjMATO_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* 80C92630-80C92650 000B50 0020+00 2/1 0/0 0/0 .text daObjMATO_Execute__FP11daObjMATO_c
|
||||
*/
|
||||
static void daObjMATO_Execute(daObjMATO_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjMATO_Execute(daObjMATO_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92D50-80C92D5C -00001 000C+00 1/1 0/0 0/0 .data @4104 */
|
||||
SECTION_DATA static void* lit_4104[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)start_wait__11daObjMATO_cFi,
|
||||
};
|
||||
|
||||
/* 80C92650-80C927AC 000B70 015C+00 1/1 0/0 0/0 .text mato_init__11daObjMATO_cFv */
|
||||
void daObjMATO_c::mato_init() {
|
||||
// NONMATCHING
|
||||
int daObjMATO_c::mato_init() {
|
||||
int rail_no = fopAcM_GetParam(this) & 0xFF;
|
||||
mpPath = dPath_GetRoomPath(rail_no, fopAcM_GetRoomNo(this));
|
||||
if (mpPath == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
dPnt* a_pPnt = mpPath->m_points;
|
||||
|
||||
for (int i = 0; i < mpPath->m_num; i++) {
|
||||
mData[i].pos = a_pPnt->m_position;
|
||||
mData[i].scale.setall(0.0f);
|
||||
mData[i].is_hit = FALSE;
|
||||
mData[i].timer = 0;
|
||||
mData[i].rot.setall(0);
|
||||
mData[i].type = a_pPnt->mArg0;
|
||||
|
||||
if (mData[i].type > 6) {
|
||||
// "Rupee arg is over upper limit: rail point No:%d"
|
||||
OS_REPORT("ルピーの引数が上限オーバー:レール点No:%d\n", i);
|
||||
// "Forcing green rupee"
|
||||
OS_REPORT("強制的に緑ルピーにします\n");
|
||||
mData[i].type = 0;
|
||||
}
|
||||
|
||||
mData[i].ccStts.Init(0xFF, 0, this);
|
||||
mData[i].ccCyl.Set(cc_cyl_src);
|
||||
mData[i].ccCyl.SetStts(&mData[i].ccStts);
|
||||
|
||||
setAction(&daObjMATO_c::start_wait, i);
|
||||
a_pPnt++;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C927AC-80C92924 000CCC 0178+00 1/1 0/0 0/0 .text create__11daObjMATO_cFv */
|
||||
void daObjMATO_c::create() {
|
||||
// NONMATCHING
|
||||
int daObjMATO_c::create() {
|
||||
fopAcM_SetupActor(this, daObjMATO_c);
|
||||
|
||||
if (!mato_init()) {
|
||||
OS_REPORT("MATO : rale data not found!\n");
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
int phase_state = dComIfG_resLoad(&mPhase, "B_ling");
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
OS_REPORT("MATO PARAM %x\n", fopAcM_GetParam(this));
|
||||
OS_REPORT("MATO SET 1\n");
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x4800)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
OS_REPORT("MATO SET 2\n");
|
||||
|
||||
J3DModelData* a_pModelData[2];
|
||||
for (int i = 0; i < 2; i++) {
|
||||
a_pModelData[i] = (J3DModelData*)dComIfG_getObjectRes("B_ling", l_B_ling_bmd_table[i]);
|
||||
JUT_ASSERT(752, a_pModelData[i] != NULL)
|
||||
|
||||
if (dComIfGp_addSimpleModel(a_pModelData[i], fopAcM_GetRoomNo(this), 0) == -1) {
|
||||
// "Cucco Game Target: simple model entry failed. "
|
||||
OS_REPORT("\x1B[43;30mコッコゲームの的:シンプルモデル登録失敗しました。\n\x1B[m");
|
||||
}
|
||||
|
||||
mIsAddSimpleModel = TRUE;
|
||||
}
|
||||
|
||||
fopAcM_OffStatus(this, 0);
|
||||
attention_info.flags = 0;
|
||||
|
||||
field_0x39f6 = 0;
|
||||
health = 10;
|
||||
field_0x560 = 10;
|
||||
daObjMATO_Execute(this);
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 80C92BF8-80C92C00 001118 0008+00 1/0 0/0 0/0 .text daObjMATO_IsDelete__FP11daObjMATO_c
|
||||
*/
|
||||
static int daObjMATO_IsDelete(daObjMATO_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C92D5C-80C92D7C -00001 0020+00 1/0 0/0 0/0 .data l_daObjMATO_Method */
|
||||
static actor_method_class l_daObjMATO_Method = {
|
||||
(process_method_func)daObjMATO_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjMATO_Delete__FP11daObjMATO_c,
|
||||
(process_method_func)daObjMATO_Execute__FP11daObjMATO_c,
|
||||
(process_method_func)daObjMATO_IsDelete__FP11daObjMATO_c,
|
||||
(process_method_func)daObjMATO_Draw__FP11daObjMATO_c,
|
||||
(process_method_func)daObjMATO_Create,
|
||||
(process_method_func)daObjMATO_Delete,
|
||||
(process_method_func)daObjMATO_Execute,
|
||||
(process_method_func)daObjMATO_IsDelete,
|
||||
(process_method_func)daObjMATO_Draw,
|
||||
};
|
||||
|
||||
/* 80C92D7C-80C92DAC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Mato */
|
||||
|
|
@ -386,73 +416,3 @@ extern actor_process_profile_definition g_profile_Obj_Mato = {
|
|||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80C92DAC-80C92DB8 0000D0 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,
|
||||
};
|
||||
|
||||
/* 80C92DB8-80C92DC4 0000DC 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,
|
||||
};
|
||||
|
||||
/* 80C92DC4-80C92DD0 0000E8 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,
|
||||
};
|
||||
|
||||
/* 80C92DD0-80C92DDC 0000F4 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,
|
||||
};
|
||||
|
||||
/* 80C92924-80C92A50 000E44 012C+00 1/1 0/0 0/0 .text __dt__10MatoData_sFv */
|
||||
MatoData_s::~MatoData_s() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C92A50-80C92B0C 000F70 00BC+00 1/1 0/0 0/0 .text __ct__10MatoData_sFv */
|
||||
MatoData_s::MatoData_s() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C92B0C-80C92B54 00102C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
// cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" void __dt__8cM3dGCylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C92B54-80C92B9C 001074 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C92B9C-80C92BF8 0010BC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
||||
// dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" void __dt__10dCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C92BF8-80C92C00 001118 0008+00 1/0 0/0 0/0 .text daObjMATO_IsDelete__FP11daObjMATO_c
|
||||
*/
|
||||
static bool daObjMATO_IsDelete(daObjMATO_c* param_0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80C92C00-80C92C48 001120 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
// cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" void __dt__10cCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C92CD4-80C92CD4 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
|
|
@ -6,129 +6,344 @@
|
|||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_nagaisu.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void daObjNagaisu_c_createHeap__FP10fopAc_ac_c();
|
||||
extern "C" void __ct__14daObjNagaisu_cFv();
|
||||
extern "C" void __dt__10dCcD_GSttsFv();
|
||||
extern "C" void __dt__14daObjNagaisu_cFv();
|
||||
extern "C" void createHeap__14daObjNagaisu_cFv();
|
||||
extern "C" void create__14daObjNagaisu_cFv();
|
||||
extern "C" void Delete__14daObjNagaisu_cFv();
|
||||
extern "C" void draw__14daObjNagaisu_cFv();
|
||||
extern "C" void execute__14daObjNagaisu_cFv();
|
||||
extern "C" void init__14daObjNagaisu_cFv();
|
||||
extern "C" void setIsu__14daObjNagaisu_cFv();
|
||||
extern "C" void __ct__15daObjIsuChild_cFv();
|
||||
extern "C" void __dt__8dCcD_CylFv();
|
||||
extern "C" void __ct__8dCcD_CylFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__15daObjIsuChild_cFv();
|
||||
extern "C" void createHeap__15daObjIsuChild_cFv();
|
||||
extern "C" void create__15daObjIsuChild_cFP14daObjNagaisu_cP9dCcD_Stts();
|
||||
extern "C" void execute__15daObjIsuChild_cFv();
|
||||
extern "C" void draw__15daObjIsuChild_cFP6dMdl_c();
|
||||
extern "C" void Delete__15daObjIsuChild_cFv();
|
||||
extern "C" void chkHit__15daObjIsuChild_cFv();
|
||||
extern "C" void callEmt__15daObjIsuChild_cFv();
|
||||
extern "C" static void daObjNagaisu_create__FP14daObjNagaisu_c();
|
||||
extern "C" static void daObjNagaisu_Delete__FP14daObjNagaisu_c();
|
||||
extern "C" static void daObjNagaisu_execute__FP14daObjNagaisu_c();
|
||||
extern "C" static void daObjNagaisu_draw__FP14daObjNagaisu_c();
|
||||
extern "C" void __dt__10cCcD_GSttsFv();
|
||||
extern "C" u8 const REMOVE_ISU_IDX__14daObjNagaisu_c[28];
|
||||
extern "C" u8 const s_CcDCyl__15daObjIsuChild_c[68];
|
||||
extern "C" extern char const* const d_a_obj_nagaisu__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void __ct__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 Set__8dCcD_CylFRC11dCcD_SrcCyl();
|
||||
extern "C" void entryObj__6dMdl_cFP10dMdl_obj_c();
|
||||
extern "C" void entry__10dMdl_mng_cFP12J3DModelDataUsi();
|
||||
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__5csXyzFsss();
|
||||
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* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __destroy_arr();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_22();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_22();
|
||||
extern "C" void _restgpr_27();
|
||||
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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80C9F3B8-80C9F3D8 000078 0020+00 1/1 0/0 0/0 .text daObjNagaisu_c_createHeap__FP10fopAc_ac_c */
|
||||
static void daObjNagaisu_c_createHeap(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjNagaisu_c_createHeap(fopAc_ac_c* i_this) {
|
||||
return ((daObjNagaisu_c*)i_this)->createHeap();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA0400-80CA0400 0000A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CA0400 = "Nagaisu";
|
||||
#pragma pop
|
||||
|
||||
/* 80CA0408-80CA040C -00001 0004+00 4/4 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_nagaisu__stringBase0;
|
||||
static char* l_arcName = "Nagaisu";
|
||||
|
||||
/* 80C9F3D8-80C9F45C 000098 0084+00 2/2 0/0 0/0 .text __ct__14daObjNagaisu_cFv */
|
||||
daObjNagaisu_c::daObjNagaisu_c() {}
|
||||
|
||||
/* 80C9F4B8-80C9F5A8 000178 00F0+00 1/0 0/0 0/0 .text __dt__14daObjNagaisu_cFv */
|
||||
daObjNagaisu_c::~daObjNagaisu_c() {
|
||||
dComIfG_resDelete(this, l_arcName);
|
||||
}
|
||||
|
||||
/* 80C9F5A8-80C9F668 000268 00C0+00 1/1 0/0 0/0 .text createHeap__14daObjNagaisu_cFv */
|
||||
int daObjNagaisu_c::createHeap() {
|
||||
J3DModelData* a_model_data_p = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
JUT_ASSERT(156, a_model_data_p != NULL);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(a_model_data_p, J3DMdlFlag_DifferedDLBuffer, BMD_DEFAULT_DIFF_FLAGS);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
daObjIsuChild_c* a_child_p = mChild;
|
||||
for (int i = 0; i < 60; i++) {
|
||||
if (!a_child_p->getDeadFlg() && !a_child_p->createHeap()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_child_p++;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CA035C-80CA0378 000000 001C+00 3/3 0/0 0/0 .rodata REMOVE_ISU_IDX__14daObjNagaisu_c */
|
||||
const int daObjNagaisu_c::REMOVE_ISU_IDX[] = {
|
||||
6,
|
||||
7,
|
||||
11,
|
||||
14,
|
||||
18,
|
||||
21,
|
||||
29,
|
||||
};
|
||||
|
||||
/* 80CA0378-80CA03BC 00001C 0044+00 0/1 0/0 0/0 .rodata s_CcDCyl__15daObjIsuChild_c */
|
||||
const dCcD_SrcCyl daObjIsuChild_c::s_CcDCyl = {
|
||||
{
|
||||
{0, {{0, 0, 0}, {0x400020, 0x11}, 0}},
|
||||
{dCcD_SE_NONE, 0, 0, 0, 0},
|
||||
{dCcD_SE_NONE, 0, 0, 0, 0},
|
||||
{0},
|
||||
},
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
0.0f,
|
||||
0.0f,
|
||||
},
|
||||
};
|
||||
|
||||
/* 80C9F668-80C9F7A8 000328 0140+00 1/1 0/0 0/0 .text create__14daObjNagaisu_cFv */
|
||||
int daObjNagaisu_c::create() {
|
||||
fopAcM_SetupActor(this, daObjNagaisu_c);
|
||||
|
||||
int phase_state = dComIfG_resLoad(this, l_arcName);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
current.pos.z -= 3300.0f;
|
||||
setIsu();
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this, daObjNagaisu_c_createHeap, 0x12000)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
init();
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
|
||||
daObjIsuChild_c* a_child_p = mChild;
|
||||
for (int i = 0; i < 60; i++) {
|
||||
a_child_p->create(this, &mCcStts);
|
||||
a_child_p++;
|
||||
}
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 80C9F7A8-80C9F81C 000468 0074+00 1/1 0/0 0/0 .text Delete__14daObjNagaisu_cFv */
|
||||
int daObjNagaisu_c::Delete() {
|
||||
daObjIsuChild_c* a_child_p = mChild;
|
||||
for (int i = 0; i < 60; i++) {
|
||||
a_child_p->Delete();
|
||||
a_child_p->setDeadFlg(true);
|
||||
a_child_p++;
|
||||
}
|
||||
|
||||
this->~daObjNagaisu_c();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C9F81C-80C9F8C4 0004DC 00A8+00 1/1 0/0 0/0 .text draw__14daObjNagaisu_cFv */
|
||||
int daObjNagaisu_c::draw() {
|
||||
g_env_light.settingTevStruct(8, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
|
||||
dMdl_c* a_mdl_p = dMdl_mng_c::entry(mpModel->getModelData(), 0, current.roomNo);
|
||||
if (a_mdl_p != NULL) {
|
||||
daObjIsuChild_c* a_child_p = mChild;
|
||||
for (int i = 0; i < 60; i++) {
|
||||
a_child_p->draw(a_mdl_p);
|
||||
a_child_p++;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C9F8C4-80C9F914 000584 0050+00 1/1 0/0 0/0 .text execute__14daObjNagaisu_cFv */
|
||||
int daObjNagaisu_c::execute() {
|
||||
daObjIsuChild_c* a_child_p = mChild;
|
||||
for (int i = 0; i < 60; i++) {
|
||||
a_child_p->execute();
|
||||
a_child_p++;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C9F914-80C9F944 0005D4 0030+00 1/1 0/0 0/0 .text init__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::init() {
|
||||
mCcStts.Init(0xFF, 0, this);
|
||||
}
|
||||
|
||||
/* 80C9F944-80C9FA90 000604 014C+00 1/1 0/0 0/0 .text setIsu__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::setIsu() {
|
||||
daObjIsuChild_c* a_child_p = mChild;
|
||||
f32 start_x_pos = current.pos.x;
|
||||
cXyz prev_pos(current.pos.x, current.pos.y, current.pos.z);
|
||||
cXyz pos(prev_pos);
|
||||
|
||||
int row_start_idx = 0;
|
||||
int section_start_idx = 3;
|
||||
u8 is_remove_isu = false;
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
if (i == row_start_idx) {
|
||||
row_start_idx += 6;
|
||||
pos.x = start_x_pos;
|
||||
|
||||
// after seven rows, move farther back to leave room for the entrance way
|
||||
if (i == (6 * 7)) {
|
||||
pos.z = 600.0f + prev_pos.z;
|
||||
} else {
|
||||
pos.z = 300.0f + prev_pos.z;
|
||||
}
|
||||
} else if (i == section_start_idx) {
|
||||
section_start_idx += 6;
|
||||
pos.x = 790.0f + prev_pos.x;
|
||||
pos.z = prev_pos.z;
|
||||
} else {
|
||||
pos.x = 280.0f + prev_pos.x;
|
||||
pos.z = prev_pos.z;
|
||||
}
|
||||
|
||||
prev_pos.x = pos.x;
|
||||
prev_pos.z = pos.z;
|
||||
|
||||
is_remove_isu = false;
|
||||
for (int j = 0; j < 7; j++) {
|
||||
if (i == REMOVE_ISU_IDX[j]) {
|
||||
is_remove_isu = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_remove_isu) {
|
||||
a_child_p->setDeadFlg(true);
|
||||
} else {
|
||||
a_child_p->setDeadFlg(false);
|
||||
a_child_p->setPos(pos);
|
||||
}
|
||||
|
||||
a_child_p++;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C9FA90-80C9FAFC 000750 006C+00 1/1 0/0 0/0 .text __ct__15daObjIsuChild_cFv */
|
||||
daObjIsuChild_c::daObjIsuChild_c() {
|
||||
mIsDead = false;
|
||||
mpBgW = NULL;
|
||||
}
|
||||
|
||||
/* 80C9FCDC-80C9FD4C 00099C 0070+00 3/2 0/0 0/0 .text __dt__15daObjIsuChild_cFv */
|
||||
daObjIsuChild_c::~daObjIsuChild_c() {}
|
||||
|
||||
/* 80C9FD4C-80C9FE28 000A0C 00DC+00 1/1 0/0 0/0 .text createHeap__15daObjIsuChild_cFv */
|
||||
int daObjIsuChild_c::createHeap() {
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(mPos.x, mPos.y, mPos.z);
|
||||
mDoMtx_stack_c::YrotM(-0x8000);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
|
||||
if (mpBgW->Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, 7), 1, &mBgMtx) == true) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C9FE28-80C9FF54 000AE8 012C+00 1/1 0/0 0/0 .text
|
||||
* create__15daObjIsuChild_cFP14daObjNagaisu_cP9dCcD_Stts */
|
||||
// NONMATCHING - missing instruction
|
||||
void daObjIsuChild_c::create(daObjNagaisu_c* i_parent, dCcD_Stts* i_ccStts) {
|
||||
static const int COL_OFFSET_X[] = {
|
||||
60,
|
||||
-60,
|
||||
};
|
||||
|
||||
if (!mIsDead) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mCcCyl[i].Set(s_CcDCyl);
|
||||
mCcCyl[i].SetStts(i_ccStts);
|
||||
|
||||
cXyz center(mPos.x + COL_OFFSET_X[i], mPos.y, mPos.z + -50.0f);
|
||||
mCcCyl[i].SetC(center);
|
||||
mCcCyl[i].SetH(180.0f);
|
||||
mCcCyl[i].SetR(65.0f);
|
||||
}
|
||||
|
||||
if (!dComIfG_Bgsp().Regist(mpBgW, i_parent)) {}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80C9FF54-80CA0034 000C14 00E0+00 1/1 0/0 0/0 .text execute__15daObjIsuChild_cFv */
|
||||
int daObjIsuChild_c::execute() {
|
||||
if (!mIsDead) {
|
||||
if (chkHit()) {
|
||||
callEmt();
|
||||
mDoAud_seStart(Z2SE_OBJ_BREAK_WOOD_FURNITURE, &mPos, 0, 0);
|
||||
Delete();
|
||||
mIsDead = true;
|
||||
} else {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
dComIfG_Ccsp()->Set(&mCcCyl[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CA0034-80CA00B8 000CF4 0084+00 1/1 0/0 0/0 .text draw__15daObjIsuChild_cFP6dMdl_c */
|
||||
int daObjIsuChild_c::draw(dMdl_c* i_mdl) {
|
||||
if (!mIsDead) {
|
||||
mDoMtx_stack_c::transS(mPos.x, mPos.y, mPos.z);
|
||||
mDoMtx_stack_c::YrotM(-0x8000);
|
||||
mMdlObj.setMtx(mDoMtx_stack_c::get());
|
||||
i_mdl->entryObj(&mMdlObj);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CA00B8-80CA0118 000D78 0060+00 2/2 0/0 0/0 .text Delete__15daObjIsuChild_cFv */
|
||||
// NONMATCHING retail
|
||||
int daObjIsuChild_c::Delete() {
|
||||
if (!mIsDead) {
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CA0118-80CA0180 000DD8 0068+00 1/1 0/0 0/0 .text chkHit__15daObjIsuChild_cFv */
|
||||
bool daObjIsuChild_c::chkHit() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (mCcCyl[i].ChkTgHit()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80CA0180-80CA0258 000E40 00D8+00 1/1 0/0 0/0 .text callEmt__15daObjIsuChild_cFv */
|
||||
void daObjIsuChild_c::callEmt() {
|
||||
cXyz pos(mPos.x, mPos.y, mPos.z);
|
||||
csXyz rot(0, -0x8000, 0);
|
||||
cXyz size(1.25f, 1.25f, 1.25f);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
static const u16 PARTICLE_NAME[] = {
|
||||
dPa_RM(ID_ZI_S_LV5KAGU_BREAK_A),
|
||||
dPa_RM(ID_ZI_S_LV5KAGU_BREAK_B),
|
||||
dPa_RM(ID_ZI_S_LV5KAGU_BREAK_C),
|
||||
dPa_RM(ID_ZI_S_LV5KAGU_BREAK_D),
|
||||
};
|
||||
|
||||
dComIfGp_particle_set(PARTICLE_NAME[i], &pos, &rot, &size);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CA0258-80CA02AC 000F18 0054+00 1/0 0/0 0/0 .text daObjNagaisu_create__FP14daObjNagaisu_c */
|
||||
static int daObjNagaisu_create(daObjNagaisu_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, daObjNagaisu_c);
|
||||
return i_this->create();
|
||||
}
|
||||
|
||||
/* 80CA02AC-80CA02CC 000F6C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_Delete__FP14daObjNagaisu_c */
|
||||
static int daObjNagaisu_Delete(daObjNagaisu_c* i_this) {
|
||||
return i_this->Delete();
|
||||
}
|
||||
|
||||
/* 80CA02CC-80CA02EC 000F8C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_execute__FP14daObjNagaisu_c */
|
||||
static int daObjNagaisu_execute(daObjNagaisu_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 80CA02EC-80CA030C 000FAC 0020+00 1/0 0/0 0/0 .text daObjNagaisu_draw__FP14daObjNagaisu_c */
|
||||
static int daObjNagaisu_draw(daObjNagaisu_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* 80CA040C-80CA042C -00001 0020+00 1/0 0/0 0/0 .data daObjNagaisu_METHODS */
|
||||
static actor_method_class daObjNagaisu_METHODS = {
|
||||
(process_method_func)daObjNagaisu_create__FP14daObjNagaisu_c,
|
||||
(process_method_func)daObjNagaisu_Delete__FP14daObjNagaisu_c,
|
||||
(process_method_func)daObjNagaisu_execute__FP14daObjNagaisu_c,
|
||||
(process_method_func)daObjNagaisu_create,
|
||||
(process_method_func)daObjNagaisu_Delete,
|
||||
(process_method_func)daObjNagaisu_execute,
|
||||
0,
|
||||
(process_method_func)daObjNagaisu_draw__FP14daObjNagaisu_c,
|
||||
(process_method_func)daObjNagaisu_draw,
|
||||
};
|
||||
|
||||
/* 80CA042C-80CA045C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Nagaisu */
|
||||
|
|
@ -148,315 +363,3 @@ extern actor_process_profile_definition g_profile_Obj_Nagaisu = {
|
|||
fopAc_ENV_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80CA045C-80CA0468 000054 000C+00 2/2 0/0 0/0 .data __vt__15daObjIsuChild_c */
|
||||
SECTION_DATA extern void* __vt__15daObjIsuChild_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__15daObjIsuChild_cFv,
|
||||
};
|
||||
|
||||
/* 80CA0468-80CA0474 000060 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,
|
||||
};
|
||||
|
||||
/* 80CA0474-80CA0480 00006C 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,
|
||||
};
|
||||
|
||||
/* 80CA0480-80CA048C 000078 000C+00 2/2 0/0 0/0 .data __vt__14daObjNagaisu_c */
|
||||
SECTION_DATA extern void* __vt__14daObjNagaisu_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__14daObjNagaisu_cFv,
|
||||
};
|
||||
|
||||
/* 80C9F3D8-80C9F45C 000098 0084+00 2/2 0/0 0/0 .text __ct__14daObjNagaisu_cFv */
|
||||
daObjNagaisu_c::daObjNagaisu_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA048C-80CA0498 000084 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,
|
||||
};
|
||||
|
||||
/* 80CA0498-80CA04A4 000090 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,
|
||||
};
|
||||
|
||||
/* 80C9F45C-80C9F4B8 00011C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
||||
// dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" void __dt__10dCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9F4B8-80C9F5A8 000178 00F0+00 1/0 0/0 0/0 .text __dt__14daObjNagaisu_cFv */
|
||||
daObjNagaisu_c::~daObjNagaisu_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9F5A8-80C9F668 000268 00C0+00 1/1 0/0 0/0 .text createHeap__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::createHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA035C-80CA0378 000000 001C+00 3/3 0/0 0/0 .rodata REMOVE_ISU_IDX__14daObjNagaisu_c */
|
||||
SECTION_RODATA u8 const daObjNagaisu_c::REMOVE_ISU_IDX[28] = {
|
||||
0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00,
|
||||
0x00, 0x0E, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1D,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CA035C, &daObjNagaisu_c::REMOVE_ISU_IDX);
|
||||
|
||||
/* 80CA0378-80CA03BC 00001C 0044+00 0/1 0/0 0/0 .rodata s_CcDCyl__15daObjIsuChild_c */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA u8 const daObjIsuChild_c::s_CcDCyl[68] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x40, 0x00, 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,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CA0378, &daObjIsuChild_c::s_CcDCyl);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03BC-80CA03C0 000060 0004+00 1/1 0/0 0/0 .rodata @3731 */
|
||||
SECTION_RODATA static f32 const lit_3731 = 3300.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03BC, &lit_3731);
|
||||
|
||||
/* 80C9F668-80C9F7A8 000328 0140+00 1/1 0/0 0/0 .text create__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9F7A8-80C9F81C 000468 0074+00 1/1 0/0 0/0 .text Delete__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9F81C-80C9F8C4 0004DC 00A8+00 1/1 0/0 0/0 .text draw__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9F8C4-80C9F914 000584 0050+00 1/1 0/0 0/0 .text execute__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::execute() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9F914-80C9F944 0005D4 0030+00 1/1 0/0 0/0 .text init__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::init() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA03C0-80CA03C4 000064 0004+00 0/1 0/0 0/0 .rodata @3820 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3820 = 600.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03C0, &lit_3820);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03C4-80CA03C8 000068 0004+00 0/1 0/0 0/0 .rodata @3821 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3821 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03C4, &lit_3821);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03C8-80CA03CC 00006C 0004+00 0/1 0/0 0/0 .rodata @3822 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3822 = 790.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03C8, &lit_3822);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03CC-80CA03D0 000070 0004+00 0/1 0/0 0/0 .rodata @3823 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3823 = 280.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03CC, &lit_3823);
|
||||
#pragma pop
|
||||
|
||||
/* 80C9F944-80C9FA90 000604 014C+00 1/1 0/0 0/0 .text setIsu__14daObjNagaisu_cFv */
|
||||
void daObjNagaisu_c::setIsu() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FA90-80C9FAFC 000750 006C+00 1/1 0/0 0/0 .text __ct__15daObjIsuChild_cFv */
|
||||
daObjIsuChild_c::daObjIsuChild_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FAFC-80C9FBC8 0007BC 00CC+00 2/2 0/0 0/0 .text __dt__8dCcD_CylFv */
|
||||
// dCcD_Cyl::~dCcD_Cyl() {
|
||||
extern "C" void __dt__8dCcD_CylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FBC8-80C9FC4C 000888 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */
|
||||
// dCcD_Cyl::dCcD_Cyl() {
|
||||
extern "C" void __ct__8dCcD_CylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FC4C-80C9FC94 00090C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
// cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" void __dt__8cM3dGCylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FC94-80C9FCDC 000954 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FCDC-80C9FD4C 00099C 0070+00 3/2 0/0 0/0 .text __dt__15daObjIsuChild_cFv */
|
||||
daObjIsuChild_c::~daObjIsuChild_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C9FD4C-80C9FE28 000A0C 00DC+00 1/1 0/0 0/0 .text createHeap__15daObjIsuChild_cFv */
|
||||
void daObjIsuChild_c::createHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA03D0-80CA03D8 000074 0008+00 0/1 0/0 0/0 .rodata COL_OFFSET_X$3919 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const COL_OFFSET_X[8] = {
|
||||
0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xC4,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CA03D0, &COL_OFFSET_X);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03D8-80CA03DC 00007C 0004+00 0/1 0/0 0/0 .rodata @3940 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3940 = -50.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03D8, &lit_3940);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03DC-80CA03E0 000080 0004+00 0/1 0/0 0/0 .rodata @3941 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3941 = 180.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03DC, &lit_3941);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03E0-80CA03E4 000084 0004+00 0/1 0/0 0/0 .rodata @3942 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3942 = 65.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03E0, &lit_3942);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03E4-80CA03EC 000088 0008+00 0/1 0/0 0/0 .rodata @3944 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3944[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CA03E4, &lit_3944);
|
||||
#pragma pop
|
||||
|
||||
/* 80C9FE28-80C9FF54 000AE8 012C+00 1/1 0/0 0/0 .text
|
||||
* create__15daObjIsuChild_cFP14daObjNagaisu_cP9dCcD_Stts */
|
||||
void daObjIsuChild_c::create(daObjNagaisu_c* param_0, dCcD_Stts* param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA03EC-80CA03F0 000090 0004+00 1/2 0/0 0/0 .rodata @3963 */
|
||||
SECTION_RODATA static f32 const lit_3963 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03EC, &lit_3963);
|
||||
|
||||
/* 80CA03F0-80CA03F4 000094 0004+00 1/1 0/0 0/0 .rodata @3964 */
|
||||
SECTION_RODATA static f32 const lit_3964 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CA03F0, &lit_3964);
|
||||
|
||||
/* 80C9FF54-80CA0034 000C14 00E0+00 1/1 0/0 0/0 .text execute__15daObjIsuChild_cFv */
|
||||
void daObjIsuChild_c::execute() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA0034-80CA00B8 000CF4 0084+00 1/1 0/0 0/0 .text draw__15daObjIsuChild_cFP6dMdl_c */
|
||||
void daObjIsuChild_c::draw(dMdl_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA00B8-80CA0118 000D78 0060+00 2/2 0/0 0/0 .text Delete__15daObjIsuChild_cFv */
|
||||
void daObjIsuChild_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA0118-80CA0180 000DD8 0068+00 1/1 0/0 0/0 .text chkHit__15daObjIsuChild_cFv */
|
||||
void daObjIsuChild_c::chkHit() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CA03F4-80CA03FC 000098 0008+00 0/1 0/0 0/0 .rodata PARTICLE_NAME$4004 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const PARTICLE_NAME[8] = {
|
||||
0x8A, 0xE7, 0x8A, 0xE8, 0x8A, 0xE9, 0x8A, 0xEA,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CA03F4, &PARTICLE_NAME);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA03FC-80CA0400 0000A0 0004+00 0/1 0/0 0/0 .rodata @4029 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4029 = 1.25f;
|
||||
COMPILER_STRIP_GATE(0x80CA03FC, &lit_4029);
|
||||
#pragma pop
|
||||
|
||||
/* 80CA0180-80CA0258 000E40 00D8+00 1/1 0/0 0/0 .text callEmt__15daObjIsuChild_cFv */
|
||||
void daObjIsuChild_c::callEmt() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA0258-80CA02AC 000F18 0054+00 1/0 0/0 0/0 .text daObjNagaisu_create__FP14daObjNagaisu_c */
|
||||
static void daObjNagaisu_create(daObjNagaisu_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA02AC-80CA02CC 000F6C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_Delete__FP14daObjNagaisu_c */
|
||||
static void daObjNagaisu_Delete(daObjNagaisu_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA02CC-80CA02EC 000F8C 0020+00 1/0 0/0 0/0 .text daObjNagaisu_execute__FP14daObjNagaisu_c */
|
||||
static void daObjNagaisu_execute(daObjNagaisu_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA02EC-80CA030C 000FAC 0020+00 1/0 0/0 0/0 .text daObjNagaisu_draw__FP14daObjNagaisu_c */
|
||||
static void daObjNagaisu_draw(daObjNagaisu_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA030C-80CA0354 000FCC 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
// cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" void __dt__10cCcD_GSttsFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CA0400-80CA0400 0000A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue