mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 15:01:53 -04:00
229527daf7
* Clean up various inlines/fakematches/comments * Copy OptRuby inline name from TWW debug * Resolve all dEvt_control_c related fakematches, return pointer instead of reference * Fix some more missing inline usages
1744 lines
46 KiB
C++
1744 lines
46 KiB
C++
#include "d/dolzel.h" // IWYU pragma: keep
|
|
|
|
#include "JSystem/JKernel/JKRExpHeap.h"
|
|
#include "d/actor/d_a_player.h"
|
|
#include "d/d_lib.h"
|
|
#include "d/d_menu_collect.h"
|
|
#include "d/d_menu_dmap.h"
|
|
#include "d/d_menu_fishing.h"
|
|
#include "d/d_menu_fmap.h"
|
|
#include "d/d_menu_insect.h"
|
|
#include "d/d_menu_letter.h"
|
|
#include "d/d_menu_option.h"
|
|
#include "d/d_menu_ring.h"
|
|
#include "d/d_menu_save.h"
|
|
#include "d/d_menu_skill.h"
|
|
#include "d/d_menu_window.h"
|
|
|
|
#include "d/d_camera.h"
|
|
#include "d/d_menu_window_HIO.h"
|
|
#include "d/d_meter2.h"
|
|
#include "d/d_meter2_info.h"
|
|
#include "d/d_meter_HIO.h"
|
|
#include "d/d_meter_map.h"
|
|
#include "d/d_msg_object.h"
|
|
#include "f_op/f_op_msg_mng.h"
|
|
#include "f_op/f_op_overlap_mng.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
|
|
class dDlst_MENU_CAPTURE_c : public dDlst_base_c {
|
|
public:
|
|
virtual void draw() {
|
|
if (getDrawFlag() == 1) {
|
|
setDrawFlag();
|
|
dComIfGp_onPauseFlag();
|
|
GXSetTexCopySrc(0, 0, FB_WIDTH, FB_HEIGHT);
|
|
GXSetTexCopyDst(FB_WIDTH / 2, FB_HEIGHT / 2, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_ENABLE);
|
|
GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE);
|
|
GXPixModeSync();
|
|
} else {
|
|
GXTexObj tex;
|
|
GXInitTexObj(&tex, mDoGph_gInf_c::getFrameBufferTex(), FB_WIDTH / 2, FB_HEIGHT / 2,
|
|
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
|
GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
|
GXLoadTexObj(&tex, GX_TEXMAP0);
|
|
GXSetNumChans(0);
|
|
GXSetNumTexGens(1);
|
|
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 60, GX_FALSE, 125);
|
|
GXSetNumTevStages(1);
|
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
|
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
|
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
|
const GXColor color = {0, 0, 0, mAlpha};
|
|
GXSetTevColor(GX_TEVREG0, color);
|
|
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
|
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
|
GXSetZCompLoc(GX_TRUE);
|
|
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_OR);
|
|
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
|
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
|
GXSetFogRangeAdj(GX_FALSE, 0, NULL);
|
|
GXSetCullMode(GX_CULL_NONE);
|
|
GXSetDither(GX_TRUE);
|
|
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
|
|
GXSetCurrentMtx(0);
|
|
GXClearVtxDesc();
|
|
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
|
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0);
|
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
|
|
|
|
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
|
GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0);
|
|
GXTexCoord2s8(0, 0);
|
|
|
|
GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0);
|
|
GXTexCoord2s8(1, 0);
|
|
|
|
GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0);
|
|
GXTexCoord2s8(1, 1);
|
|
|
|
GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0);
|
|
GXTexCoord2s8(0, 1);
|
|
GXEnd();
|
|
}
|
|
}
|
|
|
|
virtual ~dDlst_MENU_CAPTURE_c() {}
|
|
|
|
dDlst_MENU_CAPTURE_c() {
|
|
mFlag = 0;
|
|
mAlpha = 255;
|
|
mTopFlag = 0;
|
|
}
|
|
|
|
void setCaptureFlag() { mFlag = 1; }
|
|
bool checkDraw() { return mFlag; }
|
|
u8 getAlpha() { return mAlpha; }
|
|
u8 getTopFlag() { return mTopFlag; }
|
|
u8 getDrawFlag() { return mFlag; }
|
|
void setDrawFlag() { mFlag = 3; }
|
|
|
|
private:
|
|
/* 0x4 */ u8 mFlag;
|
|
/* 0x5 */ u8 mAlpha;
|
|
/* 0x6 */ u8 mTopFlag;
|
|
};
|
|
|
|
BOOL dMw_UP_TRIGGER() {
|
|
return mDoCPd_c::getTrigUp(PAD_1) != 0;
|
|
}
|
|
|
|
BOOL dMw_DOWN_TRIGGER() {
|
|
return mDoCPd_c::getTrigDown(PAD_1) != 0;
|
|
}
|
|
|
|
BOOL dMw_LEFT_TRIGGER() {
|
|
if (mDoCPd_c::getTrigLeft(PAD_1) && !dMw_UP_TRIGGER()) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
BOOL dMw_RIGHT_TRIGGER() {
|
|
if (mDoCPd_c::getTrigRight(PAD_1) && !dMw_UP_TRIGGER()) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
BOOL dMw_A_TRIGGER() {
|
|
return mDoCPd_c::getTrigA(PAD_1) != 0;
|
|
}
|
|
|
|
BOOL dMw_B_TRIGGER() {
|
|
return mDoCPd_c::getTrigB(PAD_1) != 0;
|
|
}
|
|
|
|
BOOL dMw_Z_TRIGGER() {
|
|
return mDoCPd_c::getTrigZ(PAD_1) != 0;
|
|
}
|
|
|
|
BOOL dMw_START_TRIGGER() {
|
|
return mDoCPd_c::getTrigStart(PAD_1) != 0;
|
|
}
|
|
|
|
void dMw_onPauseWindow() {
|
|
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
|
if (menu_window != NULL) {
|
|
menu_window->onPauseWindow();
|
|
}
|
|
}
|
|
|
|
void dMw_offPauseWindow() {
|
|
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
|
if (menu_window != NULL) {
|
|
menu_window->offPauseWindow();
|
|
}
|
|
}
|
|
|
|
void dMw_onMenuRing() {
|
|
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
|
if (menu_window != NULL) {
|
|
menu_window->onShowFlag();
|
|
}
|
|
}
|
|
|
|
void dMw_offMenuRing() {
|
|
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
|
if (menu_window != NULL) {
|
|
menu_window->offShowFlag();
|
|
}
|
|
}
|
|
|
|
static BOOL dMw_isMenuRing() {
|
|
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
|
if (menu_window != NULL) {
|
|
return menu_window->isShowFlag();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
typedef void (dMw_c::*initFunc)(u8);
|
|
initFunc init_proc[] = {
|
|
&dMw_c::key_wait_init,
|
|
&dMw_c::ring_open_init,
|
|
&dMw_c::ring_move_init,
|
|
&dMw_c::ring_close_init,
|
|
&dMw_c::collect_open_init,
|
|
&dMw_c::collect_move_init,
|
|
&dMw_c::collect_close_init,
|
|
&dMw_c::fmap_open_init,
|
|
&dMw_c::fmap_move_init,
|
|
&dMw_c::fmap_close_init,
|
|
&dMw_c::dmap_open_init,
|
|
&dMw_c::dmap_move_init,
|
|
&dMw_c::dmap_close_init,
|
|
&dMw_c::collect_save_open_init,
|
|
&dMw_c::collect_save_move_init,
|
|
&dMw_c::collect_save_close_init,
|
|
&dMw_c::collect_option_open_init,
|
|
&dMw_c::collect_option_move_init,
|
|
&dMw_c::collect_option_close_init,
|
|
&dMw_c::collect_letter_open_init,
|
|
&dMw_c::collect_letter_move_init,
|
|
&dMw_c::collect_letter_close_init,
|
|
&dMw_c::collect_fishing_open_init,
|
|
&dMw_c::collect_fishing_move_init,
|
|
&dMw_c::collect_fishing_close_init,
|
|
&dMw_c::collect_skill_open_init,
|
|
&dMw_c::collect_skill_move_init,
|
|
&dMw_c::collect_skill_close_init,
|
|
&dMw_c::collect_insect_open_init,
|
|
&dMw_c::collect_insect_move_init,
|
|
&dMw_c::collect_insect_close_init,
|
|
&dMw_c::insect_open_init,
|
|
&dMw_c::insect_open2_init,
|
|
&dMw_c::insect_move_init,
|
|
&dMw_c::insect_close_init,
|
|
};
|
|
|
|
typedef void (dMw_c::*procFunc)();
|
|
procFunc move_proc[] = {
|
|
&dMw_c::key_wait_proc,
|
|
&dMw_c::ring_open_proc,
|
|
&dMw_c::ring_move_proc,
|
|
&dMw_c::ring_close_proc,
|
|
&dMw_c::collect_open_proc,
|
|
&dMw_c::collect_move_proc,
|
|
&dMw_c::collect_close_proc,
|
|
&dMw_c::fmap_open_proc,
|
|
&dMw_c::fmap_move_proc,
|
|
&dMw_c::fmap_close_proc,
|
|
&dMw_c::dmap_open_proc,
|
|
&dMw_c::dmap_move_proc,
|
|
&dMw_c::dmap_close_proc,
|
|
&dMw_c::collect_save_open_proc,
|
|
&dMw_c::collect_save_move_proc,
|
|
&dMw_c::collect_save_close_proc,
|
|
&dMw_c::collect_option_open_proc,
|
|
&dMw_c::collect_option_move_proc,
|
|
&dMw_c::collect_option_close_proc,
|
|
&dMw_c::collect_letter_open_proc,
|
|
&dMw_c::collect_letter_move_proc,
|
|
&dMw_c::collect_letter_close_proc,
|
|
&dMw_c::collect_fishing_open_proc,
|
|
&dMw_c::collect_fishing_move_proc,
|
|
&dMw_c::collect_fishing_close_proc,
|
|
&dMw_c::collect_skill_open_proc,
|
|
&dMw_c::collect_skill_move_proc,
|
|
&dMw_c::collect_skill_close_proc,
|
|
&dMw_c::collect_insect_open_proc,
|
|
&dMw_c::collect_insect_move_proc,
|
|
&dMw_c::collect_insect_close_proc,
|
|
&dMw_c::insect_open_proc,
|
|
&dMw_c::insect_open2_proc,
|
|
&dMw_c::insect_move_proc,
|
|
&dMw_c::insect_close_proc,
|
|
};
|
|
|
|
void dMw_c::key_wait_init(u8 i_proc) {
|
|
dMeter2Info_setWindowStatus(0);
|
|
dMw_capture_delete();
|
|
|
|
switch (i_proc) {
|
|
case COLLECT_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_collect_delete(true);
|
|
break;
|
|
case DMAP_CLOSE:
|
|
dMw_dmap_delete(true);
|
|
break;
|
|
case FMAP_CLOSE:
|
|
dMw_fmap_delete(true);
|
|
break;
|
|
case RING_CLOSE:
|
|
dMw_ring_delete();
|
|
break;
|
|
case SAVE_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_save_delete();
|
|
break;
|
|
case INSECT_AGITHA_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_insect_delete();
|
|
break;
|
|
}
|
|
mpHeap->freeAll();
|
|
dComIfGp_offHeapLockFlag(0);
|
|
}
|
|
|
|
void dMw_c::ring_open_init(u8) {
|
|
dMeter2Info_setWindowStatus(2);
|
|
}
|
|
|
|
void dMw_c::ring_move_init(u8) {}
|
|
|
|
void dMw_c::ring_close_init(u8) {}
|
|
|
|
static f32 dummy() {
|
|
return 0.0f;
|
|
}
|
|
|
|
void dMw_c::collect_open_init(u8) {
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMw_fade_out();
|
|
dMw_capture_create();
|
|
field_0x153 = 0;
|
|
}
|
|
|
|
void dMw_c::collect_move_init(u8 i_proc) {
|
|
switch (i_proc) {
|
|
case COLLECT_OPEN:
|
|
dMw_fade_in();
|
|
dComIfGp_setHeapLockFlag(1);
|
|
dMw_collect_create();
|
|
break;
|
|
case SAVE_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_save_delete();
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
dMw_collect_create();
|
|
break;
|
|
case OPTIONS_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_option_delete();
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
dMw_collect_create();
|
|
break;
|
|
case LETTER_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_letter_delete();
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
dMw_collect_create();
|
|
break;
|
|
case FISHING_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_fishing_delete();
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
dMw_collect_create();
|
|
break;
|
|
case SKILL_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_skill_delete();
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
dMw_collect_create();
|
|
break;
|
|
case INSECT_CLOSE:
|
|
dMw_fade_in();
|
|
dMw_insect_delete();
|
|
field_0x144 = 3;
|
|
dMeter2Info_setWindowStatus(3);
|
|
dMw_collect_create();
|
|
break;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_close_init(u8) {
|
|
if (mpMenuCollect->getSubWindowOpenCheck() != 1 && mpMenuCollect->getSubWindowOpenCheck() != 2)
|
|
{
|
|
if (mpMenuCollect->getSubWindowOpenCheck() == 3 ||
|
|
mpMenuCollect->getSubWindowOpenCheck() == 4 ||
|
|
mpMenuCollect->getSubWindowOpenCheck() == 5 ||
|
|
mpMenuCollect->getSubWindowOpenCheck() == 6)
|
|
{
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
|
|
-1.0f, 0);
|
|
} else {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
dMeter2Info_set2DVibrationM();
|
|
}
|
|
}
|
|
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::fmap_open_init(u8) {
|
|
dMeter2Info_setWindowStatus(4);
|
|
field_0x153 = 0;
|
|
}
|
|
|
|
void dMw_c::fmap_move_init(u8) {}
|
|
|
|
void dMw_c::fmap_close_init(u8) {}
|
|
|
|
void dMw_c::dmap_open_init(u8) {
|
|
dMeter2Info_setWindowStatus(5);
|
|
field_0x153 = 0;
|
|
}
|
|
|
|
void dMw_c::dmap_move_init(u8) {}
|
|
|
|
void dMw_c::dmap_close_init(u8) {}
|
|
|
|
void dMw_c::collect_save_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
dMw_collect_delete(true);
|
|
dMw_save_create();
|
|
}
|
|
|
|
void dMw_c::collect_save_move_init(u8) {}
|
|
|
|
void dMw_c::collect_save_close_init(u8) {
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::collect_option_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
dMw_collect_delete(true);
|
|
dMw_option_create();
|
|
}
|
|
|
|
void dMw_c::collect_option_move_init(u8) {}
|
|
|
|
void dMw_c::collect_option_close_init(u8) {
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::collect_letter_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
field_0x152 = 0;
|
|
dMw_collect_delete(true);
|
|
dMw_letter_create();
|
|
}
|
|
|
|
void dMw_c::collect_letter_move_init(u8) {}
|
|
|
|
void dMw_c::collect_letter_close_init(u8) {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::collect_fishing_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
field_0x152 = 0;
|
|
dMw_collect_delete(true);
|
|
dMw_fishing_create();
|
|
}
|
|
|
|
void dMw_c::collect_fishing_move_init(u8) {}
|
|
|
|
void dMw_c::collect_fishing_close_init(u8) {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::collect_skill_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
field_0x152 = 0;
|
|
dMw_collect_delete(true);
|
|
dMw_skill_create();
|
|
}
|
|
|
|
void dMw_c::collect_skill_move_init(u8) {}
|
|
|
|
void dMw_c::collect_skill_close_init(u8) {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::collect_insect_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
field_0x152 = 0;
|
|
dMw_collect_delete(true);
|
|
dMw_insect_create(0);
|
|
}
|
|
|
|
void dMw_c::collect_insect_move_init(u8) {}
|
|
|
|
void dMw_c::collect_insect_close_init(u8) {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::insect_open_init(u8) {
|
|
field_0x144 = 10;
|
|
dMeter2Info_setWindowStatus(10);
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMw_fade_out();
|
|
dMw_capture_create();
|
|
}
|
|
|
|
void dMw_c::insect_open2_init(u8) {}
|
|
|
|
void dMw_c::insect_move_init(u8) {}
|
|
|
|
void dMw_c::insect_close_init(u8) {
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_SUB_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
|
dMeter2Info_set2DVibration();
|
|
dMw_fade_out();
|
|
}
|
|
|
|
void dMw_c::key_wait_proc() {
|
|
if (field_0x14B != 0) {
|
|
switch (field_0x14B) {
|
|
case 1:
|
|
dMw_ring_create(2);
|
|
break;
|
|
case 2:
|
|
dMw_ring_create(0);
|
|
break;
|
|
case 3:
|
|
dMw_ring_create(3);
|
|
break;
|
|
case 4:
|
|
dMw_ring_create(1);
|
|
break;
|
|
default:
|
|
dMw_ring_create(0xFF);
|
|
break;
|
|
}
|
|
|
|
mMenuProc = RING_OPEN;
|
|
field_0x14B = 0;
|
|
}
|
|
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == 1 &&
|
|
(dComIfGp_isHeapLockFlag() == 0 || dComIfGp_isHeapLockFlag() == 5) &&
|
|
dComIfGp_getMesgStatus() == 0 &&
|
|
dCam_getBody()->Mode() != 7 &&
|
|
dCam_getBody()->Mode() != 8 &&
|
|
!dComIfGp_checkCameraAttentionStatus(0, 8) &&
|
|
!dComIfGp_isPauseFlag() &&
|
|
isPauseWindow() &&
|
|
isPauseReady() &&
|
|
!fopOvlpM_IsDoingReq() &&
|
|
!mDoGph_gInf_c::isFade() &&
|
|
!daPy_getPlayerActorClass()->checkBottleSwingMode() &&
|
|
((!mDoCPd_c::getTrigA(PAD_1) && !mDoCPd_c::getTrigB(PAD_1)) || dMeter2Info_getMapStatus() == 4) &&
|
|
!isEventCheck() &&
|
|
dComIfGp_getMesgStatus() == 0)
|
|
{
|
|
BOOL var_r29;
|
|
if (field_0x14A != 0) {
|
|
var_r29 = 0;
|
|
}
|
|
|
|
if (dMeter2Info_getPauseStatus() == 8) {
|
|
dMsgObject_setKillMessageFlag();
|
|
|
|
if (dComIfGp_isHeapLockFlag() == 5) {
|
|
dMeter2Info_getMeterClass()->emphasisButtonDelete();
|
|
}
|
|
|
|
dComIfGp_setHeapLockFlag(1);
|
|
mMenuProc = INSECT_AGITHA_OPEN1;
|
|
dMeter2Info_resetPauseStatus();
|
|
} else if ((dMw_START_TRIGGER() && !dMw_A_TRIGGER()) &&
|
|
(dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1) &&
|
|
dMeter2Info_isWindowAccept(3) &&
|
|
!dComIfGp_isEnableNextStage())
|
|
{
|
|
dMsgObject_setKillMessageFlag();
|
|
|
|
if (dComIfGp_isHeapLockFlag() == 5) {
|
|
dMeter2Info_getMeterClass()->emphasisButtonDelete();
|
|
}
|
|
|
|
dComIfGp_setHeapLockFlag(1);
|
|
mMenuProc = COLLECT_OPEN;
|
|
} else if (dMeter2Info_getMapStatus() == 2 ||
|
|
dMeter2Info_getMapStatus() == 3 ||
|
|
dMeter2Info_getMapStatus() == 4 ||
|
|
dMeter2Info_getMapStatus() == 5 ||
|
|
dMeter2Info_getMapStatus() == 7 ||
|
|
dMeter2Info_getMapStatus() == 8 ||
|
|
dMeter2Info_getMapStatus() == 9 ||
|
|
dMeter2Info_getMapStatus() == 6 ||
|
|
g_fmapHIO.field_0x2f9)
|
|
{
|
|
dMsgObject_setKillMessageFlag();
|
|
|
|
if (dComIfGp_isHeapLockFlag() == 5) {
|
|
dMeter2Info_getMeterClass()->emphasisButtonDelete();
|
|
}
|
|
|
|
if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 0 ||
|
|
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 5 ||
|
|
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 3 ||
|
|
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 4 ||
|
|
dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 6 ||
|
|
dMeter2Info_getMapStatus() == 3 ||
|
|
dMeter2Info_getMapStatus() == 4 ||
|
|
dMeter2Info_getMapStatus() == 5 ||
|
|
dMeter2Info_getMapStatus() == 7 ||
|
|
dMeter2Info_getMapStatus() == 8 ||
|
|
dMeter2Info_getMapStatus() == 9)
|
|
{
|
|
dComIfGp_setHeapLockFlag(2);
|
|
mMenuProc = FMAP_OPEN;
|
|
dMw_fmap_create();
|
|
} else if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 1 || dMeter2Info_getMapStatus() == 6) {
|
|
dComIfGp_setHeapLockFlag(3);
|
|
mMenuProc = DMAP_OPEN;
|
|
dMw_dmap_create();
|
|
}
|
|
} else if ((((dMw_UP_TRIGGER() || dMw_DOWN_TRIGGER()) && !dMw_LEFT_TRIGGER() && !dMw_RIGHT_TRIGGER()) || dMeter2Info_isMenuInForce(2) || dMeter2Info_isTouchKeyCheck(2)) &&
|
|
dMeter2Info_isWindowAccept(2) &&
|
|
(dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1) &&
|
|
dMeter2Info_isItemOpenCheck() &&
|
|
!dComIfGp_isEnableNextStage())
|
|
{
|
|
dMsgObject_setKillMessageFlag();
|
|
|
|
if (dComIfGp_isHeapLockFlag() == 5) {
|
|
dMeter2Info_getMeterClass()->emphasisButtonDelete();
|
|
}
|
|
|
|
if (dMw_DOWN_TRIGGER()) {
|
|
field_0x14B = 1;
|
|
dMw_ring_create(2);
|
|
} else {
|
|
field_0x14B = 2;
|
|
dMw_ring_create(0);
|
|
}
|
|
|
|
mMenuProc = RING_OPEN;
|
|
field_0x14B = 0;
|
|
dComIfGp_setHeapLockFlag(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
void dMw_c::ring_open_proc() {
|
|
if (mpMenuRing->isOpen()) {
|
|
mMenuProc = RING_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::ring_move_proc() {
|
|
mpMenuRing->_move();
|
|
if (mpMenuRing->isMoveEnd()) {
|
|
mMenuProc = RING_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::ring_close_proc() {
|
|
if (mpMenuRing->isClose()) {
|
|
dMeter2Info_offMenuInForce(2);
|
|
mMenuProc = NO_MENU;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_open_proc() {
|
|
if (field_0x153 == 0) {
|
|
field_0x153 = 1;
|
|
dMeter2Info_set2DVibrationM();
|
|
}
|
|
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_move_proc() {
|
|
if (mpMenuCollect->getSubWindowOpenCheck()) {
|
|
mMenuProc = COLLECT_CLOSE;
|
|
} else if ((dMw_isPush_S_Button() && !mpMenuCollect->isKeyCheck()) || mpMenuCollect->isOutCheck()) {
|
|
mMenuProc = COLLECT_CLOSE;
|
|
} else {
|
|
mpMenuCollect->_move();
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == 0) {
|
|
if (mpMenuCollect->getSubWindowOpenCheck() == 1) {
|
|
mMenuProc = SAVE_OPEN;
|
|
} else if (mpMenuCollect->getSubWindowOpenCheck() == 2) {
|
|
mMenuProc = OPTIONS_OPEN;
|
|
} else if (mpMenuCollect->getSubWindowOpenCheck() == 3) {
|
|
mMenuProc = LETTER_OPEN;
|
|
} else if (mpMenuCollect->getSubWindowOpenCheck() == 4) {
|
|
mMenuProc = FISHING_OPEN;
|
|
} else if (mpMenuCollect->getSubWindowOpenCheck() == 5) {
|
|
mMenuProc = SKILL_OPEN;
|
|
} else if (mpMenuCollect->getSubWindowOpenCheck() == 6) {
|
|
mMenuProc = INSECT_OPEN;
|
|
} else {
|
|
mMenuProc = NO_MENU;
|
|
}
|
|
}
|
|
}
|
|
|
|
void dMw_c::fmap_open_proc() {
|
|
if (field_0x153 == 0) {
|
|
field_0x153 = 1;
|
|
dMeter2Info_set2DVibrationM();
|
|
}
|
|
|
|
if (mpMenuFmap->isOpen()) {
|
|
mMenuProc = FMAP_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::fmap_move_proc() {
|
|
mpMenuFmap->_move();
|
|
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == 1) {
|
|
mMenuProc = mpMenuFmap->getNextStatus(&field_0x14B);
|
|
|
|
if (g_fmapHIO.field_0x2f9 != 0) {
|
|
mMenuProc = FMAP_CLOSE;
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
|
|
-1.0f, 0);
|
|
}
|
|
|
|
if (dMeter2Info_getMeterMapClass() != NULL) {
|
|
if (dMeter2Info_getMapStatus() == 1) {
|
|
dMeter2Info_getMeterMapClass()->setDispPosInsideFlg_SE_On();
|
|
} else if (dMeter2Info_getMapStatus() == 0) {
|
|
dMeter2Info_getMeterMapClass()->setDispPosOutsideFlg_SE_On();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void dMw_c::fmap_close_proc() {
|
|
if (mpMenuFmap->isClose()) {
|
|
mMenuProc = NO_MENU;
|
|
}
|
|
}
|
|
|
|
void dMw_c::dmap_open_proc() {
|
|
if (field_0x153 == 0) {
|
|
field_0x153 = 1;
|
|
dMeter2Info_set2DVibrationM();
|
|
}
|
|
|
|
if (mpMenuDmap->isOpen()) {
|
|
mMenuProc = DMAP_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::dmap_move_proc() {
|
|
u8 nextStatus = mpMenuDmap->getNextStatus();
|
|
if (nextStatus == 1) {
|
|
if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) {
|
|
dMeter2Info_setMapStatus(1);
|
|
dMeter2Info_getMeterMapClass()->setDispPosInsideFlg_SE_On();
|
|
} else {
|
|
dMeter2Info_setMapStatus(0);
|
|
dMeter2Info_getMeterMapClass()->setDispPosOutsideFlg_SE_On();
|
|
}
|
|
dMeter2Info_setMapKeyDirection(0x200);
|
|
mMenuProc = DMAP_CLOSE;
|
|
mpMenuDmap->setInOutDir(3);
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
} else if (nextStatus == 2) {
|
|
dMeter2Info_setMapStatus(0);
|
|
dMeter2Info_setMapKeyDirection(0x400);
|
|
mMenuProc = DMAP_CLOSE;
|
|
dMeter2Info_getMeterMapClass()->setDispPosOutsideFlg_SE_On();
|
|
mpMenuDmap->setInOutDir(1);
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
} else if (nextStatus == 3) {
|
|
if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) {
|
|
dMeter2Info_setMapStatus(1);
|
|
} else {
|
|
dMeter2Info_setMapStatus(0);
|
|
}
|
|
|
|
mMenuProc = DMAP_CLOSE;
|
|
mpMenuDmap->setInOutDir(2);
|
|
Z2GetAudioMgr()->seStart(Z2SE_SY_MAP_CLOSE_L, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
} else {
|
|
mpMenuDmap->_move();
|
|
}
|
|
}
|
|
|
|
void dMw_c::dmap_close_proc() {
|
|
if (mpMenuDmap->isClose()) {
|
|
mMenuProc = NO_MENU;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_save_open_proc() {
|
|
if (mpMenuSave->getSaveStatus() == 1 && mpMenuSave->_open()) {
|
|
dMw_fade_in();
|
|
}
|
|
|
|
if (mpMenuSave->getSaveStatus() == 2) {
|
|
mMenuProc = SAVE_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_save_move_proc() {
|
|
if (mpMenuSave->getSaveStatus() == 2) {
|
|
mpMenuSave->_move();
|
|
}
|
|
|
|
if (mpMenuSave->getSaveStatus() == 3 || mpMenuSave->getSaveStatus() == 4) {
|
|
mMenuProc = SAVE_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_save_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == 0) {
|
|
mpMenuSave->_move();
|
|
|
|
if (mpMenuSave->getSaveStatus() == 3) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
} else {
|
|
mMenuProc = NO_MENU;
|
|
}
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_option_open_proc() {
|
|
if (mpMenuOption->getQuitStatus() == 1 && mpMenuOption->_open()) {
|
|
dMw_fade_in();
|
|
}
|
|
|
|
if (mpMenuOption->getQuitStatus() == 2 && mDoGph_gInf_c::getFader()->getStatus() == 1) {
|
|
mMenuProc = OPTIONS_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_option_move_proc() {
|
|
if (mpMenuOption->getQuitStatus() == 2) {
|
|
mpMenuOption->_move();
|
|
}
|
|
|
|
if (mpMenuOption->getQuitStatus() == 3) {
|
|
mMenuProc = OPTIONS_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_option_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == 0) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_letter_open_proc() {
|
|
if (mpMenuLetter->getStatus() == 1) {
|
|
mpMenuLetter->_open();
|
|
|
|
if (field_0x152 == 0 && mpMenuLetter->isSync()) {
|
|
dMw_fade_in();
|
|
field_0x152 = 1;
|
|
}
|
|
}
|
|
|
|
if (mpMenuLetter->getStatus() == 2 && field_0x152 == 1) {
|
|
mMenuProc = LETTER_MOVE;
|
|
field_0x152 = 0;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_letter_move_proc() {
|
|
if (mpMenuLetter->getStatus() == 2) {
|
|
mpMenuLetter->_move();
|
|
}
|
|
|
|
if (mpMenuLetter->getStatus() == 3) {
|
|
mMenuProc = LETTER_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_letter_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_fishing_open_proc() {
|
|
if (mpMenuFishing->getStatus() == dMenu_Fishing_c::READY_OPEN) {
|
|
mpMenuFishing->_open();
|
|
|
|
if (field_0x152 == 0 && mpMenuFishing->isSync()) {
|
|
dMw_fade_in();
|
|
field_0x152 = 1;
|
|
}
|
|
}
|
|
|
|
if (mpMenuFishing->getStatus() == dMenu_Fishing_c::READY_MOVE && field_0x152 == 1) {
|
|
mMenuProc = FISHING_MOVE;
|
|
field_0x152 = 0;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_fishing_move_proc() {
|
|
if (mpMenuFishing->getStatus() == dMenu_Fishing_c::READY_MOVE) {
|
|
mpMenuFishing->_move();
|
|
}
|
|
|
|
if (mpMenuFishing->getStatus() == dMenu_Fishing_c::READY_CLOSE) {
|
|
mMenuProc = FISHING_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_fishing_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_skill_open_proc() {
|
|
if (mpMenuSkill->getStatus() == 1) {
|
|
mpMenuSkill->_open();
|
|
if (field_0x152 == 0 && mpMenuSkill->isSync()) {
|
|
dMw_fade_in();
|
|
field_0x152 = 1;
|
|
}
|
|
}
|
|
|
|
if (mpMenuSkill->getStatus() == 2 && field_0x152 == 1) {
|
|
mMenuProc = SKILL_MOVE;
|
|
field_0x152 = 0;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_skill_move_proc() {
|
|
if (mpMenuSkill->getStatus() == 2) {
|
|
mpMenuSkill->_move();
|
|
}
|
|
|
|
if (mpMenuSkill->getStatus() == 3) {
|
|
mMenuProc = SKILL_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_skill_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_insect_open_proc() {
|
|
if (mpMenuInsect->getStatus() == 1) {
|
|
mpMenuInsect->_open();
|
|
if (field_0x152 == 0 && mpMenuInsect->isSync()) {
|
|
dMw_fade_in();
|
|
field_0x152 = 1;
|
|
}
|
|
}
|
|
|
|
if (mpMenuInsect->getStatus() == 2 && field_0x152 == 1) {
|
|
mMenuProc = INSECT_MOVE;
|
|
field_0x152 = 0;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_insect_move_proc() {
|
|
if (mpMenuInsect->getStatus() == 2) {
|
|
mpMenuInsect->_move();
|
|
}
|
|
|
|
if (mpMenuInsect->getStatus() == 3) {
|
|
mMenuProc = INSECT_CLOSE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::collect_insect_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
mMenuProc = COLLECT_MOVE;
|
|
}
|
|
}
|
|
|
|
void dMw_c::insect_open_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
field_0x152 = 0;
|
|
dComIfGp_setHeapLockFlag(1);
|
|
dMw_insect_create(1);
|
|
mMenuProc = INSECT_AGITHA_OPEN2;
|
|
}
|
|
}
|
|
|
|
void dMw_c::insect_open2_proc() {
|
|
if (mpMenuInsect->getStatus() == 1) {
|
|
mpMenuInsect->_open();
|
|
if (field_0x152 == 0 && mpMenuInsect->isSync()) {
|
|
dMw_fade_in();
|
|
field_0x152 = 1;
|
|
}
|
|
}
|
|
|
|
if (mpMenuInsect->getStatus() == 2 && field_0x152 == 1) {
|
|
mMenuProc = INSECT_AGITHA_MOVE;
|
|
field_0x152 = 0;
|
|
}
|
|
}
|
|
|
|
void dMw_c::insect_move_proc() {
|
|
if (mpMenuInsect != NULL) {
|
|
if (mpMenuInsect->getStatus() == 2) {
|
|
mpMenuInsect->_move();
|
|
}
|
|
|
|
if (mpMenuInsect->getStatus() == 3) {
|
|
mMenuProc = INSECT_AGITHA_CLOSE;
|
|
}
|
|
}
|
|
}
|
|
|
|
void dMw_c::insect_close_proc() {
|
|
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
|
|
mMenuProc = NO_MENU;
|
|
}
|
|
}
|
|
|
|
void dMw_c::dMw_capture_create() {
|
|
if (!dComIfGp_isPauseFlag() && mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(1996, mpCapture != NULL);
|
|
mpCapture->setCaptureFlag();
|
|
}
|
|
}
|
|
|
|
void dMw_c::dMw_capture_delete() {
|
|
if (dComIfGp_isPauseFlag()) {
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
dComIfGp_offPauseFlag();
|
|
field_0x151 = 2;
|
|
}
|
|
}
|
|
|
|
void dMw_c::dMw_ring_create(u8 i_origin) {
|
|
markMemSize();
|
|
dComIfGp_setHeapLockFlag(1);
|
|
|
|
mpMenuRing = new dMenu_Ring_c(mpHeap, mpStick, mpCStick, i_origin);
|
|
JUT_ASSERT(2038, mpMenuRing != NULL);
|
|
mpMenuRing->_create();
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2043, mpCapture != NULL);
|
|
}
|
|
|
|
mpCapture->setCaptureFlag();
|
|
}
|
|
|
|
bool dMw_c::dMw_ring_delete() {
|
|
if (mpMenuRing != NULL) {
|
|
mpMenuRing->_delete();
|
|
delete mpMenuRing;
|
|
mpMenuRing = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_collect_create() {
|
|
markMemSize();
|
|
|
|
mpMenuCollect = new dMenu_Collect_c(mpHeap, mpStick, mpCStick);
|
|
JUT_ASSERT(2093, mpMenuCollect != NULL);
|
|
mpMenuCollect->_create();
|
|
|
|
if (mDoCPd_c::getHoldLockL(PAD_1)) {
|
|
dMw_onButtonBit(1);
|
|
} else if (mDoCPd_c::getHoldLockR(PAD_1)) {
|
|
dMw_onButtonBit(2);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_collect_delete(bool) {
|
|
if (mpMenuCollect != NULL) {
|
|
mpMenuCollect->_delete();
|
|
delete mpMenuCollect;
|
|
mpMenuCollect = NULL;
|
|
}
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_fmap_create() {
|
|
markMemSize();
|
|
dComIfGp_setHeapLockFlag(2);
|
|
|
|
u8 tmp = 0;
|
|
if (dMeter2Info_getMapKeyDirection() == 0x400 || dMeter2Info_getMapStatus() == 3 ||
|
|
dMeter2Info_getMapStatus() == 4 || dMeter2Info_getMapStatus() == 5 ||
|
|
dMeter2Info_getMapStatus() == 7 || dMeter2Info_getMapStatus() == 8 ||
|
|
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6)
|
|
{
|
|
tmp = 1;
|
|
} else if (dMeter2Info_getMapKeyDirection() == 0x200) {
|
|
tmp = 3;
|
|
} else if (dMeter2Info_getMapKeyDirection() == 0x100) {
|
|
tmp = 2;
|
|
} else if (dMeter2Info_getMapKeyDirection() == 0x80) {
|
|
tmp = 3;
|
|
}
|
|
|
|
mpMenuFmap = new dMenu_Fmap_c(mpHeap, mpStick, mpCStick, mFmapProcess, mFmapRegionCursor,
|
|
mFmapStageCursor, mFmapStageTransX, mFmapStageTransZ, tmp);
|
|
JUT_ASSERT(2194, mpMenuFmap != NULL);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2200, mpCapture != NULL);
|
|
}
|
|
|
|
mpCapture->setCaptureFlag();
|
|
dMeter2Info_resetWarpStatus();
|
|
}
|
|
|
|
bool dMw_c::dMw_fmap_delete(bool param_0) {
|
|
if (mpMenuFmap != NULL) {
|
|
if (!mpMenuFmap->isSync()) {
|
|
return false;
|
|
}
|
|
|
|
mFmapProcess = mpMenuFmap->getProcess();
|
|
mFmapRegionCursor = mpMenuFmap->getRegionCursor();
|
|
mFmapStageCursor = mpMenuFmap->getStageCursor();
|
|
mFmapStageTransX = mpMenuFmap->getStageTransX();
|
|
mFmapStageTransZ = mpMenuFmap->getStageTransZ();
|
|
|
|
mpMenuFmap->_delete();
|
|
delete mpMenuFmap;
|
|
mpMenuFmap = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_dmap_create() {
|
|
markMemSize();
|
|
dComIfGp_setHeapLockFlag(3);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2294, mpCapture != NULL);
|
|
}
|
|
|
|
mpCapture->setCaptureFlag();
|
|
|
|
u8 tmp = 0;
|
|
if (dMeter2Info_getMapKeyDirection() == 0x200) {
|
|
tmp = 3;
|
|
} else if (dMeter2Info_getMapKeyDirection() == 0x400) {
|
|
tmp = 1;
|
|
} else if (dMeter2Info_getMapKeyDirection() == 0x100) {
|
|
tmp = 2;
|
|
} else if (dMeter2Info_getMapKeyDirection() == 0x80) {
|
|
tmp = 0;
|
|
}
|
|
|
|
mpMenuDmap = new dMenu_Dmap_c(mpHeap, mpStick, mpCStick, field_0x14C, tmp);
|
|
JUT_ASSERT(2314, mpMenuDmap != NULL);
|
|
|
|
dMeter2Info_resetWarpStatus();
|
|
}
|
|
|
|
bool dMw_c::dMw_dmap_delete(bool param_0) {
|
|
if (mpMenuDmap != NULL) {
|
|
if (!mpMenuDmap->isSync()) {
|
|
return false;
|
|
}
|
|
|
|
field_0x14C = mpMenuDmap->getZoomState();
|
|
|
|
delete mpMenuDmap;
|
|
mpMenuDmap = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_save_create() {
|
|
markMemSize();
|
|
|
|
mpMenuSave = new dMenu_save_c();
|
|
JUT_ASSERT(2365, mpMenuSave != NULL);
|
|
|
|
mpMenuSave->setUseType(1);
|
|
mpMenuSave->_create();
|
|
mpMenuSave->initialize();
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2373, mpCapture != NULL);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_save_delete() {
|
|
if (mpMenuSave != NULL) {
|
|
mpMenuSave->_delete();
|
|
delete mpMenuSave;
|
|
mpMenuSave = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_option_create() {
|
|
markMemSize();
|
|
|
|
mpMenuOption = new dMenu_Option_c(dComIfGp_getCollectResArchive(), mpStick);
|
|
JUT_ASSERT(2415, mpMenuOption != NULL);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2420, mpCapture != NULL);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_option_delete() {
|
|
if (mpMenuOption != NULL) {
|
|
if (!mpMenuOption->isSync()) {
|
|
return false;
|
|
}
|
|
mpMenuOption->_delete();
|
|
delete mpMenuOption;
|
|
mpMenuOption = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_letter_create() {
|
|
markMemSize();
|
|
|
|
mpMenuLetter = new dMenu_Letter_c(mpHeap, mpStick, mpCStick);
|
|
JUT_ASSERT(2463, mpMenuLetter != NULL);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2467, mpCapture != NULL);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_letter_delete() {
|
|
if (mpMenuLetter != NULL) {
|
|
if (!mpMenuLetter->isSync()) {
|
|
return false;
|
|
}
|
|
delete mpMenuLetter;
|
|
mpMenuLetter = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_fishing_create() {
|
|
markMemSize();
|
|
|
|
mpMenuFishing = new dMenu_Fishing_c(mpHeap, mpStick, mpCStick);
|
|
JUT_ASSERT(2509, mpMenuFishing != NULL);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2513, mpCapture != NULL);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_fishing_delete() {
|
|
if (mpMenuFishing != NULL) {
|
|
if (!mpMenuFishing->isSync()) {
|
|
return false;
|
|
}
|
|
delete mpMenuFishing;
|
|
mpMenuFishing = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_skill_create() {
|
|
markMemSize();
|
|
|
|
mpMenuSkill = new dMenu_Skill_c(mpHeap, mpStick, mpCStick);
|
|
JUT_ASSERT(2555, mpMenuSkill != NULL);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2559, mpCapture != NULL);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_skill_delete() {
|
|
if (mpMenuSkill != NULL) {
|
|
if (!mpMenuSkill->isSync()) {
|
|
return false;
|
|
}
|
|
delete mpMenuSkill;
|
|
mpMenuSkill = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_insect_create(u8 param_0) {
|
|
markMemSize();
|
|
|
|
mpMenuInsect = new dMenu_Insect_c(mpHeap, mpStick, mpCStick, param_0);
|
|
JUT_ASSERT(2601, mpMenuInsect != NULL);
|
|
|
|
if (mpCapture == NULL) {
|
|
mpCapture = new dDlst_MENU_CAPTURE_c();
|
|
JUT_ASSERT(2605, mpCapture != NULL);
|
|
}
|
|
}
|
|
|
|
bool dMw_c::dMw_insect_delete() {
|
|
if (mpMenuInsect != NULL) {
|
|
if (!mpMenuInsect->isSync()) {
|
|
return false;
|
|
}
|
|
delete mpMenuInsect;
|
|
mpMenuInsect = NULL;
|
|
}
|
|
|
|
if (mpCapture != NULL) {
|
|
delete mpCapture;
|
|
mpCapture = NULL;
|
|
}
|
|
|
|
checkMemSize();
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_onButtonBit(u8 i_bit) {
|
|
mButtonBits |= i_bit;
|
|
}
|
|
|
|
void dMw_c::dMw_offButtonBit(u8 i_bit) {
|
|
mButtonBits &= ~i_bit;
|
|
}
|
|
|
|
BOOL dMw_c::dMw_isButtonBit(u8 i_bit) {
|
|
return (mButtonBits & i_bit) ? TRUE : FALSE;
|
|
}
|
|
|
|
BOOL dMw_c::dMw_isPush_S_Button() {
|
|
if (isFadeNowCheck()) {
|
|
if (daPy_getLinkPlayerActorClass()->getClothesChangeWaitTimer() == 0 &&
|
|
daPy_getLinkPlayerActorClass()->getShieldChangeWaitTimer() == 0 &&
|
|
daPy_getLinkPlayerActorClass()->getSwordChangeWaitTimer() == 0)
|
|
{
|
|
if (dMw_START_TRIGGER() || dMw_B_TRIGGER()) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool dMw_c::isPauseReady() {
|
|
if (dComIfGp_getEvent()->checkCompulsory() || dComIfGs_getLife() == 0) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void dMw_c::dMw_fade_out() {
|
|
mDoGph_gInf_c::startFadeOut(13);
|
|
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
|
|
}
|
|
|
|
void dMw_c::dMw_fade_in() {
|
|
mDoGph_gInf_c::startFadeIn(13);
|
|
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
|
|
}
|
|
|
|
int dMw_c::checkCStickTrigger() {
|
|
field_0x14A = 0;
|
|
if (field_0x149 == 0) {
|
|
if (mpCStick->getValueStick() > 0.8f) {
|
|
field_0x149 = 1;
|
|
field_0x14A = 1;
|
|
return 1;
|
|
}
|
|
} else {
|
|
if (mpCStick->getValueStick() < 0.15f) {
|
|
field_0x149 = 0;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
bool dMw_c::isEventCheck() {
|
|
if (field_0x151 != 0) {
|
|
return true;
|
|
}
|
|
|
|
if (dMeter2Info_getMapStatus() == 4 && field_0x148 > 0) {
|
|
field_0x148 = 0;
|
|
}
|
|
|
|
if (dComIfGp_event_runCheck()) {
|
|
if (!dMsgObject_isTalkNowCheck() &&
|
|
(dMeter2Info_getMapStatus() == 4 || dMeter2Info_getMapStatus() == 5 ||
|
|
dMeter2Info_getMapStatus() == 7 || dMeter2Info_getMapStatus() == 8 ||
|
|
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6 ||
|
|
dMeter2Info_getMapStatus() == 3 || dMeter2Info_isMenuInForce(2) ||
|
|
dMeter2Info_getPauseStatus() == 8))
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
return field_0x148 > 0;
|
|
}
|
|
|
|
void dMw_c::markMemSize() {
|
|
if (mMemSize == 0) {
|
|
mMemSize = mpHeap->getTotalFreeSize();
|
|
OS_REPORT("memory marking ===> %d\n", mMemSize);
|
|
}
|
|
}
|
|
|
|
void dMw_c::checkMemSize() {
|
|
if (mMemSize > 0) {
|
|
s32 now_size = mpHeap->getTotalFreeSize();
|
|
s32 diff = now_size - mMemSize;
|
|
if (diff < 0) {
|
|
diff *= -1;
|
|
}
|
|
|
|
OS_REPORT("memory check ===> diff ==> %d, start ==> %d, now ==> %d\n", diff, mMemSize, now_size);
|
|
|
|
if (diff > 0x20) {
|
|
OSReport_Error("memory free error!!\n");
|
|
}
|
|
mMemSize = 0;
|
|
}
|
|
}
|
|
|
|
int dMw_c::_create() {
|
|
mpHeap = dComIfGp_getExpHeap2D();
|
|
|
|
mpStick = new STControl(5, 2, 1, 1, 0.9f, 0.5f, 0, 0x800);
|
|
JUT_ASSERT(2967, mpStick != NULL);
|
|
mpStick->setFirstWaitTime(8);
|
|
|
|
mpCStick = new CSTControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000);
|
|
JUT_ASSERT(2976, mpCStick != NULL);
|
|
mpCStick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000);
|
|
|
|
mButtonBits = 0;
|
|
mMenuProc = NO_MENU;
|
|
mShowFlag = 1;
|
|
field_0x148 = 0;
|
|
field_0x14C = 0;
|
|
field_0x14D = 0;
|
|
mFmapProcess = 0;
|
|
mFmapRegionCursor = 0;
|
|
mFmapStageCursor = 0;
|
|
field_0x151 = 0;
|
|
field_0x152 = 0;
|
|
mFmapStageTransX = 0.0f;
|
|
mFmapStageTransZ = 0.0f;
|
|
field_0x153 = 0;
|
|
onPauseWindow();
|
|
field_0x149 = 0;
|
|
field_0x14A = 0;
|
|
field_0x14B = 0;
|
|
|
|
mpCapture = NULL;
|
|
mpMenuRing = NULL;
|
|
mpMenuCollect = NULL;
|
|
mpMenuDmap = NULL;
|
|
mpMenuFmap = NULL;
|
|
mpMenuSave = NULL;
|
|
mpMenuOption = NULL;
|
|
mpMenuLetter = NULL;
|
|
mpMenuFishing = NULL;
|
|
mpMenuSkill = NULL;
|
|
mpMenuInsect = NULL;
|
|
mMemSize = 0;
|
|
field_0x144 = 3;
|
|
|
|
dMeter2Info_setWindowStatus(0);
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
int dMw_c::_execute() {
|
|
if (field_0x151 != 0) {
|
|
field_0x151--;
|
|
}
|
|
|
|
JKRHeap* prev_heap = mDoExt_setCurrentHeap(mpHeap);
|
|
u8 prev_proc = mMenuProc;
|
|
mpStick->checkTrigger();
|
|
|
|
if (dMw_isMenuRing()) {
|
|
mpCStick->checkTrigger();
|
|
checkCStickTrigger();
|
|
}
|
|
|
|
if (dComIfGp_event_runCheck()) {
|
|
field_0x148 = 5;
|
|
} else if (field_0x148 > 0) {
|
|
field_0x148--;
|
|
} else {
|
|
field_0x148 = 0;
|
|
}
|
|
|
|
(this->*move_proc[mMenuProc])();
|
|
if (mMenuProc != prev_proc) {
|
|
(this->*init_proc[mMenuProc])(prev_proc);
|
|
}
|
|
|
|
if (!mDoCPd_c::getHoldLockL(PAD_1) && dMw_isButtonBit(1)) {
|
|
dMw_offButtonBit(1);
|
|
}
|
|
|
|
if (!mDoCPd_c::getHoldLockR(PAD_1) && dMw_isButtonBit(2)) {
|
|
dMw_offButtonBit(2);
|
|
}
|
|
|
|
mDoExt_setCurrentHeap(prev_heap);
|
|
return 1;
|
|
}
|
|
|
|
int dMw_c::_draw() {
|
|
if (mpCapture != NULL && mpCapture->checkDraw() && mpCapture->getAlpha() != 0) {
|
|
if (mpCapture->getTopFlag() != 0) {
|
|
dComIfGd_set2DOpaTop(mpCapture);
|
|
} else {
|
|
dComIfGd_set2DOpa(mpCapture);
|
|
}
|
|
}
|
|
|
|
if (dComIfGp_isPauseFlag() == true) {
|
|
if (dMeter2Info_getWindowStatus() == 3) {
|
|
if (mpMenuCollect != NULL) {
|
|
mpMenuCollect->draw();
|
|
}
|
|
} else if (dMeter2Info_getWindowStatus() == 4) {
|
|
if (mpMenuFmap != NULL) {
|
|
mpMenuFmap->_draw();
|
|
}
|
|
} else if (dMeter2Info_getWindowStatus() == 5) {
|
|
if (mpMenuDmap != NULL) {
|
|
mpMenuDmap->_draw();
|
|
}
|
|
} else if (dMeter2Info_getWindowStatus() == 10) {
|
|
if (mpMenuSave != NULL) {
|
|
mpMenuSave->_draw2();
|
|
}
|
|
|
|
if (mpMenuOption != NULL) {
|
|
dComIfGd_set2DOpa(mpMenuOption);
|
|
}
|
|
|
|
if (mpMenuLetter != NULL) {
|
|
dComIfGd_set2DOpa(mpMenuLetter);
|
|
}
|
|
|
|
if (mpMenuFishing != NULL) {
|
|
dComIfGd_set2DOpa(mpMenuFishing);
|
|
}
|
|
|
|
if (mpMenuSkill != NULL) {
|
|
dComIfGd_set2DOpa(mpMenuSkill);
|
|
}
|
|
|
|
if (mpMenuInsect != NULL) {
|
|
dComIfGd_set2DOpa(mpMenuInsect);
|
|
}
|
|
} else if (dMeter2Info_getWindowStatus() == 2 && mpMenuRing != NULL) {
|
|
mpMenuRing->drawFlag0();
|
|
dComIfGd_set2DOpa(mpMenuRing);
|
|
dComIfGd_set2DOpa(mpMenuRing);
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
int dMw_c::_delete() {
|
|
JKRHeap* heap = mDoExt_getCurrentHeap();
|
|
|
|
delete mpStick;
|
|
mpStick = NULL;
|
|
|
|
delete mpCStick;
|
|
mpCStick = NULL;
|
|
|
|
mDoExt_setCurrentHeap(mpHeap);
|
|
|
|
if (!dMw_collect_delete(false)) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_dmap_delete(false)) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_fmap_delete(false)) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_save_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_option_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_letter_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_fishing_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_skill_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_insect_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else if (!dMw_ring_delete()) {
|
|
mDoExt_setCurrentHeap(heap);
|
|
return 0;
|
|
} else {
|
|
dMw_capture_delete();
|
|
mDoExt_setCurrentHeap(heap);
|
|
mDoExt_removeMesgFont();
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
static int dMw_Draw(dMw_c* i_this) {
|
|
return i_this->_draw();
|
|
}
|
|
|
|
static int dMw_Execute(dMw_c* i_this) {
|
|
return i_this->_execute();
|
|
}
|
|
|
|
static int dMw_IsDelete(dMw_c* i_this) {
|
|
return 1;
|
|
}
|
|
|
|
static int dMw_Delete(dMw_c* i_this) {
|
|
int rt = i_this->_delete();
|
|
if (rt != 0) {
|
|
dMeter2Info_setMenuWindowClass(NULL);
|
|
}
|
|
|
|
return rt;
|
|
}
|
|
|
|
static int dMw_Create(msg_class* i_this) {
|
|
dMeter2Info_setMenuWindowClass((dMw_c*)i_this);
|
|
g_mwHIO.field_0x4 = -1;
|
|
g_mwDHIO.field_0x4 = -1;
|
|
dComIfGp_offHeapLockFlag(0);
|
|
fopMsgM_setStageLayer(i_this);
|
|
return ((dMw_c*)i_this)->_create();
|
|
}
|
|
|
|
static leafdraw_method_class l_dMw_Method = {
|
|
(process_method_func)dMw_Create,
|
|
(process_method_func)dMw_Delete,
|
|
(process_method_func)dMw_Execute,
|
|
(process_method_func)dMw_IsDelete,
|
|
(process_method_func)dMw_Draw,
|
|
};
|
|
|
|
msg_process_profile_definition g_profile_MENUWINDOW = {
|
|
fpcLy_CURRENT_e,
|
|
12,
|
|
fpcPi_CURRENT_e,
|
|
PROC_MENUWINDOW,
|
|
&g_fpcLf_Method.base,
|
|
sizeof(dMw_c),
|
|
0,
|
|
0,
|
|
&g_fopMsg_Method,
|
|
0x02FF,
|
|
&l_dMw_Method,
|
|
};
|