mirror of https://github.com/zeldaret/tp.git
d_a_obj_smtile OK (#2276)
This commit is contained in:
parent
36300580c4
commit
593f1d1587
|
|
@ -17,11 +17,11 @@ setDstPos__14daObj_SMTile_cFv = .text:0x00000988; // type:function size:0x1E0 sc
|
|||
setPrtcls__14daObj_SMTile_cFii = .text:0x00000B68; // type:function size:0x1D4 scope:global
|
||||
touchPrtcls__14daObj_SMTile_cFf = .text:0x00000D3C; // type:function size:0x2AC scope:global
|
||||
setMtx__14daObj_SMTile_cFv = .text:0x00000FE8; // type:function size:0x74 scope:global
|
||||
daObj_SMTile_Create__FPv = .text:0x0000105C; // type:function size:0x20 scope:global
|
||||
daObj_SMTile_Delete__FPv = .text:0x0000107C; // type:function size:0x20 scope:global
|
||||
daObj_SMTile_Execute__FPv = .text:0x0000109C; // type:function size:0x20 scope:global
|
||||
daObj_SMTile_Draw__FPv = .text:0x000010BC; // type:function size:0x20 scope:global
|
||||
daObj_SMTile_IsDelete__FPv = .text:0x000010DC; // type:function size:0x8 scope:global
|
||||
daObj_SMTile_Create__FPv = .text:0x0000105C; // type:function size:0x20 scope:local
|
||||
daObj_SMTile_Delete__FPv = .text:0x0000107C; // type:function size:0x20 scope:local
|
||||
daObj_SMTile_Execute__FPv = .text:0x0000109C; // type:function size:0x20 scope:local
|
||||
daObj_SMTile_Draw__FPv = .text:0x000010BC; // type:function size:0x20 scope:local
|
||||
daObj_SMTile_IsDelete__FPv = .text:0x000010DC; // type:function size:0x8 scope:local
|
||||
cLib_calcTimer<i>__FPi = .text:0x000010E4; // type:function size:0x1C scope:global
|
||||
__sinit_d_a_obj_smtile_cpp = .text:0x00001100; // type:function size:0x40 scope:local
|
||||
__dt__20daObj_SMTile_Param_cFv = .text:0x00001140; // type:function size:0x48 scope:global
|
||||
|
|
@ -38,14 +38,14 @@ m__20daObj_SMTile_Param_c = .rodata:0x00000000; // type:object size:0x8 scope:gl
|
|||
id$4105 = .rodata:0x00000020; // type:object size:0x8 scope:local
|
||||
@4194 = .rodata:0x00000028; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x0000002C; // type:object size:0xA scope:local data:string_table
|
||||
l_bmdData = .data:0x00000000; // type:object size:0x8 scope:global
|
||||
l_resNameList = .data:0x00000008; // type:object size:0x8 scope:global
|
||||
l_tileMoveData = .data:0x00000010; // type:object size:0x54 scope:global data:byte
|
||||
daObj_SMTile_MethodTable = .data:0x00000064; // type:object size:0x20 scope:global
|
||||
l_bmdData = .data:0x00000000; // type:object size:0x8 scope:local
|
||||
l_resNameList = .data:0x00000008; // type:object size:0x8 scope:local
|
||||
l_tileMoveData = .data:0x00000010; // type:object size:0x54 scope:local data:byte
|
||||
daObj_SMTile_MethodTable = .data:0x00000064; // type:object size:0x20 scope:local
|
||||
g_profile_OBJ_SMTILE = .data:0x00000084; // type:object size:0x30 scope:global
|
||||
__vt__12J3DFrameCtrl = .data:0x000000B4; // type:object size:0xC scope:global
|
||||
__vt__14daObj_SMTile_c = .data:0x000000C0; // type:object size:0xC scope:global
|
||||
__vt__20daObj_SMTile_Param_c = .data:0x000000CC; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
@3805 = .bss:0x00000008; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000014; // type:object size:0x4 scope:global data:4byte
|
||||
l_HIO = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte
|
||||
|
|
|
|||
|
|
@ -1989,7 +1989,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_obj_smallkey"),
|
||||
ActorRel(NonMatching, "d_a_obj_smgdoor"),
|
||||
ActorRel(Matching, "d_a_obj_smoke"),
|
||||
ActorRel(NonMatching, "d_a_obj_smtile"),
|
||||
ActorRel(Matching, "d_a_obj_smtile"),
|
||||
ActorRel(Matching, "d_a_obj_smw_stone"),
|
||||
ActorRel(Matching, "d_a_obj_snowEffTag"),
|
||||
ActorRel(Matching, "d_a_obj_snow_soup"),
|
||||
|
|
|
|||
|
|
@ -12,30 +12,48 @@
|
|||
*
|
||||
*/
|
||||
class daObj_SMTile_c : public fopAc_ac_c {
|
||||
private:
|
||||
/* 0x568 */ mDoExt_brkAnm mBrk;
|
||||
/* 0x580 */ int field_0x580;
|
||||
/* 0x584 */ request_of_phase_process_class mPhase;
|
||||
/* 0x58C */ J3DModel* mModel;
|
||||
/* 0x590 */ cXyz field_0x590[21];
|
||||
/* 0x68C */ cXyz field_0x68c[21];
|
||||
/* 0x788 */ cXyz field_0x788[42];
|
||||
/* 0x980 */ int mParticleTimers[21];
|
||||
/* 0x9D4 */ int field_0x9d4[21];
|
||||
/* 0xA28 */ int field_0xa28[21];
|
||||
/* 0xA7C */ int field_0xa7c;
|
||||
/* 0xA80 */ JPABaseEmitter* mEmitters[21];
|
||||
/* 0xAD4 */ u32 mParticleIds[21];
|
||||
/* 0xB28 */ u8 mType;
|
||||
/* 0xB29 */ u8 field_0xb29;
|
||||
/* 0xB2A */ u8 field_0xb2a;
|
||||
/* 0xB2B */ u8 field_0xb2b;
|
||||
public:
|
||||
/* 80CDD2AC */ ~daObj_SMTile_c();
|
||||
/* 80CDD3E8 */ void create();
|
||||
/* 80CDD5CC */ void CreateHeap();
|
||||
/* 80CDD6E8 */ void Delete();
|
||||
/* 80CDD71C */ void Execute();
|
||||
/* 80CDDA98 */ void Draw();
|
||||
/* 80CDDB28 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80CDD2AC */ virtual ~daObj_SMTile_c();
|
||||
/* 80CDD3E8 */ int create();
|
||||
/* 80CDD5CC */ int CreateHeap();
|
||||
/* 80CDD6E8 */ int Delete();
|
||||
/* 80CDD71C */ int Execute();
|
||||
/* 80CDDA98 */ int Draw();
|
||||
/* 80CDDB28 */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80CDDB48 */ void setDstPos();
|
||||
/* 80CDDD28 */ void setPrtcls(int, int);
|
||||
/* 80CDDEFC */ void touchPrtcls(f32);
|
||||
/* 80CDE1A8 */ void setMtx();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xb30 - 0x568];
|
||||
u8 getType() { return 0; }
|
||||
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObj_SMTile_c) == 0xb30);
|
||||
|
||||
class daObj_SMTile_Param_c {
|
||||
public:
|
||||
/* 80CDE300 */ ~daObj_SMTile_Param_c();
|
||||
/* 80CDE300 */ virtual ~daObj_SMTile_Param_c() {}
|
||||
|
||||
static u8 const m[8];
|
||||
static f32 const m[2];
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,114 +4,23 @@
|
|||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_smtile.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __dt__14daObj_SMTile_cFv();
|
||||
extern "C" void __dt__4cXyzFv();
|
||||
extern "C" void create__14daObj_SMTile_cFv();
|
||||
extern "C" void __ct__4cXyzFv();
|
||||
extern "C" void __dt__12J3DFrameCtrlFv();
|
||||
extern "C" void CreateHeap__14daObj_SMTile_cFv();
|
||||
extern "C" void Delete__14daObj_SMTile_cFv();
|
||||
extern "C" void Execute__14daObj_SMTile_cFv();
|
||||
extern "C" void Draw__14daObj_SMTile_cFv();
|
||||
extern "C" void createHeapCallBack__14daObj_SMTile_cFP10fopAc_ac_c();
|
||||
extern "C" void setDstPos__14daObj_SMTile_cFv();
|
||||
extern "C" void setPrtcls__14daObj_SMTile_cFii();
|
||||
extern "C" void touchPrtcls__14daObj_SMTile_cFf();
|
||||
extern "C" void setMtx__14daObj_SMTile_cFv();
|
||||
extern "C" static void daObj_SMTile_Create__FPv();
|
||||
extern "C" static void daObj_SMTile_Delete__FPv();
|
||||
extern "C" static void daObj_SMTile_Execute__FPv();
|
||||
extern "C" static void daObj_SMTile_Draw__FPv();
|
||||
extern "C" static bool daObj_SMTile_IsDelete__FPv();
|
||||
extern "C" void func_80CDE2A4(void* _this, int*);
|
||||
extern "C" void __sinit_d_a_obj_smtile_cpp();
|
||||
extern "C" void __dt__20daObj_SMTile_Param_cFv();
|
||||
extern "C" u8 const m__20daObj_SMTile_Param_c[8];
|
||||
extern "C" extern char const* const d_a_obj_smtile__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void play__14mDoExt_baseAnmFv();
|
||||
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
|
||||
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
|
||||
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 fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
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 getEmitter__Q213dPa_control_c7level_cFUl();
|
||||
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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void __pl__4cXyzCFRC3Vec();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void __destroy_arr();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_20();
|
||||
extern "C" void _savegpr_22();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_20();
|
||||
extern "C" void _restgpr_22();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDE388-80CDE388 00002C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CDE388 = "";
|
||||
SECTION_DEAD static char const* const stringBase_80CDE389 = "A_SMTile";
|
||||
#pragma pop
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
|
||||
/* 80CDE394-80CDE39C 000000 0008+00 3/3 0/0 0/0 .data l_bmdData */
|
||||
SECTION_DATA static u8 l_bmdData[8] = {
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
|
||||
static u32 l_bmdData[1][2] = {
|
||||
4, 1,
|
||||
};
|
||||
|
||||
/* 80CDE39C-80CDE3A4 -00001 0008+00 3/3 0/0 0/0 .data l_resNameList */
|
||||
SECTION_DATA static void* l_resNameList[2] = {
|
||||
(void*)&d_a_obj_smtile__stringBase0,
|
||||
(void*)(((char*)&d_a_obj_smtile__stringBase0) + 0x1),
|
||||
static char* l_resNameList[2] = {
|
||||
"",
|
||||
"A_SMTile",
|
||||
};
|
||||
|
||||
/* 80CDE3A4-80CDE3F8 000010 0054+00 3/3 0/0 0/0 .data l_tileMoveData */
|
||||
SECTION_DATA static u8 l_tileMoveData[84] = {
|
||||
SECTION_DATA static s8 l_tileMoveData[21][4] = {
|
||||
0x01, 0x03, 0x05, 0x01, 0x01, 0x02, 0x04, 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02,
|
||||
0x04, 0x00, 0x00, 0x02, 0x03, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||
0x00, 0xFF, 0x02, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
|
|
@ -120,13 +29,322 @@ SECTION_DATA static u8 l_tileMoveData[84] = {
|
|||
0x02, 0x02, 0xFF, 0x03, 0x05, 0x02, 0xFF, 0x02, 0x04, 0x02, 0xFF, 0x01, 0x03, 0x02,
|
||||
};
|
||||
|
||||
/* 80CDD2AC-80CDD3AC 0000EC 0100+00 1/0 0/0 0/0 .text __dt__14daObj_SMTile_cFv */
|
||||
daObj_SMTile_c::~daObj_SMTile_c() {
|
||||
OS_REPORT("|%06d:%x|daObj_SMTile_c -> デストラクト\n", g_Counter, this);
|
||||
dComIfG_resDelete(
|
||||
&mPhase,
|
||||
l_resNameList[l_bmdData[mType][1]]);
|
||||
}
|
||||
|
||||
/* 80CDD3E8-80CDD580 000228 0198+00 1/1 0/0 0/0 .text create__14daObj_SMTile_cFv */
|
||||
int daObj_SMTile_c::create() {
|
||||
fopAcM_SetupActor(this, daObj_SMTile_c);
|
||||
mType = getType();
|
||||
int rv = dComIfG_resLoad(
|
||||
&mPhase,
|
||||
l_resNameList[l_bmdData[mType][1]]);
|
||||
if (rv == cPhs_COMPLEATE_e) {
|
||||
OS_REPORT("\t(%s:%d) SWBit:%02x<%08x> -> roomNo.%d", fopAcM_getProcNameString(this), getType(), getBitSW(), fopAcM_GetParam(this),
|
||||
fopAcM_GetRoomNo(this));
|
||||
if (getBitSW() != 0xff) {
|
||||
if (dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) {
|
||||
OS_REPORT("===>isDelete:TRUE\n");
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
OS_REPORT("\n");
|
||||
if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x800) == 0) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
field_0xb2b = 1;
|
||||
Execute();
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDE35C-80CDE364 000000 0008+00 4/4 0/0 0/0 .rodata m__20daObj_SMTile_Param_c */
|
||||
f32 const daObj_SMTile_Param_c::m[2] = {
|
||||
600.0f, 20.0f,
|
||||
};
|
||||
|
||||
/* 80CDD5CC-80CDD6E8 00040C 011C+00 1/1 0/0 0/0 .text CreateHeap__14daObj_SMTile_cFv */
|
||||
int daObj_SMTile_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(
|
||||
l_resNameList[l_bmdData[mType][1]],
|
||||
l_bmdData[mType][0]);
|
||||
if (modelData == NULL) {
|
||||
return 0;
|
||||
}
|
||||
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (mModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
J3DAnmTevRegKey* regKey =
|
||||
(J3DAnmTevRegKey*) dComIfG_getObjectRes(l_resNameList[l_bmdData[mType][1]], 7);
|
||||
if (regKey != NULL) {
|
||||
if (mBrk.init(modelData, regKey, 1, 0, 0.0f, 0, -1) != 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80CDD6E8-80CDD71C 000528 0034+00 1/1 0/0 0/0 .text Delete__14daObj_SMTile_cFv */
|
||||
int daObj_SMTile_c::Delete() {
|
||||
OS_REPORT("|%06d:%x|daObj_SMTile_c -> Delete\n", g_Counter, this);
|
||||
this->~daObj_SMTile_c();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDD71C-80CDDA98 00055C 037C+00 2/2 0/0 0/0 .text Execute__14daObj_SMTile_cFv */
|
||||
int daObj_SMTile_c::Execute() {
|
||||
if (home.roomNo == dComIfGp_roomControl_getStayNo()) {
|
||||
if (field_0xb2b != 0) {
|
||||
for (int i = 0; i < 21; i++) {
|
||||
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mParticleIds[i]);
|
||||
if (emitter != NULL) {
|
||||
emitter->becomeDeleteEmitter();
|
||||
}
|
||||
mParticleIds[i] = 0;
|
||||
if (mEmitters[i] != NULL) {
|
||||
mEmitters[i]->becomeDeleteEmitter();
|
||||
mEmitters[i] = NULL;
|
||||
}
|
||||
mParticleTimers[i] = 0;
|
||||
field_0x9d4[i] = 0;
|
||||
field_0xa28[i] = 0;
|
||||
}
|
||||
mBrk.setPlaySpeed(0.0f);
|
||||
mBrk.setFrame(mBrk.getStartFrame());
|
||||
setDstPos();
|
||||
field_0xa7c = 0;
|
||||
field_0xb2b = 0;
|
||||
}
|
||||
if (field_0xb29 != 0) {
|
||||
switch (field_0xa7c) {
|
||||
case 0:
|
||||
setPrtcls(3, 0);
|
||||
mBrk.setPlaySpeed(1.0f);
|
||||
mDoAud_seStart(Z2SE_OBJ_SEKI_TFORCE_ON, 0, 0, 0);
|
||||
break;
|
||||
case 50:
|
||||
setPrtcls(1, 0);
|
||||
break;
|
||||
case 75:
|
||||
setPrtcls(2, 1);
|
||||
break;
|
||||
case 96:
|
||||
setPrtcls(2, 2);
|
||||
break;
|
||||
case 117:
|
||||
setPrtcls(2, 3);
|
||||
break;
|
||||
case 138:
|
||||
setPrtcls(2, 4);
|
||||
break;
|
||||
case 159:
|
||||
setPrtcls(2, 5);
|
||||
break;
|
||||
case 200:
|
||||
for (int i = 0; i < 21; i++) {
|
||||
mDoAud_seStart(Z2SE_OBJ_SEKI_TILE_ON_LAST, &field_0x788[i], 0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (field_0xa7c > 240) {
|
||||
field_0xb29 = 0;
|
||||
} else {
|
||||
if (field_0xa7c > 220) {
|
||||
field_0xb2a = 1;
|
||||
}
|
||||
f32 fVar1 = (240 - field_0xa7c) / 40.0f;
|
||||
if (1.0f < fVar1) {
|
||||
fVar1 = 1.0f;
|
||||
}
|
||||
touchPrtcls(fVar1);
|
||||
field_0xa7c++;
|
||||
}
|
||||
}
|
||||
mBrk.play();
|
||||
setMtx();
|
||||
attention_info.position = current.pos;
|
||||
eyePos = attention_info.position;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80CDDA98-80CDDB28 0008D8 0090+00 1/1 0/0 0/0 .text Draw__14daObj_SMTile_cFv */
|
||||
int daObj_SMTile_c::Draw() {
|
||||
J3DModelData* modelData = mModel->getModelData();
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
|
||||
mBrk.entry(modelData);
|
||||
mDoExt_modelUpdateDL(mModel);
|
||||
mBrk.remove(modelData);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDDB28-80CDDB48 000968 0020+00 1/1 0/0 0/0 .text
|
||||
* createHeapCallBack__14daObj_SMTile_cFP10fopAc_ac_c */
|
||||
int daObj_SMTile_c::createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObj_SMTile_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 80CDDB48-80CDDD28 000988 01E0+00 1/1 0/0 0/0 .text setDstPos__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::setDstPos() {
|
||||
cXyz local_2c;
|
||||
cXyz local_38;
|
||||
mDoMtx_stack_c::YrotS(current.angle.y);
|
||||
for (int i = 0; i < 21; i++) {
|
||||
local_2c.setall(0.0f);
|
||||
local_2c.x = l_tileMoveData[i][0];
|
||||
local_2c.z = l_tileMoveData[i][1];
|
||||
local_38 = local_2c;
|
||||
local_38.x *= daObj_SMTile_Param_c::m[0];
|
||||
local_38.z *= daObj_SMTile_Param_c::m[0];
|
||||
mDoMtx_stack_c::multVec(&local_38, &field_0x68c[i]);
|
||||
switch ((u8)l_tileMoveData[i][3]) {
|
||||
case 0:
|
||||
local_2c.z += 1.0f;
|
||||
break;
|
||||
case 1:
|
||||
local_2c.x += 1.0f;
|
||||
break;
|
||||
case 2:
|
||||
local_2c.x -= 1.0f;
|
||||
break;
|
||||
case 3:
|
||||
local_2c.z -= 1.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
local_2c.x *= daObj_SMTile_Param_c::m[0];
|
||||
local_2c.z *= daObj_SMTile_Param_c::m[0];
|
||||
mDoMtx_stack_c::multVec(&local_2c, &field_0x590[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CDDD28-80CDDEFC 000B68 01D4+00 1/1 0/0 0/0 .text setPrtcls__14daObj_SMTile_cFii */
|
||||
void daObj_SMTile_c::setPrtcls(int param_1, int param_2) {
|
||||
switch(param_1) {
|
||||
case 1:
|
||||
case 2:
|
||||
for (int i = 0; i < 21; i++) {
|
||||
if (param_2 == l_tileMoveData[i][2]) {
|
||||
if (param_1 == 1) {
|
||||
mDoAud_seStart(Z2SE_OBJ_SEKI_TILE_EMERGE, &field_0x788[i], 0, 0);
|
||||
}
|
||||
field_0x788[i] = current.pos + field_0x68c[i];
|
||||
mParticleTimers[i] = daObj_SMTile_Param_c::m[1];
|
||||
field_0xa28[i] = param_1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (int i = 0; i < 21; i++) {
|
||||
field_0x788[i + 21] = current.pos + field_0x590[i];
|
||||
mEmitters[i] = dComIfGp_particle_set(0x86ee, field_0x788 + i + 21, NULL, NULL);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CDE37C-80CDE384 000020 0008+00 0/1 0/0 0/0 .rodata id$4105 */
|
||||
static u16 const id[4] = {
|
||||
0xFFFF, 0x86EC, 0x86ED, 0x86EE,
|
||||
};
|
||||
|
||||
/* 80CDDEFC-80CDE1A8 000D3C 02AC+00 1/1 0/0 0/0 .text touchPrtcls__14daObj_SMTile_cFf */
|
||||
void daObj_SMTile_c::touchPrtcls(f32 param_1) {
|
||||
cXyz local_3c;
|
||||
cXyz cStack_48(1.0f, 1.0f, 1.0f);
|
||||
int local_30 = param_1 * 255.0f;
|
||||
mDoMtx_stack_c::YrotS(current.angle.y);
|
||||
for (int i = 0; i < 21; i++) {
|
||||
if ((field_0xa28[i] == 1) || (field_0xa28[i] == 2)) {
|
||||
mParticleIds[i] =
|
||||
dComIfGp_particle_set(mParticleIds[i], id[field_0xa28[i]], &field_0x788[i], 0, 0);
|
||||
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mParticleIds[i]);
|
||||
if (emitter != NULL) {
|
||||
f32 dVar6 = daObj_SMTile_Param_c::m[1] - mParticleTimers[i];
|
||||
dVar6 /= daObj_SMTile_Param_c::m[1];
|
||||
local_3c.setall(0.0f);
|
||||
switch ((u8)l_tileMoveData[i][3]) {
|
||||
case 0:
|
||||
local_3c.z = daObj_SMTile_Param_c::m[0] * dVar6;
|
||||
break;
|
||||
case 1:
|
||||
local_3c.x = daObj_SMTile_Param_c::m[0] * dVar6;
|
||||
break;
|
||||
case 2:
|
||||
local_3c.x = daObj_SMTile_Param_c::m[0] * dVar6 * -1.0f;
|
||||
break;
|
||||
case 3:
|
||||
local_3c.z = daObj_SMTile_Param_c::m[0] * dVar6 * -1.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::multVec(&local_3c, &local_3c);
|
||||
field_0x788[i] = current.pos + field_0x68c[i] + local_3c;
|
||||
if (mParticleTimers[i] > 0 && cLib_calcTimer(&mParticleTimers[i]) == 0) {
|
||||
mDoAud_seStart(Z2SE_OBJ_SEKI_TILE_ON, &field_0x788[i], 0, 0);
|
||||
}
|
||||
emitter->setGlobalTranslation(field_0x788[i].x, field_0x788[i].y, field_0x788[i].z);
|
||||
emitter->setGlobalAlpha(local_30);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CDE1A8-80CDE21C 000FE8 0074+00 1/1 0/0 0/0 .text setMtx__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::setMtx() {
|
||||
csXyz acStack_18(shape_angle);
|
||||
acStack_18.y += 0x8000;
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(acStack_18);
|
||||
mDoMtx_stack_c::scaleM(scale);
|
||||
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 80CDE21C-80CDE23C 00105C 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Create__FPv */
|
||||
static int daObj_SMTile_Create(void* i_this) {
|
||||
static_cast<daObj_SMTile_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* 80CDE23C-80CDE25C 00107C 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Delete__FPv */
|
||||
static int daObj_SMTile_Delete(void* i_this) {
|
||||
static_cast<daObj_SMTile_c*>(i_this)->Delete();
|
||||
}
|
||||
|
||||
/* 80CDE25C-80CDE27C 00109C 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Execute__FPv */
|
||||
static int daObj_SMTile_Execute(void* i_this) {
|
||||
static_cast<daObj_SMTile_c*>(i_this)->Execute();
|
||||
}
|
||||
|
||||
/* 80CDE27C-80CDE29C 0010BC 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Draw__FPv */
|
||||
static int daObj_SMTile_Draw(void* i_this) {
|
||||
static_cast<daObj_SMTile_c*>(i_this)->Draw();
|
||||
}
|
||||
|
||||
/* 80CDE29C-80CDE2A4 0010DC 0008+00 1/0 0/0 0/0 .text daObj_SMTile_IsDelete__FPv */
|
||||
static int daObj_SMTile_IsDelete(void* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDE484-80CDE488 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
|
||||
static daObj_SMTile_Param_c l_HIO;
|
||||
|
||||
/* 80CDE3F8-80CDE418 -00001 0020+00 1/0 0/0 0/0 .data daObj_SMTile_MethodTable */
|
||||
static actor_method_class daObj_SMTile_MethodTable = {
|
||||
(process_method_func)daObj_SMTile_Create__FPv,
|
||||
(process_method_func)daObj_SMTile_Delete__FPv,
|
||||
(process_method_func)daObj_SMTile_Execute__FPv,
|
||||
(process_method_func)daObj_SMTile_IsDelete__FPv,
|
||||
(process_method_func)daObj_SMTile_Draw__FPv,
|
||||
(process_method_func)daObj_SMTile_Create,
|
||||
(process_method_func)daObj_SMTile_Delete,
|
||||
(process_method_func)daObj_SMTile_Execute,
|
||||
(process_method_func)daObj_SMTile_IsDelete,
|
||||
(process_method_func)daObj_SMTile_Draw,
|
||||
};
|
||||
|
||||
/* 80CDE418-80CDE448 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_SMTILE */
|
||||
|
|
@ -147,215 +365,4 @@ extern actor_process_profile_definition g_profile_OBJ_SMTILE = {
|
|||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80CDE448-80CDE454 0000B4 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */
|
||||
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DFrameCtrlFv,
|
||||
};
|
||||
|
||||
/* 80CDE454-80CDE460 0000C0 000C+00 2/2 0/0 0/0 .data __vt__14daObj_SMTile_c */
|
||||
SECTION_DATA extern void* __vt__14daObj_SMTile_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__14daObj_SMTile_cFv,
|
||||
};
|
||||
|
||||
/* 80CDD2AC-80CDD3AC 0000EC 0100+00 1/0 0/0 0/0 .text __dt__14daObj_SMTile_cFv */
|
||||
daObj_SMTile_c::~daObj_SMTile_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDD3AC-80CDD3E8 0001EC 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */
|
||||
// cXyz::~cXyz() {
|
||||
extern "C" void __dt__4cXyzFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDD3E8-80CDD580 000228 0198+00 1/1 0/0 0/0 .text create__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDD580-80CDD584 0003C0 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
|
||||
// cXyz::cXyz() {
|
||||
extern "C" void __ct__4cXyzFv() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80CDD584-80CDD5CC 0003C4 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
||||
// J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
extern "C" void __dt__12J3DFrameCtrlFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDE35C-80CDE364 000000 0008+00 4/4 0/0 0/0 .rodata m__20daObj_SMTile_Param_c */
|
||||
SECTION_RODATA u8 const daObj_SMTile_Param_c::m[8] = {
|
||||
0x44, 0x16, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDE35C, &daObj_SMTile_Param_c::m);
|
||||
|
||||
/* 80CDE364-80CDE368 000008 0004+00 1/4 0/0 0/0 .rodata @3892 */
|
||||
SECTION_RODATA static u8 const lit_3892[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDE364, &lit_3892);
|
||||
|
||||
/* 80CDD5CC-80CDD6E8 00040C 011C+00 1/1 0/0 0/0 .text CreateHeap__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDD6E8-80CDD71C 000528 0034+00 1/1 0/0 0/0 .text Delete__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDE368-80CDE36C 00000C 0004+00 0/4 0/0 0/0 .rodata @3978 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3978 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDE368, &lit_3978);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDE36C-80CDE370 000010 0004+00 0/3 0/0 0/0 .rodata @3979 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3979 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDE36C, &lit_3979);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDE370-80CDE374 000014 0004+00 0/1 0/0 0/0 .rodata @3980 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3980 = 40.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDE370, &lit_3980);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDE374-80CDE37C 000018 0008+00 0/3 0/0 0/0 .rodata @3982 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3982[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDE374, &lit_3982);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDD71C-80CDDA98 00055C 037C+00 2/2 0/0 0/0 .text Execute__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::Execute() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDDA98-80CDDB28 0008D8 0090+00 1/1 0/0 0/0 .text Draw__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDDB28-80CDDB48 000968 0020+00 1/1 0/0 0/0 .text
|
||||
* createHeapCallBack__14daObj_SMTile_cFP10fopAc_ac_c */
|
||||
void daObj_SMTile_c::createHeapCallBack(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDDB48-80CDDD28 000988 01E0+00 1/1 0/0 0/0 .text setDstPos__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::setDstPos() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDDD28-80CDDEFC 000B68 01D4+00 1/1 0/0 0/0 .text setPrtcls__14daObj_SMTile_cFii */
|
||||
void daObj_SMTile_c::setPrtcls(int param_0, int param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDE37C-80CDE384 000020 0008+00 0/1 0/0 0/0 .rodata id$4105 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const id[8] = {
|
||||
0xFF, 0xFF, 0x86, 0xEC, 0x86, 0xED, 0x86, 0xEE,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDE37C, &id);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDE384-80CDE388 000028 0004+00 0/1 0/0 0/0 .rodata @4194 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4194 = 255.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDE384, &lit_4194);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDDEFC-80CDE1A8 000D3C 02AC+00 1/1 0/0 0/0 .text touchPrtcls__14daObj_SMTile_cFf */
|
||||
void daObj_SMTile_c::touchPrtcls(f32 param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE1A8-80CDE21C 000FE8 0074+00 1/1 0/0 0/0 .text setMtx__14daObj_SMTile_cFv */
|
||||
void daObj_SMTile_c::setMtx() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE21C-80CDE23C 00105C 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Create__FPv */
|
||||
static void daObj_SMTile_Create(void* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE23C-80CDE25C 00107C 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Delete__FPv */
|
||||
static void daObj_SMTile_Delete(void* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE25C-80CDE27C 00109C 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Execute__FPv */
|
||||
static void daObj_SMTile_Execute(void* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE27C-80CDE29C 0010BC 0020+00 1/0 0/0 0/0 .text daObj_SMTile_Draw__FPv */
|
||||
static void daObj_SMTile_Draw(void* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE29C-80CDE2A4 0010DC 0008+00 1/0 0/0 0/0 .text daObj_SMTile_IsDelete__FPv */
|
||||
static bool daObj_SMTile_IsDelete(void* param_0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80CDE2A4-80CDE2C0 0010E4 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<i>__FPi */
|
||||
extern "C" void func_80CDE2A4(void* _this, int* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDE460-80CDE46C 0000CC 000C+00 2/2 0/0 0/0 .data __vt__20daObj_SMTile_Param_c */
|
||||
SECTION_DATA extern void* __vt__20daObj_SMTile_Param_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__20daObj_SMTile_Param_cFv,
|
||||
};
|
||||
|
||||
/* 80CDE478-80CDE484 000008 000C+00 1/1 0/0 0/0 .bss @3805 */
|
||||
static u8 lit_3805[12];
|
||||
|
||||
/* 80CDE484-80CDE488 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[4];
|
||||
|
||||
/* 80CDE2C0-80CDE300 001100 0040+00 0/0 1/0 0/0 .text __sinit_d_a_obj_smtile_cpp */
|
||||
void __sinit_d_a_obj_smtile_cpp() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80CDE2C0, __sinit_d_a_obj_smtile_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDE300-80CDE348 001140 0048+00 2/1 0/0 0/0 .text __dt__20daObj_SMTile_Param_cFv */
|
||||
daObj_SMTile_Param_c::~daObj_SMTile_Param_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE388-80CDE388 00002C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue