tp/src/d/d_menu_window.cpp

1884 lines
56 KiB
C++

#include "d/dolzel.h"
#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, 608, 448);
GXSetTexCopyDst(304, 224, (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(), 304, 224,
(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;
}
/* 803BEAA8-803BEC4C 01BBC8 01A4+00 1/2 0/0 0/0 .data init_proc */
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,
};
/* 803BEDF0-803BEF94 01BF10 01A4+00 1/2 0/0 0/0 .data move_proc */
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,
};
/* 801FA13C-801FA220 1F4A7C 00E4+00 2/0 0/0 0/0 .text key_wait_init__5dMw_cFUc */
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;
}
/* 801FA244-801FA2D0 1F4B84 008C+00 1/0 0/0 0/0 .text collect_open_init__5dMw_cFUc */
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;
}
/* 801FA2D0-801FA46C 1F4C10 019C+00 2/0 0/0 0/0 .text collect_move_init__5dMw_cFUc */
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;
}
}
/* 801FA46C-801FA538 1F4DAC 00CC+00 1/0 0/0 0/0 .text collect_close_init__5dMw_cFUc */
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();
}
/* 801FA538-801FA55C 1F4E78 0024+00 1/0 0/0 0/0 .text fmap_open_init__5dMw_cFUc */
void dMw_c::fmap_open_init(u8) {
dMeter2Info_setWindowStatus(4);
field_0x153 = 0;
}
/* 801FA55C-801FA560 1F4E9C 0004+00 1/0 0/0 0/0 .text fmap_move_init__5dMw_cFUc */
void dMw_c::fmap_move_init(u8) {}
/* 801FA560-801FA564 1F4EA0 0004+00 1/0 0/0 0/0 .text fmap_close_init__5dMw_cFUc */
void dMw_c::fmap_close_init(u8) {}
/* 801FA564-801FA588 1F4EA4 0024+00 1/0 0/0 0/0 .text dmap_open_init__5dMw_cFUc */
void dMw_c::dmap_open_init(u8) {
dMeter2Info_setWindowStatus(5);
field_0x153 = 0;
}
/* 801FA588-801FA58C 1F4EC8 0004+00 1/0 0/0 0/0 .text dmap_move_init__5dMw_cFUc */
void dMw_c::dmap_move_init(u8) {}
/* 801FA58C-801FA590 1F4ECC 0004+00 1/0 0/0 0/0 .text dmap_close_init__5dMw_cFUc */
void dMw_c::dmap_close_init(u8) {}
/* 801FA590-801FA5E4 1F4ED0 0054+00 1/0 0/0 0/0 .text collect_save_open_init__5dMw_cFUc
*/
void dMw_c::collect_save_open_init(u8) {
field_0x144 = 10;
dMeter2Info_setWindowStatus(10);
dMw_collect_delete(true);
dMw_save_create();
}
/* 801FA5E4-801FA5E8 1F4F24 0004+00 1/0 0/0 0/0 .text collect_save_move_init__5dMw_cFUc
*/
void dMw_c::collect_save_move_init(u8) {}
/* 801FA5E8-801FA608 1F4F28 0020+00 1/0 0/0 0/0 .text collect_save_close_init__5dMw_cFUc
*/
void dMw_c::collect_save_close_init(u8) {
dMw_fade_out();
}
/* 801FA608-801FA65C 1F4F48 0054+00 1/0 0/0 0/0 .text collect_option_open_init__5dMw_cFUc
*/
void dMw_c::collect_option_open_init(u8) {
field_0x144 = 10;
dMeter2Info_setWindowStatus(10);
dMw_collect_delete(true);
dMw_option_create();
}
/* 801FA65C-801FA660 1F4F9C 0004+00 1/0 0/0 0/0 .text collect_option_move_init__5dMw_cFUc
*/
void dMw_c::collect_option_move_init(u8) {}
/* 801FA660-801FA680 1F4FA0 0020+00 1/0 0/0 0/0 .text collect_option_close_init__5dMw_cFUc */
void dMw_c::collect_option_close_init(u8) {
dMw_fade_out();
}
/* 801FA680-801FA6DC 1F4FC0 005C+00 1/0 0/0 0/0 .text collect_letter_open_init__5dMw_cFUc
*/
void dMw_c::collect_letter_open_init(u8) {
field_0x144 = 10;
dMeter2Info_setWindowStatus(10);
field_0x152 = 0;
dMw_collect_delete(true);
dMw_letter_create();
}
/* 801FA6DC-801FA6E0 1F501C 0004+00 1/0 0/0 0/0 .text collect_letter_move_init__5dMw_cFUc
*/
void dMw_c::collect_letter_move_init(u8) {}
/* 801FA6E0-801FA738 1F5020 0058+00 1/0 0/0 0/0 .text collect_letter_close_init__5dMw_cFUc */
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();
}
/* 801FA738-801FA794 1F5078 005C+00 1/0 0/0 0/0 .text collect_fishing_open_init__5dMw_cFUc */
void dMw_c::collect_fishing_open_init(u8) {
field_0x144 = 10;
dMeter2Info_setWindowStatus(10);
field_0x152 = 0;
dMw_collect_delete(true);
dMw_fishing_create();
}
/* 801FA794-801FA798 1F50D4 0004+00 1/0 0/0 0/0 .text collect_fishing_move_init__5dMw_cFUc */
void dMw_c::collect_fishing_move_init(u8) {}
/* 801FA798-801FA7F0 1F50D8 0058+00 1/0 0/0 0/0 .text collect_fishing_close_init__5dMw_cFUc */
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();
}
/* 801FA7F0-801FA84C 1F5130 005C+00 1/0 0/0 0/0 .text collect_skill_open_init__5dMw_cFUc
*/
void dMw_c::collect_skill_open_init(u8) {
field_0x144 = 10;
dMeter2Info_setWindowStatus(10);
field_0x152 = 0;
dMw_collect_delete(true);
dMw_skill_create();
}
/* 801FA84C-801FA850 1F518C 0004+00 1/0 0/0 0/0 .text collect_skill_move_init__5dMw_cFUc
*/
void dMw_c::collect_skill_move_init(u8) {}
/* 801FA850-801FA8A8 1F5190 0058+00 1/0 0/0 0/0 .text collect_skill_close_init__5dMw_cFUc
*/
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();
}
/* 801FA8A8-801FA908 1F51E8 0060+00 1/0 0/0 0/0 .text collect_insect_open_init__5dMw_cFUc
*/
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);
}
/* 801FA908-801FA90C 1F5248 0004+00 1/0 0/0 0/0 .text collect_insect_move_init__5dMw_cFUc
*/
void dMw_c::collect_insect_move_init(u8) {}
/* 801FA90C-801FA964 1F524C 0058+00 1/0 0/0 0/0 .text collect_insect_close_init__5dMw_cFUc */
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();
}
/* 801FA964-801FA9E8 1F52A4 0084+00 1/0 0/0 0/0 .text insect_open_init__5dMw_cFUc */
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();
}
/* 801FA9E8-801FA9EC 1F5328 0004+00 1/0 0/0 0/0 .text insect_open2_init__5dMw_cFUc */
void dMw_c::insect_open2_init(u8) {}
/* 801FA9EC-801FA9F0 1F532C 0004+00 1/0 0/0 0/0 .text insect_move_init__5dMw_cFUc */
void dMw_c::insect_move_init(u8) {}
/* 801FA9F0-801FAA48 1F5330 0058+00 1/0 0/0 0/0 .text insect_close_init__5dMw_cFUc */
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();
}
/* 801FAA48-801FAFDC 1F5388 0594+00 1/0 0/0 0/0 .text key_wait_proc__5dMw_cFv */
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);
}
}
}
/* 801FAFDC-801FB01C 1F591C 0040+00 1/0 0/0 0/0 .text ring_open_proc__5dMw_cFv */
void dMw_c::ring_open_proc() {
if (mpMenuRing->isOpen()) {
mMenuProc = RING_MOVE;
}
}
/* 801FB01C-801FB064 1F595C 0048+00 1/0 0/0 0/0 .text ring_move_proc__5dMw_cFv */
void dMw_c::ring_move_proc() {
mpMenuRing->_move();
if (mpMenuRing->isMoveEnd()) {
mMenuProc = RING_CLOSE;
}
}
/* 801FB064-801FB0B8 1F59A4 0054+00 1/0 0/0 0/0 .text ring_close_proc__5dMw_cFv */
void dMw_c::ring_close_proc() {
if (mpMenuRing->isClose()) {
dMeter2Info_offMenuInForce(2);
mMenuProc = NO_MENU;
}
}
/* 801FB0B8-801FB110 1F59F8 0058+00 1/0 0/0 0/0 .text collect_open_proc__5dMw_cFv */
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;
}
}
/* 801FB110-801FB1A0 1F5A50 0090+00 1/0 0/0 0/0 .text collect_move_proc__5dMw_cFv */
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();
}
}
/* 801FB1A0-801FB240 1F5AE0 00A0+00 1/0 0/0 0/0 .text collect_close_proc__5dMw_cFv */
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;
}
}
}
/* 801FB240-801FB298 1F5B80 0058+00 1/0 0/0 0/0 .text fmap_open_proc__5dMw_cFv */
void dMw_c::fmap_open_proc() {
if (field_0x153 == 0) {
field_0x153 = 1;
dMeter2Info_set2DVibrationM();
}
if (mpMenuFmap->isOpen()) {
mMenuProc = FMAP_MOVE;
}
}
/* 801FB298-801FB36C 1F5BD8 00D4+00 1/0 0/0 0/0 .text fmap_move_proc__5dMw_cFv */
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();
}
}
}
}
/* 801FB36C-801FB3AC 1F5CAC 0040+00 1/0 0/0 0/0 .text fmap_close_proc__5dMw_cFv */
void dMw_c::fmap_close_proc() {
if (mpMenuFmap->isClose()) {
mMenuProc = NO_MENU;
}
}
/* 801FB3AC-801FB404 1F5CEC 0058+00 1/0 0/0 0/0 .text dmap_open_proc__5dMw_cFv */
void dMw_c::dmap_open_proc() {
if (field_0x153 == 0) {
field_0x153 = 1;
dMeter2Info_set2DVibrationM();
}
if (mpMenuDmap->isOpen()) {
mMenuProc = DMAP_MOVE;
}
}
/* 801FB404-801FB5DC 1F5D44 01D8+00 1/0 0/0 0/0 .text dmap_move_proc__5dMw_cFv */
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();
}
}
/* 801FB5DC-801FB61C 1F5F1C 0040+00 1/0 0/0 0/0 .text dmap_close_proc__5dMw_cFv */
void dMw_c::dmap_close_proc() {
if (mpMenuDmap->isClose()) {
mMenuProc = NO_MENU;
}
}
/* 801FB61C-801FB67C 1F5F5C 0060+00 1/0 0/0 0/0 .text collect_save_open_proc__5dMw_cFv */
void dMw_c::collect_save_open_proc() {
if (mpMenuSave->getSaveStatus() == 1 && mpMenuSave->_open()) {
dMw_fade_in();
}
if (mpMenuSave->getSaveStatus() == 2) {
mMenuProc = SAVE_MOVE;
}
}
/* 801FB67C-801FB6D8 1F5FBC 005C+00 1/0 0/0 0/0 .text collect_save_move_proc__5dMw_cFv */
void dMw_c::collect_save_move_proc() {
if (mpMenuSave->getSaveStatus() == 2) {
mpMenuSave->_move();
}
if (mpMenuSave->getSaveStatus() == 3 || mpMenuSave->getSaveStatus() == 4) {
mMenuProc = SAVE_CLOSE;
}
}
/* 801FB6D8-801FB73C 1F6018 0064+00 1/0 0/0 0/0 .text collect_save_close_proc__5dMw_cFv
*/
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;
}
}
}
/* 801FB73C-801FB7AC 1F607C 0070+00 1/0 0/0 0/0 .text collect_option_open_proc__5dMw_cFv
*/
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;
}
}
/* 801FB7AC-801FB800 1F60EC 0054+00 1/0 0/0 0/0 .text collect_option_move_proc__5dMw_cFv
*/
void dMw_c::collect_option_move_proc() {
if (mpMenuOption->getQuitStatus() == 2) {
mpMenuOption->_move();
}
if (mpMenuOption->getQuitStatus() == 3) {
mMenuProc = OPTIONS_CLOSE;
}
}
/* 801FB800-801FB81C 1F6140 001C+00 1/0 0/0 0/0 .text collect_option_close_proc__5dMw_cFv
*/
void dMw_c::collect_option_close_proc() {
if (mDoGph_gInf_c::getFader()->getStatus() == 0) {
mMenuProc = COLLECT_MOVE;
}
}
/* 801FB81C-801FB8AC 1F615C 0090+00 1/0 0/0 0/0 .text collect_letter_open_proc__5dMw_cFv
*/
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;
}
}
/* 801FB8AC-801FB900 1F61EC 0054+00 1/0 0/0 0/0 .text collect_letter_move_proc__5dMw_cFv
*/
void dMw_c::collect_letter_move_proc() {
if (mpMenuLetter->getStatus() == 2) {
mpMenuLetter->_move();
}
if (mpMenuLetter->getStatus() == 3) {
mMenuProc = LETTER_CLOSE;
}
}
/* 801FB900-801FB91C 1F6240 001C+00 1/0 0/0 0/0 .text collect_letter_close_proc__5dMw_cFv
*/
void dMw_c::collect_letter_close_proc() {
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
mMenuProc = COLLECT_MOVE;
}
}
/* 801FB91C-801FB9AC 1F625C 0090+00 1/0 0/0 0/0 .text collect_fishing_open_proc__5dMw_cFv
*/
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;
}
}
/* 801FB9AC-801FBA00 1F62EC 0054+00 1/0 0/0 0/0 .text collect_fishing_move_proc__5dMw_cFv
*/
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;
}
}
/* 801FBA00-801FBA1C 1F6340 001C+00 1/0 0/0 0/0 .text collect_fishing_close_proc__5dMw_cFv */
void dMw_c::collect_fishing_close_proc() {
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
mMenuProc = COLLECT_MOVE;
}
}
/* 801FBA1C-801FBAAC 1F635C 0090+00 1/0 0/0 0/0 .text collect_skill_open_proc__5dMw_cFv
*/
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;
}
}
/* 801FBAAC-801FBB00 1F63EC 0054+00 1/0 0/0 0/0 .text collect_skill_move_proc__5dMw_cFv
*/
void dMw_c::collect_skill_move_proc() {
if (mpMenuSkill->getStatus() == 2) {
mpMenuSkill->_move();
}
if (mpMenuSkill->getStatus() == 3) {
mMenuProc = SKILL_CLOSE;
}
}
/* 801FBB00-801FBB1C 1F6440 001C+00 1/0 0/0 0/0 .text collect_skill_close_proc__5dMw_cFv
*/
void dMw_c::collect_skill_close_proc() {
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
mMenuProc = COLLECT_MOVE;
}
}
/* 801FBB1C-801FBBAC 1F645C 0090+00 1/0 0/0 0/0 .text collect_insect_open_proc__5dMw_cFv
*/
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;
}
}
/* 801FBBAC-801FBC00 1F64EC 0054+00 1/0 0/0 0/0 .text collect_insect_move_proc__5dMw_cFv
*/
void dMw_c::collect_insect_move_proc() {
if (mpMenuInsect->getStatus() == 2) {
mpMenuInsect->_move();
}
if (mpMenuInsect->getStatus() == 3) {
mMenuProc = INSECT_CLOSE;
}
}
/* 801FBC00-801FBC1C 1F6540 001C+00 1/0 0/0 0/0 .text collect_insect_close_proc__5dMw_cFv
*/
void dMw_c::collect_insect_close_proc() {
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
mMenuProc = COLLECT_MOVE;
}
}
/* 801FBC1C-801FBC78 1F655C 005C+00 1/0 0/0 0/0 .text insect_open_proc__5dMw_cFv */
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;
}
}
/* 801FBC78-801FBD08 1F65B8 0090+00 1/0 0/0 0/0 .text insect_open2_proc__5dMw_cFv */
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;
}
}
/* 801FBD08-801FBD64 1F6648 005C+00 1/0 0/0 0/0 .text insect_move_proc__5dMw_cFv */
void dMw_c::insect_move_proc() {
if (mpMenuInsect != NULL) {
if (mpMenuInsect->getStatus() == 2) {
mpMenuInsect->_move();
}
if (mpMenuInsect->getStatus() == 3) {
mMenuProc = INSECT_AGITHA_CLOSE;
}
}
}
/* 801FBD64-801FBD80 1F66A4 001C+00 1/0 0/0 0/0 .text insect_close_proc__5dMw_cFv */
void dMw_c::insect_close_proc() {
if (mDoGph_gInf_c::getFader()->getStatus() == JUTFader::UNKSTATUS_0) {
mMenuProc = NO_MENU;
}
}
/* 801FBD80-801FBE14 1F66C0 0094+00 2/2 0/0 0/0 .text dMw_capture_create__5dMw_cFv */
void dMw_c::dMw_capture_create() {
if (!dComIfGp_isPauseFlag() && mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(1996, mpCapture != 0);
mpCapture->setCaptureFlag();
}
}
/* 801FBE14-801FBE94 1F6754 0080+00 2/2 0/0 0/0 .text dMw_capture_delete__5dMw_cFv */
void dMw_c::dMw_capture_delete() {
if (dComIfGp_isPauseFlag()) {
if (mpCapture != NULL) {
delete mpCapture;
mpCapture = NULL;
}
dComIfGp_offPauseFlag();
field_0x151 = 2;
}
}
/* 801FBE94-801FBF60 1F67D4 00CC+00 1/1 0/0 0/0 .text dMw_ring_create__5dMw_cFUc */
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 != 0);
mpMenuRing->_create();
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2043, mpCapture != 0);
}
mpCapture->setCaptureFlag();
}
/* 801FBF60-801FBFF8 1F68A0 0098+00 2/2 0/0 0/0 .text dMw_ring_delete__5dMw_cFv */
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;
}
/* 801FBFF8-801FC090 1F6938 0098+00 1/1 0/0 0/0 .text dMw_collect_create__5dMw_cFv */
void dMw_c::dMw_collect_create() {
markMemSize();
mpMenuCollect = new dMenu_Collect_c(mpHeap, mpStick, mpCStick);
JUT_ASSERT(2093, mpMenuCollect != 0);
mpMenuCollect->_create();
if (mDoCPd_c::getHoldLockL(PAD_1)) {
dMw_onButtonBit(1);
} else if (mDoCPd_c::getHoldLockR(PAD_1)) {
dMw_onButtonBit(2);
}
}
/* 801FC090-801FC0FC 1F69D0 006C+00 8/8 0/0 0/0 .text dMw_collect_delete__5dMw_cFb */
bool dMw_c::dMw_collect_delete(bool) {
if (mpMenuCollect != NULL) {
mpMenuCollect->_delete();
delete mpMenuCollect;
mpMenuCollect = NULL;
}
checkMemSize();
return true;
}
/* 801FC0FC-801FC264 1F6A3C 0168+00 1/1 0/0 0/0 .text dMw_fmap_create__5dMw_cFv */
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 != 0);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2200, mpCapture != 0);
}
mpCapture->setCaptureFlag();
dMeter2Info_resetWarpStatus();
}
/* 801FC264-801FC350 1F6BA4 00EC+00 2/2 0/0 0/0 .text dMw_fmap_delete__5dMw_cFb */
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;
}
/* 801FC350-801FC46C 1F6C90 011C+00 1/1 0/0 0/0 .text dMw_dmap_create__5dMw_cFv */
void dMw_c::dMw_dmap_create() {
markMemSize();
dComIfGp_setHeapLockFlag(3);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2294, mpCapture != 0);
}
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 != 0);
dMeter2Info_resetWarpStatus();
}
/* 801FC46C-801FC520 1F6DAC 00B4+00 2/2 0/0 0/0 .text dMw_dmap_delete__5dMw_cFb */
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;
}
/* 801FC520-801FC5D0 1F6E60 00B0+00 1/1 0/0 0/0 .text dMw_save_create__5dMw_cFv */
void dMw_c::dMw_save_create() {
markMemSize();
mpMenuSave = new dMenu_save_c();
JUT_ASSERT(2365, mpMenuSave != 0);
mpMenuSave->setUseType(1);
mpMenuSave->_create();
mpMenuSave->initialize();
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2373, mpCapture != 0);
}
}
/* 801FC5D0-801FC668 1F6F10 0098+00 3/3 0/0 0/0 .text dMw_save_delete__5dMw_cFv */
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;
}
/* 801FC668-801FC70C 1F6FA8 00A4+00 1/1 0/0 0/0 .text dMw_option_create__5dMw_cFv */
void dMw_c::dMw_option_create() {
markMemSize();
mpMenuOption = new dMenu_Option_c(dComIfGp_getCollectResArchive(), mpStick);
JUT_ASSERT(2415, mpMenuOption != 0);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2420, mpCapture != 0);
}
}
/* 801FC70C-801FC7BC 1F704C 00B0+00 2/2 0/0 0/0 .text dMw_option_delete__5dMw_cFv */
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;
}
/* 801FC7BC-801FC85C 1F70FC 00A0+00 1/1 0/0 0/0 .text dMw_letter_create__5dMw_cFv */
void dMw_c::dMw_letter_create() {
markMemSize();
mpMenuLetter = new dMenu_Letter_c(mpHeap, mpStick, mpCStick);
JUT_ASSERT(2463, mpMenuLetter != 0);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2467, mpCapture != 0);
}
}
/* 801FC85C-801FC904 1F719C 00A8+00 2/2 0/0 0/0 .text dMw_letter_delete__5dMw_cFv */
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;
}
/* 801FC904-801FC9A4 1F7244 00A0+00 1/1 0/0 0/0 .text dMw_fishing_create__5dMw_cFv */
void dMw_c::dMw_fishing_create() {
markMemSize();
mpMenuFishing = new dMenu_Fishing_c(mpHeap, mpStick, mpCStick);
JUT_ASSERT(2509, mpMenuFishing != 0);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2513, mpCapture != 0);
}
}
/* 801FC9A4-801FCA4C 1F72E4 00A8+00 2/2 0/0 0/0 .text dMw_fishing_delete__5dMw_cFv */
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;
}
/* 801FCA4C-801FCAEC 1F738C 00A0+00 1/1 0/0 0/0 .text dMw_skill_create__5dMw_cFv */
void dMw_c::dMw_skill_create() {
markMemSize();
mpMenuSkill = new dMenu_Skill_c(mpHeap, mpStick, mpCStick);
JUT_ASSERT(2555, mpMenuSkill != 0);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2559, mpCapture != 0);
}
}
/* 801FCAEC-801FCB94 1F742C 00A8+00 2/2 0/0 0/0 .text dMw_skill_delete__5dMw_cFv */
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;
}
/* 801FCB94-801FCC44 1F74D4 00B0+00 2/2 0/0 0/0 .text dMw_insect_create__5dMw_cFUc */
void dMw_c::dMw_insect_create(u8 param_0) {
markMemSize();
mpMenuInsect = new dMenu_Insect_c(mpHeap, mpStick, mpCStick, param_0);
JUT_ASSERT(2601, mpMenuInsect != 0);
if (mpCapture == NULL) {
mpCapture = new dDlst_MENU_CAPTURE_c();
JUT_ASSERT(2605, mpCapture != 0);
}
}
/* 801FCC44-801FCCEC 1F7584 00A8+00 3/3 0/0 0/0 .text dMw_insect_delete__5dMw_cFv */
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;
}
/* 801FCCEC-801FCCFC 1F762C 0010+00 1/1 0/0 0/0 .text dMw_onButtonBit__5dMw_cFUc */
void dMw_c::dMw_onButtonBit(u8 i_bit) {
mButtonBits |= i_bit;
}
/* 801FCCFC-801FCD0C 1F763C 0010+00 1/1 0/0 0/0 .text dMw_offButtonBit__5dMw_cFUc */
void dMw_c::dMw_offButtonBit(u8 i_bit) {
mButtonBits &= ~i_bit;
}
/* 801FCD0C-801FCD24 1F764C 0018+00 1/1 0/0 0/0 .text dMw_isButtonBit__5dMw_cFUc */
BOOL dMw_c::dMw_isButtonBit(u8 i_bit) {
return (mButtonBits & i_bit) ? TRUE : FALSE;
}
/* 801FCD24-801FCDD8 1F7664 00B4+00 1/1 0/0 0/0 .text dMw_isPush_S_Button__5dMw_cFv */
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;
}
/* 801FCDD8-801FCE08 1F7718 0030+00 1/1 0/0 0/0 .text isPauseReady__5dMw_cFv */
bool dMw_c::isPauseReady() {
if (dComIfGp_getEvent().checkCompulsory() || dComIfGs_getLife() == 0) {
return false;
}
return true;
}
/* 801FCE08-801FCE78 1F7748 0070+00 10/10 3/3 0/0 .text dMw_fade_out__5dMw_cFv */
void dMw_c::dMw_fade_out() {
mDoGph_gInf_c::startFadeOut(13);
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
}
/* 801FCE78-801FCEE8 1F77B8 0070+00 9/9 4/4 0/0 .text dMw_fade_in__5dMw_cFv */
void dMw_c::dMw_fade_in() {
mDoGph_gInf_c::startFadeIn(13);
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
}
/* 801FCEE8-801FCF84 1F7828 009C+00 1/1 0/0 0/0 .text checkCStickTrigger__5dMw_cFv */
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;
}
/* 801FCF84-801FD094 1F78C4 0110+00 1/1 0/0 0/0 .text isEventCheck__5dMw_cFv */
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;
}
/* 801FD094-801FD0D4 1F79D4 0040+00 10/10 0/0 0/0 .text markMemSize__5dMw_cFv */
void dMw_c::markMemSize() {
if (mMemSize == 0) {
mMemSize = mpHeap->getTotalFreeSize();
OS_REPORT("memory marking ===> %d\n", mMemSize);
}
}
/* 801FD0D4-801FD140 1F7A14 006C+00 10/10 0/0 0/0 .text checkMemSize__5dMw_cFv */
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;
}
}
/* 801FD140-801FD2D8 1F7A80 0198+00 1/1 0/0 0/0 .text _create__5dMw_cFv */
int dMw_c::_create() {
mpHeap = dComIfGp_getExpHeap2D();
mpStick = new STControl(5, 2, 1, 1, 0.9f, 0.5f, 0, 0x800);
JUT_ASSERT(2967, mpStick != 0);
mpStick->setFirstWaitTime(8);
mpCStick = new CSTControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000);
JUT_ASSERT(2976, mpCStick != 0);
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;
}
/* 801FD2D8-801FD450 1F7C18 0178+00 1/1 0/0 0/0 .text _execute__5dMw_cFv */
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;
}
/* 801FD450-801FD67C 1F7D90 022C+00 1/1 0/0 0/0 .text _draw__5dMw_cFv */
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;
}
/* 801FD67C-801FD840 1F7FBC 01C4+00 1/1 0/0 0/0 .text _delete__5dMw_cFv */
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;
}
}
/* 801FD840-801FD860 1F8180 0020+00 1/0 0/0 0/0 .text dMw_Draw__FP5dMw_c */
static int dMw_Draw(dMw_c* i_this) {
return i_this->_draw();
}
/* 801FD860-801FD880 1F81A0 0020+00 1/0 0/0 0/0 .text dMw_Execute__FP5dMw_c */
static int dMw_Execute(dMw_c* i_this) {
return i_this->_execute();
}
/* 801FD880-801FD888 1F81C0 0008+00 1/0 0/0 0/0 .text dMw_IsDelete__FP5dMw_c */
static int dMw_IsDelete(dMw_c* i_this) {
return 1;
}
/* 801FD888-801FD8C0 1F81C8 0038+00 1/0 0/0 0/0 .text dMw_Delete__FP5dMw_c */
static int dMw_Delete(dMw_c* i_this) {
int rt = i_this->_delete();
if (rt != 0) {
dMeter2Info_setMenuWindowClass(NULL);
}
return rt;
}
/* 801FD8C0-801FD928 1F8200 0068+00 1/0 0/0 0/0 .text dMw_Create__FP9msg_class */
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();
}
/* 803BF080-803BF094 -00001 0014+00 1/0 0/0 0/0 .data l_dMw_Method */
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,
};
/* 803BF094-803BF0D4 -00001 0028+18 0/0 0/0 1/0 .data g_profile_MENUWINDOW */
extern 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,
};