mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-28 23:15:32 -04:00
d_menu_fmap and d_menu_fmap2D OK (#2202)
This commit is contained in:
@@ -4411,7 +4411,7 @@ static asm fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1)
|
||||
#endif
|
||||
|
||||
/* 8011F658-8011F7D8 119F98 0180+00 1/1 0/0 0/0 .text checkAcceptWarp__9daAlink_cFv */
|
||||
// r3/r4 swap loading midna ptr
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::checkAcceptWarp() {
|
||||
cM3dGPla plane;
|
||||
@@ -4420,7 +4420,7 @@ bool daAlink_c::checkAcceptWarp() {
|
||||
!checkNoResetFlg0(FLG0_UNDERWATER))
|
||||
{
|
||||
if (!getSlidePolygon(&plane) && !checkForestOldCentury()) {
|
||||
if (checkMidnaRide() || getMidnaActor()->checkPortalObjRide()) {
|
||||
if (checkMidnaRide() || ((daMidna_c*)getMidnaActor())->checkPortalObjRide()) {
|
||||
if ((checkField() || checkCastleTown()) && !checkStageName("R_SP161")) {
|
||||
if ((checkWolf() && (checkModeFlg(MODE_UNK_1000) ||
|
||||
dComIfGp_checkPlayerStatus0(0, 0x10))) ||
|
||||
|
||||
@@ -2183,7 +2183,7 @@ BOOL daMidna_c::checkMidnaRealBody() {
|
||||
}
|
||||
|
||||
/* 800C77F4-800C7C64 0C2134 0470+00 4/2 0/0 0/0 .text procCoMetamorphoseInit__9daAlink_cFv */
|
||||
// small regalloc
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procCoMetamorphoseInit() {
|
||||
int var_r29 = 0;
|
||||
@@ -2234,7 +2234,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed;
|
||||
mProcVar2.field_0x300c = shape_angle.x;
|
||||
|
||||
daMidna_c* midna = getMidnaActor();
|
||||
daMidna_c* midna = (daMidna_c*)getMidnaActor();
|
||||
if (checkMidnaRide() && daMidna_c::checkMidnaRealBody() && midna->checkDemoTypeNone())
|
||||
{
|
||||
midna->changeOriginalDemo();
|
||||
|
||||
+6
-167
@@ -7,140 +7,12 @@
|
||||
#include "d/a/d_a_alink.h"
|
||||
#include "d/d_demo.h"
|
||||
#include "d/msg/d_msg_object.h"
|
||||
#include "dol2asm.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "rel/d/a/d_a_midna/d_a_midna.h"
|
||||
#include "rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint.h"
|
||||
#include "rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__14dEvt_control_cFv();
|
||||
extern "C" void __ct__12dEvt_order_cFv();
|
||||
extern "C" void orderOld__14dEvt_control_cFUsUsUsUsPvPvPCv();
|
||||
extern "C" void order__14dEvt_control_cFUsUsUsUsPvPvsUc();
|
||||
extern "C" void setParam__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void beforeFlagProc__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void afterFlagProc__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void commonCheck__14dEvt_control_cFP12dEvt_order_cUsUs();
|
||||
extern "C" void talkCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void talkXyCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void catchCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void talkEnd__14dEvt_control_cFv();
|
||||
extern "C" void demoCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void demoEnd__14dEvt_control_cFv();
|
||||
extern "C" void potentialCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void doorCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void itemCheck__14dEvt_control_cFP12dEvt_order_c();
|
||||
extern "C" void endProc__14dEvt_control_cFv();
|
||||
extern "C" void change__14dEvt_control_cFv();
|
||||
extern "C" void entry__14dEvt_control_cFv();
|
||||
extern "C" void reset__14dEvt_control_cFv();
|
||||
extern "C" void reset__14dEvt_control_cFPv();
|
||||
extern "C" void clearSkipSystem__14dEvt_control_cFv();
|
||||
extern "C" void dEv_defaultSkipProc__FPvi();
|
||||
extern "C" void dEv_defaultSkipZev__FPvi();
|
||||
extern "C" void dEv_defaultSkipStb__FPvi();
|
||||
extern "C" void dEv_noFinishSkipProc__FPvi();
|
||||
extern "C" void getSkipEventName__14dEvt_control_cFv();
|
||||
extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii();
|
||||
extern "C" void setSkipZev__14dEvt_control_cFPvPc();
|
||||
extern "C" void onSkipFade__14dEvt_control_cFv();
|
||||
extern "C" void offSkipFade__14dEvt_control_cFv();
|
||||
extern "C" void skipper__14dEvt_control_cFv();
|
||||
extern "C" void Step__14dEvt_control_cFv();
|
||||
extern "C" void moveApproval__14dEvt_control_cFPv();
|
||||
extern "C" void compulsory__14dEvt_control_cFPvPCcUs();
|
||||
extern "C" void remove__14dEvt_control_cFv();
|
||||
extern "C" void getStageEventDt__14dEvt_control_cFv();
|
||||
extern "C" void sceneChange__14dEvt_control_cFi();
|
||||
extern "C" void getPId__14dEvt_control_cFPv();
|
||||
extern "C" void convPId__14dEvt_control_cFUi();
|
||||
extern "C" void getStbDemoData__14dEvt_control_cFPc();
|
||||
extern "C" void __ct__11dEvt_info_cFv();
|
||||
extern "C" void setEventName__11dEvt_info_cFPc();
|
||||
extern "C" void getEventName__11dEvt_info_cFv();
|
||||
extern "C" void beforeProc__11dEvt_info_cFv();
|
||||
extern "C" void searchMapEventData__14dEvt_control_cFUc();
|
||||
extern "C" void searchMapEventData__14dEvt_control_cFUcl();
|
||||
extern "C" void runningEventID__14dEvt_control_cFs();
|
||||
extern "C" void setPt1__14dEvt_control_cFPv();
|
||||
extern "C" void setPt2__14dEvt_control_cFPv();
|
||||
extern "C" void setPtT__14dEvt_control_cFPv();
|
||||
extern "C" void setPtI__14dEvt_control_cFPv();
|
||||
extern "C" void setPtI_Id__14dEvt_control_cFUi();
|
||||
extern "C" void setPtD__14dEvt_control_cFPv();
|
||||
extern "C" void setGtItm__14dEvt_control_cFUc();
|
||||
extern "C" extern char const* const d_event_d_event__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void fadeOut__13mDoGph_gInf_cFf();
|
||||
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
|
||||
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
|
||||
extern "C" void fopAcM_getItemEventPartner__FPC10fopAc_ac_c();
|
||||
extern "C" void fpcSch_JudgeByID__FPvPv();
|
||||
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
|
||||
extern "C" void dStage_changeScene4Event__FiScibfUlsi(int, s8, int, bool, float, u32, s16, int);
|
||||
extern "C" void dComIfGp_getSelectItem__Fi();
|
||||
extern "C" void dComIfG_getStageRes__FPCc();
|
||||
extern "C" void dComIfG_getRoomArcName__Fi();
|
||||
extern "C" void dComIfGs_onVisitedRoom__Fi();
|
||||
extern "C" void __dt__12dEvt_order_cFv();
|
||||
extern "C" void offEventBit__11dSv_event_cFUs();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void dead__12daItemBase_cFv();
|
||||
extern "C" void end__7dDemo_cFv();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void forceFinish__12dEvDtEvent_cFv();
|
||||
extern "C" void setStartDemo__18dEvent_exception_cFi();
|
||||
extern "C" void setObjectArchive__16dEvent_manager_cFPc();
|
||||
extern "C" void endProc__16dEvent_manager_cFsi();
|
||||
extern "C" void Sequencer__16dEvent_manager_cFv();
|
||||
extern "C" void Experts__16dEvent_manager_cFv();
|
||||
extern "C" void getEventData__16dEvent_manager_cFs();
|
||||
extern "C" void getEventIdx__16dEvent_manager_cFPCcUcl();
|
||||
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc();
|
||||
extern "C" void order__16dEvent_manager_cFs();
|
||||
extern "C" void issueStaff__16dEvent_manager_cFPCc();
|
||||
extern "C" void cancelStaff__16dEvent_manager_cFPCc();
|
||||
extern "C" void StopQuake__12dVibration_cFi();
|
||||
extern "C" void QuickStart__9dCamera_cFv();
|
||||
extern "C" void dCam_getBody__Fv();
|
||||
extern "C" void onKillMessageFlag__12dMsgObject_cFv();
|
||||
extern "C" void setKillMessageFlag__12dMsgObject_cFv();
|
||||
extern "C" void endFlowGroup__12dMsgObject_cFv();
|
||||
extern "C" void setDemoName__11Z2StatusMgrFPc();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_22();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_22();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
|
||||
extern "C" extern void* __vt__11dEvt_info_c[3 + 1 /* padding */];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
|
||||
extern "C" u8 m_mode__7dDemo_c[4];
|
||||
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
// This probably will need to be moved once actual debug rom decomp begins
|
||||
#ifdef DEBUG
|
||||
static dEvDb_bit_c dEvDb_bit_table[799] = {
|
||||
@@ -333,12 +205,8 @@ s32 dEvt_control_c::beforeFlagProc(dEvt_order_c* p_order) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 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_80379D80 = "???";
|
||||
#pragma pop
|
||||
static char const* const stringBase_80379D80 = "???";
|
||||
|
||||
/* 80041964-800419A8 03C2A4 0044+00 2/2 0/0 0/0 .text
|
||||
* afterFlagProc__14dEvt_control_cFP12dEvt_order_c */
|
||||
@@ -365,25 +233,15 @@ int dEvt_control_c::commonCheck(dEvt_order_c* p_order, u16 condition, u16 comman
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 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_80379D8B = "DEFAULT_TALK";
|
||||
SECTION_DEAD static char const* const stringBase_80379D98 = "MHINT_TALK";
|
||||
#pragma pop
|
||||
|
||||
/* 80041A20-80041B58 03C360 0138+00 1/1 0/0 0/0 .text talkCheck__14dEvt_control_cFP12dEvt_order_c
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
// regswap, this pointer in r31 is weird
|
||||
int dEvt_control_c::talkCheck(dEvt_order_c* p_order) {
|
||||
char* event = "DEFAULT_TALK";
|
||||
fopAc_ac_c* actor = p_order->mActor2;
|
||||
if ((fopAcM_GetName(actor) == PROC_Tag_Mhint && ((daTagMhint_c*)actor)->checkNoAttention()) ||
|
||||
(fopAcM_GetName(actor) == PROC_Tag_Mstop && ((daTagMstop_c*)actor)->checkNoAttention()) ||
|
||||
fopAcM_GetName(actor) == PROC_MIDNA) {
|
||||
daMidna_c* midna = daPy_py_c::getMidnaActor();
|
||||
daMidna_c* midna = (daMidna_c*)daPy_py_c::getMidnaActor();
|
||||
if (!daPy_py_c::i_checkNowWolf() || midna->checkNoDraw()) {
|
||||
event = "MHINT_TALK";
|
||||
}
|
||||
@@ -404,16 +262,6 @@ int dEvt_control_c::talkCheck(dEvt_order_c* p_order) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dEvt_control_c::talkCheck(dEvt_order_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/talkCheck__14dEvt_control_cFP12dEvt_order_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80041B58-80041C90 03C498 0138+00 1/1 0/0 0/0 .text
|
||||
* talkXyCheck__14dEvt_control_cFP12dEvt_order_c */
|
||||
@@ -986,9 +834,8 @@ bool dEvt_control_c::skipper() {
|
||||
return startSkip;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451EC8-80451ECC 0004C8 0004+00 1/1 0/0 0/0 .sdata2 @5013 */
|
||||
SECTION_SDATA2 static f32 lit_5013 = -1.0f / 20.0f;
|
||||
static f32 lit_5013 = -1.0f / 20.0f;
|
||||
|
||||
/* 80042BBC-80042FA8 03D4FC 03EC+00 0/0 1/1 0/0 .text Step__14dEvt_control_cFv */
|
||||
int dEvt_control_c::Step() {
|
||||
@@ -1095,7 +942,7 @@ int dEvt_control_c::Step() {
|
||||
return 1;
|
||||
} else {
|
||||
if (!mRoomInfoSet) {
|
||||
char lastStageName[7];
|
||||
char lastStageName[8];
|
||||
strncpy(lastStageName, dComIfGp_getStartStageName(), 7);
|
||||
lastStageName[7] = 0;
|
||||
|
||||
@@ -1372,13 +1219,5 @@ void dEvt_control_c::setGtItm(u8 itemNo) {
|
||||
mGtItm = itemNo;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379DC6-80379DD0 006426 0008+02 0/0 0/0 0/0 .rodata None */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80379DC6 = "GIVEMAN";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_80379DCE = "\0";
|
||||
#pragma pop
|
||||
|
||||
/* 80379D80-80379D80 0063E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
static char const* const stringBase_80379DC6 = "GIVEMAN";
|
||||
|
||||
@@ -11,51 +11,6 @@
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
|
||||
struct dMpath_RGB5A3_s {
|
||||
/* 0x0 */ u16 color;
|
||||
};
|
||||
|
||||
struct dMpath_RGB5A3_palDt_s {
|
||||
/* 0x0 */ dMpath_RGB5A3_s field_0x0;
|
||||
/* 0x2 */ dMpath_RGB5A3_s field_0x2;
|
||||
/* 0x4 */ dMpath_RGB5A3_s field_0x4;
|
||||
/* 0x6 */ dMpath_RGB5A3_s field_0x6;
|
||||
};
|
||||
|
||||
struct dMap_prm_res_s {
|
||||
/* 0x000 */ dMpath_RGB5A3_palDt_s palette_data[51];
|
||||
/* 0x198 */ u8 field_0x198;
|
||||
/* 0x199 */ u8 field_0x199;
|
||||
/* 0x19A */ u8 field_0x19a;
|
||||
/* 0x19B */ u8 field_0x19b;
|
||||
/* 0x19C */ u8 field_0x19c;
|
||||
/* 0x19D */ u8 field_0x19d;
|
||||
/* 0x19E */ u8 field_0x19e;
|
||||
/* 0x19F */ u8 field_0x19f;
|
||||
/* 0x1A0 */ u8 field_0x1a0;
|
||||
/* 0x1A1 */ u8 field_0x1a1;
|
||||
/* 0x1A2 */ u8 field_0x1a2;
|
||||
/* 0x1A3 */ u8 field_0x1a3;
|
||||
/* 0x1A4 */ u8 field_0x1a4;
|
||||
/* 0x1A5 */ u8 field_0x1a5;
|
||||
/* 0x1A6 */ u8 field_0x1a6;
|
||||
/* 0x1A7 */ u8 field_0x1a7;
|
||||
/* 0x1A8 */ u8 field_0x1a8;
|
||||
/* 0x1A9 */ u8 field_0x1a9;
|
||||
/* 0x1AA */ s16 field_0x1aa;
|
||||
/* 0x1AC */ s16 field_0x1ac;
|
||||
/* 0x1AE */ s16 field_0x1ae;
|
||||
/* 0x1B0 */ s16 field_0x1b0;
|
||||
/* 0x1B2 */ s16 field_0x1b2;
|
||||
/* 0x1B4 */ s16 field_0x1b4;
|
||||
/* 0x1B6 */ s16 field_0x1b6;
|
||||
/* 0x1B8 */ f32 cursor_size;
|
||||
};
|
||||
|
||||
struct dMap_HIO_prm_res_dst_s {
|
||||
static dMap_prm_res_s* m_res;
|
||||
};
|
||||
|
||||
/* 800284BC-800284D0 022DFC 0014+00 2/0 0/0 0/0 .text getIconSize__15renderingAmap_cCFUc
|
||||
*/
|
||||
f32 renderingAmap_c::getIconSize(u8 i_icon) const {
|
||||
|
||||
@@ -223,8 +223,8 @@ void dRenderingFDAmap_c::drawBack() const {
|
||||
|
||||
/* 8003D188-8003D320 037AC8 0198+00 1/0 8/0 0/0 .text preRenderingMap__18dRenderingFDAmap_cFv */
|
||||
void dRenderingFDAmap_c::preRenderingMap() {
|
||||
GXSetViewport(0.0f, 0.0f, field_0x1c, field_0x1e, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, field_0x1c, field_0x1e);
|
||||
GXSetViewport(0.0f, 0.0f, mTexWidth, mTexHeight, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, mTexWidth, mTexHeight);
|
||||
GXSetNumChans(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
@@ -252,8 +252,8 @@ void dRenderingFDAmap_c::preRenderingMap() {
|
||||
/* 8003D320-8003D3C0 037C60 00A0+00 1/0 7/1 0/0 .text postRenderingMap__18dRenderingFDAmap_cFv */
|
||||
void dRenderingFDAmap_c::postRenderingMap() {
|
||||
GXSetCopyFilter(GX_FALSE, NULL, GX_FALSE, NULL);
|
||||
GXSetTexCopySrc(0, 0, field_0x1c, field_0x1e);
|
||||
GXSetTexCopyDst(field_0x1c, field_0x1e, GX_CTF_G8, GX_FALSE);
|
||||
GXSetTexCopySrc(0, 0, mTexWidth, mTexHeight);
|
||||
GXSetTexCopyDst(mTexWidth, mTexHeight, GX_CTF_G8, GX_FALSE);
|
||||
GXCopyTex(field_0x4, GX_TRUE);
|
||||
GXPixModeSync();
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
|
||||
@@ -177,17 +177,17 @@ s16 dMapInfo_n::getMapRestartAngleY() {
|
||||
|
||||
/* 8003F19C-8003F1F4 039ADC 0058+00 0/0 1/1 0/0 .text getRoomCenter__10dMapInfo_nFiPfPf
|
||||
*/
|
||||
void dMapInfo_n::getRoomCenter(int i_roomNo, f32* i_roomCenterX, f32* i_roomCenterZ) {
|
||||
void dMapInfo_n::getRoomCenter(int i_roomNo, f32* i_roomPosX, f32* i_roomPosZ) {
|
||||
dStage_FileList2_dt_c* fileList2_p = dStage_roomControl_c::getFileList2(i_roomNo);
|
||||
|
||||
if (i_roomCenterX != NULL) {
|
||||
*i_roomCenterX = (dStage_FileList2_dt_GetRightRmX(fileList2_p) +
|
||||
if (i_roomPosX != NULL) {
|
||||
*i_roomPosX = (dStage_FileList2_dt_GetRightRmX(fileList2_p) +
|
||||
dStage_FileList2_dt_GetLeftRmX(fileList2_p)) *
|
||||
0.5f;
|
||||
}
|
||||
|
||||
if (i_roomCenterZ != NULL) {
|
||||
*i_roomCenterZ = (dStage_FileList2_dt_GetFrontRmZ(fileList2_p) +
|
||||
if (i_roomPosZ != NULL) {
|
||||
*i_roomPosZ = (dStage_FileList2_dt_GetFrontRmZ(fileList2_p) +
|
||||
dStage_FileList2_dt_GetInnerRmZ(fileList2_p)) *
|
||||
0.5f;
|
||||
}
|
||||
@@ -618,13 +618,13 @@ s8 renderingDAmap_c::calcFloorNoForObjectByMapPathRend(f32 param_0, int i_roomNo
|
||||
void renderingDAmap_c::init(u8* param_0, u16 param_1, u16 param_2, u16 param_3, u16 param_4) {
|
||||
mIsDraw = false;
|
||||
field_0x4 = param_0;
|
||||
field_0x1c = param_1;
|
||||
field_0x1e = param_2;
|
||||
mTexWidth = param_1;
|
||||
mTexHeight = param_2;
|
||||
field_0x20 = param_3;
|
||||
field_0x22 = param_4;
|
||||
|
||||
field_0x10 = 0.0f;
|
||||
field_0x14 = 0.0f;
|
||||
mPosX = 0.0f;
|
||||
mPosZ = 0.0f;
|
||||
field_0x8 = 1.0f;
|
||||
field_0xc = 1.0f;
|
||||
mRoomNoSingle = 0;
|
||||
@@ -634,8 +634,8 @@ void renderingDAmap_c::init(u8* param_0, u16 param_1, u16 param_2, u16 param_3,
|
||||
/* 8003FD08-8003FD9C 03A648 0094+00 0/0 2/2 0/0 .text entry__16renderingDAmap_cFfffiSc */
|
||||
void renderingDAmap_c::entry(f32 param_0, f32 param_1, f32 i_cmPerTexel, int i_roomNoSingle,
|
||||
s8 param_4) {
|
||||
field_0x10 = param_0;
|
||||
field_0x14 = param_1;
|
||||
mPosX = param_0;
|
||||
mPosZ = param_1;
|
||||
mCmPerTexel = i_cmPerTexel;
|
||||
field_0x8 = mCmPerTexel * field_0x20;
|
||||
field_0xc = mCmPerTexel * field_0x22;
|
||||
@@ -647,12 +647,12 @@ void renderingDAmap_c::entry(f32 param_0, f32 param_1, f32 i_cmPerTexel, int i_r
|
||||
/* 8003FD9C-8003FE18 03A6DC 007C+00 3/0 3/0 0/0 .text
|
||||
* isSwitch__16renderingDAmap_cFPCQ211dDrawPath_c11group_class */
|
||||
bool renderingDAmap_c::isSwitch(dDrawPath_c::group_class const* i_group) {
|
||||
if (i_group->field_0x0 == 0xFF) {
|
||||
if (i_group->mSwbit == 0xFF) {
|
||||
return true;
|
||||
} else if (i_group->field_0x1 == 0) {
|
||||
return dComIfGs_isSwitch(i_group->field_0x0, mRoomNo) == false;
|
||||
return dComIfGs_isSwitch(i_group->mSwbit, mRoomNo) == false;
|
||||
} else {
|
||||
return dComIfGs_isSwitch(i_group->field_0x0, mRoomNo) != false;
|
||||
return dComIfGs_isSwitch(i_group->mSwbit, mRoomNo) != false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -699,12 +699,12 @@ void renderingDAmap_c::preDrawPath() {
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
|
||||
sp20.x = field_0x10;
|
||||
sp20.y = field_0x14;
|
||||
sp20.x = mPosX;
|
||||
sp20.y = mPosZ;
|
||||
sp20.z = -5000.0f;
|
||||
|
||||
sp14.x = field_0x10;
|
||||
sp14.y = field_0x14;
|
||||
sp14.x = mPosX;
|
||||
sp14.y = mPosZ;
|
||||
sp14.z = 5000.0f;
|
||||
|
||||
sp8.x = 0.0f;
|
||||
|
||||
+518
-196
@@ -106,7 +106,7 @@ bool dMenu_Fmap_room_data_c::isArrival() {
|
||||
|
||||
/* 8003D868-8003D92C 0381A8 00C4+00 1/1 0/0 0/0 .text
|
||||
* buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii */
|
||||
void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
|
||||
void dMenu_Fmap_room_data_c::buildTresTypeGroup(int i_stageNo, int i_roomIndex, int i_roomNo) {
|
||||
dTres_c::list_class* tresure_p = mp_fmapData->getTresure();
|
||||
if (tresure_p != NULL) {
|
||||
int num = tresure_p->field_0x0;
|
||||
@@ -117,7 +117,7 @@ void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int pa
|
||||
}
|
||||
|
||||
for (int i = 0; i < num; i++) {
|
||||
data_p->mRoomNo = param_2;
|
||||
data_p->mRoomNo = i_roomNo;
|
||||
u8 typeGroupNo = dTres_c::getTypeToTypeGroupNo(data_p->mType);
|
||||
mp_fmpTresTypeGroupDataListAll->addTypeGroupData(typeGroupNo, data_p);
|
||||
data_p++;
|
||||
@@ -127,97 +127,78 @@ void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int pa
|
||||
|
||||
/* 8003D92C-8003D95C 03826C 0030+00 1/1 0/0 0/0 .text
|
||||
* buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff */
|
||||
void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4, f32 param_5) {
|
||||
void dMenu_Fmap_room_data_c::buildFmapRoomData(int i_stageNo, int i_index, f32 i_regionOffsetX,
|
||||
f32 i_regionOffsetZ, f32 i_stageOffsetX,
|
||||
f32 i_stageOffsetZ) {
|
||||
int roomNo = m_roomNo;
|
||||
|
||||
if (mp_fmapData != NULL) {
|
||||
buildTresTypeGroup(param_0, param_1, roomNo);
|
||||
buildTresTypeGroup(i_stageNo, i_index, roomNo);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8003D95C-8003D9D8 03829C 007C+00 1/1 0/0 0/0 .text isArrival__23dMenu_Fmap_stage_data_cFv */
|
||||
#ifdef NONMATCHING
|
||||
bool dMenu_Fmap_stage_data_c::isArrival() {
|
||||
bool is_arrival = false;
|
||||
|
||||
dMenu_Fmap_room_data_c* room = mp_roomTop;
|
||||
u8 table_no = mpStageArc->getVisitedRoomSaveTableNo();
|
||||
int table_no = mpStageArc->getVisitedRoomSaveTableNo();
|
||||
for (; !is_arrival && room != NULL; room = room->getNextData()) {
|
||||
is_arrival = dComIfGs_isSaveVisitedRoom(table_no, room->getRoomNo()) != false;
|
||||
// fakematch: should be room->getRoomNo()
|
||||
is_arrival = dComIfGs_isSaveVisitedRoom(table_no, room->m_roomNo) != false;
|
||||
}
|
||||
|
||||
return is_arrival;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool dMenu_Fmap_stage_data_c::isArrival() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/isArrival__23dMenu_Fmap_stage_data_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451E20-80451E28 000420 0004+04 5/5 0/0 0/0 .sdata2 @3894 */
|
||||
SECTION_SDATA2 static f32 lit_3894[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 8003D9D8-8003DB48 038318 0170+00 1/1 0/0 0/0 .text
|
||||
* buildFmapStageData__23dMenu_Fmap_stage_data_cFiff */
|
||||
int dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
|
||||
int dMenu_Fmap_stage_data_c::buildFmapStageData(int i_stageNo, f32 i_regionOffsetX,
|
||||
f32 i_regionOffsetZ) {
|
||||
dMenu_Fmap_room_data_c* room = mp_roomTop;
|
||||
f32 fvar3 = FLT_MAX;
|
||||
f32 fvar4 = FLT_MAX;
|
||||
f32 fvar5 = -FLT_MAX;
|
||||
f32 fvar6 = -FLT_MAX;
|
||||
int ivar = 0;
|
||||
f32 stage_min_x = FLT_MAX;
|
||||
f32 stage_min_z = FLT_MAX;
|
||||
f32 stage_max_x = -FLT_MAX;
|
||||
f32 stage_max_z = -FLT_MAX;
|
||||
int room_no = 0;
|
||||
|
||||
for (; room != NULL; room = room->getNextData()) {
|
||||
room->buildFmapRoomData(param_0, ivar, param_1, param_2, m_offsetX, m_offsetZ);
|
||||
f32 min_x = room->getFileList2MinX();
|
||||
f32 min_z = room->getFileList2MinZ();
|
||||
f32 max_x = room->getFileList2MaxX();
|
||||
f32 max_z = room->getFileList2MaxZ();
|
||||
for (; room != NULL; room_no++, room = room->getNextData()) {
|
||||
room->buildFmapRoomData(i_stageNo, room_no, i_regionOffsetX, i_regionOffsetZ,
|
||||
m_offsetX, m_offsetZ);
|
||||
f32 room_min_x = room->getFileList2MinX();
|
||||
f32 room_min_z = room->getFileList2MinZ();
|
||||
f32 room_max_x = room->getFileList2MaxX();
|
||||
f32 room_max_z = room->getFileList2MaxZ();
|
||||
|
||||
if (min_x < fvar3) {
|
||||
fvar3 = min_x;
|
||||
if (room_min_x < stage_min_x) {
|
||||
stage_min_x = room_min_x;
|
||||
}
|
||||
|
||||
if (min_z < fvar4) {
|
||||
fvar4 = min_z;
|
||||
if (room_min_z < stage_min_z) {
|
||||
stage_min_z = room_min_z;
|
||||
}
|
||||
|
||||
if (max_x > fvar5) {
|
||||
fvar5 = max_x;
|
||||
if (room_max_x > stage_max_x) {
|
||||
stage_max_x = room_max_x;
|
||||
}
|
||||
|
||||
if (max_z > fvar6) {
|
||||
fvar6 = max_z;
|
||||
if (room_max_z > stage_max_z) {
|
||||
stage_max_z = room_max_z;
|
||||
}
|
||||
|
||||
ivar++;
|
||||
}
|
||||
|
||||
if (ivar > 0) {
|
||||
m_stageMinX = fvar3;
|
||||
m_stageMinZ = fvar4;
|
||||
m_stageMaxX = fvar5;
|
||||
m_stageMaxZ = fvar6;
|
||||
if (room_no > 0) {
|
||||
m_stageMinX = stage_min_x;
|
||||
m_stageMinZ = stage_min_z;
|
||||
m_stageMaxX = stage_max_x;
|
||||
m_stageMaxZ = stage_max_z;
|
||||
} else {
|
||||
f32 tmp_0 = lit_3894[0];
|
||||
m_stageMinX = tmp_0;
|
||||
m_stageMinZ = tmp_0;
|
||||
m_stageMaxX = tmp_0;
|
||||
m_stageMaxZ = tmp_0;
|
||||
m_stageMinX = 0.0f;
|
||||
m_stageMinZ = 0.0f;
|
||||
m_stageMaxX = 0.0f;
|
||||
m_stageMaxZ = 0.0f;
|
||||
}
|
||||
|
||||
return ivar;
|
||||
return room_no;
|
||||
}
|
||||
|
||||
/* 8003DB48-8003DB70 038488 0028+00 0/0 1/1 0/0 .text
|
||||
@@ -233,158 +214,428 @@ dMenu_Fmap_stage_data_c* dMenu_Fmap_region_data_c::getMenuFmapStageData(int para
|
||||
|
||||
/* 8003DB70-8003DEE0 0384B0 0370+00 0/0 1/1 0/0 .text
|
||||
* getPointStagePathInnerNo__24dMenu_Fmap_region_data_cFffiPiPi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_region_data_c::getPointStagePathInnerNo(f32 param_0, f32 param_1, int param_2,
|
||||
int* param_3, int* param_4) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getPointStagePathInnerNo__24dMenu_Fmap_region_data_cFffiPiPi.s"
|
||||
int dMenu_Fmap_region_data_c::getPointStagePathInnerNo(f32 i_pointX, f32 i_pointZ, int i_stageNo,
|
||||
int* o_stageNo, int* o_roomNo) {
|
||||
int line_num, group_num, floor_num;
|
||||
f32* point;
|
||||
u16* point_index;
|
||||
dDrawPath_c::line_class* line;
|
||||
dDrawPath_c::group_class* group;
|
||||
dDrawPath_c::floor_class* floor;
|
||||
f32* points;
|
||||
dMenu_Fmap_room_data_c* room;
|
||||
dMenu_Fmap_stage_data_c* stage;
|
||||
int point_num, point_no;
|
||||
int stage_no = 0;
|
||||
bool outside, found;
|
||||
int floor_no, group_no, line_no;
|
||||
int found_stage_no = -1;
|
||||
int dir, prev_dir;
|
||||
int found_room_no = -1;
|
||||
cXyz vec1, vec2, cross;
|
||||
vec1.y = 0.0f;
|
||||
vec2.y = 0.0f;
|
||||
|
||||
stage = mpMenuFmapStageDataTop;
|
||||
for(; stage != NULL; stage = stage->getNextData(), stage_no++) {
|
||||
if (stage->getStageArc() == NULL) continue;
|
||||
int save_table_no = stage->getStageArc()->getVisitedRoomSaveTableNo();
|
||||
|
||||
room = stage->getFmapRoomDataTop();
|
||||
for (; room != NULL; room = room->getNextData()) {
|
||||
if (!(i_stageNo == stage_no || stage->isArrival())) continue;
|
||||
// fakematch: should be room->getRoomNo()
|
||||
if (!dComIfGs_isSaveVisitedRoom(save_table_no, room->m_roomNo)) continue;
|
||||
|
||||
f32 offsetX = mRegionOffsetX + stage->getOffsetX();
|
||||
f32 offsetZ = mRegionOffsetZ + stage->getOffsetZ();
|
||||
|
||||
dMenu_Fmap_data_c* map_data = room->getFmapData();
|
||||
if (map_data == NULL) continue;
|
||||
|
||||
dDrawPath_c::room_class* path = map_data->getMapPath();
|
||||
if (path == NULL) continue;
|
||||
|
||||
floor = path->mpFloor;
|
||||
points = path->mpFloatData;
|
||||
if (floor == NULL) continue;
|
||||
|
||||
found = false;
|
||||
floor_num = path->mFloorNum;
|
||||
for (floor_no = 0; !found && floor_no < floor_num; floor_no++, floor++) {
|
||||
group_num = floor->mGroupNum;
|
||||
group = floor->mpGroup;
|
||||
if (group == NULL) continue;
|
||||
for (group_no = 0; !found && group_no < group_num; group_no++, group++) {
|
||||
line_num = group->mLineNum;
|
||||
if (line_num <= 0) continue;
|
||||
line = group->mpLine;
|
||||
if (line == NULL) continue;
|
||||
for (line_no = 0; !found && line_no < line_num; line_no++, line++) {
|
||||
if (line->field_0x1 != 3) continue;
|
||||
point_num = line->mDataNum;
|
||||
if (!(point_num >= 3)) continue;
|
||||
|
||||
outside = false;
|
||||
point_index = line->mpData;
|
||||
f32* prev_point = &points[point_index[0] * 2];
|
||||
point = &points[point_index[1] * 2];
|
||||
point_no = 2;
|
||||
point_index += 2;
|
||||
|
||||
do {
|
||||
vec1.x = prev_point[0] + offsetX - i_pointX;
|
||||
vec1.z = prev_point[1] + offsetZ - i_pointZ;
|
||||
vec2.x = point[0] + offsetX - i_pointX;
|
||||
vec2.z = point[1] + offsetZ - i_pointZ;
|
||||
|
||||
PSVECCrossProduct(&vec1, &vec2, &cross);
|
||||
if (cross.y >= 0.0f) {
|
||||
dir = 0;
|
||||
} else {
|
||||
dir = -1;
|
||||
}
|
||||
|
||||
if (point_no > 2 && dir != prev_dir) {
|
||||
outside = true;
|
||||
break;
|
||||
}
|
||||
|
||||
prev_dir = dir;
|
||||
prev_point = point;
|
||||
point = &points[*point_index * 2];
|
||||
point_no++;
|
||||
point_index++;
|
||||
} while (point_no <= point_num);
|
||||
|
||||
if (!outside) {
|
||||
found = true;
|
||||
found_stage_no = stage_no;
|
||||
found_room_no = room->getRoomNo();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (o_stageNo != NULL) {
|
||||
*o_stageNo = found_stage_no;
|
||||
}
|
||||
if (o_roomNo != NULL) {
|
||||
*o_roomNo = found_room_no;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003DEE0-8003E028 038820 0148+00 0/0 1/1 0/0 .text
|
||||
* buildFmapRegionData__24dMenu_Fmap_region_data_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_region_data_c::buildFmapRegionData(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildFmapRegionData__24dMenu_Fmap_region_data_cFi.s"
|
||||
int dMenu_Fmap_region_data_c::buildFmapRegionData(int param_0) {
|
||||
f32 region_min_x = FLT_MAX;
|
||||
f32 region_min_z = FLT_MAX;
|
||||
f32 region_max_x = -FLT_MAX;
|
||||
f32 region_max_z = -FLT_MAX;
|
||||
|
||||
dMenu_Fmap_stage_data_c* stage = mpMenuFmapStageDataTop;
|
||||
int stage_no = 0;
|
||||
|
||||
for (; stage != NULL; stage_no++, stage = stage->getNextData()) {
|
||||
stage->buildFmapStageData(stage_no, mRegionOffsetX, mRegionOffsetZ);
|
||||
f32 stage_min_x = stage->getStageMinX() + stage->getOffsetX();
|
||||
f32 stage_min_z = stage->getStageMinZ() + stage->getOffsetZ();
|
||||
f32 stage_max_x = stage->getStageMaxX() + stage->getOffsetX();
|
||||
f32 stage_max_z = stage->getStageMaxZ() + stage->getOffsetZ();
|
||||
|
||||
if (stage_min_x < region_min_x) {
|
||||
region_min_x = stage_min_x;
|
||||
}
|
||||
if (stage_min_z < region_min_z) {
|
||||
region_min_z = stage_min_z;
|
||||
}
|
||||
if (stage_max_x > region_max_x) {
|
||||
region_max_x = stage_max_x;
|
||||
}
|
||||
if (stage_max_z > region_max_z) {
|
||||
region_max_z = stage_max_z;
|
||||
}
|
||||
}
|
||||
|
||||
if (stage_no > 0) {
|
||||
mRegionMinX = region_min_x;
|
||||
mRegionMinZ = region_min_z;
|
||||
mRegionMaxX = region_max_x;
|
||||
mRegionMaxZ = region_max_z;
|
||||
} else {
|
||||
mRegionMinX = 0.0f;
|
||||
mRegionMaxX = 0.0f;
|
||||
mRegionMinZ = 0.0f;
|
||||
mRegionMaxZ = 0.0f;
|
||||
}
|
||||
|
||||
return stage_no;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E028-8003E04C 038968 0024+00 0/0 1/1 0/0 .text
|
||||
* create__23dMenu_Fmap_world_data_cFP24dMenu_Fmap_region_data_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_world_data_c::create(dMenu_Fmap_region_data_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/create__23dMenu_Fmap_world_data_cFP24dMenu_Fmap_region_data_c.s"
|
||||
void dMenu_Fmap_world_data_c::create(dMenu_Fmap_region_data_c* i_regionData) {
|
||||
mp_fmapRegionData = i_regionData;
|
||||
buildFmapWorldData();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E04C-8003E114 03898C 00C8+00 1/1 0/0 0/0 .text
|
||||
* buildFmapWorldData__23dMenu_Fmap_world_data_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_world_data_c::buildFmapWorldData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildFmapWorldData__23dMenu_Fmap_world_data_cFv.s"
|
||||
int dMenu_Fmap_world_data_c::buildFmapWorldData() {
|
||||
f32 min_x = FLT_MAX;
|
||||
f32 min_z = FLT_MAX;
|
||||
f32 max_x = -FLT_MAX;
|
||||
f32 max_z = -FLT_MAX;
|
||||
|
||||
dMenu_Fmap_region_data_c* region = mp_fmapRegionData;
|
||||
int region_no = 0;
|
||||
|
||||
for (; region != NULL; region_no++, region = region->getNextData()) {
|
||||
f32 region_min_x = region->getRegionMinX() + region->getRegionOffsetX();
|
||||
f32 region_min_z = region->getRegionMinZ() + region->getRegionOffsetZ();
|
||||
f32 region_max_x = region->getRegionMaxX() + region->getRegionOffsetX();
|
||||
f32 region_max_z = region->getRegionMaxZ() + region->getRegionOffsetZ();
|
||||
|
||||
if (region_min_x < min_x) {
|
||||
min_x = region_min_x;
|
||||
}
|
||||
if (region_min_z < min_z) {
|
||||
min_z = region_min_z;
|
||||
}
|
||||
if (region_max_x > max_x) {
|
||||
max_x = region_max_x;
|
||||
}
|
||||
if (region_max_z > max_z) {
|
||||
max_z = region_max_z;
|
||||
}
|
||||
}
|
||||
|
||||
if (region_no > 0) {
|
||||
m_worldMinX = min_x;
|
||||
m_worldMinZ = min_z;
|
||||
m_worldMaxX = max_x;
|
||||
m_worldMaxZ = max_z;
|
||||
} else {
|
||||
m_worldMinX = 0.0f;
|
||||
m_worldMaxX = 0.0f;
|
||||
m_worldMinZ = 0.0f;
|
||||
m_worldMaxZ = 0.0f;
|
||||
}
|
||||
|
||||
return region_no;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E114-8003E1C0 038A54 00AC+00 0/0 3/3 0/0 .text
|
||||
* init__22dMenuFmapIconPointer_cFP24dMenu_Fmap_region_data_cP23dMenu_Fmap_stage_data_cUcii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::init(dMenu_Fmap_region_data_c* param_0,
|
||||
dMenu_Fmap_stage_data_c* param_1, u8 param_2, int param_3,
|
||||
int param_4) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/init__22dMenuFmapIconPointer_cFP24dMenu_Fmap_region_data_cP23dMenu_Fmap_stage_data_cUcii.s"
|
||||
bool dMenuFmapIconPointer_c::init(dMenu_Fmap_region_data_c* i_regionData,
|
||||
dMenu_Fmap_stage_data_c* i_stageData, u8 i_typeGroupNo,
|
||||
int i_stayStageNo, int i_stayRoomNo) {
|
||||
stage_stag_info_class* stag_info = dComIfGp_getStage()->getStagInfo();
|
||||
if (stag_info == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
mSaveTbl = i_dStage_stagInfo_GetSaveTbl(stag_info);
|
||||
mpRegionData = i_regionData;
|
||||
mpStageData = i_stageData;
|
||||
mType = dTres_c::getTypeGroupNoToType(i_typeGroupNo);
|
||||
mTypeGroupNo = i_typeGroupNo;
|
||||
mStayStageNo = i_stayStageNo;
|
||||
mStayRoomNo = i_stayRoomNo;
|
||||
mStageNo = 0;
|
||||
getFirstRoomData();
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E1C0-8003E2BC 038B00 00FC+00 2/2 0/0 0/0 .text getFirstData__22dMenuFmapIconPointer_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getFirstData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getFirstData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::getFirstData() {
|
||||
bool ret = false;
|
||||
if (!strcmp(mpStageData->getStageName(), dComIfGp_getStartStageName())) {
|
||||
mpTresTypeGroupData = dTres_c::getFirstData(mTypeGroupNo);
|
||||
mpTresData = mpTresTypeGroupData->getConstDataPointer();
|
||||
} else {
|
||||
mpFmpTresTypeGroupDataList = NULL;
|
||||
mpFmpTresTypeGroupData = NULL;
|
||||
mpTresData = NULL;
|
||||
mpFmpTresTypeGroupDataListAll = mpRoomData->getTypeGroupDataListAll();
|
||||
if (mpFmpTresTypeGroupDataListAll != NULL) {
|
||||
mpFmpTresTypeGroupDataList =
|
||||
mpFmpTresTypeGroupDataListAll->getTypeGroupDataList(mTypeGroupNo);
|
||||
if (mpFmpTresTypeGroupDataList != NULL) {
|
||||
mpFmpTresTypeGroupData = mpFmpTresTypeGroupDataList->getTypeGroupDataHead();
|
||||
if (mpFmpTresTypeGroupData != NULL) {
|
||||
do {
|
||||
mpTresData = mpFmpTresTypeGroupData->getTresData();
|
||||
if (mpTresData != NULL) {
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
mpFmpTresTypeGroupData = mpFmpTresTypeGroupData->getNextData();
|
||||
} while (mpTresData != NULL); // !@bug presumably supposed to be mpFmpTresTypeGroupData != NULL
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E2BC-8003E350 038BFC 0094+00 1/1 0/0 0/0 .text getData__22dMenuFmapIconPointer_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::getData() {
|
||||
bool ret = false;
|
||||
if (!strcmp(mpStageData->getStageName(), dComIfGp_getStartStageName())) {
|
||||
if (mpTresTypeGroupData != NULL
|
||||
&& mpRoomData->getRoomNo() == mpTresTypeGroupData->getRoomNo())
|
||||
{
|
||||
mpTresData = mpTresTypeGroupData->getConstDataPointer();
|
||||
ret = true;
|
||||
}
|
||||
} else {
|
||||
if (mpTresData != NULL) {
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E350-8003E37C 038C90 002C+00 2/2 0/0 0/0 .text getFirstRoomData__22dMenuFmapIconPointer_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getFirstRoomData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getFirstRoomData__22dMenuFmapIconPointer_cFv.s"
|
||||
void dMenuFmapIconPointer_c::getFirstRoomData() {
|
||||
mpRoomData = mpStageData->getFmapRoomDataTop();
|
||||
getFirstData();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E37C-8003E3A4 038CBC 0028+00 1/1 0/0 0/0 .text getNextRoomData__22dMenuFmapIconPointer_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getNextRoomData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getNextRoomData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::getNextRoomData() {
|
||||
bool ret = false;
|
||||
mpRoomData = mpRoomData->getNextData();
|
||||
if (mpRoomData == NULL) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E3A4-8003E3D8 038CE4 0034+00 1/1 0/0 0/0 .text getNextStageData__22dMenuFmapIconPointer_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getNextStageData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getNextStageData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::getNextStageData() {
|
||||
bool ret = false;
|
||||
mStageNo++;
|
||||
mpStageData = mpStageData->getNextData();
|
||||
if (mpStageData == NULL) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E3D8-8003E490 038D18 00B8+00 1/1 0/0 0/0 .text getNextData__22dMenuFmapIconPointer_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getNextData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getNextData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::getNextData() {
|
||||
bool ret = true;
|
||||
if (!strcmp(mpStageData->getStageName(), dComIfGp_getStartStageName())) {
|
||||
if (mpTresTypeGroupData != NULL) {
|
||||
mpTresTypeGroupData = dTres_c::getNextData(mpTresTypeGroupData);
|
||||
if (mpTresTypeGroupData != NULL) {
|
||||
mpTresData = mpTresTypeGroupData->getConstDataPointer();
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mpFmpTresTypeGroupData != NULL) {
|
||||
mpFmpTresTypeGroupData = mpFmpTresTypeGroupData->getNextData();
|
||||
if (mpFmpTresTypeGroupData != NULL) {
|
||||
mpTresData = mpFmpTresTypeGroupData->getTresData();
|
||||
if (mpTresData != NULL) {
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E490-8003E510 038DD0 0080+00 1/1 3/3 0/0 .text nextData__22dMenuFmapIconPointer_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::nextData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/nextData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::nextData() {
|
||||
bool ret = false;
|
||||
if (getNextData()) {
|
||||
if (getNextRoomData()) {
|
||||
if (getNextStageData()) {
|
||||
ret = true;
|
||||
} else {
|
||||
getFirstRoomData();
|
||||
}
|
||||
} else {
|
||||
getFirstData();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E510-8003E578 038E50 0068+00 0/0 3/3 0/0 .text getValidData__22dMenuFmapIconPointer_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconPointer_c::getValidData() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getValidData__22dMenuFmapIconPointer_cFv.s"
|
||||
bool dMenuFmapIconPointer_c::getValidData() {
|
||||
bool iVar1, iVar2 = false;
|
||||
do {
|
||||
iVar1 = getData();
|
||||
if (!iVar1) {
|
||||
iVar2 = nextData();
|
||||
}
|
||||
} while (!iVar2 && !iVar1);
|
||||
return iVar2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003E578-8003E6E8 038EB8 0170+00 0/0 3/3 0/0 .text
|
||||
* getPosition__19dMenuFmapIconDisp_cFPiPiPfPfPPCQ27dTres_c6data_s */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconDisp_c::getPosition(int* param_0, int* param_1, f32* param_2, f32* param_3,
|
||||
dTres_c::data_s const** param_4) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getPosition__19dMenuFmapIconDisp_cFPiPiPfPfPPCQ27dTres_c6data_s.s"
|
||||
}
|
||||
#pragma pop
|
||||
bool dMenuFmapIconDisp_c::getPosition(int* o_stageNo, int* o_roomNo, f32* o_posX, f32* o_posZ,
|
||||
dTres_c::data_s const** o_tresData) {
|
||||
f32 offset_x = mpRegionData->getRegionOffsetX() + mpStageData->getOffsetX();
|
||||
f32 offset_z = mpRegionData->getRegionOffsetZ() + mpStageData->getOffsetZ();
|
||||
|
||||
if (o_posX != NULL) {
|
||||
*o_posX = 0.0f;
|
||||
}
|
||||
if (o_posZ != NULL) {
|
||||
*o_posZ = 0.0f;
|
||||
}
|
||||
if (o_stageNo != NULL) {
|
||||
*o_stageNo = mStageNo;
|
||||
}
|
||||
if (o_roomNo != NULL) {
|
||||
*o_roomNo = mpRoomData->getRoomNo();
|
||||
}
|
||||
|
||||
if (!strcmp(mpStageData->getStageName(), dComIfGp_getStartStageName())) {
|
||||
if (mpTresTypeGroupData != NULL) {
|
||||
if (o_tresData != NULL) {
|
||||
*o_tresData = mpTresTypeGroupData->getConstDataPointer();
|
||||
}
|
||||
if (o_posX != NULL) {
|
||||
*o_posX = offset_x + mpTresTypeGroupData->getPos()->x;
|
||||
}
|
||||
if (o_posZ != NULL) {
|
||||
*o_posZ = offset_z + mpTresTypeGroupData->getPos()->z;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mpTresData != NULL) {
|
||||
if (o_tresData != NULL) {
|
||||
*o_tresData = mpTresData;
|
||||
}
|
||||
if (o_posX != NULL) {
|
||||
*o_posX = offset_x + mpTresData->mPos.x;
|
||||
}
|
||||
if (o_posZ != NULL) {
|
||||
*o_posZ = offset_z + mpTresData->mPos.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
/* ############################################################################################## */
|
||||
/* 803A7D38-803A7D74 -00001 003C+00 1/1 0/0 0/0 .data @4467 */
|
||||
SECTION_DATA static void* lit_4467[15] = {
|
||||
@@ -404,52 +655,123 @@ SECTION_DATA static void* lit_4467[15] = {
|
||||
(void*)(((char*)isDrawDisp__19dMenuFmapIconDisp_cFv) + 0x388),
|
||||
(void*)(((char*)isDrawDisp__19dMenuFmapIconDisp_cFv) + 0x388),
|
||||
};
|
||||
#endif
|
||||
|
||||
/* 8003E6E8-8003EB10 039028 0428+00 2/0 3/3 0/0 .text isDrawDisp__19dMenuFmapIconDisp_cFv
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
//? regalloc
|
||||
bool dMenuFmapIconDisp_c::isDrawDisp() {
|
||||
bool ret;
|
||||
|
||||
dMenu_Fmap_stage_arc_data_c* stage_arc = mpStageData->getStageArc();
|
||||
if (stage_arc == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 save_table_no = stage_arc->getSaveTableNo();
|
||||
int room_no = mpRoomData->getRoomNo();
|
||||
bool bVar2 = (mStayStageNo == mStageNo && mStayRoomNo == room_no) || mpRoomData->isArrival();
|
||||
ret = false;
|
||||
bool bVar1;
|
||||
|
||||
switch (mTypeGroupNo) {
|
||||
case 1:
|
||||
case 8:
|
||||
if (save_table_no == mSaveTbl) {
|
||||
ret = bVar2 && (mpTresData->mSwBit == 0xff ||
|
||||
(mpTresData->mSwBit != 0xff && dComIfGs_isSwitch(mpTresData->mSwBit, room_no)));
|
||||
} else {
|
||||
ret = bVar2 && (mpTresData->mSwBit == 0xff ||
|
||||
(mpTresData->mSwBit != 0xff && mpTresData->mSwBit < 0x80
|
||||
&& dComIfGs_isStageSwitch(save_table_no, mpTresData->mSwBit)));
|
||||
}
|
||||
break;
|
||||
|
||||
case 4:
|
||||
bVar1 = false;
|
||||
if (dComIfGp_isLightDropMapVisible()) {
|
||||
if (dComIfGp_getStartStageDarkArea() == 2) {
|
||||
int tres_no = mpTresData->mNo;
|
||||
if (tres_no == 0x33 || tres_no == 0x34 || tres_no == 0x35) {
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[119])) {
|
||||
bVar1 = true;
|
||||
}
|
||||
} else {
|
||||
bVar1 = true;
|
||||
}
|
||||
} else {
|
||||
bVar1 = true;
|
||||
}
|
||||
}
|
||||
if (bVar1 && mpTresData->mNo != 0xff && !dComIfGs_isStageTbox(save_table_no, mpTresData->mNo)) {
|
||||
ret = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (save_table_no == mSaveTbl) {
|
||||
ret = (mpTresData->mNo == 0xff ||
|
||||
(mpTresData->mNo != 0xff && !dComIfGs_isTbox(mpTresData->mNo)))
|
||||
&& (mpTresData->mSwBit == 0xff || (mpTresData->mSwBit != 0xff
|
||||
&& dComIfGs_isSwitch(mpTresData->mSwBit, room_no)));
|
||||
} else {
|
||||
ret = (mpTresData->mNo == 0xff || (mpTresData->mNo != 0xff
|
||||
&& !dComIfGs_isStageTbox(save_table_no, mpTresData->mNo)))
|
||||
&& (mpTresData->mSwBit == 0xff ||
|
||||
(mpTresData->mSwBit != 0xff && mpTresData->mSwBit < 0x80 &&
|
||||
dComIfGs_isStageSwitch(save_table_no, mpTresData->mSwBit)));
|
||||
}
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if (save_table_no == mSaveTbl) {
|
||||
ret = dComIfGs_isSwitch(mpTresData->mSwBit, room_no) ? true : false;
|
||||
} else {
|
||||
if (mpTresData->mSwBit < 0x80) {
|
||||
ret = dComIfGs_isStageSwitch(save_table_no, mpTresData->mSwBit) ? true : false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 10:
|
||||
ret = mpTresData->mNo != 0xff && dComIfGs_isStageTbox(save_table_no, mpTresData->mNo);
|
||||
break;
|
||||
|
||||
case 13:
|
||||
case 14:
|
||||
if (save_table_no == mSaveTbl) {
|
||||
ret = mpTresData->mSwBit == 0xff ||
|
||||
(mpTresData->mSwBit != 0xff && dComIfGs_isSwitch(mpTresData->mSwBit, room_no));
|
||||
} else {
|
||||
ret = mpTresData->mSwBit == 0xff || (mpTresData->mSwBit < 0x80
|
||||
&& dComIfGs_isStageSwitch(save_table_no, mpTresData->mSwBit));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuFmapIconDisp_c::isDrawDisp() {
|
||||
asm bool dMenuFmapIconDisp_c::isDrawDisp() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/isDrawDisp__19dMenuFmapIconDisp_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003EB10-8003EB70 039450 0060+00 1/1 1/1 0/0 .text __dt__26fmpTresTypeGroupDataList_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fmpTresTypeGroupDataList_c::~fmpTresTypeGroupDataList_c() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/__dt__26fmpTresTypeGroupDataList_cFv.s"
|
||||
fmpTresTypeGroupDataList_c::~fmpTresTypeGroupDataList_c() {
|
||||
if (mpTypeGroupDataHead != NULL) {
|
||||
delete mpTypeGroupDataHead;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003EB70-8003EC90 0394B0 0120+00 1/1 0/0 0/0 .text __dt__22fmpTresTypeGroupData_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fmpTresTypeGroupData_c::~fmpTresTypeGroupData_c() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/__dt__22fmpTresTypeGroupData_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003EC90-8003ECA0 0395D0 0010+00 1/1 0/0 0/0 .text __ct__26fmpTresTypeGroupDataList_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fmpTresTypeGroupDataList_c::fmpTresTypeGroupDataList_c() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/__ct__26fmpTresTypeGroupDataList_cFv.s"
|
||||
fmpTresTypeGroupDataList_c::fmpTresTypeGroupDataList_c() {
|
||||
mpTypeGroupDataHead = NULL;
|
||||
mpNextData = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A7D74-803A7D80 004E94 000C+00 0/0 3/3 0/0 .data __vt__19dMenuFmapIconDisp_c */
|
||||
SECTION_DATA extern void* __vt__19dMenuFmapIconDisp_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)isDrawDisp__19dMenuFmapIconDisp_cFv,
|
||||
};
|
||||
|
||||
+2560
-2112
File diff suppressed because it is too large
Load Diff
+1637
-1768
File diff suppressed because it is too large
Load Diff
+544
-413
File diff suppressed because it is too large
Load Diff
@@ -654,7 +654,7 @@ bool dMenu_Ring_c::isMoveEnd() {
|
||||
if (mStatus == STATUS_WAIT && mOldStatus != STATUS_EXPLAIN_FORCE && mOldStatus != STATUS_EXPLAIN) {
|
||||
if (dMw_UP_TRIGGER() || dMw_DOWN_TRIGGER() || dMw_B_TRIGGER() ||
|
||||
dMeter2Info_getWarpStatus() == 2 || dMeter2Info_getWarpStatus() == 1 ||
|
||||
dMeter2Info_isTouchKeyCheck(0x4000) != 0)
|
||||
dMeter2Info_isTouchKeyCheck(0xe))
|
||||
{
|
||||
if (dMw_UP_TRIGGER()) {
|
||||
mRingOrigin = 0;
|
||||
@@ -1354,7 +1354,7 @@ void dMenu_Ring_c::stick_wait_proc() {
|
||||
} else {
|
||||
setDoStatus(0);
|
||||
}
|
||||
if (dMw_A_TRIGGER() && !dMeter2Info_isTouchKeyCheck(0x4000) && openExplain(item)) {
|
||||
if (dMw_A_TRIGGER() && !dMeter2Info_isTouchKeyCheck(0xe) && openExplain(item)) {
|
||||
dMeter2Info_setItemExplainWindowStatus(1);
|
||||
field_0x6c4 = mCurrentSlot;
|
||||
setStatus(STATUS_EXPLAIN);
|
||||
@@ -1362,7 +1362,7 @@ void dMenu_Ring_c::stick_wait_proc() {
|
||||
setDoStatus(0);
|
||||
return;
|
||||
}
|
||||
if (dMw_A_TRIGGER() && !dMeter2Info_isTouchKeyCheck(0x4000)) {
|
||||
if (dMw_A_TRIGGER() && !dMeter2Info_isTouchKeyCheck(0xe)) {
|
||||
Z2GetAudioMgr()->seStart(Z2SE_SYS_ERROR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
if (mWaitFrames > 0) {
|
||||
|
||||
@@ -2125,8 +2125,8 @@ void dMw_c::dMw_fmap_create() {
|
||||
tmp = 3;
|
||||
}
|
||||
|
||||
mpMenuFmap = new dMenu_Fmap_c(mpHeap, mpStick, mpCStick, field_0x14E, field_0x14F, field_0x150,
|
||||
field_0x13c, field_0x140, tmp);
|
||||
mpMenuFmap = new dMenu_Fmap_c(mpHeap, mpStick, mpCStick, mFmapProcess, mFmapRegionCursor,
|
||||
mFmapStageCursor, mFmapStageTransX, mFmapStageTransZ, tmp);
|
||||
|
||||
if (mpCapture == NULL) {
|
||||
mpCapture = new dDlst_MENU_CAPTURE_c();
|
||||
@@ -2143,11 +2143,11 @@ bool dMw_c::dMw_fmap_delete(bool param_0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
field_0x14E = mpMenuFmap->getProcess();
|
||||
field_0x14F = mpMenuFmap->getRegionCursor();
|
||||
field_0x150 = mpMenuFmap->getStageCursor();
|
||||
field_0x13c = mpMenuFmap->getStageTransX();
|
||||
field_0x140 = mpMenuFmap->getStageTransZ();
|
||||
mFmapProcess = mpMenuFmap->getProcess();
|
||||
mFmapRegionCursor = mpMenuFmap->getRegionCursor();
|
||||
mFmapStageCursor = mpMenuFmap->getStageCursor();
|
||||
mFmapStageTransX = mpMenuFmap->getStageTransX();
|
||||
mFmapStageTransZ = mpMenuFmap->getStageTransZ();
|
||||
|
||||
mpMenuFmap->_delete();
|
||||
delete mpMenuFmap;
|
||||
@@ -2521,14 +2521,14 @@ int dMw_c::_create() {
|
||||
field_0x148 = 0;
|
||||
field_0x14C = 0;
|
||||
field_0x14D = 0;
|
||||
field_0x14E = 0;
|
||||
field_0x14F = 0;
|
||||
field_0x150 = 0;
|
||||
mFmapProcess = 0;
|
||||
mFmapRegionCursor = 0;
|
||||
mFmapStageCursor = 0;
|
||||
field_0x151 = 0;
|
||||
field_0x152 = 0;
|
||||
f32 tmp = FLOAT_LABEL(lit_4152);
|
||||
field_0x13c = tmp;
|
||||
field_0x140 = tmp;
|
||||
mFmapStageTransX = tmp;
|
||||
mFmapStageTransZ = tmp;
|
||||
field_0x153 = 0;
|
||||
onPauseWindow();
|
||||
field_0x149 = 0;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "d/meter/d_meter_HIO.h"
|
||||
#include "d/save/d_save.h"
|
||||
#include "JSystem/JKernel/JKRArchive.h"
|
||||
#include "JSystem/JKernel/JKRAramArchive.h"
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
@@ -1333,7 +1333,7 @@ dMeter_mapIconHIO_c::dMeter_mapIconHIO_c() {
|
||||
dMeter_fmapHIO_c::dMeter_fmapHIO_c() {
|
||||
field_0xc = NULL;
|
||||
field_0x10 = NULL;
|
||||
field_0x8 = NULL;
|
||||
mpArchive = NULL;
|
||||
|
||||
mDisplayFrameNum = 8;
|
||||
mUndisplayFrameNum = 6;
|
||||
@@ -1389,7 +1389,7 @@ dMeter_fmapHIO_c::dMeter_fmapHIO_c() {
|
||||
mBackgroundAlpha = 1.0f;
|
||||
mBackgroundFrontAlpha = 0.7f;
|
||||
|
||||
field_0x2f9 = 0;
|
||||
field_0x2f9 = false;
|
||||
mTerminalOutput = false;
|
||||
mPortalDataTerminalOutput = false;
|
||||
mRegionBitTerminalOutput = false;
|
||||
@@ -1520,10 +1520,10 @@ dMeter_fmapHIO_c::~dMeter_fmapHIO_c() {
|
||||
field_0x10 = NULL;
|
||||
}
|
||||
|
||||
if (field_0x8 != NULL) {
|
||||
field_0x8->unmount();
|
||||
delete field_0x8;
|
||||
field_0x8 = NULL;
|
||||
if (mpArchive != NULL) {
|
||||
mpArchive->unmount();
|
||||
delete mpArchive;
|
||||
mpArchive = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user