clean up dolphin files / work on some rels (#212)

* d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop

* dolphin OS work / cleanup

* dolphin GX work / cleanup

* finish changing dolphin files to C

* more files into C

* match rest of MSL_C math functions

* more dolphin files converted to C

* remove asm

* d_bg_w work

* remove asm

* d_a_alink work / kytag14
This commit is contained in:
TakaRikka
2022-11-11 11:09:48 -07:00
committed by GitHub
parent f03b959831
commit 1114b13da8
665 changed files with 14862 additions and 30501 deletions
+155 -158
View File
@@ -6,221 +6,218 @@
#include "rel/d/a/d_a_alldie/d_a_alldie.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daAlldie_c {
/* 804D5818 */ void getEventNo();
/* 804D5824 */ void getSwbit();
/* 804D5830 */ bool actionWait();
/* 804D5838 */ void actionCheck();
/* 804D5888 */ void actionTimer();
/* 804D5938 */ void actionOrder();
/* 804D59A0 */ void actionEvent();
/* 804D5A44 */ void actionNext();
/* 804D5B10 */ void execute();
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dEvt_control_c {
/* 80042468 */ void reset();
/* 80043500 */ void searchMapEventData(u8, s32);
};
struct dEvent_manager_c {
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
/* 80047A78 */ void endCheck(s16);
};
//
// Forward References:
//
extern "C" void getEventNo__10daAlldie_cFv();
extern "C" void getSwbit__10daAlldie_cFv();
extern "C" bool actionWait__10daAlldie_cFv();
extern "C" void actionCheck__10daAlldie_cFv();
extern "C" void actionTimer__10daAlldie_cFv();
extern "C" void actionOrder__10daAlldie_cFv();
extern "C" void actionEvent__10daAlldie_cFv();
extern "C" void actionNext__10daAlldie_cFv();
extern "C" void execute__10daAlldie_cFv();
extern "C" static bool daAlldie_Draw__FP10daAlldie_c();
extern "C" static void daAlldie_Execute__FP10daAlldie_c();
extern "C" static bool daAlldie_IsDelete__FP10daAlldie_c();
extern "C" static void daAlldie_Delete__FP10daAlldie_c();
extern "C" static void daAlldie_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_ALLDIE[12];
#include "d/com/d_com_inf_game.h"
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
extern "C" void fopAcM_myRoomSearchEnemy__FSc();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void searchMapEventData__14dEvt_control_cFUcl();
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc();
extern "C" void endCheck__16dEvent_manager_cFs();
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];
//
// Declarations:
//
/* 804D5818-804D5824 000078 000C+00 2/2 0/0 0/0 .text getEventNo__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::getEventNo() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/getEventNo__10daAlldie_cFv.s"
u8 daAlldie_c::getEventNo() {
return fopAcM_GetParam(this) >> 0x18;
}
#pragma pop
/* 804D5824-804D5830 000084 000C+00 2/2 0/0 0/0 .text getSwbit__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::getSwbit() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/getSwbit__10daAlldie_cFv.s"
u8 daAlldie_c::getSwbit() {
return fopAcM_GetParam(this) >> 0x8;
}
#pragma pop
/* 804D5830-804D5838 000090 0008+00 1/1 0/0 0/0 .text actionWait__10daAlldie_cFv */
bool daAlldie_c::actionWait() {
return true;
int daAlldie_c::actionWait() {
return 1;
}
/* 804D5838-804D5888 000098 0050+00 1/1 0/0 0/0 .text actionCheck__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::actionCheck() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionCheck__10daAlldie_cFv.s"
int daAlldie_c::actionCheck() {
s8 roomNo = fopAcM_GetRoomNo(this);
if (fopAcM_myRoomSearchEnemy(roomNo) == NULL) {
mAction = ACT_TIMER;
mTimer = 65;
}
return 1;
}
#pragma pop
/* 804D5888-804D5938 0000E8 00B0+00 1/1 0/0 0/0 .text actionTimer__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::actionTimer() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionTimer__10daAlldie_cFv.s"
int daAlldie_c::actionTimer() {
s8 roomNo = fopAcM_GetRoomNo(this);
if (fopAcM_myRoomSearchEnemy(roomNo) != NULL) {
mAction = ACT_CHECK;
} else {
if (mTimer > 0) {
mTimer--;
} else {
if (mEventIdx == -1) {
mAction = ACT_WAIT;
} else {
mAction = ACT_ORDER;
}
dComIfGs_onSwitch(getSwbit(), fopAcM_GetRoomNo(this));
}
}
return 1;
}
#pragma pop
/* 804D5938-804D59A0 000198 0068+00 1/1 0/0 0/0 .text actionOrder__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::actionOrder() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionOrder__10daAlldie_cFv.s"
int daAlldie_c::actionOrder() {
if (mEvtInfo.checkCommandDemoAccrpt()) {
mAction = ACT_EVENT;
} else {
fopAcM_orderOtherEventId(this, mEventIdx, getEventNo(), -1, 0, 1);
}
return 1;
}
#pragma pop
/* 804D59A0-804D5A44 000200 00A4+00 2/2 0/0 0/0 .text actionEvent__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::actionEvent() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionEvent__10daAlldie_cFv.s"
int daAlldie_c::actionEvent() {
if (dComIfGp_evmng_endCheck(mEventIdx)) {
i_dComIfGp_getEvent().reset();
if (mNextEventIdx != -1) {
mAction = ACT_NEXT;
fopAcM_orderOtherEventId(this, mNextEventIdx, mMapToolID, -1, 0, 1);
} else {
mAction = ACT_WAIT;
mMapToolID = -1;
}
}
return 1;
}
#pragma pop
/* 804D5A44-804D5B10 0002A4 00CC+00 1/1 0/0 0/0 .text actionNext__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::actionNext() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/actionNext__10daAlldie_cFv.s"
int daAlldie_c::actionNext() {
if (mEvtInfo.checkCommandDemoAccrpt()) {
mEventIdx = mNextEventIdx;
s8 roomNo = fopAcM_GetRoomNo(this);
mNextEventIdx = -1;
dStage_MapEvent_dt_c* map_evt = dEvt_control_c::searchMapEventData(mMapToolID, roomNo);
if (map_evt != NULL) {
mMapToolID = map_evt->field_0x5;
mNextEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, mMapToolID);
} else {
mMapToolID = -1;
}
mAction = ACT_EVENT;
actionEvent();
} else {
fopAcM_orderOtherEventId(this, mNextEventIdx, mMapToolID, -1, 0, 1);
}
return 1;
}
#pragma pop
/* 804D5B10-804D5B8C 000370 007C+00 1/1 0/0 0/0 .text execute__10daAlldie_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlldie_c::execute() {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/execute__10daAlldie_cFv.s"
int daAlldie_c::execute() {
switch (mAction) {
case ACT_CHECK:
actionCheck();
break;
case ACT_TIMER:
actionTimer();
break;
case ACT_ORDER:
actionOrder();
break;
case ACT_EVENT:
actionEvent();
break;
case ACT_NEXT:
actionNext();
break;
default:
actionWait();
break;
}
return 1;
}
#pragma pop
/* 804D5B8C-804D5B94 0003EC 0008+00 1/0 0/0 0/0 .text daAlldie_Draw__FP10daAlldie_c */
static bool daAlldie_Draw(daAlldie_c* param_0) {
return true;
static int daAlldie_Draw(daAlldie_c*) {
return 1;
}
/* 804D5B94-804D5BB8 0003F4 0024+00 1/0 0/0 0/0 .text daAlldie_Execute__FP10daAlldie_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daAlldie_Execute(daAlldie_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Execute__FP10daAlldie_c.s"
static int daAlldie_Execute(daAlldie_c* i_this) {
i_this->execute();
return 1;
}
#pragma pop
/* 804D5BB8-804D5BC0 000418 0008+00 1/0 0/0 0/0 .text daAlldie_IsDelete__FP10daAlldie_c
*/
static bool daAlldie_IsDelete(daAlldie_c* param_0) {
return true;
static int daAlldie_IsDelete(daAlldie_c*) {
return 1;
}
/* 804D5BC0-804D5BF0 000420 0030+00 1/0 0/0 0/0 .text daAlldie_Delete__FP10daAlldie_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daAlldie_Delete(daAlldie_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Delete__FP10daAlldie_c.s"
static int daAlldie_Delete(daAlldie_c* i_this) {
i_this->~daAlldie_c();
return 1;
}
#pragma pop
/* 804D5BF0-804D5D1C 000450 012C+00 1/0 0/0 0/0 .text daAlldie_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daAlldie_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_alldie/d_a_alldie/daAlldie_Create__FP10fopAc_ac_c.s"
int daAlldie_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daAlldie_c();
fopAcM_OnCondition(this, 8);
}
s8 roomNo = fopAcM_GetRoomNo(this);
if (!dComIfGs_isSwitch(getSwbit(), roomNo)) {
mAction = ACT_CHECK;
} else {
mAction = ACT_WAIT;
}
mCollisionRot.z = 0;
mCollisionRot.x = 0;
current.angle.z = 0;
current.angle.x = 0;
mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, getEventNo());
mMapToolID = -1;
mNextEventIdx = -1;
dStage_MapEvent_dt_c* map_evt = dEvt_control_c::searchMapEventData(getEventNo(), roomNo);
if (map_evt != NULL) {
mMapToolID = map_evt->field_0x5;
mNextEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, mMapToolID);
}
mEvtInfo.setEventId(mEventIdx);
mEvtInfo.setMapToolId(getEventNo());
return cPhs_COMPLEATE_e;
}
static int daAlldie_Create(fopAc_ac_c* i_this) {
return static_cast<daAlldie_c*>(i_this)->create();
}
#pragma pop
/* ############################################################################################## */
/* 804D5D24-804D5D44 -00001 0020+00 1/0 0/0 0/0 .data l_daAlldie_Method */
SECTION_DATA static void* l_daAlldie_Method[8] = {
(void*)daAlldie_Create__FP10fopAc_ac_c,
(void*)daAlldie_Delete__FP10daAlldie_c,
(void*)daAlldie_Execute__FP10daAlldie_c,
(void*)daAlldie_IsDelete__FP10daAlldie_c,
(void*)daAlldie_Draw__FP10daAlldie_c,
(void*)daAlldie_Create,
(void*)daAlldie_Delete,
(void*)daAlldie_Execute,
(void*)daAlldie_IsDelete,
(void*)daAlldie_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
+65 -44
View File
@@ -6,47 +6,25 @@
#include "rel/d/a/d_a_swc00/d_a_swc00.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
//
// Types:
//
struct mDoMtx_stack_c {
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct daSwc00_c {
/* 805A15FC */ void execute();
class daSwc00_c : public fopAc_ac_c {
public:
/* 805A15FC */ int execute();
/* 805A18E8 */ void event_proc_call();
/* 805A19A4 */ void actionWait();
/* 805A1A28 */ void actionOrderEvent();
/* 805A1A94 */ void actionEvent();
/* 805A1AF0 */ void actionDead();
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 800352B0 */ void offSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct dEvent_manager_c {
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
/* 80047A78 */ void endCheck(s16);
};
struct Vec {};
struct cXyz {
/* 80266B34 */ void operator-(Vec const&) const;
/* 0x568 */ cXyz field_0x568;
/* 0x574 */ cXyz field_0x574;
/* 0x580 */ u16 mEventID;
/* 0x582 */ u8 mAction;
};
//
@@ -71,7 +49,6 @@ extern "C" extern void* g_profile_SWC00[12];
// External References:
//
extern "C" void OSReport_Error();
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
@@ -84,12 +61,9 @@ extern "C" void reset__14dEvt_control_cFv();
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc();
extern "C" void endCheck__16dEvent_manager_cFs();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void PSMTXMultVec();
extern "C" void __ptmf_scall();
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];
extern "C" extern u8 data_805A1F28[4];
//
@@ -101,25 +75,71 @@ extern "C" extern u8 data_805A1F28[4];
SECTION_RODATA static f32 const lit_3708 = -100.0f;
COMPILER_STRIP_GATE(0x805A1D94, &lit_3708);
inline u8 daSwc00_getCondition(daSwc00_c* i_this) {
return i_this->mCollisionRot.x;
}
inline int daSwc00_getShape(daSwc00_c* i_this) {
return (fopAcM_GetParam(i_this) >> 0x12) & 3;
}
/* 805A13F8-805A15DC 000078 01E4+00 1/1 0/0 0/0 .text hitCheck__FP9daSwc00_c */
// r30 / r31 swap
#ifdef NONMATCHING
static bool hitCheck(daSwc00_c* i_swc) {
fopAc_ac_c* playerAc = daPy_getPlayerActorClass();
fopAc_ac_c* player;
if (daSwc00_getCondition(i_swc) == 2) {
player = (fopAc_ac_c*)i_dComIfGp_getHorseActor();
} else {
player = playerAc;
}
if (player == NULL) {
return false;
}
int shape = daSwc00_getShape(i_swc);
if (shape == 3) {
f32 xz_dist = fopAcM_searchActorDistanceXZ2(i_swc, player);
f32 y_dist = fopAcM_searchActorDistanceY(i_swc, player);
if (xz_dist < i_swc->mScale.x && -100.0f < y_dist && y_dist < i_swc->mScale.y) {
return true;
}
} else if (shape == 0) {
cXyz tmp1 = i_swc->field_0x568 - i_swc->current.pos;
cXyz tmp2 = i_swc->field_0x574 - i_swc->current.pos;
cXyz player_dist = player->current.pos - i_swc->current.pos;
mDoMtx_stack_c::YrotS(-i_swc->current.angle.y);
mDoMtx_stack_c::multVec(&player_dist, &player_dist);
if ((tmp1.x <= player_dist.x && player_dist.x <= tmp2.x) &&
(tmp1.y <= player_dist.y && player_dist.y <= tmp2.y) &&
(tmp1.z <= player_dist.z && player_dist.z <= tmp2.z)) {
return true;
}
}
return false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void hitCheck(daSwc00_c* param_0) {
static asm bool hitCheck(daSwc00_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_swc00/d_a_swc00/hitCheck__FP9daSwc00_c.s"
}
#pragma pop
#endif
/* 805A15DC-805A15FC 00025C 0020+00 1/0 0/0 0/0 .text daSwc00_Execute__FP9daSwc00_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daSwc00_Execute(daSwc00_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_swc00/d_a_swc00/daSwc00_Execute__FP9daSwc00_c.s"
static int daSwc00_Execute(daSwc00_c* i_this) {
return i_this->execute();
}
#pragma pop
/* ############################################################################################## */
/* 805A1DAC-805A1DAC 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -127,6 +147,7 @@ static asm void daSwc00_Execute(daSwc00_c* param_0) {
#pragma force_active on
SECTION_DEAD static char const* const stringBase_805A1DAC =
"領域スイッチ:引数0が不正値<%d>です\n";
// "Area Switch: arg 0 is an invalid value <%d>\n";
#pragma pop
/* 805A1DD4-805A1DE0 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
@@ -171,7 +192,7 @@ SECTION_DATA static void* lit_3812[16] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSwc00_c::execute() {
asm int daSwc00_c::execute() {
nofralloc
#include "asm/rel/d/a/d_a_swc00/d_a_swc00/execute__9daSwc00_cFv.s"
}
+37 -97
View File
@@ -6,145 +6,85 @@
#include "rel/d/a/d_a_tboxSw/d_a_tboxSw.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct daTboxSw_c {
/* 80D66858 */ bool Create();
/* 80D66860 */ void create();
/* 80D668C8 */ void execute();
/* 80D66938 */ bool draw();
/* 80D66940 */ bool _delete();
};
struct dSv_memBit_c {
/* 800347E8 */ void isTbox(int) const;
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
};
//
// Forward References:
//
extern "C" bool Create__10daTboxSw_cFv();
extern "C" void create__10daTboxSw_cFv();
extern "C" void execute__10daTboxSw_cFv();
extern "C" bool draw__10daTboxSw_cFv();
extern "C" bool _delete__10daTboxSw_cFv();
extern "C" static void daTboxSw_Draw__FP10daTboxSw_c();
extern "C" static void daTboxSw_Execute__FP10daTboxSw_c();
extern "C" static void daTboxSw_Delete__FP10daTboxSw_c();
extern "C" static void daTboxSw_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_TBOX_SW[12];
#include "d/com/d_com_inf_game.h"
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void isTbox__12dSv_memBit_cCFi();
extern "C" void onSwitch__10dSv_info_cFii();
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:
//
/* 80D66858-80D66860 000078 0008+00 1/1 0/0 0/0 .text Create__10daTboxSw_cFv */
bool daTboxSw_c::Create() {
return true;
int daTboxSw_c::Create() {
return 1;
}
/* 80D66860-80D668C8 000080 0068+00 1/1 0/0 0/0 .text create__10daTboxSw_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTboxSw_c::create() {
nofralloc
#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/create__10daTboxSw_cFv.s"
int daTboxSw_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTboxSw_c();
fopAcM_OnCondition(this, 8);
}
if (!Create()) {
return cPhs_ERROR_e;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80D668C8-80D66938 0000E8 0070+00 1/1 0/0 0/0 .text execute__10daTboxSw_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTboxSw_c::execute() {
nofralloc
#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/execute__10daTboxSw_cFv.s"
int daTboxSw_c::execute() {
if (dComIfGs_isTbox(daTboxSw_prm::getTboxNo(this))) {
dComIfGs_onSwitch(daTboxSw_prm::getSwNo(this), fopAcM_GetHomeRoomNo(this));
fopAcM_delete(this);
}
return 1;
}
#pragma pop
/* 80D66938-80D66940 000158 0008+00 1/1 0/0 0/0 .text draw__10daTboxSw_cFv */
bool daTboxSw_c::draw() {
return true;
int daTboxSw_c::draw() {
return 1;
}
/* 80D66940-80D66948 000160 0008+00 1/1 0/0 0/0 .text _delete__10daTboxSw_cFv */
bool daTboxSw_c::_delete() {
return true;
int daTboxSw_c::_delete() {
return 1;
}
/* 80D66948-80D66968 000168 0020+00 1/0 0/0 0/0 .text daTboxSw_Draw__FP10daTboxSw_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTboxSw_Draw(daTboxSw_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Draw__FP10daTboxSw_c.s"
static int daTboxSw_Draw(daTboxSw_c* i_this) {
return i_this->draw();
}
#pragma pop
/* 80D66968-80D66988 000188 0020+00 1/0 0/0 0/0 .text daTboxSw_Execute__FP10daTboxSw_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTboxSw_Execute(daTboxSw_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Execute__FP10daTboxSw_c.s"
static int daTboxSw_Execute(daTboxSw_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80D66988-80D669A8 0001A8 0020+00 1/0 0/0 0/0 .text daTboxSw_Delete__FP10daTboxSw_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTboxSw_Delete(daTboxSw_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Delete__FP10daTboxSw_c.s"
static int daTboxSw_Delete(daTboxSw_c* i_this) {
return i_this->_delete();
}
#pragma pop
/* 80D669A8-80D669C8 0001C8 0020+00 1/0 0/0 0/0 .text daTboxSw_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTboxSw_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_tboxSw/d_a_tboxSw/daTboxSw_Create__FP10fopAc_ac_c.s"
static int daTboxSw_Create(fopAc_ac_c* i_this) {
return static_cast<daTboxSw_c*>(i_this)->create();
}
#pragma pop
/* ############################################################################################## */
/* 80D669D0-80D669F0 -00001 0020+00 1/0 0/0 0/0 .data l_daTboxSw_Method */
SECTION_DATA static void* l_daTboxSw_Method[8] = {
(void*)daTboxSw_Create__FP10fopAc_ac_c,
(void*)daTboxSw_Delete__FP10daTboxSw_c,
(void*)daTboxSw_Execute__FP10daTboxSw_c,
(void*)daTboxSw_Create,
(void*)daTboxSw_Delete,
(void*)daTboxSw_Execute,
(void*)NULL,
(void*)daTboxSw_Draw__FP10daTboxSw_c,
(void*)daTboxSw_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
+4 -4
View File
@@ -148,7 +148,7 @@ extern "C" void checkCommandDemoAccrpt__11dEvt_info_cFv();
extern "C" void __ct__4cXyzFv();
extern "C" static void fopAcM_SearchByName__Fs();
extern "C" static void fopAcM_SearchByID__FUi(unsigned int);
extern "C" static void dComIfGp_getHorseActor__Fv();
extern "C" static daHorse_c* dComIfGp_getHorseActor__Fv();
extern "C" static void dComIfGp_getPlayer__Fi(int);
extern "C" static void dComIfGp_getCamera__Fi(int);
extern "C" static void dComIfGp_getPlayerCameraID__Fi();
@@ -4752,7 +4752,7 @@ extern "C" static asm void fopAcM_SearchByID__FUi(unsigned int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dComIfGp_getHorseActor() {
static asm daHorse_c* dComIfGp_getHorseActor__Fv() {
nofralloc
#include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/dComIfGp_getHorseActor__Fv.s"
}
@@ -4782,7 +4782,7 @@ static asm void dComIfGp_getCamera__Fi(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dComIfGp_getPlayerCameraID(int param_0) {
static asm s8 dComIfGp_getPlayerCameraID(int param_0) {
nofralloc
#include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/dComIfGp_getPlayerCameraID__Fi.s"
}
@@ -4975,7 +4975,7 @@ asm void dEvt_control_c::startCheckSkipEdge(void* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dComIfGp_getEvent() {
static asm dEvt_control_c& dComIfGp_getEvent() {
nofralloc
#include "asm/rel/d/a/e/d_a_e_wb/d_a_e_wb/dComIfGp_getEvent__Fv.s"
}
+86 -77
View File
@@ -1,64 +1,18 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_kytag14
//
/**
* d_a_kytag14.cpp
* Savmem
* Sets savefile spawn location
*/
#include "rel/d/a/kytag/d_a_kytag14/d_a_kytag14.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct kytag14_class {};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct dSv_player_return_place_c {
/* 80032D1C */ void set(char const*, s8, u8);
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
//
// Forward References:
//
extern "C" static bool daKytag14_Draw__FP13kytag14_class();
extern "C" static void daKytag14_Execute__FP13kytag14_class();
extern "C" static bool daKytag14_IsDelete__FP13kytag14_class();
extern "C" static bool daKytag14_Delete__FP13kytag14_class();
extern "C" static void daKytag14_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_KYTAG14[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void set__25dSv_player_return_place_cFPCcScUc();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void _savegpr_27();
extern "C" void _restgpr_27();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
@@ -66,49 +20,104 @@ extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
/* 80529998-805299A0 000078 0008+00 1/0 0/0 0/0 .text daKytag14_Draw__FP13kytag14_class
*/
static bool daKytag14_Draw(kytag14_class* param_0) {
return true;
static int daKytag14_Draw(kytag14_class*) {
return 1;
}
/* 805299A0-80529B34 000080 0194+00 1/0 0/0 0/0 .text daKytag14_Execute__FP13kytag14_class */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daKytag14_Execute(kytag14_class* param_0) {
nofralloc
#include "asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Execute__FP13kytag14_class.s"
static int daKytag14_Execute(kytag14_class* i_this) {
BOOL event1_set = true;
BOOL event2_unset = true;
BOOL switch1_set = true;
BOOL switch2_unset = true;
if (dComIfGs_isTmpBit(0x1301)) {
return 1;
}
if (i_this->mEventID1 != 0xFFFF) {
if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) {
event1_set = true;
} else {
event1_set = false;
}
}
if (i_this->mEventID2 != 0xFFFF) {
if (!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) {
event2_unset = true;
} else {
event2_unset = false;
}
}
if (i_this->mSwitchNo1 != 0xFF) {
s32 stayNo = dComIfGp_roomControl_getStayNo();
if (dComIfGs_isSwitch(i_this->mSwitchNo1, stayNo)) {
switch1_set = true;
} else {
switch1_set = false;
}
}
if (i_this->mSwitchNo2 != 0xFF) {
s32 stayNo = dComIfGp_roomControl_getStayNo();
if (!dComIfGs_isSwitch(i_this->mSwitchNo2, stayNo)) {
switch2_unset = true;
} else {
switch2_unset = false;
}
}
if (event1_set == true && event2_unset == true && switch1_set == true && switch2_unset == true) {
g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().set(
dComIfGp_getStartStageName(), i_this->mSaveRoomNo, i_this->mSavePoint);
}
return 1;
}
#pragma pop
/* 80529B34-80529B3C 000214 0008+00 1/0 0/0 0/0 .text daKytag14_IsDelete__FP13kytag14_class */
static bool daKytag14_IsDelete(kytag14_class* param_0) {
return true;
static int daKytag14_IsDelete(kytag14_class*) {
return 1;
}
/* 80529B3C-80529B44 00021C 0008+00 1/0 0/0 0/0 .text daKytag14_Delete__FP13kytag14_class
*/
static bool daKytag14_Delete(kytag14_class* param_0) {
return true;
static int daKytag14_Delete(kytag14_class*) {
return 1;
}
/* 80529B44-80529BE0 000224 009C+00 1/0 0/0 0/0 .text daKytag14_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daKytag14_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/kytag/d_a_kytag14/d_a_kytag14/daKytag14_Create__FP10fopAc_ac_c.s"
static int daKytag14_Create(fopAc_ac_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) kytag14_class();
fopAcM_OnCondition(i_this, 8);
}
kytag14_class* kytag = static_cast<kytag14_class*>(i_this);
kytag->mSavePoint = fopAcM_GetParam(kytag);
kytag->mSaveRoomNo = (fopAcM_GetParam(kytag) >> 8) & 0xFF;
kytag->mEventID1 = kytag->current.angle.x;
kytag->mEventID2 = kytag->current.angle.y;
kytag->mSwitchNo1 = kytag->current.angle.z;
kytag->mSwitchNo2 = (kytag->current.angle.z >> 8) & 0xFF;
if (kytag->orig.mRoomNo != -1) {
kytag->mSaveRoomNo = kytag->orig.mRoomNo;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* ############################################################################################## */
/* 80529BE8-80529C08 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag14_Method */
SECTION_DATA static void* l_daKytag14_Method[8] = {
(void*)daKytag14_Create__FP10fopAc_ac_c,
(void*)daKytag14_Delete__FP13kytag14_class,
(void*)daKytag14_Execute__FP13kytag14_class,
(void*)daKytag14_IsDelete__FP13kytag14_class,
(void*)daKytag14_Draw__FP13kytag14_class,
(void*)daKytag14_Create,
(void*)daKytag14_Delete,
(void*)daKytag14_Execute,
(void*)daKytag14_IsDelete,
(void*)daKytag14_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
+36 -87
View File
@@ -4,132 +4,81 @@
//
#include "rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagGstart_c {
/* 805A3478 */ void create();
/* 805A3514 */ ~daTagGstart_c();
/* 805A3590 */ void execute();
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
//
// Forward References:
//
extern "C" void create__13daTagGstart_cFv();
extern "C" static void daTagGstart_Create__FP10fopAc_ac_c();
extern "C" void __dt__13daTagGstart_cFv();
extern "C" static void daTagGstart_Delete__FP13daTagGstart_c();
extern "C" void execute__13daTagGstart_cFv();
extern "C" static void daTagGstart_Execute__FP13daTagGstart_c();
extern "C" static bool daTagGstart_Draw__FP13daTagGstart_c();
extern "C" extern void* g_profile_Tag_Gstart[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void isSwitch__10dSv_info_cCFii();
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 u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
//
/* 805A3478-805A34F4 000078 007C+00 1/1 0/0 0/0 .text create__13daTagGstart_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagGstart_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/create__13daTagGstart_cFv.s"
int daTagGstart_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagGstart_c();
fopAcM_OnCondition(this, 8);
}
mSwNo = fopAcM_GetParam(this);
mSwNo2 = fopAcM_GetParam(this) >> 8;
field_0x56a = fopAcM_GetParam(this) >> 0x10;
mType = (fopAcM_GetParam(this) >> 0x18) & 0xF;
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 805A34F4-805A3514 0000F4 0020+00 1/0 0/0 0/0 .text daTagGstart_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagGstart_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Create__FP10fopAc_ac_c.s"
static int daTagGstart_Create(fopAc_ac_c* i_this) {
return static_cast<daTagGstart_c*>(i_this)->create();
}
#pragma pop
/* 805A3514-805A3568 000114 0054+00 1/1 0/0 0/0 .text __dt__13daTagGstart_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagGstart_c::~daTagGstart_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/__dt__13daTagGstart_cFv.s"
}
#pragma pop
daTagGstart_c::~daTagGstart_c() {}
/* 805A3568-805A3590 000168 0028+00 1/0 0/0 0/0 .text daTagGstart_Delete__FP13daTagGstart_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagGstart_Delete(daTagGstart_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Delete__FP13daTagGstart_c.s"
static int daTagGstart_Delete(daTagGstart_c* i_this) {
i_this->~daTagGstart_c();
return 1;
}
#pragma pop
/* 805A3590-805A3658 000190 00C8+00 1/1 0/0 0/0 .text execute__13daTagGstart_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagGstart_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/execute__13daTagGstart_cFv.s"
int daTagGstart_c::execute() {
if ((mSwNo == 0xFF || dComIfGs_isSwitch(mSwNo, fopAcM_GetHomeRoomNo(this))) &&
(mSwNo2 == 0xFF || !dComIfGs_isSwitch(mSwNo2, fopAcM_GetHomeRoomNo(this)))) {
if (mType != 0 || dComIfGp_getLinkPlayer()->i_checkWolf()) {
dComIfGp_getLinkPlayer()->onSceneChangeDead(field_0x56a, fopAcM_GetRoomNo(this));
}
}
return 1;
}
#pragma pop
/* 805A3658-805A3678 000258 0020+00 1/0 0/0 0/0 .text daTagGstart_Execute__FP13daTagGstart_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagGstart_Execute(daTagGstart_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_gstart/d_a_tag_gstart/daTagGstart_Execute__FP13daTagGstart_c.s"
static int daTagGstart_Execute(daTagGstart_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 805A3678-805A3680 000278 0008+00 1/0 0/0 0/0 .text daTagGstart_Draw__FP13daTagGstart_c
*/
static bool daTagGstart_Draw(daTagGstart_c* param_0) {
return true;
static int daTagGstart_Draw(daTagGstart_c*) {
return 1;
}
/* ############################################################################################## */
/* 805A3688-805A36A8 -00001 0020+00 1/0 0/0 0/0 .data l_daTagGstart_Method */
SECTION_DATA static void* l_daTagGstart_Method[8] = {
(void*)daTagGstart_Create__FP10fopAc_ac_c,
(void*)daTagGstart_Delete__FP13daTagGstart_c,
(void*)daTagGstart_Execute__FP13daTagGstart_c,
(void*)daTagGstart_Create,
(void*)daTagGstart_Delete,
(void*)daTagGstart_Execute,
(void*)NULL,
(void*)daTagGstart_Draw__FP13daTagGstart_c,
(void*)daTagGstart_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
+150 -159
View File
@@ -4,211 +4,202 @@
//
#include "rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagHstop_c {
/* 805A43EC */ void create();
/* 805A45F8 */ ~daTagHstop_c();
/* 805A46B8 */ void setActive();
/* 805A475C */ void execute();
static u8 m_top[4 + 4 /* padding */];
static u8 m_msgFlow[76];
};
struct daPy_py_c {
/* 8015F660 */ void checkRoomRestartStart();
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 800352B0 */ void offSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
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 dMeter2Info_c {
/* 8021C11C */ void setFloatingFlow(u16, s16, bool);
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
//
// Forward References:
//
extern "C" void create__12daTagHstop_cFv();
extern "C" static void daTagHstop_Create__FP10fopAc_ac_c();
extern "C" void __dt__12daTagHstop_cFv();
extern "C" static void daTagHstop_Delete__FP12daTagHstop_c();
extern "C" void setActive__12daTagHstop_cFv();
extern "C" void execute__12daTagHstop_cFv();
extern "C" static void daTagHstop_Execute__FP12daTagHstop_c();
extern "C" static bool daTagHstop_Draw__FP12daTagHstop_c();
extern "C" void __sinit_d_a_tag_hstop_cpp();
extern "C" extern void* g_profile_Tag_Hstop[12];
extern "C" u8 m_msgFlow__12daTagHstop_c[76];
#include "rel/d/a/d_a_horse/d_a_horse.h"
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void offSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void checkRoomRestartStart__9daPy_py_cFv();
extern "C" void setFloatingFlow__13dMeter2Info_cFUssb();
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 __dl__FPv();
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 g_meter2_info[248];
extern "C" u8 m_top__12daTagHstop_c[4 + 4 /* padding */];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 805A4B20-805A4B24 000000 0004+00 1/1 0/0 0/0 .rodata @3782 */
SECTION_RODATA static f32 const lit_3782 = 100.0f;
COMPILER_STRIP_GATE(0x805A4B20, &lit_3782);
/* 805A43EC-805A45D8 0000EC 01EC+00 1/1 0/0 0/0 .text create__12daTagHstop_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagHstop_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/create__12daTagHstop_cFv.s"
int daTagHstop_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagHstop_c();
fopAcM_OnCondition(this, 8);
}
mScale.x *= 100.0f;
mScale.y *= 100.0f;
mScale.z *= 100.0f;
if (m_top != NULL) {
daTagHstop_c* last = m_top;
while (last->mNext != NULL) {
last = last->mNext;
}
last->mNext = this;
mPrev = last;
} else {
m_top = this;
}
mPrm0 = fopAcM_GetParam(this);
mPrm1 = (fopAcM_GetParam(this) >> 8) & 0xF;
if (mPrm1 == 15) {
mPrm1 = 0;
}
setActive();
if (mPrm1 == 2) {
if (daPy_py_c::checkRoomRestartStart()) {
if (!dComIfGs_isSwitch(0x8A, fopAcM_GetHomeRoomNo(this))) {
dComIfGs_onSwitch(0x8A, fopAcM_GetHomeRoomNo(this));
} else if (!dComIfGs_isSwitch(0x8B, fopAcM_GetHomeRoomNo(this))) {
dComIfGs_onSwitch(0x8B, fopAcM_GetHomeRoomNo(this));
} else if (!dComIfGs_isSwitch(0x8C, fopAcM_GetHomeRoomNo(this))) {
dComIfGs_onSwitch(0x8C, fopAcM_GetHomeRoomNo(this));
}
}
if (dComIfGs_isSwitch(0x8C, fopAcM_GetHomeRoomNo(this))) {
field_0x574 = 0;
} else {
field_0x574 = 1200;
}
} else {
field_0x574 = 0;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 805A45D8-805A45F8 0002D8 0020+00 1/0 0/0 0/0 .text daTagHstop_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagHstop_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Create__FP10fopAc_ac_c.s"
static int daTagHstop_Create(fopAc_ac_c* i_this) {
return static_cast<daTagHstop_c*>(i_this)->create();
}
#pragma pop
/* 805A45F8-805A4690 0002F8 0098+00 1/1 0/0 0/0 .text __dt__12daTagHstop_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagHstop_c::~daTagHstop_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__dt__12daTagHstop_cFv.s"
daTagHstop_c::~daTagHstop_c() {
if (mPrev != NULL) {
mPrev->mNext = mNext;
}
if (mNext != NULL) {
mNext->mPrev = mPrev;
}
if (m_top == this) {
m_top = mNext;
}
}
#pragma pop
/* 805A4690-805A46B8 000390 0028+00 1/0 0/0 0/0 .text daTagHstop_Delete__FP12daTagHstop_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagHstop_Delete(daTagHstop_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Delete__FP12daTagHstop_c.s"
static int daTagHstop_Delete(daTagHstop_c* i_this) {
static_cast<daTagHstop_c*>(i_this)->~daTagHstop_c();
return 1;
}
#pragma pop
/* 805A46B8-805A475C 0003B8 00A4+00 2/2 0/0 0/0 .text setActive__12daTagHstop_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagHstop_c::setActive() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/setActive__12daTagHstop_cFv.s"
void daTagHstop_c::setActive() {
if (mPrm0 == 0xFF || mPrm1 == 2 ||
(mPrm1 == 0 && dComIfGs_isSwitch(mPrm0, fopAcM_GetHomeRoomNo(this))) ||
(mPrm1 == 1 && !dComIfGs_isSwitch(mPrm0, fopAcM_GetHomeRoomNo(this)))) {
mActive = true;
} else {
mActive = false;
}
}
#pragma pop
/* ############################################################################################## */
/* 805A4B80-805A4B8C 000008 000C+00 1/1 0/0 0/0 .bss @3686 */
static u8 lit_3686[12];
/* 805A4B8C-805A4BD8 000014 004C+00 2/2 0/0 0/0 .bss m_msgFlow__12daTagHstop_c */
u8 daTagHstop_c::m_msgFlow[76];
dMsgFlow_c daTagHstop_c::m_msgFlow;
/* 805A475C-805A4AA8 00045C 034C+00 1/1 0/0 0/0 .text execute__12daTagHstop_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagHstop_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/execute__12daTagHstop_cFv.s"
int daTagHstop_c::execute() {
if (mEvtInfo.checkCommandTalk()) {
if (field_0x573 == 2) {
m_msgFlow.init(this, (u16)mCollisionRot.z, 0, NULL);
field_0x573 = 3;
} else if (m_msgFlow.doFlow(this, NULL, 0)) {
i_dComIfGp_getEvent().reset();
field_0x573 = 0;
s16 arrow_num = dComIfGp_getItemMaxArrowNumCount();
dComIfGp_setItemArrowNumCount(arrow_num);
dComIfGs_onSwitch(0x8D, fopAcM_GetHomeRoomNo(this));
}
} else {
if (field_0x574 != 0) {
if (dComIfGs_isSwitch(0x8F, fopAcM_GetHomeRoomNo(this))) {
field_0x574 = 0;
} else if (dComIfGp_getLinkPlayer()->checkSingleBoarBattleSecondBowReady()) {
dComIfGs_onSwitch(0x8F, fopAcM_GetHomeRoomNo(this));
field_0x574 = 0;
} else {
field_0x574--;
}
}
setActive();
if (field_0x573) {
daHorse_c* horse_p = i_dComIfGp_getHorseActor();
if (mPrm1 != 2 || dComIfGs_getArrowNum() != 0 || horse_p == NULL) {
field_0x573 = 0;
} else if (field_0x573 == 1) {
if (i_dComIfGp_getHorseActor()->checkTurnStand() &&
!i_dComIfGp_getHorseActor()->checkTurnStandCamera()) {
field_0x573 = 2;
}
} else if (field_0x573 == 2 && !i_dComIfGp_getHorseActor()->checkTurnStand()) {
fopAcM_orderSpeakEvent(this, 0, 0);
mEvtInfo.i_onCondition(1);
}
} else if (mPrm1 == 2 && !i_dComIfGp_event_runCheck()) {
if (dComIfGs_getArrowNum() == 0 &&
!dComIfGs_isSwitch(0x8D, fopAcM_GetHomeRoomNo(this))) {
dComIfGs_onSwitch(0x8D, fopAcM_GetHomeRoomNo(this));
dMeter2Info_setFloatingFlow(43, 90, true);
if (!dComIfGs_isSwitch(0x8F, fopAcM_GetHomeRoomNo(this))) {
field_0x574 = 1200;
dComIfGs_offSwitch(0x8A, fopAcM_GetHomeRoomNo(this));
dComIfGs_offSwitch(0x8B, fopAcM_GetHomeRoomNo(this));
dComIfGs_offSwitch(0x8C, fopAcM_GetHomeRoomNo(this));
}
} else if (field_0x574 == 0 && !dComIfGs_isSwitch(0x8F, fopAcM_GetHomeRoomNo(this))) {
dComIfGs_onSwitch(0x8F, fopAcM_GetHomeRoomNo(this));
dComIfGs_onSwitch(0x8E, fopAcM_GetHomeRoomNo(this));
}
}
}
return 1;
}
#pragma pop
/* 805A4AA8-805A4AC8 0007A8 0020+00 1/0 0/0 0/0 .text daTagHstop_Execute__FP12daTagHstop_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagHstop_Execute(daTagHstop_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/daTagHstop_Execute__FP12daTagHstop_c.s"
static int daTagHstop_Execute(daTagHstop_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 805A4AC8-805A4AD0 0007C8 0008+00 1/0 0/0 0/0 .text daTagHstop_Draw__FP12daTagHstop_c
*/
static bool daTagHstop_Draw(daTagHstop_c* param_0) {
return true;
static int daTagHstop_Draw(daTagHstop_c*) {
return 1;
}
/* 805A4AD0-805A4B0C 0007D0 003C+00 0/0 1/0 0/0 .text __sinit_d_a_tag_hstop_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_a_tag_hstop_cpp() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop/__sinit_d_a_tag_hstop_cpp.s"
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x805A4AD0, __sinit_d_a_tag_hstop_cpp);
#pragma pop
/* ############################################################################################## */
/* 805A4B24-805A4B44 -00001 0020+00 1/0 0/0 0/0 .data l_daTagHstop_Method */
SECTION_DATA static void* l_daTagHstop_Method[8] = {
(void*)daTagHstop_Create__FP10fopAc_ac_c,
(void*)daTagHstop_Delete__FP12daTagHstop_c,
(void*)daTagHstop_Execute__FP12daTagHstop_c,
(void*)daTagHstop_Create,
(void*)daTagHstop_Delete,
(void*)daTagHstop_Execute,
(void*)NULL,
(void*)daTagHstop_Draw__FP12daTagHstop_c,
(void*)daTagHstop_Draw,
(void*)NULL,
(void*)NULL,
(void*)NULL,
@@ -7,64 +7,38 @@
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagInst_c {};
//
// Forward References:
//
extern "C" static void daTagInst_Create__FP10fopAc_ac_c();
extern "C" static void daTagInst_Delete__FP11daTagInst_c();
extern "C" extern void* g_profile_Tag_Instruction[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
//
// Declarations:
//
/* 80D59AF8-80D59B48 000078 0050+00 1/0 0/0 0/0 .text daTagInst_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagInst_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Create__FP10fopAc_ac_c.s"
static int daTagInst_Create(fopAc_ac_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) daTagInst_c();
fopAcM_OnCondition(i_this, 8);
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80D59B48-80D59B78 0000C8 0030+00 1/0 0/0 0/0 .text daTagInst_Delete__FP11daTagInst_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagInst_Delete(daTagInst_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_instruction/d_a_tag_instruction/daTagInst_Delete__FP11daTagInst_c.s"
static int daTagInst_Delete(daTagInst_c* i_this) {
i_this->~daTagInst_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80D59B80-80D59BA0 -00001 0020+00 1/0 0/0 0/0 .data l_daTagInst_Method */
SECTION_DATA static void* l_daTagInst_Method[8] = {
(void*)daTagInst_Create__FP10fopAc_ac_c,
(void*)daTagInst_Delete__FP11daTagInst_c,
(void*)daTagInst_Create,
(void*)daTagInst_Delete,
(void*)NULL,
(void*)NULL,
(void*)NULL,