mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-19 13:03:33 -04:00
m_Do cleanup, d_resource, drawlist stuff (#145)
* d_resource / some d_stage * setup dDlst_list_c / d_select_icon OK * JUTXfb / some JUTVideo + various * some J2D classes / JUTVideo/Fader attempts * bunch of m_Do cleanup + matches / f_ap_game OK * mDoLib_clipper::setup OK * most of d_meter_HIO OK * pane_class / kantera_icon_meter
This commit is contained in:
+85
-55
@@ -170,6 +170,10 @@ inline dEvent_manager_c& dComIfGp_getEventManager() {
|
||||
return g_dComIfG_gameInfo.play.getEvtManager();
|
||||
}
|
||||
|
||||
inline dEvt_control_c& dComIfGp_getEvent() {
|
||||
return g_dComIfG_gameInfo.play.getEvent();
|
||||
}
|
||||
|
||||
/* 80041480-80041488 03BDC0 0008+00 1/1 0/0 0/0 .text event_debug_evnt__21@unnamed@d_event_cpp@Fv
|
||||
*/
|
||||
static bool func_80041480() {
|
||||
@@ -201,17 +205,17 @@ dEvt_order_c::dEvt_order_c() {
|
||||
|
||||
/* 800415D8-80041668 03BF18 0090+00 1/1 0/0 0/0 .text orderOld__14dEvt_control_cFUsUsUsUsPvPvPCv
|
||||
*/
|
||||
void dEvt_control_c::orderOld(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
|
||||
bool dEvt_control_c::orderOld(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
|
||||
void* param_5, void const* param_6) {
|
||||
s16 eventIdx = dComIfGp_getEventManager().getEventIdx((char*)param_6, -1, -1);
|
||||
order(param_0, param_1, param_2, param_3, param_4, param_5, eventIdx, -1);
|
||||
return order(param_0, param_1, param_2, param_3, param_4, param_5, eventIdx, -1);
|
||||
}
|
||||
|
||||
/* 80041668-80041804 03BFA8 019C+00 3/3 13/13 0/0 .text order__14dEvt_control_cFUsUsUsUsPvPvsUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::order(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
|
||||
asm bool dEvt_control_c::order(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
|
||||
void* param_5, s16 param_6, u8 param_7) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/order__14dEvt_control_cFUsUsUsUsPvPvsUc.s"
|
||||
@@ -268,7 +272,7 @@ asm void dEvt_control_c::afterFlagProc(dEvt_order_c* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::commonCheck(dEvt_order_c* param_0, u16 param_1, u16 param_2) {
|
||||
asm int dEvt_control_c::commonCheck(dEvt_order_c* param_0, u16 param_1, u16 param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/commonCheck__14dEvt_control_cFP12dEvt_order_cUsUs.s"
|
||||
}
|
||||
@@ -381,33 +385,54 @@ asm void dEvt_control_c::doorCheck(dEvt_order_c* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379D80-80379D80 0063E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80379DB3 = "DEFAULT_GETITEM";
|
||||
#pragma pop
|
||||
|
||||
/* 8004212C-800421C0 03CA6C 0094+00 1/1 0/0 0/0 .text itemCheck__14dEvt_control_cFP12dEvt_order_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::itemCheck(dEvt_order_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/itemCheck__14dEvt_control_cFP12dEvt_order_c.s"
|
||||
int dEvt_control_c::itemCheck(dEvt_order_c* param_0) {
|
||||
const char* event = "DEFAULT_GETITEM";
|
||||
|
||||
if (commonCheck(param_0, 8, 4)) {
|
||||
mMode = 2;
|
||||
mSpecifiedEvent = dComIfGp_getEventManager().getEventIdx(event, -1, -1);
|
||||
dComIfGp_getEventManager().order(mSpecifiedEvent);
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800421C0-80042254 03CB00 0094+00 1/1 0/0 0/0 .text endProc__14dEvt_control_cFv */
|
||||
#ifdef NONMATCHING
|
||||
int dEvt_control_c::endProc() {
|
||||
switch (mMode) {
|
||||
case 1:
|
||||
talkEnd();
|
||||
break;
|
||||
case 2:
|
||||
demoEnd();
|
||||
break;
|
||||
}
|
||||
|
||||
mMode = 0;
|
||||
field_0xea = 255;
|
||||
mMapToolId = 255;
|
||||
mStageEventDt = NULL;
|
||||
field_0xec = 255;
|
||||
field_0xed = 0;
|
||||
field_0xe0 = -1;
|
||||
mPreItemNo = 255;
|
||||
dComIfGp_getEventManager().setStartDemo(-2);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::endProc() {
|
||||
asm int dEvt_control_c::endProc() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/endProc__14dEvt_control_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80042254-800422C0 03CB94 006C+00 1/1 0/0 0/0 .text change__14dEvt_control_cFv */
|
||||
#pragma push
|
||||
@@ -481,14 +506,10 @@ void dEvt_control_c::clearSkipSystem() {
|
||||
}
|
||||
|
||||
/* 800425E8-8004261C 03CF28 0034+00 0/0 2/2 5/5 .text dEv_defaultSkipProc__FPvi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dEv_defaultSkipProc(void* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/dEv_defaultSkipProc__FPvi.s"
|
||||
int dEv_defaultSkipProc(void* param_0, int param_1) {
|
||||
dComIfGp_getEvent().reset(param_0);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379D80-80379D80 0063E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -518,14 +539,10 @@ asm int dEv_defaultSkipStb(void* param_0, int param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 800428DC-8004290C 03D21C 0030+00 0/0 1/1 33/33 .text dEv_noFinishSkipProc__FPvi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dEv_noFinishSkipProc(void* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/dEv_noFinishSkipProc__FPvi.s"
|
||||
int dEv_noFinishSkipProc(void* param_0, int param_1) {
|
||||
dComIfGp_getEvent().offSkipFade();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
char* dEvt_control_c::getSkipEventName() {
|
||||
return mSkipEventName;
|
||||
@@ -593,14 +610,30 @@ asm void dEvt_control_c::moveApproval(void* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 8004316C-800431E8 03DAAC 007C+00 0/0 28/28 0/0 .text compulsory__14dEvt_control_cFPvPCcUs */
|
||||
#ifdef NONMATCHING
|
||||
bool dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) {
|
||||
bool check = false;
|
||||
if (field_0xe5 == 0 || field_0xe5 == 2) {
|
||||
check = true;
|
||||
}
|
||||
|
||||
if (!check || mCompulsory) {
|
||||
return false;
|
||||
} else {
|
||||
mCompulsory = 1;
|
||||
return orderOld(3, 2, 0, param_2, param_0, NULL, param_1);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) {
|
||||
asm bool dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/compulsory__14dEvt_control_cFPvPCcUs.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
void dEvt_control_c::remove() {
|
||||
mMode = 0;
|
||||
@@ -682,38 +715,35 @@ dEvt_info_c::dEvt_info_c() {
|
||||
}
|
||||
|
||||
/* 80043428-80043480 03DD68 0058+00 0/0 0/0 4/4 .text setEventName__11dEvt_info_cFPc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_info_c::setEventName(char* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setEventName__11dEvt_info_cFPc.s"
|
||||
void dEvt_info_c::setEventName(char* param_0) {
|
||||
if (param_0 == NULL) {
|
||||
mEventId = -1;
|
||||
} else {
|
||||
mEventId = dComIfGp_getEventManager().getEventIdx(param_0, -1, -1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043480-800434CC 03DDC0 004C+00 1/1 0/0 0/0 .text getEventName__11dEvt_info_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_info_c::getEventName() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/getEventName__11dEvt_info_cFv.s"
|
||||
// fake match?
|
||||
s16 dEvt_info_c::getEventName() {
|
||||
if (mEventId == -1) {
|
||||
return 0;
|
||||
} else {
|
||||
dEvDtEvent_c* data = dComIfGp_getEventManager().getEventData(mEventId);
|
||||
if (data == NULL) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
void dEvt_info_c::beforeProc() {
|
||||
setCondition(2);
|
||||
}
|
||||
|
||||
/* 800434D8-80043500 03DE18 0028+00 0/0 4/4 1/1 .text searchMapEventData__14dEvt_control_cFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::searchMapEventData(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/searchMapEventData__14dEvt_control_cFUc.s"
|
||||
void dEvt_control_c::searchMapEventData(u8 param_0) {
|
||||
searchMapEventData(param_0, (s32)struct_80450D64);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043500-8004360C 03DE40 010C+00 3/3 7/7 5/5 .text searchMapEventData__14dEvt_control_cFUcl */
|
||||
#pragma push
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/event/d_event_manager.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,26 +12,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 80042468 */ void reset();
|
||||
/* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
|
||||
/* 800429A8 */ void onSkipFade();
|
||||
/* 80043278 */ void getStageEventDt();
|
||||
/* 80043280 */ void sceneChange(int);
|
||||
/* 800432EC */ void convPId(unsigned int);
|
||||
/* 80043500 */ void searchMapEventData(u8, s32);
|
||||
/* 8004360C */ void runningEventID(s16);
|
||||
/* 8004365C */ void setPt2(void*);
|
||||
/* 800436BC */ void setPtI(void*);
|
||||
/* 800436F4 */ void setPtD(void*);
|
||||
};
|
||||
|
||||
struct dCamera_c {
|
||||
/* 80180A40 */ void EventRecoverNotime();
|
||||
/* 80181E98 */ void Center();
|
||||
@@ -40,8 +21,6 @@ struct Z2StatusMgr {
|
||||
/* 802B61E8 */ void setDemoName(char*);
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
};
|
||||
@@ -172,9 +151,7 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
@@ -271,26 +248,7 @@ dEvDtBase_c::dEvDtBase_c() {
|
||||
/* ############################################################################################## */
|
||||
/* 80379F50-80379F60 0065B0 000F+01 6/6 0/0 0/0 .rodata
|
||||
* DataFileName__29@unnamed@d_event_manager_cpp@ */
|
||||
SECTION_RODATA static u8 const data_80379F50[15 + 1 /* padding */] = {
|
||||
0x65,
|
||||
0x76,
|
||||
0x65,
|
||||
0x6E,
|
||||
0x74,
|
||||
0x5F,
|
||||
0x6C,
|
||||
0x69,
|
||||
0x73,
|
||||
0x74,
|
||||
0x2E,
|
||||
0x64,
|
||||
0x61,
|
||||
0x74,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80379F50, &data_80379F50);
|
||||
SECTION_RODATA static char const data_80379F50[16] = "event_list.dat";
|
||||
|
||||
/* 80379F60-80379F60 0065C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
@@ -299,24 +257,42 @@ SECTION_DEAD static char const* const stringBase_8037A07E = "Event";
|
||||
#pragma pop
|
||||
|
||||
/* 80046710-80046800 041050 00F0+00 0/0 1/1 0/0 .text create__16dEvent_manager_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::create() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/create__16dEvent_manager_cFv.s"
|
||||
int dEvent_manager_c::create() {
|
||||
mCameraPlay = 0;
|
||||
mEventException.init();
|
||||
mFlags.init();
|
||||
field_0x1b4 = 0;
|
||||
field_0x1aa = -1;
|
||||
field_0x1b8 = 0;
|
||||
field_0x1b0 = -1;
|
||||
mDataLoaded = 0;
|
||||
|
||||
for (int i = 4; i <= 9; i++) {
|
||||
mEventList[i].init();
|
||||
}
|
||||
char* res = (char*)dComIfG_getStageRes(data_80379F50);
|
||||
mEventList[3].init(res, -1);
|
||||
mEventList[10].init();
|
||||
|
||||
res = (char*)dComIfG_getObjectRes("Event", data_80379F50);
|
||||
mEventList[1].init(res, -1);
|
||||
mEventList[2].init();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046800-80046888 041140 0088+00 0/0 8/8 24/24 .text setObjectArchive__16dEvent_manager_cFPc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::setObjectArchive(char* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/setObjectArchive__16dEvent_manager_cFPc.s"
|
||||
bool dEvent_manager_c::setObjectArchive(char* param_0) {
|
||||
char* rt = NULL;
|
||||
|
||||
if (param_0 != NULL) {
|
||||
char* res = (char*)dComIfG_getObjectRes(param_0, data_80379F50);
|
||||
rt = res;
|
||||
mEventList[2].init(res, -1);
|
||||
} else {
|
||||
mEventList[2].init();
|
||||
}
|
||||
return rt != NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046888-80046904 0411C8 007C+00 0/0 1/1 0/0 .text demoInit__16dEvent_manager_cFv */
|
||||
#pragma push
|
||||
@@ -374,34 +350,22 @@ void dEvent_manager_c::remove() {
|
||||
}
|
||||
|
||||
/* 80046C74-80046C88 0415B4 0014+00 1/1 0/0 0/0 .text extraOnObjectCallBack__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void extraOnObjectCallBack(fopAc_ac_c* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/extraOnObjectCallBack__FP10fopAc_ac_cPv.s"
|
||||
static int extraOnObjectCallBack(fopAc_ac_c* pActor, void* param_1) {
|
||||
fopAcM_OnStatus(pActor, 0x800);
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046C88-80046C9C 0415C8 0014+00 1/1 0/0 0/0 .text extraOffObjectCallBack__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void extraOffObjectCallBack(fopAc_ac_c* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/extraOffObjectCallBack__FP10fopAc_ac_cPv.s"
|
||||
static int extraOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) {
|
||||
fopAcM_OffStatus(pActor, 0x800);
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046C9C-80046CB8 0415DC 001C+00 1/1 0/0 0/0 .text allOffObjectCallBack__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void allOffObjectCallBack(fopAc_ac_c* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/allOffObjectCallBack__FP10fopAc_ac_cPv.s"
|
||||
static int allOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) {
|
||||
fopAcM_OffStatus(pActor, 0x9000);
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046CB8-80046DA0 0415F8 00E8+00 1/1 0/0 0/0 .text
|
||||
* startProc__16dEvent_manager_cFP12dEvDtEvent_c */
|
||||
@@ -416,14 +380,9 @@ asm void dEvent_manager_c::startProc(dEvDtEvent_c* param_0) {
|
||||
|
||||
/* 80046DA0-80046DAC 0416E0 000C+00 2/2 0/0 0/0 .text
|
||||
* closeProc__16dEvent_manager_cFP12dEvDtEvent_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::closeProc(dEvDtEvent_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/closeProc__16dEvent_manager_cFP12dEvDtEvent_c.s"
|
||||
void dEvent_manager_c::closeProc(dEvDtEvent_c* param_0) {
|
||||
param_0->field_0xa4 = 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379F60-80379F60 0065C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -527,7 +486,7 @@ asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::getEventData(s16 param_0) {
|
||||
asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user