d_a_guard_mng OK, d_a_obj_smoke OK, d_a_tag_smk_emt OK, d_a_hitobj OK (#298)

* d_a_guard_mng OK

* d_a_obj_smoke OK

* d_a_tag_smk_emt OK

* d_a_hitobj attempt

* fixes

* rm comment

* cc_sph_src

* rename and move mGuardDataTbl
This commit is contained in:
Pheenoh
2023-02-20 00:53:33 -07:00
committed by GitHub
parent 8471d1d6cc
commit fa1f47f7a1
40 changed files with 422 additions and 1477 deletions
+67 -137
View File
@@ -1,171 +1,101 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_guard_mng
//
/**
* d_a_guard_mng.cpp
* Guard
*/
#include "rel/d/a/d_a_guard_mng/d_a_guard_mng.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct Vec {};
struct daTagGuard_c {
/* 80D597F8 */ void getAppearPoint(Vec*);
/* 80D5985C */ void createGuard(u32);
};
struct daGuardMng_c {
/* 80837B9C */ void checkMerchantNum();
/* 80837BEC */ void checkAppearTag(daTagGuard_c*);
};
struct dSv_danBit_c {
/* 80034B98 */ void onSwitch(int);
};
//
// Forward References:
//
extern "C" static void s_sub__FPvPv();
extern "C" void checkMerchantNum__12daGuardMng_cFv();
extern "C" void checkAppearTag__12daGuardMng_cFP12daTagGuard_c();
extern "C" static void daGuardMng_Execute__FP12daGuardMng_c();
extern "C" static bool daGuardMng_IsDelete__FP12daGuardMng_c();
extern "C" static void daGuardMng_Delete__FP12daGuardMng_c();
extern "C" static void daGuardMng_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_GUARD_MNG[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
extern "C" void onSwitch__12dSv_danBit_cFi();
extern "C" void PSVECSubtract();
extern "C" void PSVECSquareMag();
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" void getAppearPoint__12daTagGuard_cFP3Vec();
extern "C" void createGuard__12daTagGuard_cFUl();
//
// Declarations:
//
#include "f_pc/f_pc_executor.h"
/* 80837B18-80837B9C 000078 0084+00 1/1 0/0 0/0 .text s_sub__FPvPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void s_sub(void* param_0, void* param_1) {
nofralloc
#include "asm/rel/d/a/d_a_guard_mng/d_a_guard_mng/s_sub__FPvPv.s"
static void* s_sub(void* i_actorP, void* i_this) {
if (fopAcM_IsActor(i_actorP)) {
if (fopAcM_GetName(i_actorP) == PROC_NPC_CD3 || fopAcM_GetName(i_actorP) == PROC_NPC_PASSER || fopAcM_GetName(i_actorP) == PROC_NPC_FGUARD) {
static_cast<daGuardMng_c*>(i_this)->countMerchantNum();
} else {
if (fopAcM_GetName(i_actorP) == PROC_TAG_GUARD) {
static_cast<daGuardMng_c*>(i_this)->checkAppearTag((daTagGuard_c *)i_actorP);
}
}
}
return 0;
}
#pragma pop
/* ############################################################################################## */
/* 80837DE4-80837DEC 000000 0008+00 1/1 0/0 0/0 .rodata
* mGuardDataTbl$localstatic3$getGuardParam__12daGuardMng_cFv */
SECTION_RODATA static u8 const data_80837DE4[8] = {
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01,
};
COMPILER_STRIP_GATE(0x80837DE4, &data_80837DE4);
/* 80837DEC-80837DF0 000008 0004+00 1/1 0/0 0/0 .rodata @3663 */
SECTION_RODATA static f32 const lit_3663 = 1000000000.0f;
COMPILER_STRIP_GATE(0x80837DEC, &lit_3663);
/* 80837B9C-80837BEC 0000FC 0050+00 1/1 0/0 0/0 .text checkMerchantNum__12daGuardMng_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daGuardMng_c::checkMerchantNum() {
nofralloc
#include "asm/rel/d/a/d_a_guard_mng/d_a_guard_mng/checkMerchantNum__12daGuardMng_cFv.s"
u8 daGuardMng_c::checkMerchantNum() {
field_0x56c = 1000000000.0f;
mMerchantNum = 0;
i_fpcM_Search(s_sub,this);
return mMerchantNum;
}
#pragma pop
/* 80837BEC-80837C6C 00014C 0080+00 1/1 0/0 0/0 .text
* checkAppearTag__12daGuardMng_cFP12daTagGuard_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daGuardMng_c::checkAppearTag(daTagGuard_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_guard_mng/d_a_guard_mng/checkAppearTag__12daGuardMng_cFP12daTagGuard_c.s"
void daGuardMng_c::checkAppearTag(daTagGuard_c* i_this) {
cXyz pos;
if ((u8)i_this->getAppearPoint(&pos) != 0) {
pos -= fopAcM_GetPosition_p(dComIfGp_getPlayer(0));
f32 pos_abs = pos.abs2();
if (field_0x56c > pos_abs) {
mpTagGuard = i_this;
field_0x56c = pos_abs;
}
}
}
#pragma pop
/* 80837C6C-80837D44 0001CC 00D8+00 1/0 0/0 0/0 .text daGuardMng_Execute__FP12daGuardMng_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daGuardMng_Execute(daGuardMng_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_guard_mng/d_a_guard_mng/daGuardMng_Execute__FP12daGuardMng_c.s"
static int daGuardMng_Execute(daGuardMng_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80837D44-80837D4C 0002A4 0008+00 1/0 0/0 0/0 .text daGuardMng_IsDelete__FP12daGuardMng_c */
static bool daGuardMng_IsDelete(daGuardMng_c* param_0) {
return true;
static int daGuardMng_IsDelete(daGuardMng_c* param_0) {
return 1;
}
/* 80837D4C-80837D7C 0002AC 0030+00 1/0 0/0 0/0 .text daGuardMng_Delete__FP12daGuardMng_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daGuardMng_Delete(daGuardMng_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_guard_mng/d_a_guard_mng/daGuardMng_Delete__FP12daGuardMng_c.s"
static int daGuardMng_Delete(daGuardMng_c* i_this) {
i_this->~daGuardMng_c();
return 1;
}
#pragma pop
/* 80837D7C-80837DDC 0002DC 0060+00 1/0 0/0 0/0 .text daGuardMng_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daGuardMng_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_guard_mng/d_a_guard_mng/daGuardMng_Create__FP10fopAc_ac_c.s"
static int daGuardMng_Create(fopAc_ac_c* i_this) {
return static_cast<daGuardMng_c*>(i_this)->create();
}
#pragma pop
/* ############################################################################################## */
/* 80837DF0-80837E10 -00001 0020+00 1/0 0/0 0/0 .data l_daGuardMng_Method */
SECTION_DATA static void* l_daGuardMng_Method[8] = {
(void*)daGuardMng_Create__FP10fopAc_ac_c,
(void*)daGuardMng_Delete__FP12daGuardMng_c,
(void*)daGuardMng_Execute__FP12daGuardMng_c,
(void*)daGuardMng_IsDelete__FP12daGuardMng_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daGuardMng_Method = {
(process_method_func)daGuardMng_Create,
(process_method_func)daGuardMng_Delete,
(process_method_func)daGuardMng_Execute,
(process_method_func)daGuardMng_IsDelete
};
/* 80837E10-80837E40 -00001 0030+00 0/0 0/0 1/0 .data g_profile_GUARD_MNG */
SECTION_DATA extern void* g_profile_GUARD_MNG[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02950000, (void*)&g_fpcLf_Method,
(void*)0x00000574, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01970000, (void*)&l_daGuardMng_Method,
(void*)0x00040100, (void*)NULL,
extern actor_process_profile_definition g_profile_GUARD_MNG = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_GUARD_MNG, // mProcName
0, // padding
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daGuardMng_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x0197, // mPriority
0, // padding
0, // padding
&l_daGuardMng_Method, // mSubMtd
0x00040100, // mStatus
0, // mActorType
0, // mCullType
0, // padding
0 // padding
};
+81 -189
View File
@@ -1,215 +1,107 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_hitobj
//
/**
* d_a_hitobj.cpp
*
*/
#include "rel/d/a/d_a_hitobj/d_a_hitobj.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct hitobj_class {};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct dCcD_Stts {
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
};
struct dCcD_SrcSph {};
struct dCcD_Sph {
/* 80084A34 */ void Set(dCcD_SrcSph const&);
};
struct dCcD_GStts {
/* 80083760 */ dCcD_GStts();
};
struct dCcD_GObjInf {
/* 80083A28 */ dCcD_GObjInf();
};
struct cXyz {};
struct cM3dGSph {
/* 8026F648 */ void SetC(cXyz const&);
/* 8046B53C */ ~cM3dGSph();
};
struct cM3dGAab {
/* 8046B584 */ ~cM3dGAab();
};
struct cCcD_Obj {};
struct cCcS {
/* 80264BA8 */ void Set(cCcD_Obj*);
};
//
// Forward References:
//
extern "C" static bool daHitobj_Draw__FP12hitobj_class();
extern "C" static void daHitobj_Execute__FP12hitobj_class();
extern "C" static bool daHitobj_IsDelete__FP12hitobj_class();
extern "C" static void daHitobj_Delete__FP12hitobj_class();
extern "C" static void daHitobj_Create__FP10fopAc_ac_c();
extern "C" void __dt__8cM3dGSphFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" extern char const* const d_a_hitobj__stringBase0;
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopKyM_Delete__FPv();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void SetC__8cM3dGSphFRC4cXyz();
extern "C" void __dl__FPv();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_SphAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
//
#include "f_op/f_op_kankyo_mng.h"
/* 8046B358-8046B360 000078 0008+00 1/0 0/0 0/0 .text daHitobj_Draw__FP12hitobj_class */
static bool daHitobj_Draw(hitobj_class* param_0) {
return true;
static int daHitobj_Draw(hitobj_class* i_this) {
return 1;
}
/* 8046B360-8046B3C8 000080 0068+00 1/0 0/0 0/0 .text daHitobj_Execute__FP12hitobj_class
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daHitobj_Execute(hitobj_class* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_hitobj/d_a_hitobj/daHitobj_Execute__FP12hitobj_class.s"
static int daHitobj_Execute(hitobj_class* i_this) {
if (i_this->field_0x572 != 0) {
i_this->field_0x572--;
i_this->field_0x5b0.SetC(i_this->current.pos);
dComIfG_Ccsp()->Set(&i_this->field_0x5b0);
} else {
fopKyM_Delete(i_this);
}
return 1;
}
#pragma pop
/* 8046B3C8-8046B3D0 0000E8 0008+00 1/0 0/0 0/0 .text daHitobj_IsDelete__FP12hitobj_class
*/
static bool daHitobj_IsDelete(hitobj_class* param_0) {
return true;
static int daHitobj_IsDelete(hitobj_class* i_this) {
return 1;
}
/* ############################################################################################## */
/* 8046B5D4-8046B5D4 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8046B5D4 = "Hitobj";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8046B5DB = "";
#pragma pop
/* 8046B3D0-8046B400 0000F0 0030+00 1/0 0/0 0/0 .text daHitobj_Delete__FP12hitobj_class
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daHitobj_Delete(hitobj_class* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_hitobj/d_a_hitobj/daHitobj_Delete__FP12hitobj_class.s"
static int daHitobj_Delete(hitobj_class* i_this) {
dComIfG_resDelete(&i_this->mPhase,"Hitobj");
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 8046B5DC-8046B61C 000000 0040+00 1/1 0/0 0/0 .data cc_sph_src$3657 */
SECTION_DATA static u8 cc_sph_src[64] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 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, 0x42, 0xC8, 0x00, 0x00,
};
/* 8046B61C-8046B63C -00001 0020+00 1/0 0/0 0/0 .data l_daHitobj_Method */
SECTION_DATA static void* l_daHitobj_Method[8] = {
(void*)daHitobj_Create__FP10fopAc_ac_c,
(void*)daHitobj_Delete__FP12hitobj_class,
(void*)daHitobj_Execute__FP12hitobj_class,
(void*)daHitobj_IsDelete__FP12hitobj_class,
(void*)daHitobj_Draw__FP12hitobj_class,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 8046B63C-8046B66C -00001 0030+00 0/0 0/0 1/0 .data g_profile_HITOBJ */
SECTION_DATA extern void* g_profile_HITOBJ[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01040000, (void*)&g_fpcLf_Method,
(void*)0x000006E8, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02B20000, (void*)&l_daHitobj_Method,
(void*)0x00040000, (void*)NULL,
};
/* 8046B66C-8046B678 000090 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGSphFv,
};
/* 8046B678-8046B684 00009C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
static dCcD_SrcSph cc_sph_src = {
{
{0, {{0, 0, 0x13}, {0, 3}, 0}},
{dCcD_SE_NONE, 0, 0, 0, {0}},
{dCcD_SE_NONE, 0, 0, 0, {0}},
{0},
},
{
{0.0f, 0.0f, 0.0f},
100.0f,
},
};
/* 8046B400-8046B53C 000120 013C+00 1/0 0/0 0/0 .text daHitobj_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daHitobj_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_hitobj/d_a_hitobj/daHitobj_Create__FP10fopAc_ac_c.s"
}
#pragma pop
static int daHitobj_Create(fopAc_ac_c* i_this) {
hitobj_class* hitobj = (hitobj_class*)i_this;
if (!fopAcM_CheckCondition(hitobj, 8)) {
new (hitobj) hitobj_class();
fopAcM_OnCondition(hitobj, 8);
}
/* 8046B53C-8046B584 00025C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGSph::~cM3dGSph() {
nofralloc
#include "asm/rel/d/a/d_a_hitobj/d_a_hitobj/__dt__8cM3dGSphFv.s"
}
#pragma pop
int ret = dComIfG_resLoad(&hitobj->mPhase,"Hitobj");
/* 8046B584-8046B5CC 0002A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cM3dGAab::~cM3dGAab() {
nofralloc
#include "asm/rel/d/a/d_a_hitobj/d_a_hitobj/__dt__8cM3dGAabFv.s"
}
#pragma pop
if (ret == cPhs_COMPLEATE_e) {
hitobj->field_0x570 = fopAcM_GetParam(hitobj);
hitobj->field_0x574.Init(0xff,0xff,hitobj);
hitobj->field_0x5b0.Set(cc_sph_src);
hitobj->field_0x5b0.SetStts(&hitobj->field_0x574);
hitobj->field_0x572 = 3;
}
/* 8046B5D4-8046B5D4 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
return ret;
}
/* 8046B61C-8046B63C -00001 0020+00 1/0 0/0 0/0 .data l_daHitobj_Method */
static actor_method_class l_daHitobj_Method = {
(process_method_func)daHitobj_Create,
(process_method_func)daHitobj_Delete,
(process_method_func)daHitobj_Execute,
(process_method_func)daHitobj_IsDelete,
(process_method_func)daHitobj_Draw
};
/* 8046B63C-8046B66C -00001 0030+00 0/0 0/0 1/0 .data g_profile_HITOBJ */
extern actor_process_profile_definition g_profile_HITOBJ = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_HITOBJ, // mProcName
0, // padding
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(hitobj_class), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x02B2, // mPriority
0, // padding
0, // padding
&l_daHitobj_Method, // mSubMtd
0x00040000, // mStatus
0, // mActorType
0, // mCullType
0, // padding
0 // padding
};
+70 -165
View File
@@ -1,203 +1,108 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_obj_smoke
//
/**
* d_a_obj_smoke.cpp
* Object - Smoke
*/
#include "rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct mDoMtx_stack_c {
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct daObjSmoke_c {
/* 80CDCE78 */ void initBaseMtx();
/* 80CDCE98 */ void setBaseMtx();
/* 80CDCEF0 */ void Create();
/* 80CDCF9C */ void create();
/* 80CDD004 */ void execute();
/* 80CDD0B8 */ void _delete();
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct dPa_levelEcallBack {};
struct dKy_tevstr_c {};
struct csXyz {};
struct _GXColor {};
struct cXyz {};
struct dPa_control_c {
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
cXyz const*, f32);
};
//
// Forward References:
//
extern "C" void initBaseMtx__12daObjSmoke_cFv();
extern "C" void setBaseMtx__12daObjSmoke_cFv();
extern "C" void Create__12daObjSmoke_cFv();
extern "C" void create__12daObjSmoke_cFv();
extern "C" void execute__12daObjSmoke_cFv();
extern "C" void _delete__12daObjSmoke_cFv();
extern "C" static void daObjSmoke_Execute__FP12daObjSmoke_c();
extern "C" static void daObjSmoke_Delete__FP12daObjSmoke_c();
extern "C" static void daObjSmoke_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_Obj_Smoke[12];
//
// External References:
//
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void PSMTXTrans();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
//
/* 80CDCE78-80CDCE98 000078 0020+00 1/1 0/0 0/0 .text initBaseMtx__12daObjSmoke_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSmoke_c::initBaseMtx() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/initBaseMtx__12daObjSmoke_cFv.s"
void daObjSmoke_c::initBaseMtx() {
setBaseMtx();
}
#pragma pop
/* 80CDCE98-80CDCEF0 000098 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daObjSmoke_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSmoke_c::setBaseMtx() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/setBaseMtx__12daObjSmoke_cFv.s"
void daObjSmoke_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos.x,current.pos.y,current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x,shape_angle.y,shape_angle.z);
}
#pragma pop
/* ############################################################################################## */
/* 80CDD160-80CDD164 000000 0004+00 2/2 0/0 0/0 .rodata @3655 */
SECTION_RODATA static f32 const lit_3655 = 1.0f;
COMPILER_STRIP_GATE(0x80CDD160, &lit_3655);
/* 80CDCEF0-80CDCF9C 0000F0 00AC+00 1/1 0/0 0/0 .text Create__12daObjSmoke_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSmoke_c::Create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/Create__12daObjSmoke_cFv.s"
int daObjSmoke_c::Create() {
initBaseMtx();
if (i_fopAcM_isSwitch(this,getSwbit())) {
mParticle = dComIfGp_particle_set(0x85a6,&current.pos,&current.angle,&mScale,0xff,0,0xffffffff,0,0,0);
}
return 1;
}
#pragma pop
/* 80CDCF9C-80CDD004 00019C 0068+00 1/1 0/0 0/0 .text create__12daObjSmoke_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSmoke_c::create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/func_80CDCF9C.s"
int daObjSmoke_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daObjSmoke_c();
fopAcM_OnCondition(this, 8);
}
if (Create() == 0) {
return cPhs_ERROR_e;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80CDD004-80CDD0B8 000204 00B4+00 1/1 0/0 0/0 .text execute__12daObjSmoke_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSmoke_c::execute() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/execute__12daObjSmoke_cFv.s"
int daObjSmoke_c::execute() {
if (i_fopAcM_isSwitch(this,getSwbit()) && !mParticle) {
mParticle = dComIfGp_particle_set(0x85a6,&current.pos,&current.angle,&mScale,0xff,0,0xffffffff,0,0,0);
}
return 1;
}
#pragma pop
/* 80CDD0B8-80CDD0F8 0002B8 0040+00 1/1 0/0 0/0 .text _delete__12daObjSmoke_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSmoke_c::_delete() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/_delete__12daObjSmoke_cFv.s"
int daObjSmoke_c::_delete() {
if (mParticle) {
mParticle->quitImmortalEmitter();
mParticle->becomeInvalidEmitter();
mParticle = 0;
}
return 1;
}
#pragma pop
/* 80CDD0F8-80CDD118 0002F8 0020+00 1/0 0/0 0/0 .text daObjSmoke_Execute__FP12daObjSmoke_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjSmoke_Execute(daObjSmoke_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/daObjSmoke_Execute__FP12daObjSmoke_c.s"
static int daObjSmoke_Execute(daObjSmoke_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80CDD118-80CDD138 000318 0020+00 1/0 0/0 0/0 .text daObjSmoke_Delete__FP12daObjSmoke_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjSmoke_Delete(daObjSmoke_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/daObjSmoke_Delete__FP12daObjSmoke_c.s"
static int daObjSmoke_Delete(daObjSmoke_c* i_this) {
return i_this->_delete();
}
#pragma pop
/* 80CDD138-80CDD158 000338 0020+00 1/0 0/0 0/0 .text daObjSmoke_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjSmoke_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_smoke/d_a_obj_smoke/daObjSmoke_Create__FP10fopAc_ac_c.s"
static int daObjSmoke_Create(fopAc_ac_c* i_this) {
return static_cast<daObjSmoke_c*>(i_this)->create();
}
#pragma pop
/* ############################################################################################## */
/* 80CDD164-80CDD184 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSmoke_Method */
SECTION_DATA static void* l_daObjSmoke_Method[8] = {
(void*)daObjSmoke_Create__FP10fopAc_ac_c,
(void*)daObjSmoke_Delete__FP12daObjSmoke_c,
(void*)daObjSmoke_Execute__FP12daObjSmoke_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daObjSmoke_Method = {
(process_method_func)daObjSmoke_Create,
(process_method_func)daObjSmoke_Delete,
(process_method_func)daObjSmoke_Execute
};
/* 80CDD184-80CDD1B4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Smoke */
SECTION_DATA extern void* g_profile_Obj_Smoke[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01760000, (void*)&g_fpcLf_Method,
(void*)0x0000056C, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02780000, (void*)&l_daObjSmoke_Method,
(void*)0x00040100, (void*)0x000E0000,
extern actor_process_profile_definition g_profile_Obj_Smoke = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_Obj_Smoke, // mProcName
0, // padding
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daObjSmoke_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x0278, // mPriority
0, // padding
0, // padding
&l_daObjSmoke_Method, // mSubMtd
0x00040100, // mStatus
0, // mActorType
0x0E, // mCullType
0, // padding
0, // padding
};
+1 -1
View File
@@ -1,6 +1,6 @@
/**
* d_a_tag_guard.cpp
*
* Tag - Guard
*/
#include "rel/d/a/tag/d_a_tag_guard/d_a_tag_guard.h"
+85 -202
View File
@@ -1,244 +1,127 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_smk_emt
//
/**
* d_a_tag_smk_emt.cpp
* Tag - Smoke Emit
*/
#include "rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagSmkEmt_c {
/* 80D612D8 */ daTagSmkEmt_c();
/* 80D61324 */ ~daTagSmkEmt_c();
/* 80D61384 */ void create();
/* 80D613DC */ void Delete();
/* 80D61400 */ bool draw();
/* 80D61408 */ bool execute();
/* 80D61410 */ void createSmkEmt();
/* 80D61500 */ void deleteSmkEmt();
};
struct dPa_levelEcallBack {};
struct dKy_tevstr_c {};
struct csXyz {
/* 802673F4 */ csXyz(s16, s16, s16);
};
struct _GXColor {};
struct cXyz {};
struct dPa_control_c {
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
cXyz const*, f32);
};
//
// Forward References:
//
extern "C" void __ct__13daTagSmkEmt_cFv();
extern "C" void __dt__13daTagSmkEmt_cFv();
extern "C" void create__13daTagSmkEmt_cFv();
extern "C" void Delete__13daTagSmkEmt_cFv();
extern "C" bool draw__13daTagSmkEmt_cFv();
extern "C" bool execute__13daTagSmkEmt_cFv();
extern "C" void createSmkEmt__13daTagSmkEmt_cFv();
extern "C" void deleteSmkEmt__13daTagSmkEmt_cFv();
extern "C" static void daTagSmkEmt_create__FP13daTagSmkEmt_c();
extern "C" static void daTagSmkEmt_Delete__FP13daTagSmkEmt_c();
extern "C" static void daTagSmkEmt_execute__FP13daTagSmkEmt_c();
extern "C" static void daTagSmkEmt_draw__FP13daTagSmkEmt_c();
//
// External References:
//
SECTION_INIT void memset();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void __ct__5csXyzFsss();
extern "C" void __dl__FPv();
extern "C" void _savegpr_25();
extern "C" void _restgpr_25();
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];
//
// Declarations:
//
/* ############################################################################################## */
/* 80D6160C-80D6162C -00001 0020+00 1/0 0/0 0/0 .data daTagSmkEmt_METHODS */
SECTION_DATA static void* daTagSmkEmt_METHODS[8] = {
(void*)daTagSmkEmt_create__FP13daTagSmkEmt_c,
(void*)daTagSmkEmt_Delete__FP13daTagSmkEmt_c,
(void*)daTagSmkEmt_execute__FP13daTagSmkEmt_c,
(void*)NULL,
(void*)daTagSmkEmt_draw__FP13daTagSmkEmt_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 80D6162C-80D6165C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_SmkEmt */
SECTION_DATA extern void* g_profile_Tag_SmkEmt[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01A00000, (void*)&g_fpcLf_Method,
(void*)0x00000578, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02E70000, (void*)&daTagSmkEmt_METHODS,
(void*)0x00040000, (void*)0x000E0000,
};
/* 80D6165C-80D61668 000050 000C+00 2/2 0/0 0/0 .data __vt__13daTagSmkEmt_c */
SECTION_DATA extern void* __vt__13daTagSmkEmt_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__13daTagSmkEmt_cFv,
};
/* 80D612D8-80D61324 000078 004C+00 2/2 0/0 0/0 .text __ct__13daTagSmkEmt_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagSmkEmt_c::daTagSmkEmt_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/__ct__13daTagSmkEmt_cFv.s"
daTagSmkEmt_c::daTagSmkEmt_c() {
memset(&mParticles,0,0xc);
}
#pragma pop
/* 80D61324-80D61384 0000C4 0060+00 1/0 0/0 0/0 .text __dt__13daTagSmkEmt_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagSmkEmt_c::~daTagSmkEmt_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/__dt__13daTagSmkEmt_cFv.s"
}
#pragma pop
daTagSmkEmt_c::~daTagSmkEmt_c() {}
/* 80D61384-80D613DC 000124 0058+00 1/1 0/0 0/0 .text create__13daTagSmkEmt_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagSmkEmt_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/create__13daTagSmkEmt_cFv.s"
int daTagSmkEmt_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagSmkEmt_c();
fopAcM_OnCondition(this, 8);
}
createSmkEmt();
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80D613DC-80D61400 00017C 0024+00 1/1 0/0 0/0 .text Delete__13daTagSmkEmt_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagSmkEmt_c::Delete() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/Delete__13daTagSmkEmt_cFv.s"
int daTagSmkEmt_c::Delete() {
deleteSmkEmt();
return 1;
}
#pragma pop
/* 80D61400-80D61408 0001A0 0008+00 1/1 0/0 0/0 .text draw__13daTagSmkEmt_cFv */
bool daTagSmkEmt_c::draw() {
return true;
int daTagSmkEmt_c::draw() {
return 1;
}
/* 80D61408-80D61410 0001A8 0008+00 1/1 0/0 0/0 .text execute__13daTagSmkEmt_cFv */
bool daTagSmkEmt_c::execute() {
return true;
int daTagSmkEmt_c::execute() {
return 1;
}
/* ############################################################################################## */
/* 80D61600-80D61608 000000 0006+02 1/1 0/0 0/0 .rodata PARTICLE_NAME$3654 */
SECTION_RODATA static u8 const PARTICLE_NAME[6 + 2 /* padding */] = {
0x87,
0xE7,
0x87,
0xE8,
0x87,
0xE9,
/* padding */
0x00,
0x00,
static u16 const PARTICLE_NAME[3] = {
0x87E7,
0x87E8,
0x87E9
};
COMPILER_STRIP_GATE(0x80D61600, &PARTICLE_NAME);
/* 80D61608-80D6160C 000008 0004+00 1/1 0/0 0/0 .rodata @3677 */
SECTION_RODATA static f32 const lit_3677 = 1.0f;
COMPILER_STRIP_GATE(0x80D61608, &lit_3677);
/* 80D61410-80D61500 0001B0 00F0+00 1/1 0/0 0/0 .text createSmkEmt__13daTagSmkEmt_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagSmkEmt_c::createSmkEmt() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/createSmkEmt__13daTagSmkEmt_cFv.s"
void daTagSmkEmt_c::createSmkEmt() {
cXyz pos(current.pos);
csXyz angle(0,0,0);
cXyz pos2(1.0f,1.0f,1.0f);
for (int i = 0; i < 3; i++) {
mParticles[i] = dComIfGp_particle_set(PARTICLE_NAME[i],&pos,&angle,&pos2);
}
}
#pragma pop
/* 80D61500-80D61544 0002A0 0044+00 1/1 0/0 0/0 .text deleteSmkEmt__13daTagSmkEmt_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagSmkEmt_c::deleteSmkEmt() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/deleteSmkEmt__13daTagSmkEmt_cFv.s"
void daTagSmkEmt_c::deleteSmkEmt() {
for (int i = 0; i < 3; i++) {
if (mParticles[i]) {
mParticles[i]->becomeInvalidEmitter();
mParticles[i] = 0;
}
}
}
#pragma pop
/* 80D61544-80D61598 0002E4 0054+00 1/0 0/0 0/0 .text daTagSmkEmt_create__FP13daTagSmkEmt_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagSmkEmt_create(daTagSmkEmt_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/daTagSmkEmt_create__FP13daTagSmkEmt_c.s"
static int daTagSmkEmt_create(daTagSmkEmt_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) daTagSmkEmt_c();
fopAcM_OnCondition(i_this, 8);
}
return i_this->create();
}
#pragma pop
/* 80D61598-80D615B8 000338 0020+00 1/0 0/0 0/0 .text daTagSmkEmt_Delete__FP13daTagSmkEmt_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagSmkEmt_Delete(daTagSmkEmt_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/daTagSmkEmt_Delete__FP13daTagSmkEmt_c.s"
static int daTagSmkEmt_Delete(daTagSmkEmt_c* i_this) {
return i_this->Delete();
}
#pragma pop
/* 80D615B8-80D615D8 000358 0020+00 1/0 0/0 0/0 .text daTagSmkEmt_execute__FP13daTagSmkEmt_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagSmkEmt_execute(daTagSmkEmt_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/daTagSmkEmt_execute__FP13daTagSmkEmt_c.s"
static int daTagSmkEmt_execute(daTagSmkEmt_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80D615D8-80D615F8 000378 0020+00 1/0 0/0 0/0 .text daTagSmkEmt_draw__FP13daTagSmkEmt_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagSmkEmt_draw(daTagSmkEmt_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_smk_emt/d_a_tag_smk_emt/daTagSmkEmt_draw__FP13daTagSmkEmt_c.s"
static int daTagSmkEmt_draw(daTagSmkEmt_c* i_this) {
return i_this->draw();
}
#pragma pop
/* ############################################################################################## */
/* 80D6160C-80D6162C -00001 0020+00 1/0 0/0 0/0 .data daTagSmkEmt_METHODS */
static actor_method_class daTagSmkEmt_METHODS = {
(process_method_func)daTagSmkEmt_create,
(process_method_func)daTagSmkEmt_Delete,
(process_method_func)daTagSmkEmt_execute,
(process_method_func)0,
(process_method_func)daTagSmkEmt_draw
};
/* 80D6162C-80D6165C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_SmkEmt */
extern actor_process_profile_definition g_profile_Tag_SmkEmt = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_Tag_SmkEmt, // mProcName
0, // padding
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daTagSmkEmt_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x02E7, // mPriority
0, // padding
0, // padding
&daTagSmkEmt_METHODS, // mSubMtd
0x00040000, // mStatus
0, // mActorType
0x0E, // mCullType
0, // padding
0 // padding
};