d_a_tag_lantern OK

This commit is contained in:
Trueffeloot 2023-04-05 07:23:59 +02:00
parent ddc5c7efaa
commit 23e3744510
2 changed files with 130 additions and 258 deletions

View File

@ -1,6 +1,31 @@
#ifndef D_A_TAG_LANTERN_H
#define D_A_TAG_LANTERN_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/com/d_com_inf_game.h"
class daTag_Lantern_c : public fopAc_ac_c {
public:
/* 8048ED28 */ int create();
/* 8048EDA8 */ int Delete();
/* 8048EDDC */ int Execute();
/* 8048EF6C */ int Draw();
/* 8048EF74 */ void initialize();
/* 0x568 */ dMsgFlow_c field_0x568;
/* 0x5B4 */ cBgS_GndChk field_0x5b4;
/* 0x5F0 */ u32 field_0x5f0;
/* 0x5F4 */ f32 field_0x5f4;
/* 0x5F8 */ s32 field_0x5f8;
/* 0x5FC */ u32 field_0x5fc;
/* 0x600 */ s32 field_0x600;
/* 0x604 */ u8 field_0x604;
/* 8048ECAC */ virtual ~daTag_Lantern_c();
}; // Size: 0x60C
class daTag_Lantern_Param_c {
public:
/* 8048F0EC */ inline virtual ~daTag_Lantern_Param_c() {}
};
#endif /* D_A_TAG_LANTERN_H */

View File

@ -1,298 +1,145 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_lantern
//
/**
* d_a_tag_lantern.cpp
* Tag - Lantern
*/
#include "rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTag_Lantern_c {
/* 8048ECAC */ ~daTag_Lantern_c();
/* 8048ED28 */ void create();
/* 8048EDA8 */ void Delete();
/* 8048EDDC */ void Execute();
/* 8048EF6C */ bool Draw();
/* 8048EF74 */ void initialize();
};
struct daTag_Lantern_Param_c {
/* 8048F0EC */ ~daTag_Lantern_Param_c();
};
struct dMsgFlow_c {
/* 80249F00 */ dMsgFlow_c();
/* 80249F48 */ ~dMsgFlow_c();
/* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**);
/* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int);
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct cBgS_PolyInfo {};
struct dBgS {
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
};
struct cXyz {};
struct cBgS_GndChk {
/* 80267C1C */ cBgS_GndChk();
/* 80267C94 */ ~cBgS_GndChk();
/* 80267D28 */ void SetPos(cXyz const*);
};
struct cBgS {
/* 800744A0 */ void GroundCross(cBgS_GndChk*);
};
//
// Forward References:
//
extern "C" void __dt__15daTag_Lantern_cFv();
extern "C" void create__15daTag_Lantern_cFv();
extern "C" void Delete__15daTag_Lantern_cFv();
extern "C" void Execute__15daTag_Lantern_cFv();
extern "C" bool Draw__15daTag_Lantern_cFv();
extern "C" void initialize__15daTag_Lantern_cFv();
extern "C" static void daTag_Lantern_Create__FPv();
extern "C" static void daTag_Lantern_Delete__FPv();
extern "C" static void daTag_Lantern_Execute__FPv();
extern "C" static void daTag_Lantern_Draw__FPv();
extern "C" static bool daTag_Lantern_IsDelete__FPv();
extern "C" void __sinit_d_a_tag_lantern_cpp();
extern "C" void __dt__21daTag_Lantern_Param_cFv();
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
extern "C" void __ct__10dMsgFlow_cFv();
extern "C" void __dt__10dMsgFlow_cFv();
extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
extern "C" void __ct__11cBgS_GndChkFv();
extern "C" void __dt__11cBgS_GndChkFv();
extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
extern "C" void __dl__FPv();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 8048F154-8048F174 -00001 0020+00 1/0 0/0 0/0 .data daTag_Lantern_MethodTable */
SECTION_DATA static void* daTag_Lantern_MethodTable[8] = {
(void*)daTag_Lantern_Create__FPv,
(void*)daTag_Lantern_Delete__FPv,
(void*)daTag_Lantern_Execute__FPv,
(void*)daTag_Lantern_IsDelete__FPv,
(void*)daTag_Lantern_Draw__FPv,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 8048F174-8048F1A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_LANTERN */
SECTION_DATA extern void* g_profile_TAG_LANTERN[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02D60000, (void*)&g_fpcLf_Method,
(void*)0x0000060C, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x011E0000, (void*)&daTag_Lantern_MethodTable,
(void*)0x00040000, (void*)0x000E0000,
};
/* 8048F1A4-8048F1B0 000050 000C+00 2/2 0/0 0/0 .data __vt__15daTag_Lantern_c */
SECTION_DATA extern void* __vt__15daTag_Lantern_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15daTag_Lantern_cFv,
};
/* 8048ECAC-8048ED28 0000EC 007C+00 1/0 0/0 0/0 .text __dt__15daTag_Lantern_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTag_Lantern_c::~daTag_Lantern_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/__dt__15daTag_Lantern_cFv.s"
}
#pragma pop
daTag_Lantern_c::~daTag_Lantern_c() {}
/* 8048ED28-8048EDA8 000168 0080+00 1/1 0/0 0/0 .text create__15daTag_Lantern_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Lantern_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/create__15daTag_Lantern_cFv.s"
int daTag_Lantern_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTag_Lantern_c();
fopAcM_OnCondition(this, 8);
}
initialize();
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 8048EDA8-8048EDDC 0001E8 0034+00 1/1 0/0 0/0 .text Delete__15daTag_Lantern_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Lantern_c::Delete() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/Delete__15daTag_Lantern_cFv.s"
int daTag_Lantern_c::Delete() {
this->~daTag_Lantern_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 8048F148-8048F14C 000000 0004+00 1/1 0/0 0/0 .rodata @3683 */
SECTION_RODATA static f32 const lit_3683 = -1000000000.0f;
COMPILER_STRIP_GATE(0x8048F148, &lit_3683);
/* 8048EDDC-8048EF6C 00021C 0190+00 2/2 0/0 0/0 .text Execute__15daTag_Lantern_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Lantern_c::Execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/Execute__15daTag_Lantern_cFv.s"
int daTag_Lantern_c::Execute() {
s32 sVar;
dComIfG_play_c& play = g_dComIfG_gameInfo.getPlay();
if (i_dComIfGp_event_runCheck()) {
if (mEvtInfo.mCommand == 1) {
if (!field_0x604) {
field_0x568.init(this, field_0x600, NULL, NULL);
field_0x604 += 1;
} else if (field_0x604 == 1 && field_0x568.doFlow(this, NULL, NULL)) {
play.getEvent().reset();
field_0x604 = 0;
field_0x5f8 = 0;
}
}
} else {
if (field_0x5f8) {
mEvtInfo.mCondition |= 1;
fopAcM_orderSpeakEvent(this, 0, 0);
}
}
field_0x5b4.SetPos(&current.pos);
field_0x5f4 = dComIfG_Bgsp().GroundCross(&field_0x5b4);
if (field_0x5f4 != -1000000000.0f) {
sVar = dComIfG_Bgsp().GetRoomId(field_0x5b4);
mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(field_0x5b4);
} else {
sVar = dComIfGp_roomControl_getStayNo();
}
mTevStr.mRoomNo = sVar;
fopAcM_SetRoomNo(this, mTevStr.mRoomNo);
mAttentionInfo.mFlags = 0;
mAttentionInfo.mPosition = current.pos;
mEyePos = mAttentionInfo.mPosition;
return 1;
}
#pragma pop
/* 8048EF6C-8048EF74 0003AC 0008+00 1/1 0/0 0/0 .text Draw__15daTag_Lantern_cFv */
bool daTag_Lantern_c::Draw() {
return true;
int daTag_Lantern_c::Draw() {
return 1;
}
/* ############################################################################################## */
/* 8048F14C-8048F150 000004 0004+00 1/1 0/0 0/0 .rodata @3697 */
SECTION_RODATA static u8 const lit_3697[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x8048F14C, &lit_3697);
/* 8048F150-8048F154 000008 0004+00 1/1 0/0 0/0 .rodata @3698 */
SECTION_RODATA static f32 const lit_3698 = 100.0f;
COMPILER_STRIP_GATE(0x8048F150, &lit_3698);
/* 8048EF74-8048F024 0003B4 00B0+00 1/1 0/0 0/0 .text initialize__15daTag_Lantern_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTag_Lantern_c::initialize() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/initialize__15daTag_Lantern_cFv.s"
void daTag_Lantern_c::initialize() {
fopAcM_setCullSizeBox(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
if (orig.angle.z != 0xffff) {
field_0x600 = orig.angle.z;
} else {
field_0x600 = -1;
}
orig.angle.z = 0;
field_0x5fc = fopAcM_GetParam(this) & 0xfff;
mScale.x *= 100.0f;
mScale.y *= 100.0f;
mScale.z *= 100.0f;
Execute();
}
#pragma pop
/* 8048F024-8048F044 000464 0020+00 1/0 0/0 0/0 .text daTag_Lantern_Create__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Lantern_Create(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/daTag_Lantern_Create__FPv.s"
static int daTag_Lantern_Create(void* i_this) {
return static_cast<daTag_Lantern_c*>(i_this)->create();
}
#pragma pop
/* 8048F044-8048F064 000484 0020+00 1/0 0/0 0/0 .text daTag_Lantern_Delete__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Lantern_Delete(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/daTag_Lantern_Delete__FPv.s"
static int daTag_Lantern_Delete(void* i_this) {
return static_cast<daTag_Lantern_c*>(i_this)->Delete();
}
#pragma pop
/* 8048F064-8048F084 0004A4 0020+00 1/0 0/0 0/0 .text daTag_Lantern_Execute__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Lantern_Execute(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/daTag_Lantern_Execute__FPv.s"
static int daTag_Lantern_Execute(void* i_this) {
return static_cast<daTag_Lantern_c*>(i_this)->Execute();
}
#pragma pop
/* 8048F084-8048F0A4 0004C4 0020+00 1/0 0/0 0/0 .text daTag_Lantern_Draw__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTag_Lantern_Draw(void* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/daTag_Lantern_Draw__FPv.s"
static int daTag_Lantern_Draw(void* i_this) {
return static_cast<daTag_Lantern_c*>(i_this)->Draw();
}
#pragma pop
/* 8048F0A4-8048F0AC 0004E4 0008+00 1/0 0/0 0/0 .text daTag_Lantern_IsDelete__FPv */
static bool daTag_Lantern_IsDelete(void* param_0) {
return true;
static int daTag_Lantern_IsDelete(void* i_this) {
return 1;
}
/* ############################################################################################## */
/* 8048F1B0-8048F1BC 00005C 000C+00 2/2 0/0 0/0 .data __vt__21daTag_Lantern_Param_c */
SECTION_DATA extern void* __vt__21daTag_Lantern_Param_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__21daTag_Lantern_Param_cFv,
};
/* 8048F1C8-8048F1D4 000008 000C+00 1/1 0/0 0/0 .bss @3622 */
static u8 lit_3622[12];
/* 8048F1D4-8048F1D8 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
static u8 l_HIO[4];
static daTag_Lantern_Param_c l_HIO;
/* 8048F0AC-8048F0EC 0004EC 0040+00 0/0 1/0 0/0 .text __sinit_d_a_tag_lantern_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_a_tag_lantern_cpp() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/__sinit_d_a_tag_lantern_cpp.s"
}
#pragma pop
/* 8048F154-8048F174 -00001 0020+00 1/0 0/0 0/0 .data daTag_Lantern_MethodTable */
static actor_method_class daTag_Lantern_MethodTable = {
(process_method_func)daTag_Lantern_Create, (process_method_func)daTag_Lantern_Delete,
(process_method_func)daTag_Lantern_Execute, (process_method_func)daTag_Lantern_IsDelete,
(process_method_func)daTag_Lantern_Draw,
};
#pragma push
#pragma force_active on
REGISTER_CTORS(0x8048F0AC, __sinit_d_a_tag_lantern_cpp);
#pragma pop
/* 8048F0EC-8048F134 00052C 0048+00 2/1 0/0 0/0 .text __dt__21daTag_Lantern_Param_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTag_Lantern_Param_c::~daTag_Lantern_Param_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern/__dt__21daTag_Lantern_Param_cFv.s"
}
#pragma pop
/* 8048F174-8048F1A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_LANTERN */
extern actor_process_profile_definition g_profile_TAG_LANTERN = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_TAG_LANTERN, // mProcName
0, // Padding
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daTag_Lantern_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x011E, // mPriority
0, // Padding
0, // Padding
&daTag_Lantern_MethodTable, // mSubMtd
0x00040000, // mStatus
0, // mActorType
14, // mCullType
0, // Padding
0, // Padding
};