// // Generated by dtk // Translation Unit: d_menu_fmap.cpp // #include "d/dolzel.h" // IWYU pragma: keep #include "d/actor/d_a_ghostship.h" #include "d/d_menu_fmap.h" #include "d/d_kankyo_wether.h" #include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_msg_mng.h" #include "JSystem/J2DGraph/J2DOrthoGraph.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "m_Do/m_Do_audio.h" #include "m_Do/m_Do_controller_pad.h" #include "d/actor/d_a_ship.h" #include #include "stdio.h" dMf_HIO_c g_mfHIO; #if VERSION == VERSION_DEMO extern const cursorTable_t g_cursorTable[FMAP_WARP_COUNT] = { /* 0 */ {-2, -2, 0, -1, 1, -1, 3}, /* 1 */ { 0, -2, 1, 0, 2, -1, 4}, /* 2 */ { 2, -2, 2, 1, -1, 0, 4}, /* 3 */ {-2, 0, 3, -1, 4, 0, 5}, /* 4 */ { 1, 0, 4, 3, -1, 2, 5}, /* 5 */ { 2, 2, 5, -1, -1, 4, 6}, /* 6 */ {-2, 3, 6, 5, -1, 5, -1}, }; #else extern const cursorTable_t g_cursorTable[FMAP_WARP_COUNT] = { /* 0 */ {-2, -2, 0, -1, 1, -1, 7}, /* 1 */ { 0, -2, 1, 0, 2, -1, 7}, /* 2 */ { 2, -2, 2, 1, -1, 0, 7}, /* 3 */ {-2, 0, 3, -1, 4, 7, 8}, /* 4 */ { 1, 0, 4, 3, -1, 7, 8}, /* 5 */ { 2, 2, 5, 8, -1, 4, 6}, /* 6 */ {-2, 3, 6, 5, -1, 8, -1}, /* 7 */ {-1, -1, 7, -1, -1, 0, 3}, /* 8 */ { 0, 2, 8, -1, 5, 3, 6}, }; #endif extern const u32 hist[] = { 'mR01', 'mR02', 'mR03', 'mR04', 'mR05', 'mR06', 'mR07', 'mR08', 'mR09', 'mR0A', 'mR0B', 'mR0C', 'mR0D', 'mR0E', 'mR0F', 'mR10', 'mR11', 'mR12', 'mR13', 'mR14', 'mR15', 'mR16', 'mR17', 'mR18', 'mR19', 'mR1A', 'mR1B', 'mR1C', 'mR1D', 'mR1E', 'mR1F', 'mR20', 'mR21', 'mR22', 'mR23', 'mR24', 'mR25', 'mR26', 'mR27', 'mR28', 'mR29', 'mR2A', 'mR2B', 'mR2C', 'mR2D', 'mR2E', 'mR2F', 'mR30', 'mR31', }; /* 801AF4F0-801AF848 .text __ct__9dMf_HIO_cFv */ dMf_HIO_c::dMf_HIO_c() { mWarpBackColorCycle = 20; mWarpBackColor1.r = 255; mWarpBackColor1.g = 255; mWarpBackColor1.b = 0; mWarpBackColor1.a = 255; mWarpBackColor2.r = 128; mWarpBackColor2.g = 128; mWarpBackColor2.b = 128; mWarpBackColor2.a = 255; field_0x104 = 7; field_0x105 = 2; field_0x106 = 5; mWindArrowPeriod = 15; mPlayerPointTimer = 25; mWindArrowPivotX = 0; mWindArrowPivotY = 2; mWindArrowHold1 = 15; mWindArrowHold2 = 5; mWindArrowColor1.r = 255; mWindArrowColor1.g = 255; mWindArrowColor1.b = 255; mWindArrowColor1.a = 255; mWindArrowColor2.r = 128; mWindArrowColor2.g = 128; mWindArrowColor2.b = 255; mWindArrowColor2.a = 255; mPlayerPointWhite2.r = 255; mPlayerPointWhite2.g = 0; mPlayerPointWhite2.b = 0; mPlayerPointWhite2.a = 255; mPlayerPointWhite1.r = 255; mPlayerPointWhite1.g = 255; mPlayerPointWhite1.b = 0; mPlayerPointWhite1.a = 255; mPlayerPointBlack2.r = 255; mPlayerPointBlack2.g = 142; mPlayerPointBlack2.b = 0; mPlayerPointBlack2.a = 255; mPlayerPointBlack1.r = 255; mPlayerPointBlack1.g = 255; mPlayerPointBlack1.b = 130; mPlayerPointBlack1.a = 155; mZoomAnimFrame = 7; mZoom2AnimFrame = 7; mZoomOutDelay = 5; mWarpSpotPosX[0] = -193.0f; mWarpSpotPosY[0] = -137.0f; mWarpSpotPosX[1] = -82.0f; mWarpSpotPosY[1] = -137.0f; mWarpSpotPosX[2] = 30.0f; mWarpSpotPosY[2] = -137.0f; mWarpSpotPosX[3] = -193.0f; mWarpSpotPosY[3] = -25.0f; mWarpSpotPosX[4] = -26.0f; mWarpSpotPosY[4] = -25.0f; mWarpSpotPosX[5] = 30.0f; mWarpSpotPosY[5] = 86.0f; mWarpSpotPosX[6] = -193.0f; mWarpSpotPosY[6] = 145.0f; #if VERSION > VERSION_DEMO mWarpSpotPosX[7] = -137.0f; mWarpSpotPosY[7] = -80.0f; mWarpSpotPosX[8] = -83.0f; mWarpSpotPosY[8] = 86.0f; #endif mWarpSpotScaleSel = 1.6f; mWarpSpotScale = 0.75f; field_0xA0 = 30.0f; field_0xAC = -135.0f; field_0xA4 = -195.0f; field_0xB0 = -25.0f; field_0xA8 = 30.0f; field_0xB4 = 85.0f; field_0xB8 = -82.0f; field_0xC4 = -80.0f; field_0xBC = -82.0f; field_0xC8 = 34.0f; field_0xC0 = 30.0f; field_0xCC = -25.0f; field_0xD0 = -80.0f; field_0xD8 = -195.0f; field_0xD4 = -137.0f; field_0xDC = 145.0f; mAreaTxtChangeFrame = 50; mAreaTxtAlphaFrame = 10; mCheckMarkAnimFrame = 50; mCheckMarkWhite.r = 255; mCheckMarkWhite.g = 255; mCheckMarkWhite.b = 255; mCheckMarkBlack.r = 255; mCheckMarkBlack.g = 255; mCheckMarkBlack.b = 255; mKorokMarkAnimFrame = 50; mKorokMarkAnimBlack.r = 255; mKorokMarkAnimBlack.g = 64; mKorokMarkAnimBlack.b = 0; mKorokMarkAnimBlack.a = 0; mKorokMarkAnimWhite.r = 0; mKorokMarkAnimWhite.g = 0; mKorokMarkAnimWhite.b = 0; mKorokMarkAnimWhite.a = 255; field_0xF2 = 192; mKorokMarkBlack.r = 0; mKorokMarkBlack.g = 64; mKorokMarkBlack.b = 0; mKorokMarkBlack.a = 0; mKorokMarkWhite.r = 0; mKorokMarkWhite.g = 129; mKorokMarkWhite.b = 0; mKorokMarkWhite.a = 255; field_0xFB = 128; mAreaTxtColor.r = 136; mAreaTxtColor.g = 50; mAreaTxtColor.b = 0; mAreaTxtColor.a = 255; mAreaTxtColorMain.r = 240; mAreaTxtColorMain.g = 0; mAreaTxtColorMain.b = 0; mAreaTxtColorMain.a = 255; mBaseAnimFrame = 6; mOpenDelay = 4; mOpenPosY = 20; mClosePosY = 60; mCursorFlashFrame = 8; mSelCursorAlphaFrame = 3; mZoomMapDelay = 3; field_0x3D = 3; mWarpMsgBackAlphaFrame = 6; mWarpMsgBackInDelay = 0; mWarpMsgBackOutDelay = 0; mWarpMsgAnimFrame = 5; mWarpMsgPosY = -500; mWarpMsgDelay = 0; field_0x43 = 0; mWarpYesNoAnimFrame = 5; field_0x47 = 8; field_0x48 = 5; mWarpNoDelay = 2; mWarpYesNoPosY = 200; mWarpCursorBlinkFrame = 12; mWarpCursorAlphaMax = 140; mWarpCursorAlphaMin = 70; field_0x05 = 0; field_0x06 = 0; field_0x07 = 0; field_0x08 = 0; mFishmanOpenFrame = 10; mFishmanZoom1Frame = 7; field_0x112 = 7; mFishmanZoom1OutFrame = 7; mFishmanZoom2Frame = 7; mFishmanZoom2AlphaFrame = 30; mFishmanMapWriteWait = 30; mFishmanMapWriteFrame = 10; mFishmanBlinkFrame = 2; mFishmanDispWait = 30; mFishmanCloseWait = 0; mFishmanCloseFrame = 10; #if VERSION > VERSION_JPN mMoonAlphaFrame = 20; mMoonAlphaMax = 255; mMoonAlphaMin = 32; #endif } static const char* rollmapTex[] = { "cmap_tri.bti", "cmap_treasure.bti", "cmap_treasure.bti", "cmap_tingle.bti", "cmap_phantomship.bti", "cmap_treasure.bti", "cmap_treasure.bti", DEMO_SELECT("cmap_hint.bti", "cmap_tingle.bti"), "cmap_treasure.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", }; const char* salvItemex[] = { "f_item_tri.bti", DEMO_SELECT("get_rupy.bti", "f_get_rupy.bti"), DEMO_SELECT("heart_up_02.bti", "f_heart_up_02.bti"), "cmap_tingle.bti", "cmap_phantomship.bti", "cmap_treasure.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_tri.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", "cmap_hint.bti", }; const char* korogStat[] = { "f_korog_kare.bti", "f_korog_saki.bti", }; enum ZoomProcIdx { FMAP_ZOOM_PROC_SELECT_GRID, FMAP_ZOOM_PROC_LV1_IN, FMAP_ZOOM_PROC_LV1, FMAP_ZOOM_PROC_LV1_OUT, FMAP_ZOOM_PROC_LV2_IN, FMAP_ZOOM_PROC_LV2, FMAP_ZOOM_PROC_LV2_OUT, }; enum MainProcIdx { MAIN_PROC_FMAP, MAIN_PROC_HIKAKU, }; enum HikakuProcIdx { HIKAKU_PROC_OPEN, HIKAKU_PROC_MOVE, HIKAKU_PROC_CLOSE, }; enum WarpProcIdx { WARP_PROC_MOVE, WARP_PROC_SEL_WIN_FADE_IN, WARP_PROC_SELECT, WARP_PROC_SEL_WIN_FADE_OUT, WARP_PROC_SEL_WARP, }; enum FishmanProcIdx { FISHMAN_PROC_DISP_AREA, FISHMAN_PROC_ZOOM_LV1_IN, FISHMAN_PROC_ZOOM_LV2_IN, FISHMAN_PROC_MAP_WRITE, FISHMAN_PROC_MAP_WAIT, FISHMAN_PROC_ZOOM_LV2_OUT, FISHMAN_PROC_ZOOM_LV1_OUT, FISHMAN_PROC_END_WAIT, }; /* 801AF848-801AFB64 .text _create__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::_create() { #if VERSION == VERSION_DEMO mSalvagePntIdx = dComIfGs_getRandomSalvagePoint(); #endif fmapDl.scrn = new J2DScreen(); JUT_ASSERT(VERSION_SELECT(594, 560, 571, 571), fmapDl.scrn != NULL); fmapDl.scrn->set("f_map.blo", dComIfGp_getFmapResArchive()); outFont = new dDlst_2DOutFont_c(); JUT_ASSERT(VERSION_SELECT(598, 564, 575, 575), outFont != NULL); #if VERSION > VERSION_JPN outFont->m74 = 1; #endif outFont2 = new dDlst_2DOutFont_c(); JUT_ASSERT(VERSION_SELECT(601, 567, 579, 579), outFont2 != NULL); stick = new STControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000); JUT_ASSERT(VERSION_SELECT(604, 570, 582, 582), stick != NULL); stick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x800); mChkPntTxt_p = (ResTIMG*)operator new (0x2c00, 0x20); JUT_ASSERT(VERSION_SELECT(608, 574, 586, 586), mChkPntTxt_p != NULL); screenSet(); #if VERSION > VERSION_DEMO aramCmapDatRead(); mSalvagePntIdx = dComIfGs_getRandomSalvagePoint(); #endif initialize(); displayinit(); phantomShipCheck(); mMapClose = false; mFmapMode = FMAP_MODE_NORMAL; } /* 801AFB64-801AFBDC .text phantomShipCheck__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::phantomShipCheck() { daGhostship_c* gship = (daGhostship_c*)fopAcM_searchFromName("Ayush", 0, 0); if (gship != NULL && gship->getAlpha()) { mDoAud_seStart(JA_SE_CV_YUUREISEN_SONG); } } /* 801AFBDC-801B06D4 .text screenSet__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::screenSet() { int i; u32 tag1; u32 tag2; u32 tag3; u32 tag4; JUtility::TColor white; JUtility::TColor black; fopMsgM_setPaneData(&mFddmPane, fmapDl.scrn, 'fddm'); fopMsgM_setPaneData(&mClPane, fmapDl.scrn, 'cl'); fopMsgM_setPaneData(&mAreaPane, fmapDl.scrn, 'area'); white.set(((J2DPicture*)mAreaPane.pane)->getWhite()); black.set(((J2DPicture*)mAreaPane.pane)->getBlack()); mBlackAlpha = black.a; mWhiteAlpha = white.a; fopMsgM_setPaneData(&mCi22Pane, fmapDl.scrn, 'ci22'); fopMsgM_setPaneData(&mCi21Pane, fmapDl.scrn, 'ci21'); fopMsgM_setPaneData(&mCi32Pane, fmapDl.scrn, 'ci32'); fopMsgM_setPaneData(&mCi31Pane, fmapDl.scrn, 'ci31'); fopMsgM_setPaneData(&mGtixPanes[0], fmapDl.scrn, 'GTI1'); fopMsgM_setPaneData(&mGtixPanes[1], fmapDl.scrn, 'GTI2'); fopMsgM_setPaneData(&mLnk1Pane, fmapDl.scrn, 'lnk1'); fopMsgM_setPaneData(&mSpi1Pane, fmapDl.scrn, 'spi1'); tag1 = 'kk10'; tag2 = 'kk20'; tag3 = 'kk30'; tag4 = 'kk40'; for (i = 0; i < 4; i++) { fopMsgM_setPaneData(&mKk1xPanes[i], fmapDl.scrn, tag1); fopMsgM_setPaneData(&mKk1xPanes[i + 4], fmapDl.scrn, tag2); fopMsgM_setPaneData(&mKk3xPanes[i], fmapDl.scrn, tag3); fopMsgM_setPaneData(&mKk3xPanes[i + 4], fmapDl.scrn, tag4); tag1++; tag2++; tag3++; tag4++; } fopMsgM_setPaneData(&mWnd1Pane, fmapDl.scrn, 'wnd1'); fopMsgM_setPaneData(&mWnd2Pane, fmapDl.scrn, 'wnd2'); fopMsgM_setPaneData(&mKkdmPane, fmapDl.scrn, 'kkdm'); fopMsgM_setPaneData(&mSmskPane, fmapDl.scrn, 'smsk'); fopMsgM_setPaneData(&mSc1xPanes[0], fmapDl.scrn, 'sc11'); fopMsgM_setPaneData(&mSc1xPanes[1], fmapDl.scrn, 'sc12'); fopMsgM_setPaneData(&mSc1xPanes[2], fmapDl.scrn, 'sc13'); fopMsgM_setPaneData(&mSc1xPanes[3], fmapDl.scrn, 'sc14'); fopMsgM_setPaneData(&mSc1xPanes[4], fmapDl.scrn, 'sc15'); fopMsgM_setPaneData(&mSc1xPanes[5], fmapDl.scrn, 'sc16'); fopMsgM_setPaneData(&mSc1xPanes[6], fmapDl.scrn, 'sc17'); fopMsgM_setPaneData(&mSc1xPanes[7], fmapDl.scrn, 'sc18'); fopMsgM_setPaneData(&mSc1xPanes[8], fmapDl.scrn, 'sc19'); fopMsgM_setPaneData(&mTsw1Pane, fmapDl.scrn, 'tsw1'); fopMsgM_setPaneData(&mStm1Pane, fmapDl.scrn, 'STM1'); fopMsgM_setPaneData(&mR01bPane, fmapDl.scrn, 'R01B'); fopMsgM_setPaneData(&mLnk2Pane, fmapDl.scrn, 'lnk2'); fopMsgM_setPaneData(&mSpi2Pane, fmapDl.scrn, 'spi2'); fopMsgM_setPaneData(&mClbPane, fmapDl.scrn, 'clb'); fopMsgM_setPaneData(&mClb2Pane, fmapDl.scrn, 'clb2'); fopMsgM_setPaneData(&mKtx1Pane, fmapDl.scrn, 'ktx1'); fopMsgM_setPaneData(&mKtx2Pane, fmapDl.scrn, 'ktx2'); ((J2DTextBox*)mKtx1Pane.pane)->setFont(mFont); ((J2DTextBox*)mKtx2Pane.pane)->setFont(mRFont); char str[0x80]; for (i = 0; i < 0x80; i++) { str[i] = 'A'; } str[0x7F] = 0; ((J2DTextBox*)mKtx1Pane.pane)->setString(str); ((J2DTextBox*)mKtx2Pane.pane)->setString(str); mpKtx1String = ((J2DTextBox*)mKtx1Pane.pane)->getStringPtr(); mpKtx2String = ((J2DTextBox*)mKtx2Pane.pane)->getStringPtr(); outFont2->setPaneEx(mFont, &mKtx1Pane, NULL, NULL, NULL, mpKtx1String); outFont2->setRubyEx(mRFont, &mKtx2Pane, mpKtx2String); outFont2->messageSet(0x319B); outFont2->setLeftUpPos(mKtx1Pane.mPosTopLeft.x, mKtx1Pane.mPosTopLeft.y); if (dComIfGs_getOptRuby() != 0) { mKtx1Pane.mPosCenterOrig.y -= 4.0f; mKtx1Pane.mPosCenter.y = mKtx1Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mKtx1Pane); mKtx1Pane.mPosTopLeftOrig.y = mKtx1Pane.mPosTopLeft.y; } fopMsgM_setPaneData(&mClgPane, fmapDl.scrn, 'clg'); fopMsgM_setPaneData(&mLnk3Pane, fmapDl.scrn, 'lnk3'); fopMsgM_setPaneData(&mSpi3Pane, fmapDl.scrn, 'spi3'); fopMsgM_setPaneData(&mStl1Pane, fmapDl.scrn, 'STL1'); fopMsgM_setPaneData(&mR01gPane, fmapDl.scrn, 'R01G'); fopMsgM_setPaneData(&mFmxxPanes[0], fmapDl.scrn, 'fmum'); fopMsgM_setPaneData(&mFmxxPanes[1], fmapDl.scrn, 'fmw1'); fopMsgM_setPaneData(&mFmxxPanes[2], fmapDl.scrn, 'fmw2'); fopMsgM_setPaneData(&mFmxxPanes[3], fmapDl.scrn, 'fmw3'); fopMsgM_setPaneData(&mFmxxPanes[4], fmapDl.scrn, 'fmw4'); for (i = 0; i < 15; i++) { static u32 tag00[] = { 'fmn1','fmn2','fmn3','fmn4','fmn5','fmn6','fmn7','fmn8', 'fmna','fmnb','fmnc','fmnd','fmne','fmnf','fmnh', }; fopMsgM_setPaneData(&mFmnPanes[i], fmapDl.scrn, tag00[i]); } tag1 = 'sc21'; for (i = 0; i < 7; i++) { fopMsgM_setPaneData(&mSc2xPanes[i], fmapDl.scrn, tag1); tag1++; } tag1 = 'CK11'; tag2 = 'CK21'; for (i = 0; i < 3; i++) { fopMsgM_setPaneData(&mCk1xPanes[i], fmapDl.scrn, tag1); fopMsgM_setPaneData(&mCk2xPanes[i], fmapDl.scrn, tag2); tag1++; tag2++; } fopMsgM_setPaneData(&mCk3xPanes[0], fmapDl.scrn, 'CK31'); fopMsgM_setPaneData(&mCk3xPanes[1], fmapDl.scrn, 'CK32'); mCk1Color1.set(((J2DPicture*)mCk1xPanes[0].pane)->getBlack()); mCk1Color2.set(((J2DPicture*)mCk1xPanes[0].pane)->getWhite()); for (i = 0; i < 8; i++) { static u32 tagkr[] = { 'KR03','KR05','KR01','KR08','KR06','KR02','KR07','KR04', }; fopMsgM_setPaneData(&mKr0xPanes[i], fmapDl.scrn, tagkr[i]); } mKr0Color1.set(((J2DPicture*)mKr0xPanes[0].pane)->getBlack()); mKr0Color2.set(((J2DPicture*)mKr0xPanes[0].pane)->getWhite()); for (i = 0; i < ARRAY_SSIZE(mR0xPanes); i++) { static const u32 l_island[] = { 'R01', 'R04', 'R0B', 'R0D', 'R14', 'R17', #if VERSION > VERSION_DEMO 'R1A', #endif 'R28', 'R29', 'R2C', 'R2D', }; fopMsgM_setPaneData(&mR0xPanes[i], fmapDl.scrn, l_island[i]); } for (i = 0; i < 49; i++) { static const u32 endSalv[] = { 'ST01', 'ST02', 'ST03', 'ST04', 'ST05', 'ST06', 'ST07', 'ST08', 'ST09', 'ST10', 'ST11', 'ST12', 'ST13', 'ST14', 'ST15', 'ST16', 'ST17', 'ST18', 'ST19', 'ST20', 'ST21', 'ST22', 'ST23', 'ST24', 'ST25', 'ST26', 'ST27', 'ST28', 'ST29', 'ST30', 'ST31', 'ST32', 'ST33', 'ST34', 'ST35', 'ST36', 'ST37', 'ST38', 'ST39', 'ST40', 'ST41', 'ST42', 'ST43', 'ST44', 'ST45', 'ST46', 'ST47', 'ST48', 'ST49', }; fopMsgM_setPaneData(&mStxxPanes[i], fmapDl.scrn->search(endSalv[i])); } char str2[0x80]; for (i = 0; i < 0x80; i++) { str2[i] = 'A'; } str2[0x7F] = 0; for (i = 0; i < 3; i++) { static u32 txtnm[] = { 'txt1', 'txt3', 'txt2' }; fopMsgM_setPaneData(&mAreaTxtPanes[i], fmapDl.scrn, txtnm[i]); ((J2DTextBox*)mAreaTxtPanes[i].pane)->setFont(mFont); ((J2DTextBox*)mAreaTxtPanes[i].pane)->setString(str2); mTxtName[i] = ((J2DTextBox*)mAreaTxtPanes[i].pane)->getStringPtr(); mTxtName[i][0] = 0; mAreaTxtPanes[i].pane->show(); } fopMsgM_setPaneData(&mBt00Pane, fmapDl.scrn, 'bt00'); fopMsgM_setPaneData(&mBt01Pane, fmapDl.scrn, 'bt01'); fopMsgM_setPaneData(&mBt02Pane, fmapDl.scrn, 'bt02'); outFont->setPane(mFont, mAreaTxtPanes + 2, &mBt00Pane, &mBt01Pane, &mBt02Pane); fopMsgM_setPaneData(&mWts1Pane, fmapDl.scrn, 'wts1'); fopMsgM_setPaneData(&mCc01Pane, fmapDl.scrn, 'cc01'); fopMsgM_setPaneData(&mYs01Pane, fmapDl.scrn, 'ys01'); fopMsgM_setPaneData(&mYs00Pane, fmapDl.scrn, 'ys00'); fopMsgM_setPaneData(&mYsk0Pane, fmapDl.scrn, 'ysk0'); fopMsgM_setPaneData(&mYesPane, fmapDl.scrn, 'yes'); fopMsgM_setPaneData(&mNo01Pane, fmapDl.scrn, 'no01'); fopMsgM_setPaneData(&mNo00Pane, fmapDl.scrn, 'no00'); fopMsgM_setPaneData(&mNok0Pane, fmapDl.scrn, 'nok0'); fopMsgM_setPaneData(&mNoPane, fmapDl.scrn, 'no'); fopMsgM_setPaneData(&mCur1Pane, fmapDl.scrn, 'cur1'); fopMsgM_setPaneData(&mWt0Pane, fmapDl.scrn, 'wt0'); fopMsgM_setPaneData(&mWt1Pane, fmapDl.scrn, 'wt1'); ((J2DTextBox*)mYesPane.pane)->setFont(mFont); ((J2DTextBox*)mNoPane.pane)->setFont(mFont); ((J2DTextBox*)mWt0Pane.pane)->setFont(mFont); ((J2DTextBox*)mWt1Pane.pane)->setFont(mRFont); mYs01Color2.set(((J2DPicture*)mYs01Pane.pane)->getWhite()); mYs01Color1.set(((J2DPicture*)mYs01Pane.pane)->getBlack()); #if VERSION > VERSION_JPN ((J2DTextBox*)mWt0Pane.pane)->setBlack(JUtility::TColor(0xffffff00)); ((J2DTextBox*)mWt0Pane.pane)->setWhite(JUtility::TColor(0xffffffff)); #endif #if VERSION == VERSION_PAL J2DPicture* kzmW = (J2DPicture*)fmapDl.scrn->search('kzmW'); J2DPicture* kzmE = (J2DPicture*)fmapDl.scrn->search('kzmE'); char yestxt[4]; switch (dComIfGs_getPalLanguage()) { case 0: ((J2DTextBox*)mYesPane.pane)->setString("Yes"); ((J2DTextBox*)mNoPane.pane)->setString("No"); break; case 1: ((J2DTextBox*)mYesPane.pane)->setString("Ja"); ((J2DTextBox*)mNoPane.pane)->setString("Nein"); kzmE->changeTexture("f_w_o_big.bti", 0); break; case 2: ((J2DTextBox*)mYesPane.pane)->setString("Oui"); ((J2DTextBox*)mNoPane.pane)->setString("Non"); kzmW->changeTexture("f_w_o_big.bti", 0); break; case 3: { strcpy(yestxt, "Si"); yestxt[1] = 0xED; // Sí ((J2DTextBox*)mYesPane.pane)->setString(yestxt); ((J2DTextBox*)mNoPane.pane)->setString("No"); kzmW->changeTexture("f_w_o_big.bti", 0); break; } case 4: { strcpy(yestxt, "Si"); yestxt[1] = 0xEC; // Sì ((J2DTextBox*)mYesPane.pane)->setString(yestxt); ((J2DTextBox*)mNoPane.pane)->setString("No"); kzmW->changeTexture("f_w_o_big.bti", 0); break; } } #endif #if VERSION > VERSION_JPN for (i = 0; i < 7; i++) { static const u32 gsShip[] = { 'gs07', 'gs01', 'gs02', 'gs03', 'gs04', 'gs05', 'gs06', }; fopMsgM_setPaneData(&mGsPanes[i], fmapDl.scrn, gsShip[i]); } #endif } /* 801B06D4-801B0FB4 .text initialize__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::initialize() { #if VERSION == VERSION_DEMO aramCmapDatRead(); #endif mFrameTimer = 0; mInputDisabled = false; fopAc_ac_c* player = dComIfGp_getPlayer(0); mPlayerPos.x = player->current.pos.x; mPlayerPos.y = player->current.pos.z; mPlayerPos.z = (s16)(player->shape_angle.y + 0x8000) * 180.0f / 32768.0f; fopAc_ac_c* ship = dComIfGp_getShipActor(); if (ship != NULL) { mShipPos.x = ship->current.pos.x; mShipPos.y = ship->current.pos.z; mShipPos.z = (s16)(ship->shape_angle.y + 0x8000) * 180.0f / 32768.0f; } else { mShipPos.x = 0.0f; mShipPos.y = 0.0f; } if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) { mFishmanActive = true; s8 x, y; dMap_point2Grid(mPlayerPos.x, mPlayerPos.y, &x, &y); mGridX = x; mGridY = y; dMap_point2Grid(mShipPos.x, mShipPos.y, &x, &y); mTargetGridX = x; mTargetGridY = y; } else { mFishmanActive = false; if (strcmp(dComIfGp_getStartStageName(), "Obshop") == 0 || strcmp(dComIfGp_getStartStageName(), "Abship") == 0 || strcmp(dComIfGp_getStartStageName(), "PShip") == 0) { u8 room = dComIfGp_getIkadaShipBeforeRoomId(); mGridX = room % 7 - 3; mGridY = room / 7 - 3; } else { stage_map_info_class* mapInfo = dComIfGp_getStage().getMapInfo(); if (mapInfo != NULL) { mGridX = dStage_mapInfo_GetOceanX(mapInfo); if (mGridX == 4) { mGridX = 0; } mGridY = dStage_mapInfo_GetOceanZ(mapInfo); if (mGridY == 4) { mGridY = 0; } } else { mGridX = 0; mGridY = 0; } } mTargetGridX = mGridX; mTargetGridY = mGridY; } mPlayerChkPntNo = dMap_getCheckPointUseGrid(mGridX, mGridY); mWnd1Pane.mUserArea = 0; checkMarkAnimeInit(); #if VERSION == VERSION_DEMO krogMarkAnimeInit(); #endif mAreaTxtBufIdx = 0; mAreaTxtTimer = 0; mAreaTxtChanging = false; mSalvItmBufIdx = 0; mSalvItmTimer = 0; mSalvItmChanging = false; if (getCtCurX() < -3 || getCtCurY() < -3) { setCtCurX(mGridX); setCtCurY(mGridY); } if (getCtZoomGridX() < -3 || getCtZoomGridY() < -3) { setCtZoomGridX(getCtCurX()); setCtZoomGridY(getCtCurY()); } switch (getCtDispMode()) { case FMAP_DISP_NORMAL: setCtCurHX(getCtCurX()); setCtCurHY(getCtCurY()); mMainProcIdx = MAIN_PROC_FMAP; mZoomLocked = false; break; case FMAP_DISP_HIKAKU: mMainProcIdx = MAIN_PROC_HIKAKU; mZoomLocked = true; break; } mHikakuProcIdx = HIKAKU_PROC_OPEN; paneTransBase(0, g_mfHIO.mBaseAnimFrame, g_mfHIO.mOpenPosY, 0.0f, 0, 0); mWarpScrollGuard = false; mWarpAnimActive = false; setCtFmapZoom(FMAP_ZOOM_WORLD); selGridMaskAlphaCtrl(0, g_mfHIO.mZoomAnimFrame, 0, 0); fmapMaskAlphaCtrl(0, g_mfHIO.mZoomAnimFrame, 0, 0); paneTranceZoomMap(0, g_mfHIO.mZoomAnimFrame, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0, 0); paneTranceZoom2Map(0, g_mfHIO.mZoomAnimFrame, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0, 0); paneAlphaFmapCursor(mKk3xPanes, 0, g_mfHIO.mSelCursorAlphaFrame, 0, 0); mFmapProcIdx = FMAP_ZOOM_PROC_SELECT_GRID; } /* 801B0FB4-801B1200 .text displayinit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::displayinit() { int i; for (i = 0; i < 49; i++) { setPaneOnOff(fmapDl.scrn, hist[i], !dComIfGs_isSaveArriveGrid(i)); } for (i = 0; i < ARRAY_SSIZE(mR0xPanes); i++) { static int islandPos[] = { dIsleRoom_ForsakenFortress_e, dIsleRoom_GaleIsle_e, dIsleRoom_WindfallIsland_e, dIsleRoom_DragonRoostIsland_e, dIsleRoom_FireMountain_e, dIsleRoom_GreatfishIsle_e, #if VERSION > VERSION_DEMO dIsleRoom_ToweroftheGods_e, #endif dIsleRoom_IceRingIsle_e, dIsleRoom_ForestHaven_e, dIsleRoom_OutsetIsland_e, dIsleRoom_HeadstoneIsland_e, }; if (dComIfGs_isSaveArriveGrid(islandPos[i] - 1)) { mR0xPanes[i].pane->show(); } else { mR0xPanes[i].pane->hide(); } } dispEndSalvageMark(); fopMsgM_paneTrans(&mAreaPane, mGridX * mAreaPane.mSizeOrig.x, mGridY * mAreaPane.mSizeOrig.y); setDspNormalMapLink(); setDspLargeMapLink(); selCursorInit(); selCursorMove(); fopMsgM_setNowAlpha(&mAreaTxtPanes[1], 0.0f); fopMsgM_setAlpha(&mAreaTxtPanes[1]); changeIslandName(mAreaTxtBufIdx); fopMsgM_setNowAlpha(&mGtixPanes[0], 1.0f); fopMsgM_setAlpha(&mGtixPanes[0]); fopMsgM_setNowAlpha(&mGtixPanes[1], 0.0f); fopMsgM_setAlpha(&mGtixPanes[1]); changeSalvageGetItem(mSalvItmBufIdx); playerPointGridAnimeInit(); checkMarkCheck1(); checkMarkCheck2(); checkMarkCheck3(); setDspWindAngle(); calcGetMapCount(); #if VERSION > VERSION_JPN gShipMarkAnimeInit(); #endif mFmap2.setSvPtr(fmapSv); mFmap2._create(); mFmap2.setAramCmapDat(&mCmapDatPnt); mFmap2.initialize(); mFmap2.displayInit(); g_mfHIO.mNo = mDoHIO_createChild("フィールドマップ画面", &g_mfHIO); } typedef void (dMenu_Fmap_c::*fmapProcFunc)(); fmapProcFunc fmapProcMain[] = { &dMenu_Fmap_c::SelectGrid, &dMenu_Fmap_c::ZoomGridLv1In, &dMenu_Fmap_c::ZoomGridLv1Proc, &dMenu_Fmap_c::ZoomGridLv1Out, &dMenu_Fmap_c::ZoomGridLv2In, &dMenu_Fmap_c::ZoomGridLv2Proc, &dMenu_Fmap_c::ZoomGridLv2Out, }; typedef void (dMenu_Fmap_c::*mainProcFunc)(); static mainProcFunc mainProc[] = { &dMenu_Fmap_c::FmapProc, &dMenu_Fmap_c::HikakuProc, }; typedef void (dMenu_Fmap_c::*hikakuProcFunc)(); hikakuProcFunc HikakuProcMain[] = { &dMenu_Fmap_c::fmap2Open, &dMenu_Fmap_c::fmap2Move, &dMenu_Fmap_c::fmap2Close, }; typedef void (dMenu_Fmap_c::*warpProcFunc)(); warpProcFunc warpProcMain[] = { &dMenu_Fmap_c::wrapMove, &dMenu_Fmap_c::wrapSelWinFadeIn1, &dMenu_Fmap_c::wrapSelect, &dMenu_Fmap_c::wrapSelWinFadeOut, &dMenu_Fmap_c::wrapSelWarp, }; typedef void (dMenu_Fmap_c::*fishManProcFunc)(); fishManProcFunc FishManProcMain[] = { &dMenu_Fmap_c::fmDispArea, &dMenu_Fmap_c::fmZoomGridLv1In, &dMenu_Fmap_c::fmZoomGridLv2In, &dMenu_Fmap_c::fmMapWrite, &dMenu_Fmap_c::fmMapWait, &dMenu_Fmap_c::fmZoomGridLv2Out, &dMenu_Fmap_c::fmZoomGridLv1Out, &dMenu_Fmap_c::fmEndWait, }; /* 801B1200-801B1210 .text backClothDispInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::backClothDispInit() { mClPane.pane->hide(); } /* 801B1210-801B1374 .text calcGetMapCount__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::calcGetMapCount() { int i; int numMap = 0; int completeMap = 0; for (i = 1; i <= 51; i++) { if (i != 35 && i != 36) { if (dComIfGs_isGetCollectMap(i)) { numMap++; } if (dComIfGs_isCompleteCollectMap(i)) { completeMap++; } } } char buf[32]; sprintf(buf, "rupy_num_%02d.bti", completeMap / 10); ((J2DPicture*)mCi31Pane.pane)->changeTexture(buf, 0); sprintf(buf, "rupy_num_%02d.bti", completeMap % 10); ((J2DPicture*)mCi32Pane.pane)->changeTexture(buf, 0); sprintf(buf, "rupy_num_%02d.bti", numMap / 10); ((J2DPicture*)mCi21Pane.pane)->changeTexture(buf, 0); sprintf(buf, "rupy_num_%02d.bti", numMap % 10); ((J2DPicture*)mCi22Pane.pane)->changeTexture(buf, 0); } /* 801B1374-801B14C4 .text dispEndSalvageMark__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::dispEndSalvageMark() { for (int i = 0; i < 49; i++) { aramCmapDatPnt_t* pnt = getGridNumToCmapDatPnt(i); if (!dComIfGs_isCompleteCollectMap(pnt->collectMapNo)) { mStxxPanes[i].pane->hide(); } else { fopMsgM_pane_class pane; fopMsgM_setPaneData(&pane, fmapDl.scrn, hist[i]); f32 x = pnt->salvagePnt[mSalvagePntIdx].x; f32 y = pnt->salvagePnt[mSalvagePntIdx].y; mStxxPanes[i].mPosCenterOrig.x = pane.mPosCenterOrig.x + x * 56.0f / 100000.0f; mStxxPanes[i].mPosCenterOrig.y = pane.mPosCenterOrig.y + y * 56.0f / 100000.0f; mStxxPanes[i].mPosCenter.x = mStxxPanes[i].mPosCenterOrig.x; mStxxPanes[i].mPosCenter.y = mStxxPanes[i].mPosCenterOrig.y; fopMsgM_cposMove(&mStxxPanes[i]); mStxxPanes[i].pane->show(); } } } /* 801B14C4-801B1684 .text checkMarkCheck1__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkMarkCheck1() { if ( !dComIfGs_isEventBit(dSv_event_flag_c::PLACED_DINS_PEARL) || !dComIfGs_isEventBit(dSv_event_flag_c::PLACED_FARORES_PEARL) || !dComIfGs_isEventBit(dSv_event_flag_c::PLACED_NAYRUS_PEARL)) { if (dComIfGs_isEventBit(dSv_event_flag_c::MET_KORL)) { mCk1xPanes[0].pane->show(); } if (dComIfGs_isSymbol(dSymbol_DIN_e)) { mCk1xPanes[0].pane->hide(); mCk1xPanes[2].pane->show(); } if (dComIfGs_isSymbol(dSymbol_FARORE_e)) { mCk1xPanes[2].pane->hide(); mCk1xPanes[1].pane->show(); } #if VERSION > VERSION_DEMO if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_1E80)) { mCk1xPanes[1].pane->hide(); } #endif #if VERSION == VERSION_DEMO if (dComIfGs_isSymbol(dSymbol_NAYRU_e)) #else if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_3920)) #endif { #if VERSION == VERSION_DEMO mCk1xPanes[1].pane->hide(); #endif if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_DINS_PEARL)) { mCk2xPanes[0].pane->hide(); } else { mCk2xPanes[0].pane->show(); } if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_FARORES_PEARL)) { mCk2xPanes[2].pane->hide(); } else { mCk2xPanes[2].pane->show(); } if (dComIfGs_isEventBit(dSv_event_flag_c::PLACED_NAYRUS_PEARL)) { mCk2xPanes[1].pane->hide(); } else { mCk2xPanes[1].pane->show(); } } } } /* 801B1684-801B1714 .text checkMarkCheck2__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkMarkCheck2() { if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_1820)) { mCk3xPanes[0].pane->show(); mCk3xPanes[1].pane->show(); if (dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_ET)) { mCk3xPanes[1].pane->hide(); } if (dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_WT)) { mCk3xPanes[0].pane->hide(); } } } /* 801B1714-801B190C .text checkMarkCheck3__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkMarkCheck3() { if (!dComIfGs_isEventBit(dSv_event_flag_c::UNK_0102) && dComIfGs_isEventBit(dSv_event_flag_c::UNK_3940)) { for (int i = 0; i < 8; i++) { u32 bit = i & 7; bool stat = dComIfGs_isEventBit(dSv_event_flag_c::UNK_0102) || ((dComIfGs_getEventReg(dSv_event_flag_c::UNK_9EFF) & 0xFF) >> bit & 1); if (stat != 0) { ((J2DPicture*)mKr0xPanes[i].pane)->setBlackWhite(g_mfHIO.mKorokMarkBlack, g_mfHIO.mKorokMarkWhite); #if VERSION == VERSION_DEMO mKr0xPanes[i].mInitAlpha = g_mfHIO.field_0xFB; mKr0xPanes[i].mNowAlpha = g_mfHIO.field_0xFB; #endif } else { #if VERSION == VERSION_DEMO mKr0xPanes[i].mInitAlpha = g_mfHIO.field_0xF2; mKr0xPanes[i].mNowAlpha = g_mfHIO.field_0xF2; #endif } ((J2DPicture*)mKr0xPanes[i].pane)->changeTexture(korogStat[stat], 0); mKr0xPanes[i].pane->show(); #if VERSION > VERSION_DEMO if (dComIfGs_checkBottle(dItemNo_FOREST_WATER_e)) { mKr0xPanes[i].mInitAlpha = 0xC0; mKr0xPanes[i].mNowAlpha = 0xC0; fopMsgM_paneScaleXY(&mKr0xPanes[i], 1.2f); } else { mKr0xPanes[i].mInitAlpha = 0x30; mKr0xPanes[i].mNowAlpha = 0x30; fopMsgM_paneScaleXY(&mKr0xPanes[i], 1.0f); } #endif fopMsgM_setAlpha(&mKr0xPanes[i]); } } } /* 801B190C-801B1914 .text isFmapClose__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::isFmapClose() { return mMapClose; } /* 801B1914-801B1978 .text setPaneOnOff__12dMenu_Fmap_cFP9J2DScreenUlb */ void dMenu_Fmap_c::setPaneOnOff(J2DScreen* i_screen, u32 i_arg2, bool i_arg3) { J2DPane* pane = i_screen->search(i_arg2); if (pane != NULL) { if (i_arg3) { pane->show(); } else { pane->hide(); } } } /* 801B1978-801B19F0 .text childPaneMoveSp__12dMenu_Fmap_cFP18fopMsgM_pane_classP18fopMsgM_pane_classfff */ void dMenu_Fmap_c::childPaneMoveSp(fopMsgM_pane_class* i_pane1, fopMsgM_pane_class* i_pane2, f32 i_scale, f32 i_x, f32 i_y) { f32 xSize = i_pane2->mSize.x / 2.0f; f32 ySize = i_pane2->mSize.y / 2.0f; i_pane1->mPosCenter.x = xSize + i_scale * (i_pane1->mPosCenterOrig.x - i_pane2->mSizeOrig.x / 2.0f); i_pane1->mPosCenter.y = ySize + i_scale * (i_pane1->mPosCenterOrig.y - i_pane2->mSizeOrig.y / 2.0f); fopMsgM_paneScale(i_pane1, i_x, i_y); } /* 801B19F0-801B1A80 .text selGridMaskAlphaCtrl__12dMenu_Fmap_cFsUcUci */ BOOL dMenu_Fmap_c::selGridMaskAlphaCtrl(s16 i_value, u8 i_max, u8 i_mode, int i_flag) { if (i_value < 0) { return FALSE; } if (i_value > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_value, i_mode); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } fopMsgM_setNowAlpha(&mKkdmPane, alpha); fopMsgM_setAlpha(&mKkdmPane); } return FALSE; } /* 801B1A80-801B1B10 .text fmapMaskAlphaCtrl__12dMenu_Fmap_cFsUcUci */ BOOL dMenu_Fmap_c::fmapMaskAlphaCtrl(s16 i_value, u8 i_max, u8 i_mode, int i_flag) { if (i_value < 0) { return FALSE; } if (i_value > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_value, i_mode); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } fopMsgM_setNowAlpha(&mSmskPane, alpha); fopMsgM_setAlpha(&mSmskPane); } return FALSE; } /* 801B1B10-801B1B58 .text selCursorInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorInit() { mSelCursorBufIdx = 0; for (int i = 0; i < 4; i++) { mKk1xPanes[i].pane->show(); mKk1xPanes[i + 4].pane->hide(); } mKk1xPanes->mUserArea = g_mfHIO.mCursorFlashFrame; } /* 801B1B58-801B1B80 .text selCursorHide__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorHide() { for (int i = 0; i < 8; i++) { mKk1xPanes[i].pane->hide(); } } /* 801B1B80-801B1CF0 .text selCursorMove__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorMove() { f32 x = getCtCurX() * 56.0f; f32 y = getCtCurY() * 56.0f; for (int i = 0; i < 8; i++) { fopMsgM_paneTrans(&mKk1xPanes[i], x, y); } fopMsgM_paneTrans(&mKkdmPane, x, y); } /* 801B1CF0-801B1D48 .text islandNameChange__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::islandNameChange() { if (mAreaTxtChanging == true) { AreaTxtChgFast(); } else { mAreaTxtChanging = true; } changeIslandName(mAreaTxtBufIdx ^ 1); } /* 801B1D48-801B1FCC .text changeIslandName__12dMenu_Fmap_cFUc */ void dMenu_Fmap_c::changeIslandName(u8 i_no) { s8 wy = getCtCurY(); s8 wx = getCtCurX(); int grid = wx + (wy + 3) * 7 + 3; if (!dComIfGs_isSaveArriveGrid(grid)) { mTxtName[i_no][0] = 0; } else { u32 msgNo; if (grid == dIsleIdx_PrivateOasis_e && dComIfGs_isEventBit(dSv_event_flag_c::UNK_2D80)) { msgNo = 0x31D7; } else { msgNo = grid + 0x31A6; } if ( grid == dIsleIdx_ForsakenFortress_e || grid == dIsleIdx_GaleIsle_e || grid == dIsleIdx_WindfallIsland_e || grid == dIsleIdx_DragonRoostIsland_e || grid == dIsleIdx_FireMountain_e || grid == dIsleIdx_GreatfishIsle_e || grid == dIsleIdx_ToweroftheGods_e || grid == dIsleIdx_IceRingIsle_e || grid == dIsleIdx_ForestHaven_e || grid == dIsleIdx_OutsetIsland_e || grid == dIsleIdx_HeadstoneIsland_e) { ((J2DTextBox*)mAreaTxtPanes[i_no].pane)->setCharColor(g_mfHIO.mAreaTxtColorMain); } else { ((J2DTextBox*)mAreaTxtPanes[i_no].pane)->setCharColor(g_mfHIO.mAreaTxtColor); } fopMsgM_messageGet(mTxtName[i_no], msgNo); } } /* 801B1FCC-801B2044 .text AreaTxtChg__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::AreaTxtChg() { if (mAreaTxtChanging) { int alpha = PaneAlphaAreaTxt(mAreaTxtTimer, g_mfHIO.mAreaTxtAlphaFrame, 0); mAreaTxtTimer++; if (alpha == 1) { mAreaTxtBufIdx ^= 1; mAreaTxtTimer = 0; mAreaTxtChanging = false; } } } /* 801B2044-801B20E0 .text AreaTxtChgFast__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::AreaTxtChgFast() { mAreaTxtTimer = 0; fopMsgM_setNowAlpha(&mAreaTxtPanes[mAreaTxtBufIdx ^ 1], 1.0f); fopMsgM_setAlpha(&mAreaTxtPanes[mAreaTxtBufIdx ^ 1]); fopMsgM_setNowAlpha(&mAreaTxtPanes[mAreaTxtBufIdx], 0.0f); fopMsgM_setAlpha(&mAreaTxtPanes[mAreaTxtBufIdx]); mAreaTxtBufIdx ^= 1; } /* 801B20E0-801B2154 .text salvageGetItemChg__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::salvageGetItemChg() { if (mSalvItmChanging) { int alpha = PaneAlphaSelvageItem(mSalvItmTimer, g_mfHIO.mAreaTxtAlphaFrame); mSalvItmTimer++; if (alpha == 1) { mSalvItmBufIdx ^= 1; mSalvItmTimer = 0; mSalvItmChanging = false; } } } /* 801B2154-801B21AC .text salvageGetItemChange__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::salvageGetItemChange() { if (mSalvItmChanging == true) { SalvItmDispChgFast(); } else { mSalvItmChanging = true; } changeSalvageGetItem(mSalvItmBufIdx ^ 1); } /* 801B21AC-801B2274 .text SalvItmDispChgFast__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::SalvItmDispChgFast() { mSalvItmTimer = 0; if (mFullMapMode == true) { fopMsgM_setNowAlpha(&mGtixPanes[mSalvItmBufIdx ^ 1], 1.0f); } else { fopMsgM_setNowAlpha(&mGtixPanes[mSalvItmBufIdx ^ 1], 0.0f); } fopMsgM_setAlpha(&mGtixPanes[mSalvItmBufIdx ^ 1]); fopMsgM_setNowAlpha(&mGtixPanes[mSalvItmBufIdx], 0.0f); fopMsgM_setAlpha(&mGtixPanes[mSalvItmBufIdx]); mSalvItmBufIdx ^= 1; } /* 801B2274-801B23EC .text changeSalvageGetItem__12dMenu_Fmap_cFUc */ void dMenu_Fmap_c::changeSalvageGetItem(u8 i_no) { s8 wy = getCtCurY(); s8 wx = getCtCurX(); int grid = wx + (wy + 3) * 7 + 3; aramCmapDatPnt_t* pnt = getGridNumToCmapDatPnt(grid); if (dComIfGs_isCompleteCollectMap(pnt->collectMapNo)) { mFullMapMode = true; ((J2DPicture*)mGtixPanes[i_no].pane)->changeTexture(salvItemex[pnt->mapType], 0); } else { mFullMapMode = false; fopMsgM_setNowAlpha(&mGtixPanes[i_no], 0.0f); fopMsgM_setAlpha(&mGtixPanes[i_no]); } } /* 801B23EC-801B247C .text selCursorAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorAnime() { if (mKk1xPanes[0].mUserArea == 0) { for (int i = 0; i < 4; i++) { mKk1xPanes[i + (mSelCursorBufIdx ^ 1) * 4].pane->show(); mKk1xPanes[i + mSelCursorBufIdx * 4].pane->hide(); } mSelCursorBufIdx ^= 1; mKk1xPanes[0].mUserArea = g_mfHIO.mCursorFlashFrame; } else { mKk1xPanes[0].mUserArea--; } } /* 801B247C-801B24C4 .text zoomCursorInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::zoomCursorInit() { mCursorBufIdx = 0; for (int i = 0; i < 4; i++) { mKk3xPanes[i].pane->show(); mKk3xPanes[i + 4].pane->hide(); } mKk3xPanes[0].mUserArea = g_mfHIO.mCursorFlashFrame; } /* 801B24C4-801B2554 .text zoomCursorAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::zoomCursorAnime() { if (mKk3xPanes[0].mUserArea == 0) { for (int i = 0; i < 4; i++) { mKk3xPanes[i + (mCursorBufIdx ^ 1) * 4].pane->show(); mKk3xPanes[i + mCursorBufIdx * 4].pane->hide(); } mCursorBufIdx ^= 1; mKk3xPanes[0].mUserArea = g_mfHIO.mCursorFlashFrame; } else { mKk3xPanes[0].mUserArea--; } } /* 801B2554-801B2570 .text playerPointGridAnimeInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::playerPointGridAnimeInit() { mPlayerPointTimer = g_mfHIO.mPlayerPointTimer; mPlayerPointToggle = 0; } /* 801B2570-801B2830 .text playerPointGridAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::playerPointGridAnime() { JUtility::TColor black; JUtility::TColor white; f32 alpha = fopMsgM_valueIncrease(g_mfHIO.mPlayerPointTimer, mPlayerPointTimer, 2); if (mPlayerPointToggle == 0) { alpha = 1.0f - alpha; } black.r = g_mfHIO.mPlayerPointWhite2.r + alpha * (g_mfHIO.mPlayerPointBlack2.r - g_mfHIO.mPlayerPointWhite2.r); black.g = g_mfHIO.mPlayerPointWhite2.g + alpha * (g_mfHIO.mPlayerPointBlack2.g - g_mfHIO.mPlayerPointWhite2.g); black.b = g_mfHIO.mPlayerPointWhite2.b + alpha * (g_mfHIO.mPlayerPointBlack2.b - g_mfHIO.mPlayerPointWhite2.b); black.a = mBlackAlpha; white.r = g_mfHIO.mPlayerPointWhite1.r + alpha * (g_mfHIO.mPlayerPointBlack1.r - g_mfHIO.mPlayerPointWhite1.r); white.g = g_mfHIO.mPlayerPointWhite1.g + alpha * (g_mfHIO.mPlayerPointBlack1.g - g_mfHIO.mPlayerPointWhite1.g); white.b = g_mfHIO.mPlayerPointWhite1.b + alpha * (g_mfHIO.mPlayerPointBlack1.b - g_mfHIO.mPlayerPointWhite1.b); white.a = mWhiteAlpha; ((J2DPicture*)mAreaPane.pane)->setWhite(white); ((J2DPicture*)mAreaPane.pane)->setBlack(black); if (mPlayerPointTimer == 0) { mPlayerPointTimer = g_mfHIO.mPlayerPointTimer; mPlayerPointToggle ^= 1; } else { mPlayerPointTimer--; } } /* 801B2830-801B2A14 .text setDspWindAngle__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::setDspWindAngle() { cXyz* vec = dKyw_get_wind_vec(); s16 adj = cM_atan2s(vec->x, vec->z) + 0x8000; f32 angle = fmod((adj * 180.0f) / 32768.0f, 360.0); mWnd1Pane.pane->rotate( (f32)(int)(mWnd1Pane.mSizeOrig.x + g_mfHIO.mWindArrowPivotX), (f32)(int)(mWnd1Pane.mSizeOrig.y * 0.5f + g_mfHIO.mWindArrowPivotY), ROTATE_Z, angle); mWnd2Pane.pane->rotate( g_mfHIO.mWindArrowPivotX, (f32)(int)(mWnd2Pane.mSizeOrig.y * 0.5f + g_mfHIO.mWindArrowPivotY), ROTATE_Z, angle); } /* 801B2A14-801B3284 .text windArrowColorAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::windArrowColorAnime() { s16 period = g_mfHIO.mWindArrowPeriod - (dKyw_get_wind_pow() * 10.0f + 0.5f); s16 holdA = g_mfHIO.mWindArrowHold1; s16 holdB = g_mfHIO.mWindArrowHold2; s16 cycle = holdA + period * 2 + holdB; JUtility::TColor colorA; JUtility::TColor colorB; mWnd1Pane.mUserArea++; if (mWnd1Pane.mUserArea > cycle) { mWnd1Pane.mUserArea = 0; } s16 val = mWnd1Pane.mUserArea; if (val < period) { f32 alpha = fopMsgM_valueIncrease(period, val, 0); colorA.r = g_mfHIO.mWindArrowColor2.r + alpha * (g_mfHIO.mWindArrowColor1.r - g_mfHIO.mWindArrowColor2.r); colorA.g = g_mfHIO.mWindArrowColor2.g + alpha * (g_mfHIO.mWindArrowColor1.g - g_mfHIO.mWindArrowColor2.g); colorA.b = g_mfHIO.mWindArrowColor2.b + alpha * (g_mfHIO.mWindArrowColor1.b - g_mfHIO.mWindArrowColor2.b); colorA.a = g_mfHIO.mWindArrowColor2.a + alpha * (g_mfHIO.mWindArrowColor1.a - g_mfHIO.mWindArrowColor2.a); } else if (val < period + holdA) { colorA = JUtility::TColor(g_mfHIO.mWindArrowColor1); } else if (val < holdA + period * 2) { f32 alpha = fopMsgM_valueIncrease(period, (holdA + period * 2) - val, 0); colorA.r = g_mfHIO.mWindArrowColor2.r + alpha * (g_mfHIO.mWindArrowColor1.r - g_mfHIO.mWindArrowColor2.r); colorA.g = g_mfHIO.mWindArrowColor2.g + alpha * (g_mfHIO.mWindArrowColor1.g - g_mfHIO.mWindArrowColor2.g); colorA.b = g_mfHIO.mWindArrowColor2.b + alpha * (g_mfHIO.mWindArrowColor1.b - g_mfHIO.mWindArrowColor2.b); colorA.a = g_mfHIO.mWindArrowColor2.a + alpha * (g_mfHIO.mWindArrowColor1.a - g_mfHIO.mWindArrowColor2.a); } else { colorA = JUtility::TColor(g_mfHIO.mWindArrowColor2); } if (mWnd1Pane.mUserArea < holdA) { colorB = JUtility::TColor(g_mfHIO.mWindArrowColor1); } else if (mWnd1Pane.mUserArea < period + holdA) { f32 alpha = fopMsgM_valueIncrease(period, (period + holdA) - mWnd1Pane.mUserArea, 0); colorB.r = g_mfHIO.mWindArrowColor2.r + alpha * (g_mfHIO.mWindArrowColor1.r - g_mfHIO.mWindArrowColor2.r); colorB.g = g_mfHIO.mWindArrowColor2.g + alpha * (g_mfHIO.mWindArrowColor1.g - g_mfHIO.mWindArrowColor2.g); colorB.b = g_mfHIO.mWindArrowColor2.b + alpha * (g_mfHIO.mWindArrowColor1.b - g_mfHIO.mWindArrowColor2.b); colorB.a = g_mfHIO.mWindArrowColor2.a + alpha * (g_mfHIO.mWindArrowColor1.a - g_mfHIO.mWindArrowColor2.a); } else if (mWnd1Pane.mUserArea < period + holdA + holdB) { colorB = JUtility::TColor(g_mfHIO.mWindArrowColor2); } else { f32 alpha = fopMsgM_valueIncrease(period, mWnd1Pane.mUserArea - (period + holdA + holdB), 0); colorB.r = g_mfHIO.mWindArrowColor2.r + alpha * (g_mfHIO.mWindArrowColor1.r - g_mfHIO.mWindArrowColor2.r); colorB.g = g_mfHIO.mWindArrowColor2.g + alpha * (g_mfHIO.mWindArrowColor1.g - g_mfHIO.mWindArrowColor2.g); colorB.b = g_mfHIO.mWindArrowColor2.b + alpha * (g_mfHIO.mWindArrowColor1.b - g_mfHIO.mWindArrowColor2.b); colorB.a = g_mfHIO.mWindArrowColor2.a + alpha * (g_mfHIO.mWindArrowColor1.a - g_mfHIO.mWindArrowColor2.a); } ((J2DPicture*)mWnd1Pane.pane)->setCornerColor(colorA, colorA, colorB, colorB); ((J2DPicture*)mWnd2Pane.pane)->setCornerColor(colorA, colorA, colorB, colorB); } /* 801B3284-801B32A0 .text checkMarkAnimeInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkMarkAnimeInit() { mCheckMarkTimer = g_mfHIO.mCheckMarkAnimFrame; mCheckMarkToggle = 1; } /* 801B32A0-801B3658 .text checkMarkAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkMarkAnime() { JUtility::TColor white; JUtility::TColor black; f32 alpha = fopMsgM_valueIncrease(g_mfHIO.mCheckMarkAnimFrame, mCheckMarkTimer, 2); if (mCheckMarkToggle == 0) { alpha = 1.0f - alpha; } white.r = lineInter0to1ForU8(g_mfHIO.mCheckMarkWhite.r, mCk1Color2.r, alpha); white.g = lineInter0to1ForU8(g_mfHIO.mCheckMarkWhite.g, mCk1Color2.g, alpha); white.b = lineInter0to1ForU8(g_mfHIO.mCheckMarkWhite.b, mCk1Color2.b, alpha); white.a = mCk1Color2.a; black.r = lineInter0to1ForU8(g_mfHIO.mCheckMarkBlack.r, mCk1Color1.r, alpha); black.g = lineInter0to1ForU8(g_mfHIO.mCheckMarkBlack.g, mCk1Color1.g, alpha); black.b = lineInter0to1ForU8(g_mfHIO.mCheckMarkBlack.b, mCk1Color1.b, alpha); black.a = mCk1Color1.a; if (mCheckMarkTimer == 0) { mCheckMarkTimer = g_mfHIO.mCheckMarkAnimFrame; mCheckMarkToggle ^= 1; } else { mCheckMarkTimer--; } for (int i = 0; i < 3; i++) { if (mCk1xPanes[i].pane->isVisible()) { ((J2DPicture*)mCk1xPanes[i].pane)->setBlackWhite(black, white); } if (mCk2xPanes[i].pane->isVisible()) { ((J2DPicture*)mCk2xPanes[i].pane)->setBlackWhite(black, white); } } for (int i = 0; i < 2; i++) { if (mCk3xPanes[i].pane->isVisible()) { #if VERSION == VERSION_DEMO // @bug Bad copy paste, sets ck1x again ((J2DPicture*)mCk1xPanes[i].pane)->setBlackWhite(black, white); #else ((J2DPicture*)mCk3xPanes[i].pane)->setBlackWhite(black, white); #endif } } } #if VERSION == VERSION_DEMO void dMenu_Fmap_c::krogMarkAnimeInit() { mKorokMarkTimer = g_mfHIO.mKorokMarkAnimFrame; mKorokMarkToggle = 1; } #endif #if VERSION == VERSION_DEMO void dMenu_Fmap_c::krogMarkAnime() { /* Nonmatching */ JUtility::TColor white; JUtility::TColor black; if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0102)) { return; } f32 alpha = fopMsgM_valueIncrease(g_mfHIO.mCheckMarkAnimFrame, mCheckMarkTimer, 2); if (mCheckMarkToggle == 0) { alpha = 1.0f - alpha; } white.r = lineInter0to1ForU8(g_mfHIO.mKorokMarkAnimWhite.r, mKr0Color2.r, alpha); white.g = lineInter0to1ForU8(g_mfHIO.mKorokMarkAnimWhite.g, mKr0Color2.g, alpha); white.b = lineInter0to1ForU8(g_mfHIO.mKorokMarkAnimWhite.b, mKr0Color2.b, alpha); white.a = mCk1Color2.a; black.r = lineInter0to1ForU8(g_mfHIO.mKorokMarkAnimBlack.r, mKr0Color1.r, alpha); black.g = lineInter0to1ForU8(g_mfHIO.mKorokMarkAnimBlack.g, mKr0Color1.g, alpha); black.b = lineInter0to1ForU8(g_mfHIO.mKorokMarkAnimBlack.b, mKr0Color1.b, alpha); black.a = mCk1Color1.a; if (mKorokMarkTimer == 0) { mKorokMarkTimer = g_mfHIO.mKorokMarkAnimFrame; mKorokMarkToggle ^= 1; } else { mKorokMarkTimer--; } for (int i = 0; i < 8; i++) { if (mKr0xPanes[i].pane->isVisible()) { u32 bit = i & 7; bool stat = dComIfGs_isEventBit(dSv_event_flag_c::UNK_0102) || ((dComIfGs_getEventReg(dSv_event_flag_c::UNK_9EFF) & 0xFF) >> bit & 1); if (stat == 0) { ((J2DPicture*)mKr0xPanes[i].pane)->setBlackWhite(black, white); } } } } #endif /* 801B3658-801B3698 .text readFmapTexture__12dMenu_Fmap_cFPCc */ u32 dMenu_Fmap_c::readFmapTexture(const char* i_filename) { JKRArchive* archive = dComIfGp_getFmapArchive(); return JKRReadTypeResource(mChkPntTxt_p, 0x2c00, 'FM ', i_filename, archive); } /* 801B3698-801B36F0 .text aramCmapDatRead__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::aramCmapDatRead() { JKRArchive* archive = dComIfGp_getFmapResArchive(); aramCmapDatPat_t* pat = (aramCmapDatPat_t*)JKRArchive::getGlbResource('DATA', "CmapDat.bin", archive); initCmapDatPnt(pat); } /* 801B36F0-801B3760 .text initCmapDatPnt__12dMenu_Fmap_cFP16aramCmapDatPat_t */ void dMenu_Fmap_c::initCmapDatPnt(aramCmapDatPat_t* a_pat) { mCmapDatPnt.init(a_pat); } /* 801B3760-801B37B0 .text getGridNumToCmapDatPnt__12dMenu_Fmap_cFi */ aramCmapDatPnt_t* dMenu_Fmap_c::getGridNumToCmapDatPnt(int i_gridIdx) { return mCmapDatPnt.getCmapDatPnt3(i_gridIdx); } /* 801B37B0-801B392C .text setDispIslandPos__12dMenu_Fmap_cFScSc */ void dMenu_Fmap_c::setDispIslandPos(s8 i_x, s8 i_y) { s8 i = dMap_getCheckPointUseGrid(i_x, i_y); if (i != -1) { s16 x; s16 y; dMap_getFmapChkPntPrm(i, NULL, NULL, &x, &y, NULL); f32 offsetX = x * ((mClbPane.mSizeOrig.x - 50.0f) / 100000.0f); f32 offsetY = y * ((mClbPane.mSizeOrig.y - 50.0f) / 100000.0f); mDispIslandPosX = x; mDispIslandPosY = y; setIslandPos(&mR01bPane, offsetX, offsetY); setIslandPos(&mTsw1Pane, offsetX, offsetY); changeFmapTexture(i_x, i_y); mTsw1Pane.pane->show(); mR01bPane.pane->show(); } else { mTsw1Pane.pane->hide(); mR01bPane.pane->hide(); } } /* 801B392C-801B3984 .text setIslandPos__12dMenu_Fmap_cFP18fopMsgM_pane_classff */ void dMenu_Fmap_c::setIslandPos(fopMsgM_pane_class* i_pane, f32 i_x, f32 i_y) { f32 newX = mClbPane.mSizeOrig.x / 2.0f; i_pane->mPosCenterOrig.x = newX + i_x; f32 newY = mClbPane.mSizeOrig.y / 2.0f; i_pane->mPosCenterOrig.y = newY + i_y; i_pane->mPosCenter = i_pane->mPosCenterOrig; fopMsgM_cposMove(i_pane); } /* 801B3984-801B3A2C .text changeFmapTexture__12dMenu_Fmap_cFScSc */ void dMenu_Fmap_c::changeFmapTexture(s8 i_x, s8 i_y) { int grid = i_x + (i_y + 3) * 7 + 3; char filename[64]; sprintf(filename, "R%02X_b.bti", grid + 1); if (readFmapTexture(filename) == NULL) { mR01bPane.pane->hide(); mR01gPane.pane->hide(); } else { ((J2DPicture*)mR01bPane.pane)->changeTexture(mChkPntTxt_p, 0); ((J2DPicture*)mR01gPane.pane)->changeTexture(mChkPntTxt_p, 0); } } /* 801B3A2C-801B3C4C .text setDspNormalMapLink__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::setDspNormalMapLink() { if (!mFishmanActive) { mLnk1Pane.pane->hide(); mSpi1Pane.pane->hide(); } else { mLnk1Pane.mPosCenterOrig.x = mAreaPane.mPosCenterOrig.x + (mPlayerPos.x * 56.0f) / 100000.0f; mLnk1Pane.mPosCenterOrig.y = mAreaPane.mPosCenterOrig.y + (mPlayerPos.y * 56.0f) / 100000.0f; mLnk1Pane.mPosCenter.x = mLnk1Pane.mPosCenterOrig.x; mLnk1Pane.mPosCenter.y = mLnk1Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mLnk1Pane); mLnk1Pane.pane->rotate( (s32)(mLnk1Pane.mSize.x * 0.5f), (s32)(mLnk1Pane.mSize.y * 0.5f), ROTATE_Z, mPlayerPos.z ); if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) == 0) { mSpi1Pane.mPosCenterOrig.x = mAreaPane.mPosCenterOrig.x + (mShipPos.x * 56.0f) / 100000.0f; mSpi1Pane.mPosCenterOrig.y = mAreaPane.mPosCenterOrig.y + (mShipPos.y * 56.0f) / 100000.0f; mSpi1Pane.mPosCenter.x = mSpi1Pane.mPosCenterOrig.x; mSpi1Pane.mPosCenter.y = mSpi1Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mSpi1Pane); mSpi1Pane.pane->rotate( (s32)(mSpi1Pane.mSize.x * 0.5f), (s32)(mSpi1Pane.mSize.y * 0.5f), ROTATE_Z, mShipPos.z ); } else { mSpi1Pane.pane->hide(); } } } /* 801B3C4C-801B3DFC .text setDspLargeMapLink__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::setDspLargeMapLink() { if (mFishmanActive) { f32 x = mPlayerPos.x - 100000.0f * mGridX; f32 y = mPlayerPos.y - 100000.0f * mGridY; f32 size = mClbPane.mSizeOrig.x; mLnk2Pane.mPosCenterOrig.x = size / 2.0f + x * ((size - 50.0f) / 100000.0f); size = mClbPane.mSizeOrig.y; mLnk2Pane.mPosCenterOrig.y = size / 2.0f + y * ((size - 50.0f) / 100000.0f); mLnk2Pane.mPosCenter.x = mLnk2Pane.mPosCenterOrig.x; mLnk2Pane.mPosCenter.y = mLnk2Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mLnk2Pane); if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) == 0) { x = mShipPos.x - 100000.0f * mTargetGridX; y = mShipPos.y - 100000.0f * mTargetGridY; size = mClbPane.mSizeOrig.x; mSpi2Pane.mPosCenterOrig.x = size / 2.0f + x * ((size - 50.0f) / 100000.0f); size = mClbPane.mSizeOrig.y; mSpi2Pane.mPosCenterOrig.y = size / 2.0f + y * ((size - 50.0f) / 100000.0f); mSpi2Pane.mPosCenter.x = mSpi2Pane.mPosCenterOrig.x; mSpi2Pane.mPosCenter.y = mSpi2Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mSpi2Pane); } } } /* 801B3DFC-801B3F28 .text checkDspLargeMapLink__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkDspLargeMapLink() { if (!mFishmanActive) { mLnk2Pane.pane->hide(); mDspLargeMapLink = false; #if VERSION <= VERSION_JPN mStm1Pane.pane->hide(); return; #endif } else { mCurChkPntNo = dMap_getCheckPointUseGrid(getCtCurX(), getCtCurY()); if (mPlayerChkPntNo == mCurChkPntNo) { mDspLargeMapLink = true; } else { mLnk2Pane.pane->hide(); mDspLargeMapLink = false; } } dispEndSalvageLargeMark(); } /* 801B3F28-801B405C .text checkDspLargeMapShip__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkDspLargeMapShip() { if (!mFishmanActive) { mSpi2Pane.pane->hide(); mDspLargeMapShip = false; } else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) == 0 && mTargetGridX == getCtCurX() && mTargetGridY == getCtCurY()) { mDspLargeMapShip = true; } else { mSpi2Pane.pane->hide(); mDspLargeMapShip = false; } } /* 801B405C-801B4264 .text dispEndSalvageLargeMark__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::dispEndSalvageLargeMark() { int grid = getCtCurX() + (getCtCurY() + 3) * 7 + 3; aramCmapDatPnt_t* pnt = (aramCmapDatPnt_t*)mCmapDatPnt.getCmapDatPnt3(grid); if (!dComIfGs_isCompleteCollectMap(pnt->collectMapNo)) { mStm1Pane.pane->hide(); } else { f32 x = pnt->salvagePnt[mSalvagePntIdx].x; f32 y = pnt->salvagePnt[mSalvagePntIdx].y; mStm1Pane.mPosCenterOrig.x = mClbPane.mSizeOrig.x / 2.0f + x * ((mClbPane.mSizeOrig.x - 50.0f) / 100000.0f); mStm1Pane.mPosCenterOrig.y = mClbPane.mSizeOrig.y / 2.0f + y * ((mClbPane.mSizeOrig.y - 50.0f) / 100000.0f); mStm1Pane.mPosCenter.x = mStm1Pane.mPosCenterOrig.x; mStm1Pane.mPosCenter.y = mStm1Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mStm1Pane); mStm1Pane.pane->show(); } } /* 801B4264-801B4640 .text setDspHugeMapLink__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::setDspHugeMapLink() { #if VERSION <= VERSION_JPN if (!mFishmanActive) { mStl1Pane.pane->hide(); #if VERSION > VERSION_DEMO mLnk3Pane.pane->hide(); mDspHugeMapLink = false; #endif return; } #endif int i = dMap_getCheckPointUseGrid(getCtZoomGridX(), getCtZoomGridY()); if (i != -1) { s8 gx; s8 gy; s16 a; s16 b; dMap_getFmapChkPntPrm(i, &gx, &gy, &a, &b, NULL); #if VERSION > VERSION_JPN if (!mFishmanActive) { mLnk3Pane.pane->hide(); mDspHugeMapLink = false; dispEndSalvageHugeMark(a, b); } else #endif { f32 islandX = a + 100000.0f * gx; f32 islandY = b + 100000.0f * gy; f32 dx = mPlayerPos.x - islandX; f32 dy = mPlayerPos.y - islandY; if (dx <= 10000.0f && dx >= -10000.0f && dy <= 10000.0f && dy >= -10000.0f) { mMapSelectActive = true; } else { mMapSelectActive = false; } f32 baseX = mR01gPane.mPosTopLeftOrig.x + mR01gPane.mSizeOrig.x / 2.0f; f32 baseY = mR01gPane.mPosTopLeftOrig.y + mR01gPane.mSizeOrig.y / 2.0f; mLnk3Pane.mPosCenterOrig.x = baseX + dx * (mR01gPane.mSizeOrig.x / 20000.0f); mLnk3Pane.mPosCenterOrig.y = baseY + dy * (mR01gPane.mSizeOrig.y / 20000.0f); mLnk3Pane.mPosCenter.x = mLnk3Pane.mPosCenterOrig.x; mLnk3Pane.mPosCenter.y = mLnk3Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mLnk3Pane); if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) == 0) { f32 shipDx = mShipPos.x - islandX; f32 shipDy = mShipPos.y - islandY; if (shipDx <= 10000.0f && shipDx >= -10000.0f && shipDy <= 10000.0f && shipDy >= -10000.0f) { mDspHugeMapShip = true; #if VERSION > VERSION_DEMO mShipOpenWater = false; #endif } else { mDspHugeMapShip = false; #if VERSION > VERSION_DEMO mShipOpenWater = true; mSpi3Pane.pane->hide(); #endif } mSpi3Pane.mPosCenterOrig.x = baseX + shipDx * (mR01gPane.mSizeOrig.x / 20000.0f); mSpi3Pane.mPosCenterOrig.y = baseY + shipDy * (mR01gPane.mSizeOrig.y / 20000.0f); mSpi3Pane.mPosCenter.x = mSpi3Pane.mPosCenterOrig.x; mSpi3Pane.mPosCenter.y = mSpi3Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mSpi3Pane); } dispEndSalvageHugeMark(a, b); } } } /* 801B4640-801B48C4 .text dispEndSalvageHugeMark__12dMenu_Fmap_cFff */ void dMenu_Fmap_c::dispEndSalvageHugeMark(f32 i_x, f32 i_y) { s8 curX = getCtCurX(); s8 curY = getCtCurY(); int grid = curX + (curY + 3) * 7 + 3; aramCmapDatPnt_t* pnt = (aramCmapDatPnt_t*)mCmapDatPnt.getCmapDatPnt3(grid); if (!dComIfGs_isCompleteCollectMap(pnt->collectMapNo)) { mStl1Pane.pane->hide(); } else { f32 dx = pnt->salvagePnt[mSalvagePntIdx].x - i_x; f32 dy = pnt->salvagePnt[mSalvagePntIdx].y - i_y; if (dx <= 10000.0f && dx >= -10000.0f && dy <= 10000.0f && dy >= -10000.0f) { mStl1Pane.mPosCenterOrig.x = mR01gPane.mPosTopLeftOrig.x + mR01gPane.mSizeOrig.x / 2.0f + dx * (mR01gPane.mSizeOrig.x / 20000.0f); mStl1Pane.mPosCenterOrig.y = mR01gPane.mPosTopLeftOrig.y + mR01gPane.mSizeOrig.y / 2.0f + dy * (mR01gPane.mSizeOrig.y / 20000.0f); mStl1Pane.mPosCenter.x = mStl1Pane.mPosCenterOrig.x; mStl1Pane.mPosCenter.y = mStl1Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mStl1Pane); mStl1Pane.pane->show(); } else { mStl1Pane.pane->hide(); } } } /* 801B48C4-801B49F0 .text checkDspHugeMapLink__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkDspHugeMapLink() { if (!mFishmanActive) { mLnk3Pane.pane->hide(); } else { mCurChkPntNo = dMap_getCheckPointUseGrid(getCtCurX(), getCtCurY()); if (mPlayerChkPntNo == mCurChkPntNo && mMapSelectActive) { mDspHugeMapLink = true; } else { mLnk3Pane.pane->hide(); mDspHugeMapLink = false; } } } /* 801B49F0-801B4B44 .text checkDspHugeMapShip__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::checkDspHugeMapShip() { if (!mFishmanActive) { mSpi3Pane.pane->hide(); mDspHugeMapShip = false; } else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) == 0 && mTargetGridX == getCtCurX() && mTargetGridY == getCtCurY() ) { #if VERSION == VERSION_DEMO mDspHugeMapShip = true; #else if (mShipOpenWater) { mDspHugeMapShip = false; mSpi3Pane.pane->hide(); } else { mDspHugeMapShip = true; } #endif } else { mSpi3Pane.pane->hide(); mDspHugeMapShip = false; } } /* 801B4B44-801B4C0C .text _open__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_open() { BOOL ret; #if VERSION > VERSION_DEMO if (mFrameTimer == 0) { mButtonIconMode = FMAP_BTN_ICON_WORLD; } #endif if (mZoomLocked) { ret = TRUE; } else { ret = paneTransBase(mFrameTimer - g_mfHIO.mOpenDelay, g_mfHIO.mBaseAnimFrame, g_mfHIO.mOpenPosY, 0.0, 0, 0); mFrameTimer++; } if (ret == TRUE) { mFrameTimer = 0; #if VERSION == VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_WORLD; #endif return true; } return false; } /* 801B4C0C-801B4C78 .text _close__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_close() { bool ret; switch (mFmapMode) { case FMAP_MODE_NORMAL: case FMAP_MODE_WALLPAPER: ret = _close_normalMode(); break; case FMAP_MODE_WARP: ret = _close_warpMode(); break; case FMAP_MODE_FISHMAN: ret = _close_fishManMode(); break; } return ret; } /* 801B4C78-801B4D78 .text _close_normalMode__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_close_normalMode() { BOOL i = mInputDisabled ? 1 : paneTransBase(mFrameTimer, g_mfHIO.mBaseAnimFrame, 0.0f, g_mfHIO.mClosePosY, 0, 1); mFrameTimer++; if (i == TRUE) { if (!mInputDisabled) { setCtDispMode(FMAP_DISP_NORMAL); } mFrameTimer = 0; return true; } return false; } /* 801B4D78-801B4E14 .text _move__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::_move() { switch (mFmapMode) { case FMAP_MODE_NORMAL: move_normal(); break; case FMAP_MODE_WARP: moveMain_warpMode(); break; case FMAP_MODE_WALLPAPER: if (CPad_CHECK_TRIG_LEFT(0) || CPad_CHECK_TRIG_DOWN(0) || CPad_CHECK_TRIG_B(0)) { mMapClose = true; } else { mMapClose = false; } break; case FMAP_MODE_FISHMAN: movefishManMode(); break; } } /* 801B4E14-801B4E6C .text _draw__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::_draw() { dComIfGd_set2DOpa(&fmapDl); if (mMainProcIdx == MAIN_PROC_HIKAKU) { mFmap2._draw(); } } /* 801B4E6C-801B4F40 .text _delete__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::_delete() { mFmap2._delete(); delete fmapDl.scrn; delete stick; delete mChkPntTxt_p; if (outFont != NULL) { delete outFont; } if (outFont2 != NULL) { delete outFont2; } dComIfGp_getFmapResArchive()->removeResourceAll(); #if VERSION > VERSION_DEMO dComIfGp_getFmapArchive()->removeResourceAll(); #endif mDoHIO_deleteChild(g_mfHIO.mNo); } /* 801B4F40-801B5034 .text FmapProcMain__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::FmapProcMain() { if ( CPad_CHECK_TRIG_LEFT(0) || CPad_CHECK_TRIG_DOWN(0) || mInputDisabled || (CPad_CHECK_TRIG_B(0) && getCtFmapZoom() == FMAP_ZOOM_WORLD) ) { mMapClose = true; return; } (this->*fmapProcMain[mFmapProcIdx])(); windArrowColorAnime(); checkMarkAnime(); #if VERSION == VERSION_DEMO krogMarkAnime(); #endif #if VERSION > VERSION_JPN gShipMarkAnime(); #endif } /* 801B5034-801B5878 .text SelectGrid__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::SelectGrid() { stick->checkTrigger(); if (CPad_CHECK_TRIG_A(0)) { mDoAud_seStart(JA_SE_CHART_ZOOM_IN); if (dComIfGs_isSaveArriveGrid(getCtCurX() + (getCtCurY() + 3) * 7 + 3)) { mButtonIconMode = FMAP_BTN_ICON_SECTOR; } else { mButtonIconMode = FMAP_BTN_ICON_LOCKED; } setCtZoomGridX(getCtCurX()); setCtZoomGridY(getCtCurY()); setCtFmapZoom(FMAP_ZOOM_SECTOR); zoom1000x1000Init(); mWarpScrollGuard = false; if (mAreaTxtChanging) { AreaTxtChgFast(); mAreaTxtChanging = false; } mFrameTimer = 0; mFmapProcIdx = FMAP_ZOOM_PROC_LV1_IN; } else { if (stick->checkRightTrigger()) { if (getCtCurX() < 3) { setCtCurX(getCtCurX() + 1); mDoAud_seStart(JA_SE_CHART_CURSOR); selCursorMove(); islandNameChange(); salvageGetItemChange(); } } else { if (stick->checkLeftTrigger()) { if (getCtCurX() > -3) { setCtCurX(getCtCurX() - 1); mDoAud_seStart(JA_SE_CHART_CURSOR); selCursorMove(); islandNameChange(); salvageGetItemChange(); } } else { if (stick->checkUpTrigger()) { if (getCtCurY() > -3) { setCtCurY(getCtCurY() - 1); mDoAud_seStart(JA_SE_CHART_CURSOR); selCursorMove(); islandNameChange(); salvageGetItemChange(); } } else { if (stick->checkDownTrigger()) { if (getCtCurY() < 3) { setCtCurY(getCtCurY() + 1); mDoAud_seStart(JA_SE_CHART_CURSOR); selCursorMove(); islandNameChange(); salvageGetItemChange(); } } } } } } playerPointGridAnime(); selCursorAnime(); AreaTxtChg(); salvageGetItemChg(); } /* 801B5878-801B5B58 .text zoom1000x1000Init__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::zoom1000x1000Init() { s8 wy = getCtCurY(); s8 wx = getCtCurX(); int grid = wx + (wy + 3) * 7 + 3; zoomMapAlphaSet(getCtCurX(), getCtCurY(), &mR01bPane, 0x14); checkDspLargeMapLink(); checkDspLargeMapShip(); setDispIslandPos(getCtCurX(), getCtCurY()); selCursorInit(); zoomCursorInit(); mKkdmPane.pane->show(); mSmskPane.pane->show(); mClbPane.pane->show(); if (!dComIfGs_isSaveArriveGrid(grid)) { mTsw1Pane.pane->hide(); mR01bPane.pane->hide(); mKtx1Pane.pane->show(); if (!dComIfGs_getOptRuby()) { mKtx2Pane.pane->show(); } mClb2Pane.pane->show(); } else { mKtx1Pane.pane->hide(); mKtx2Pane.pane->hide(); mClb2Pane.pane->hide(); } } /* 801B5B58-801B5BB4 .text zoomMapAlphaSet__12dMenu_Fmap_cFScScP18fopMsgM_pane_classUc */ void dMenu_Fmap_c::zoomMapAlphaSet(s8 i_gridX, s8 i_gridY, fopMsgM_pane_class* i_pane, u8 i_alpha) { if ((i_gridX + 3) + (i_gridY + 3) * 7 == dIsleIdx_ToweroftheGods_e) { i_pane->mInitAlpha = i_alpha; } else { i_pane->mInitAlpha = 0xFF; } #if VERSION > VERSION_DEMO i_pane->mInitAlpha = 0xFF; #endif fopMsgM_setAlpha(i_pane); } /* 801B5BB4-801B5D6C .text ZoomGridLv1In__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::ZoomGridLv1In() { BOOL selCursor = paneAlphaFmapCursor(mKk1xPanes, mFrameTimer, g_mfHIO.mSelCursorAlphaFrame, 0, 1); BOOL selGridMask = selGridMaskAlphaCtrl(mFrameTimer, g_mfHIO.mZoomAnimFrame, 0, 0); BOOL fmapMask = fmapMaskAlphaCtrl(mFrameTimer, g_mfHIO.mZoomAnimFrame, 0, 0); BOOL zoomMap = paneTranceZoomMap(mFrameTimer - g_mfHIO.mZoomMapDelay, g_mfHIO.mZoomAnimFrame, mKkdmPane.mPosCenter.x - mClbPane.mPosCenterOrig.x, mKkdmPane.mPosCenter.y - mClbPane.mPosCenterOrig.y, 0.0f, 0.0f, mKkdmPane.mSizeOrig.x / mClbPane.mSizeOrig.x, 1.0f, 0x02, 0); BOOL zoomCursor = paneAlphaFmapCursor(mKk3xPanes, mFrameTimer - g_mfHIO.mZoomMapDelay, g_mfHIO.mZoomAnimFrame, 0, 0); mFrameTimer++; if (CPad_CHECK_TRIG_A(0) && !mWarpScrollGuard) { mWarpScrollGuard = true; } if (selCursor == TRUE && selGridMask == TRUE && fmapMask == TRUE && zoomMap == TRUE && zoomCursor == TRUE) { mFrameTimer = 0; if (mDspLargeMapLink) { mLnk2Pane.pane->show(); } if (mDspLargeMapShip) { mSpi2Pane.pane->show(); } mFmapProcIdx = FMAP_ZOOM_PROC_LV1; } } /* 801B5D6C-801B5F80 .text ZoomGridLv1Proc__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::ZoomGridLv1Proc() { if (CPad_CHECK_TRIG_A(0) != 0 || mWarpScrollGuard) { if (mButtonIconMode == FMAP_BTN_ICON_SECTOR) { mDoAud_seStart(JA_SE_CHART_ZOOM_IN); mButtonIconMode = FMAP_BTN_ICON_DETAIL; setCtFmapZoom(FMAP_ZOOM_DETAIL); zoom200x200Init(); f32 clgOrigX = mClgPane.mSizeOrig.x; paneTranceZoom2Map(0, g_mfHIO.mZoom2AnimFrame, mDispIslandPosX * (clgOrigX / 100000.0f), mDispIslandPosY * (mClgPane.mSizeOrig.y / 100000.0f), 0.0, 0.0, mTsw1Pane.mSizeOrig.x / clgOrigX, 1.0, 0x2, 0); for (int i = 0; i < 8; i++) { mKk3xPanes[i].pane->setInfluencedAlpha(false); } mR01bPane.pane->setInfluencedAlpha(false); mFrameTimer = 0; mFmapProcIdx = FMAP_ZOOM_PROC_LV2_IN; } mWarpScrollGuard = false; } else { if (CPad_CHECK_TRIG_B(0) || mWarpAnimActive) { mDoAud_seStart(JA_SE_CHART_ZOOM_OUT); if (mDspLargeMapLink) { mLnk2Pane.pane->hide(); } if (mDspLargeMapShip) { mSpi2Pane.pane->hide(); } mWarpAnimActive = false; zoomCursorInit(); mFmapProcIdx = FMAP_ZOOM_PROC_LV1_OUT; } } zoomCursorAnime(); } /* 801B5F80-801B6084 .text zoom200x200Init__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::zoom200x200Init() { zoomMapAlphaSet(getCtCurX(), getCtCurY(), &mR01gPane, 0x1E); zoomCursorInit(); setDspHugeMapLink(); checkDspHugeMapLink(); checkDspHugeMapShip(); mClgPane.pane->show(); } /* 801B6084-801B6270 .text ZoomGridLv1Out__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::ZoomGridLv1Out() { BOOL selGridMask = selGridMaskAlphaCtrl(mFrameTimer - g_mfHIO.mZoomOutDelay, g_mfHIO.mZoomAnimFrame, 0, 1); BOOL fmapMask = fmapMaskAlphaCtrl(mFrameTimer - g_mfHIO.mZoomOutDelay, g_mfHIO.mZoomAnimFrame, 0, 1); BOOL zoomMap = paneTranceZoomMap(mFrameTimer - g_mfHIO.mZoomMapDelay, g_mfHIO.mZoomAnimFrame, 0.0f, 0.0f, mKkdmPane.mPosCenter.x - mClbPane.mPosCenterOrig.x, mKkdmPane.mPosCenter.y - mClbPane.mPosCenterOrig.y, 1.0, mKkdmPane.mSizeOrig.x / mClbPane.mSizeOrig.x, 0x02, 1); BOOL zoomCursor = paneAlphaFmapCursor(mKk3xPanes, mFrameTimer - g_mfHIO.mZoomMapDelay, g_mfHIO.mZoomAnimFrame, 0, 1); BOOL selCursor = paneAlphaFmapCursor(mKk1xPanes, mFrameTimer - g_mfHIO.mZoomOutDelay, g_mfHIO.mSelCursorAlphaFrame, 0, 0); mFrameTimer++; if (selGridMask == TRUE && fmapMask == TRUE && zoomMap == TRUE && zoomCursor == TRUE && selCursor == TRUE) { mFrameTimer = 0; mKkdmPane.pane->hide(); mSmskPane.pane->hide(); mClbPane.pane->hide(); mButtonIconMode = FMAP_BTN_ICON_WORLD; setCtFmapZoom(FMAP_ZOOM_WORLD); mFmapProcIdx = FMAP_ZOOM_PROC_SELECT_GRID; } } /* 801B6270-801B6388 .text ZoomGridLv2In__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::ZoomGridLv2In() { f32 origX = mClgPane.mSizeOrig.x; BOOL zoom2 = paneTranceZoom2Map(mFrameTimer, g_mfHIO.mZoom2AnimFrame, mDispIslandPosX * (origX / 100000.0f), mDispIslandPosY * (mClgPane.mSizeOrig.y / 100000.0f), 0.0, 0.0, mTsw1Pane.mSizeOrig.x / origX, 1.0, 0x02, 0); BOOL alpha = paneTranceZoomMapAlpah(mFrameTimer, g_mfHIO.mZoom2AnimFrame, 0x02, 1); mFrameTimer++; if (zoom2 == TRUE && alpha == TRUE) { mFrameTimer = 0; if (mDspHugeMapLink) { mLnk3Pane.pane->show(); } #if VERSION > VERSION_DEMO else { mLnk3Pane.pane->hide(); } #endif if (mDspHugeMapShip) { mSpi3Pane.pane->show(); } #if VERSION > VERSION_DEMO else { mSpi3Pane.pane->hide(); } #endif mFmapProcIdx = FMAP_ZOOM_PROC_LV2; } } /* 801B6388-801B6440 .text ZoomGridLv2Proc__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::ZoomGridLv2Proc() { if (CPad_CHECK_TRIG_B(0)) { mDoAud_seStart(JA_SE_CHART_ZOOM_OUT); if (mDspHugeMapLink) { mLnk3Pane.pane->hide(); } if (mDspHugeMapShip) { mSpi3Pane.pane->hide(); } mWarpAnimActive = false; zoomCursorInit(); mFmapProcIdx = FMAP_ZOOM_PROC_LV2_OUT; } zoomCursorAnime(); } /* 801B6440-801B65D8 .text ZoomGridLv2Out__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::ZoomGridLv2Out() { f32 origX = mClgPane.mSizeOrig.x; BOOL zoom2 = paneTranceZoom2Map(mFrameTimer, g_mfHIO.mZoom2AnimFrame, 0.0f, 0.0f, mDispIslandPosX * (origX / 100000.0f), mDispIslandPosY * (mClgPane.mSizeOrig.y / 100000.0f), 1.0f, mTsw1Pane.mSizeOrig.x / origX, 0x02, 1); BOOL alpha = paneTranceZoomMapAlpah(mFrameTimer, g_mfHIO.mZoom2AnimFrame, 0x02, 0); if (CPad_CHECK_TRIG_B(0) && !mWarpAnimActive) { mWarpAnimActive = true; } mFrameTimer++; if (zoom2 == TRUE && alpha == TRUE) { mButtonIconMode = FMAP_BTN_ICON_SECTOR; setCtFmapZoom(FMAP_ZOOM_SECTOR); if (mDspLargeMapLink) { mLnk2Pane.pane->show(); } mClgPane.pane->hide(); for (int i = 0; i < 8; i++) { mKk3xPanes[i].pane->setInfluencedAlpha(true); } mR01bPane.pane->setInfluencedAlpha(true); mFrameTimer = 0; mFmapProcIdx = FMAP_ZOOM_PROC_LV1; } } /* 801B65D8-801B6610 .text move_normal__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::move_normal() { (this->*mainProc[mMainProcIdx])(); } /* 801B6610-801B66DC .text FmapProc__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::FmapProc() { if (CPad_CHECK_TRIG_Y(0)) { mDoAud_seStart(JA_SE_CHART_TO_COMPARE); setCtDispMode(FMAP_DISP_HIKAKU); mMainProcIdx = MAIN_PROC_HIKAKU; mHikakuProcIdx = HIKAKU_PROC_OPEN; } else { FmapProcMain(); } } /* 801B66DC-801B6714 .text HikakuProc__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::HikakuProc() { (this->*HikakuProcMain[mHikakuProcIdx])(); } /* 801B6714-801B678C .text fmap2Open__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmap2Open() { if (mFmap2._open() == true) { if (mZoomLocked) { paneTransBase(0, g_mfHIO.mBaseAnimFrame, 0.0, 0.0, 0, 1); } mHikakuProcIdx = HIKAKU_PROC_MOVE; } } /* 801B678C-801B68A0 .text fmap2Move__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmap2Move() { mFmap2._move(); if (CPad_CHECK_TRIG_Y(0) && !mFmap2.isLockBbutton()) { mDoAud_seStart(JA_SE_CHART_TO_NORMAL); mHikakuProcIdx = HIKAKU_PROC_CLOSE; mInputDisabled = false; #if VERSION > VERSION_JPN gShipMarkAnimeInit(); #endif return; } if (!CPad_CHECK_TRIG_B(0) && !CPad_CHECK_TRIG_LEFT(0) && !CPad_CHECK_TRIG_DOWN(0)) { return; } else if (!mFmap2.isLockBbutton()) { paneTransBase(0, g_mfHIO.mBaseAnimFrame, 480.0f, 0.0f, 0, 0); mInputDisabled = true; mHikakuProcIdx = HIKAKU_PROC_CLOSE; } } /* 801B68A0-801B68EC .text fmap2Close__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmap2Close() { if (mFmap2._close() == true) { mMainProcIdx = MAIN_PROC_FMAP; mHikakuProcIdx = HIKAKU_PROC_MOVE; } } /* 801B68EC-801B6A7C .text paneTransBase__12dMenu_Fmap_cFsUcffUci */ BOOL dMenu_Fmap_c::paneTransBase(s16 i_frame, u8 i_max, f32 i_x, f32 i_y, u8 i_mode, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mode); f32 transY = alpha * (i_y - i_x); fopMsgM_paneTrans(&mClPane, 0.0f, i_x + transY); fopMsgM_paneTrans(&mFddmPane, 0.0f, i_x + transY); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } int i; for (i = 0; i < 3; i++) { fopMsgM_setNowAlpha(&mCk1xPanes[i], alpha); fopMsgM_setNowAlpha(&mCk2xPanes[i], alpha); fopMsgM_setAlpha(&mCk1xPanes[i]); fopMsgM_setAlpha(&mCk2xPanes[i]); } for (i = 0; i < 2; i++) { fopMsgM_setNowAlpha(&mCk3xPanes[i], alpha); fopMsgM_setAlpha(&mCk3xPanes[i]); } fopMsgM_setNowAlpha(&mFddmPane, alpha); fopMsgM_setAlpha(&mFddmPane); fopMsgM_setNowAlpha(&mClPane, alpha); fopMsgM_setAlpha(&mClPane); } return FALSE; } /* 801B6A7C-801B6F88 .text paneTranceZoomMap__12dMenu_Fmap_cFsUcffffffUci */ BOOL dMenu_Fmap_c::paneTranceZoomMap(s16 i_frame, u8 i_max, f32 i_transStartX, f32 i_transStartY, f32 i_transEndX, f32 i_transEndY, f32 i_scaleStart, f32 i_scaleEnd, u8 i_mode, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 scale = i_scaleStart; f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mode); J2DTextBox::TFontSize ktx1FontSize; J2DTextBox::TFontSize ktx2FontSize; f32 f0 = i_transEndX - i_transStartX; f32 f1 = i_transEndY - i_transStartY; f32 f2 = i_scaleEnd - i_scaleStart; f32 f29 = alpha * f0; f32 f28 = alpha * f1; f32 scaleAdj = alpha * f2; fopMsgM_paneScaleXY(&mClbPane, i_scaleStart + scaleAdj); scale = i_scaleStart + scaleAdj; fopMsgM_paneTrans(&mClbPane, i_transStartX + f29, i_transStartY + f28); if (i_flag == 1) { alpha = 1.0f - alpha; } if (mLnk2Pane.pane->isVisible()) { childPaneMoveSp(&mLnk2Pane, &mClbPane, alpha, scale, scale); mLnk2Pane.pane->rotate( (s32)(mLnk2Pane.mSize.x * 0.5f), (s32)(mLnk2Pane.mSize.y * 0.5f), ROTATE_Z, mPlayerPos.z ); } if (mSpi2Pane.pane->isVisible()) { childPaneMoveSp(&mSpi2Pane, &mClbPane, alpha, scale, scale); mSpi2Pane.pane->rotate( (s32)(mSpi2Pane.mSize.x * 0.5f), (s32)(mSpi2Pane.mSize.y * 0.5f), ROTATE_Z, mShipPos.z ); } if (mKtx2Pane.pane->isVisible()) { ktx2FontSize.mSizeX = scale * 16.0f; ktx2FontSize.mSizeY = scale * 16.0f; ((J2DTextBox*)mKtx2Pane.pane)->setFontSize(ktx2FontSize); childPaneMoveSp(&mKtx2Pane, &mClbPane, alpha, scale, scale); } if (mKtx1Pane.pane->isVisible()) { ktx1FontSize.mSizeX = scale * VERSION_SELECT(29.0f, 29.0f, 27.0f, 27.0f); ktx1FontSize.mSizeY = scale * 29.0f; f32 lineSpace = scale * 47.0f; ((J2DTextBox*)mKtx1Pane.pane)->setFontSize(ktx1FontSize); ((J2DTextBox*)mKtx1Pane.pane)->setLineSpace(lineSpace); childPaneMoveSp(&mKtx1Pane, &mClbPane, alpha, scale, scale); outFont2->messageSet(0x319B); outFont2->setLeftUpPos(mKtx1Pane.mPosTopLeft.x, mKtx1Pane.mPosTopLeft.y); outFont2->move(); } if (mClb2Pane.pane->isVisible()) { childPaneMoveSp(&mClb2Pane, &mClbPane, alpha, scale, scale); } for (int i = 0; i < ARRAY_SSIZE(mSc1xPanes); i++) { childPaneMoveSp(&mSc1xPanes[i], &mClbPane, alpha, scale, scale); } childPaneMoveSp(&mR01bPane, &mClbPane, alpha, scale, scale); childPaneMoveSp(&mStm1Pane, &mClbPane, alpha, scale, scale); childPaneMoveSp(&mTsw1Pane, &mClbPane, alpha, scale, scale); for (int i = 0; i < 8; i++) { childPaneMoveSp(&mKk3xPanes[i], &mClbPane, alpha, 1.0f, 1.0f); } if (i_flag != 2) { fopMsgM_setNowAlpha(&mR01bPane, alpha); fopMsgM_setAlpha(&mR01bPane); fopMsgM_setNowAlpha(&mClbPane, alpha); fopMsgM_setAlpha(&mClbPane); } return FALSE; } /* 801B6F88-801B7018 .text paneTranceZoomMapAlpah__12dMenu_Fmap_cFsUcUci */ BOOL dMenu_Fmap_c::paneTranceZoomMapAlpah(s16 i_frame, u8 i_max, u8 i_mode, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mode); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } fopMsgM_setNowAlpha(&mClbPane, alpha); fopMsgM_setAlpha(&mClbPane); } return FALSE; } /* 801B7018-801B74EC .text paneTranceZoom2Map__12dMenu_Fmap_cFsUcffffffUci */ BOOL dMenu_Fmap_c::paneTranceZoom2Map(s16 i_frame, u8 i_max, f32 i_transStartX, f32 i_transStartY, f32 i_transEndX, f32 i_transEndY, f32 i_scaleStart, f32 i_scaleEnd, u8 i_mode, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 scale; f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mode); f32 transXRange = i_transEndX - i_transStartX; f32 transYRange = i_transEndY - i_transStartY; f32 scaleRange = i_scaleEnd - i_scaleStart; f32 transXAdj = alpha * transXRange; f32 transYAdj = alpha * transYRange; f32 scaleAdj = alpha * scaleRange; fopMsgM_paneTrans(&mClgPane, i_transStartX + transXAdj, i_transStartY + transYAdj); fopMsgM_paneScaleXY(&mClgPane, i_scaleStart + scaleAdj); scale = i_scaleStart + scaleAdj; if (i_flag == 1) { alpha = 1.0f - alpha; } if (mLnk3Pane.pane->isVisible()) { childPaneMoveSp(&mLnk3Pane, &mClgPane, alpha, scale, scale); mLnk3Pane.pane->rotate( (s32)(mLnk3Pane.mSize.x * 0.5f), (s32)(mLnk3Pane.mSize.y * 0.5f), ROTATE_Z, mPlayerPos.z ); } if (mSpi3Pane.pane->isVisible()) { childPaneMoveSp(&mSpi3Pane, &mClgPane, alpha, scale, scale); mSpi3Pane.pane->rotate( (s32)(mSpi3Pane.mSize.x * 0.5f), (s32)(mSpi3Pane.mSize.y * 0.5f), ROTATE_Z, mShipPos.z ); } childPaneMoveSp(&mR01gPane, &mClgPane, alpha, scale, scale); childPaneMoveSp(&mStl1Pane, &mClgPane, alpha, scale, scale); for (int i = 0; i < 7; i++) { childPaneMoveSp(&mSc2xPanes[i], &mClgPane, alpha, scale, scale); } for (int i = 0; i < 5; i++) { childPaneMoveSp(&mFmxxPanes[i], &mClgPane, alpha, scale, scale); } mFmxxPanes[1].pane->rotate( (s32)(mFmxxPanes[1].mSize.x * 0.5f), (s32)(mFmxxPanes[1].mSize.y * 0.5f), ROTATE_Z, 90.0f ); mFmxxPanes[4].pane->rotate( (s32)(mFmxxPanes[4].mSize.x * 0.5f), (s32)(mFmxxPanes[4].mSize.y * 0.5f), ROTATE_Z, 90.0f ); int i; for (i = 0; i < 15; i++) { childPaneMoveSp(&mFmnPanes[i], &mClgPane, alpha, scale, scale); } if (i_flag != 2) { for (i = 0; i < 4; i++) { fopMsgM_setNowAlpha(&mR01gPane, alpha); fopMsgM_setAlpha(&mR01gPane); fopMsgM_setNowAlpha(&mClgPane, alpha); fopMsgM_setAlpha(&mClgPane); } } return FALSE; } /* 801B74EC-801B75B0 .text paneAlphaFmapCursor__12dMenu_Fmap_cFP18fopMsgM_pane_classsUcUci */ BOOL dMenu_Fmap_c::paneAlphaFmapCursor(fopMsgM_pane_class* i_pane, s16 i_frame, u8 i_max, u8 i_mask, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mask); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } for (int i = 0; i < 8; i++) { fopMsgM_setNowAlpha(&i_pane[i], alpha); fopMsgM_setAlpha(&i_pane[i]); } } return FALSE; } /* 801B75B0-801B76A0 .text PaneAlphaSelvageItem__12dMenu_Fmap_cFsUc */ BOOL dMenu_Fmap_c::PaneAlphaSelvageItem(s16 i_frame, u8 i_max) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 inAlpha = fopMsgM_valueIncrease(i_max, i_frame, 0); f32 outAlpha = 1.0f - inAlpha; if (mGtixPanes[mSalvItmBufIdx].mNowAlpha != 0) { fopMsgM_setNowAlpha(&mGtixPanes[mSalvItmBufIdx], outAlpha); fopMsgM_setAlpha(&mGtixPanes[mSalvItmBufIdx]); } if (mFullMapMode == true) { fopMsgM_setNowAlpha(&mGtixPanes[(mSalvItmBufIdx ^ 1)], inAlpha); fopMsgM_setAlpha(&mGtixPanes[(mSalvItmBufIdx ^ 1)]); } return FALSE; } #if VERSION > VERSION_JPN /* 801B76A0-801B77A8 .text gShipMarkAnimeInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::gShipMarkAnimeInit() { if (dComIfGs_isOpenCollectMap(0x24)) { mMoonAlphaActive = true; if ((int)dComIfGs_getEventReg(dSv_event_flag_c::GHOST_SHIP) == 3) { mMoonAlphaState1 = true; } else { mMoonAlphaState1 = false; mMoonAlphaState2 = false; f32 time = dComIfGs_getTime(); if (time >= 285.0f || (time >= 0.0f && time <= 90.0f)) { mMoonAlphaState2 = true; mGsPanes[dKy_moon_type_chk()].pane->show(); } } mMoonAlphaTimer = g_mfHIO.mMoonAlphaFrame; mMoonAlphaToggle = 1; } else { mMoonAlphaActive = false; } } /* 801B77A8-801B78B0 .text gShipMarkAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::gShipMarkAnime() { if (mMoonAlphaActive && !mMoonAlphaState1 && mMoonAlphaState2) { int moonType = dKy_moon_type_chk(); f32 alpha = fopMsgM_valueIncrease(g_mfHIO.mMoonAlphaFrame, mMoonAlphaTimer, 2); if (mMoonAlphaToggle == 0) { alpha = 1.0f - alpha; } f32 range = g_mfHIO.mMoonAlphaMax - g_mfHIO.mMoonAlphaMin; mGsPanes[moonType].mNowAlpha = g_mfHIO.mMoonAlphaMin + (u32)(range * alpha); fopMsgM_setAlpha(&mGsPanes[moonType]); if (mMoonAlphaTimer == 0) { mMoonAlphaTimer = g_mfHIO.mMoonAlphaFrame; mMoonAlphaToggle ^= 1; } else { mMoonAlphaTimer--; } } } #endif /* 801B78B0-801B79E8 .text _open_warpMode__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_open_warpMode() { if (mFrameTimer == 0) { init_warpMode(); } BOOL ret = paneTransBase(mFrameTimer, g_mfHIO.mBaseAnimFrame, 0.0f, 0.0f, 0, 0); mFrameTimer++; f32 ratio = (f32)mFrameCounter / (f32)g_mfHIO.mWarpBackColorCycle; mFrameCounter++; u8 counter = mFrameCounter; mFrameCounter = counter - (counter / (g_mfHIO.mWarpBackColorCycle * 4)) * (g_mfHIO.mWarpBackColorCycle * 4); setDspWarpBackCornerColor(ratio); if (ret == TRUE) { mFrameTimer = 0; for (int i = 0; i < FMAP_WARP_COUNT; i++) { mWrapSpotEmitters[i]->playDrawParticle(); } mWrapBackEmitter->clearStatus(JPAEmtrStts_StopDraw); #if VERSION == VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_WARP; #endif mWarpProcIdx = WARP_PROC_MOVE; return true; } return false; } /* 801B79E8-801B7CD0 .text init_warpMode__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::init_warpMode() { mDoAud_seStart(JA_SE_SHIPPU_CHART_OPEN); mFmapMode = FMAP_MODE_WARP; #if VERSION > VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_WARP; #endif if (dComIfGs_getOptRuby()) { mWt1Pane.pane->hide(); mWt0Pane.mPosCenterOrig.y -= 4.0f; mWt0Pane.mPosCenter.y = mWt0Pane.mPosCenterOrig.y; fopMsgM_cposMove(&mWt0Pane); } if (getCtCurWX() < -3 || getCtCurWY() < -3) { setCtCurWX(-2); setCtCurWY(-2); } selCursorInit(); selCursorMoveWarp(); #if VERSION == VERSION_DEMO krogMarkAnimeInit(); krogMarkAnime(); #endif mWarpSubState = FMAP_WARP_SEL_YES; cXyz spotEmitter; cXyz backEmitter(0.0f, 0.0f, 0.0f); setWrapBackEmitter(backEmitter); mWrapBackEmitter->setStatus(JPAEmtrStts_StopDraw); int i = DEMO_SELECT(1, 0); for (; i < FMAP_WARP_COUNT + DEMO_SELECT(1, 0); i++) { spotEmitter.x = g_mfHIO.mWarpSpotPosX[i-DEMO_SELECT(1, 0)]; spotEmitter.y = g_mfHIO.mWarpSpotPosY[i-DEMO_SELECT(1, 0)]; spotEmitter.z = 0.0f; setWrapSpotEmitter(i-DEMO_SELECT(1, 0), spotEmitter); mWrapSpotEmitters[i-DEMO_SELECT(1, 0)]->stopDrawParticle(); } areaTextChangeAnimeInit(); mFrameCounter = 0; setDspWarpBackCornerColor(0.0f); warpAreaAnime0(); } /* 801B7CD0-801B7E30 .text selCursorMoveWarp__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorMoveWarp() { f32 transX = getCtCurWX() * 56.0f; f32 transY = getCtCurWY() * 56.0f; for (int i = 0; i < 8; i++) { fopMsgM_paneTrans(&mKk1xPanes[i], transX, transY); } } /* 801B7E30-801B7EA8 .text _close_warpMode__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_close_warpMode() { BOOL ret = paneTransBase(mFrameTimer, g_mfHIO.mBaseAnimFrame, 0.0, 0.0, 0, 1); mFrameTimer++; if (ret == 1) { mFrameTimer = 0; mFmapMode = FMAP_MODE_NORMAL; return true; } return false; } /* 801B7EA8-801B7EF8 .text moveMain_warpMode__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::moveMain_warpMode() { stick->checkTrigger(); (this->*warpProcMain[mWarpProcIdx])(); } /* 801B7EF8-801B8754 .text wrapMove__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::wrapMove() { s8 cursorAreaNo; const cursorTable_t* table = getWarpAreaTablePtr(getCtCurWX(), getCtCurWY()); int msgNo = getWarpAreaNo(table); cursorAreaNo = -1; if (CPad_CHECK_TRIG_A(0)) { mDoAud_seStart(JA_SE_SHIPPU_DIST_SEL); if (dComIfGs_isSaveArriveGrid(getCtCurWX() + (getCtCurWY() + 3) * 7 + 3)) { #if VERSION == VERSION_DEMO msgNo += 0x45; #else if (msgNo == 7) { msgNo = 0x43; } else if (msgNo == 8) { msgNo = 0x42; } else { msgNo += 0x45; } #endif } else { msgNo = 0x44; } fopMsgM_selectMessageGet(mWt0Pane.pane, mWt1Pane.pane, mTxtNote[0], mTxtNote[1], mTxtDummy[0], mTxtDummy[1], msgNo); mCur1Pane.pane->show(); mWarpSubState = FMAP_WARP_SEL_YES; ((J2DPicture*) mNo01Pane.pane)->setBlackWhite( JUtility::TColor(0x33, 0x15, 0x00, 0x00), JUtility::TColor(0x76, 0x54, 0x2F, 0xFF)); ((J2DPicture*) mNo00Pane.pane)->setBlackWhite( JUtility::TColor(0x33, 0x15, 0x00, 0x00), JUtility::TColor(0x76, 0x54, 0x2F, 0xFF)); ((J2DPicture*)mYs01Pane.pane)->setBlackWhite(mYs01Color1, mYs01Color2); ((J2DPicture*)mYs00Pane.pane)->setBlackWhite(mYs01Color1, mYs01Color2); warpSelCursorMove(); warpSelCursorAnimeInit(); mWts1Pane.pane->show(); mCc01Pane.pane->show(); mYsk0Pane.pane->show(); mNok0Pane.pane->show(); mCur1Pane.pane->hide(); mFrameTimer = 0; paneAlphaWarpMsgBack(mFrameTimer, g_mfHIO.mWarpMsgAnimFrame, 0, 0); paneTranceWarpMsg(&mCc01Pane, mFrameTimer, g_mfHIO.mWarpMsgAnimFrame, g_mfHIO.mWarpMsgPosY, 0.0f, 0, 0); paneTranceWarpMsg(&mYsk0Pane, mFrameTimer, g_mfHIO.mWarpMsgAnimFrame, g_mfHIO.mWarpYesNoPosY, 0.0f, 0, 0); paneTranceWarpMsg(&mNok0Pane, mFrameTimer, g_mfHIO.mWarpMsgAnimFrame, g_mfHIO.mWarpYesNoPosY, 0.0f, 0, 0); areaTextChangeAnimeInit(); for (int i = 0; i < FMAP_WARP_COUNT; i++) { mWrapSpotEmitters[i]->stopDrawParticle(); } mWarpProcIdx = WARP_PROC_SEL_WIN_FADE_IN; } else { if (CPad_CHECK_TRIG_B(0) || CPad_CHECK_TRIG_DOWN(0)) { mDoAud_seStart(JA_SE_SHIPPU_CHART_CLOSE); if (dComIfGp_getShipActor() != NULL) { dComIfGp_getShipActor()->setTactWarpPosNum(-1); } mMapClose = true; stopWrapBackEmitter(); for (int i = 0; i < FMAP_WARP_COUNT; i++) { mWrapSpotEmitters[i]->stopDrawParticle(); stopWrapSpotEmitter(i); } } else { if (stick->checkRightTrigger()) { cursorAreaNo = getWarpAreaNoRight(table); } else if (stick->checkLeftTrigger()) { cursorAreaNo = getWarpAreaNoLeft(table); } else if (stick->checkUpTrigger()) { cursorAreaNo = getWarpAreaNoUp(table); } else if (stick->checkDownTrigger()) { cursorAreaNo = getWarpAreaNoDown(table); } if (cursorAreaNo >= 0) { mDoAud_seStart(JA_SE_CHART_CURSOR); setCtCurWX(getWarpAreaGridX(cursorAreaNo)); setCtCurWY(getWarpAreaGridY(cursorAreaNo)); areaTextChangeAnimeInit(); selCursorMoveWarp(); warpAreaAnime0(); } } } areaTextChangeAnime(); outFont->setLeftUpPos(mAreaTxtPanes[2].mPosTopLeftOrig.x, mAreaTxtPanes[2].mPosTopLeftOrig.y); outFont->move(); selCursorAnime(); f32 ratio = (f32)mFrameCounter / (f32)g_mfHIO.mWarpBackColorCycle; mFrameCounter++; u8 counter = mFrameCounter; mFrameCounter = counter - (counter / (g_mfHIO.mWarpBackColorCycle * 4)) * (g_mfHIO.mWarpBackColorCycle * 4); setDspWarpBackCornerColor(ratio); } /* 801B8754-801B8938 .text wrapSelWinFadeIn1__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::wrapSelWinFadeIn1() { BOOL backAlpha = paneAlphaWarpMsgBack(mFrameTimer - g_mfHIO.mWarpMsgBackInDelay, g_mfHIO.mWarpMsgBackAlphaFrame, 0, 0); BOOL msg = paneTranceWarpMsg(&mCc01Pane, mFrameTimer - g_mfHIO.mWarpMsgDelay, g_mfHIO.mWarpMsgAnimFrame, g_mfHIO.mWarpMsgPosY, 40.0f, 0, 0); BOOL msg2; if (msg == TRUE) { msg2 = paneTranceWarpMsg(&mCc01Pane, mFrameTimer - (g_mfHIO.mWarpMsgDelay + g_mfHIO.mWarpMsgAnimFrame), g_mfHIO.mWarpMsgAnimFrame, 40.0f, 0.0f, 0, 2); } BOOL yesMove = paneTranceWarpMsg(&mYsk0Pane, mFrameTimer, g_mfHIO.mWarpYesNoAnimFrame, g_mfHIO.mWarpYesNoPosY, 0.0f, 1, 0); BOOL noMove = paneTranceWarpMsg(&mNok0Pane, mFrameTimer - g_mfHIO.mWarpNoDelay, g_mfHIO.mWarpYesNoAnimFrame, g_mfHIO.mWarpYesNoPosY, 0.0f, 1, 0); mFrameTimer++; if (backAlpha == TRUE && msg == TRUE && msg2 == TRUE && yesMove == TRUE && noMove == TRUE) { mFrameTimer = 0; mCur1Pane.pane->show(); mWarpProcIdx = WARP_PROC_SELECT; } } /* 801B8938-801B8E60 .text wrapSelect__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::wrapSelect() { if (CPad_CHECK_TRIG_A(0)) { if (mWarpSubState == FMAP_WARP_SEL_YES) { mDoAud_seStart(JA_SE_SHIPPU_WARP_OK); mWarpProcIdx = WARP_PROC_SEL_WARP; } else { mDoAud_seStart(JA_SE_SHIPPU_WARP_CANCEL); mWarpProcIdx = WARP_PROC_SEL_WIN_FADE_OUT; } mCur1Pane.pane->hide(); } else if (CPad_CHECK_TRIG_B(0)) { mDoAud_seStart(JA_SE_SHIPPU_WARP_CANCEL); mWarpProcIdx = WARP_PROC_SEL_WIN_FADE_OUT; mCur1Pane.pane->hide(); } else if (stick->checkRightTrigger()) { if (mWarpSubState != FMAP_WARP_SEL_NO) { mWarpSubState = FMAP_WARP_SEL_NO; mDoAud_seStart(JA_SE_TALK_CURSOR); warpSelCursorMove(); ((J2DPicture*)mYs01Pane.pane)->setBlackWhite( JUtility::TColor(0x33, 0x15, 0x00, 0x00), JUtility::TColor(0x76, 0x54, 0x2F, 0xFF)); ((J2DPicture*)mYs00Pane.pane)->setBlackWhite( JUtility::TColor(0x33, 0x15, 0x00, 0x00), JUtility::TColor(0x76, 0x54, 0x2F, 0xFF)); ((J2DPicture*)mNo01Pane.pane)->setBlackWhite(mYs01Color1, mYs01Color2); ((J2DPicture*)mNo00Pane.pane)->setBlackWhite(mYs01Color1, mYs01Color2); } } else if (stick->checkLeftTrigger()) { if (mWarpSubState != FMAP_WARP_SEL_YES) { mDoAud_seStart(JA_SE_TALK_CURSOR); mWarpSubState = FMAP_WARP_SEL_YES; warpSelCursorMove(); ((J2DPicture*)mNo01Pane.pane)->setBlackWhite( JUtility::TColor(0x33, 0x15, 0x00, 0x00), JUtility::TColor(0x76, 0x54, 0x2F, 0xFF)); ((J2DPicture*)mNo00Pane.pane)->setBlackWhite( JUtility::TColor(0x33, 0x15, 0x00, 0x00), JUtility::TColor(0x76, 0x54, 0x2F, 0xFF)); ((J2DPicture*)mYs01Pane.pane)->setBlackWhite(mYs01Color1, mYs01Color2); ((J2DPicture*)mYs00Pane.pane)->setBlackWhite(mYs01Color1, mYs01Color2); } } warpSelCursorAnime(); } /* 801B8E60-801B9064 .text wrapSelWinFadeOut__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::wrapSelWinFadeOut() { BOOL backAlpha = paneAlphaWarpMsgBack(mFrameTimer - g_mfHIO.mWarpMsgBackOutDelay, g_mfHIO.mWarpMsgBackAlphaFrame, 0, 1); BOOL msg = paneTranceWarpMsg(&mCc01Pane, mFrameTimer - g_mfHIO.mWarpMsgDelay, g_mfHIO.mWarpMsgAnimFrame, 0.0f, 40.0f, 0, 2); BOOL msg2; if (msg == TRUE) { msg2 = paneTranceWarpMsg(&mCc01Pane, mFrameTimer - (g_mfHIO.mWarpMsgDelay + g_mfHIO.mWarpMsgAnimFrame), g_mfHIO.mWarpMsgAnimFrame, 0.0f, g_mfHIO.mWarpMsgPosY, 0, 1); } BOOL yesMove = paneTranceWarpMsg(&mYsk0Pane, mFrameTimer, g_mfHIO.mWarpYesNoAnimFrame, 0.0f, g_mfHIO.mWarpYesNoPosY, 0, 1); BOOL noMove = paneTranceWarpMsg(&mNok0Pane, mFrameTimer - g_mfHIO.mWarpNoDelay, g_mfHIO.mWarpYesNoAnimFrame, 0.0f, g_mfHIO.mWarpYesNoPosY, 0, 1); mFrameTimer++; if (backAlpha == TRUE && msg == TRUE && msg2 == TRUE && yesMove == TRUE && noMove == TRUE) { mFrameTimer = 0; for (int i = 0; i < FMAP_WARP_COUNT; i++) { mWrapSpotEmitters[i]->playDrawParticle(); } mWarpProcIdx = WARP_PROC_MOVE; } } /* 801B9064-801B9288 .text wrapSelWarp__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::wrapSelWarp() { BOOL yskWarp = paneTranceWarpMsg(&mYsk0Pane, mFrameTimer, g_mfHIO.mWarpYesNoAnimFrame, 0.0f, g_mfHIO.mWarpYesNoPosY, 0, 1); BOOL nokWarp = paneTranceWarpMsg(&mNok0Pane, mFrameTimer - g_mfHIO.mWarpNoDelay, g_mfHIO.mWarpYesNoAnimFrame, 0.0f, g_mfHIO.mWarpYesNoPosY, 0, 1); mFrameTimer++; if (yskWarp == TRUE && nokWarp == TRUE) { mFrameTimer = 0; const cursorTable_t* table = getWarpAreaTablePtr(getCtCurWX(), getCtCurWY()); int warpAreaNo = getWarpAreaNo(table); if (dComIfGp_getShipActor() != NULL) { dComIfGp_getShipActor()->setTactWarpPosNum(warpAreaNo); } mMapClose = true; stopWrapBackEmitter(); for (int i = 0; i < FMAP_WARP_COUNT; i++) { mWrapSpotEmitters[i]->stopDrawParticle(); stopWrapSpotEmitter(i); } } } /* 801B9288-801B940C .text warpAreaAnime0__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::warpAreaAnime0() { const cursorTable_t* table = getWarpAreaTablePtr(getCtCurWX(), getCtCurWY()); int warpAreaNo = getWarpAreaNo(table); cXyz scale; cXyz pos; scale.z = 0.0f; pos.z = 0.0f; for (int i = 0; i < FMAP_WARP_COUNT; i++) { pos.x = g_mfHIO.mWarpSpotPosX[i]; pos.y = g_mfHIO.mWarpSpotPosY[i]; mWrapSpotEmitters[i]->setGlobalTranslation(pos); if (i == warpAreaNo) { scale.x = g_mfHIO.mWarpSpotScaleSel; scale.y = g_mfHIO.mWarpSpotScaleSel; mWrapSpotEmitters[i]->setGlobalParticleScale(scale); } else { scale.x = g_mfHIO.mWarpSpotScale; scale.y = g_mfHIO.mWarpSpotScale; mWrapSpotEmitters[i]->setGlobalParticleScale(scale); } } } /* 801B940C-801B94F4 .text paneTranceWarpMsg__12dMenu_Fmap_cFP18fopMsgM_pane_classsUcffUci */ BOOL dMenu_Fmap_c::paneTranceWarpMsg(fopMsgM_pane_class* i_pane, s16 i_frame, u8 i_max, f32 i_startY, f32 i_endY, u8 i_mode, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mode); f32 yAdj = alpha * (i_endY - i_startY); fopMsgM_paneTrans(i_pane, 0.0f, i_startY + yAdj); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } fopMsgM_setNowAlpha(i_pane, alpha); fopMsgM_setAlpha(i_pane); } return FALSE; } /* 801B94F4-801B9584 .text paneAlphaWarpMsgBack__12dMenu_Fmap_cFsUcUci */ BOOL dMenu_Fmap_c::paneAlphaWarpMsgBack(s16 i_frame, u8 i_max, u8 i_mode, int i_flag) { if (i_frame < 0) { return FALSE; } if (i_frame > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_frame, i_mode); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } fopMsgM_setNowAlpha(&mWts1Pane, alpha); fopMsgM_setAlpha(&mWts1Pane); } return FALSE; } /* 801B9584-801B95D4 .text warpSelCursorMove__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::warpSelCursorMove() { fopMsgM_paneTrans(&mCur1Pane, mWarpSubState * 139.0f, 0.0f); } /* 801B95D4-801B9608 .text warpSelCursorAnimeInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::warpSelCursorAnimeInit() { mCur1Pane.mNowAlpha = 0; mCur1Pane.mUserArea = 0; mWarpBlinkToggle = 0; fopMsgM_setAlpha(&mCur1Pane); } /* 801B9608-801B96D8 .text warpSelCursorAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::warpSelCursorAnime() { f32 alpha = fopMsgM_valueIncrease(g_mfHIO.mWarpCursorBlinkFrame, mCur1Pane.mUserArea, 0); if (mWarpBlinkToggle != 0) { alpha = 1.0f - alpha; } f32 range = g_mfHIO.mWarpCursorAlphaMax - g_mfHIO.mWarpCursorAlphaMin; mCur1Pane.mNowAlpha = g_mfHIO.mWarpCursorAlphaMin + (u32)(range * alpha); fopMsgM_setAlpha(&mCur1Pane); if (mCur1Pane.mUserArea == 0) { mCur1Pane.mUserArea = g_mfHIO.mWarpCursorBlinkFrame; mWarpBlinkToggle ^= 1; } else { mCur1Pane.mUserArea--; } } /* 801B96D8-801B96F0 .text getWarpAreaGridX__12dMenu_Fmap_cFi */ s8 dMenu_Fmap_c::getWarpAreaGridX(int i_no) { return g_cursorTable[i_no].gridX; } /* 801B96F0-801B970C .text getWarpAreaGridY__12dMenu_Fmap_cFi */ s8 dMenu_Fmap_c::getWarpAreaGridY(int i_no) { return g_cursorTable[i_no].gridY; } /* 801B970C-801B9724 .text getWarpAreaNo__12dMenu_Fmap_cFPC13cursorTable_t */ int dMenu_Fmap_c::getWarpAreaNo(const cursorTable_t* i_table) { int no = -1; if (i_table != NULL) { no = i_table->no; } return no; } /* 801B9724-801B973C .text getWarpAreaNoUp__12dMenu_Fmap_cFPC13cursorTable_t */ int dMenu_Fmap_c::getWarpAreaNoUp(const cursorTable_t* i_table) { int no = -1; if (i_table != NULL) { no = i_table->up; } return no; } /* 801B973C-801B9754 .text getWarpAreaNoDown__12dMenu_Fmap_cFPC13cursorTable_t */ int dMenu_Fmap_c::getWarpAreaNoDown(const cursorTable_t* i_table) { int no = -1; if (i_table != NULL) { no = i_table->down; } return no; } /* 801B9754-801B976C .text getWarpAreaNoLeft__12dMenu_Fmap_cFPC13cursorTable_t */ int dMenu_Fmap_c::getWarpAreaNoLeft(const cursorTable_t* i_table) { int no = -1; if (i_table != NULL) { no = i_table->left; } return no; } /* 801B976C-801B9784 .text getWarpAreaNoRight__12dMenu_Fmap_cFPC13cursorTable_t */ int dMenu_Fmap_c::getWarpAreaNoRight(const cursorTable_t* i_table) { int no = -1; if (i_table != NULL) { no = i_table->right; } return no; } /* 801B9784-801B97DC .text getWarpAreaTablePtr__12dMenu_Fmap_cFScSc */ const cursorTable_t* dMenu_Fmap_c::getWarpAreaTablePtr(s8 i_gridX, s8 i_gridY) { const cursorTable_t* table = NULL; for (int i = 0; i < FMAP_WARP_COUNT; i++) { if (g_cursorTable[i].gridX == i_gridX && g_cursorTable[i].gridY == i_gridY) { table = &g_cursorTable[i]; break; } } return table; } /* 801B97DC-801B9AB0 .text areaTextChangeAnimeInit__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::areaTextChangeAnimeInit() { mWarpAnimTimer = g_mfHIO.mAreaTxtChangeFrame; mAreaTxtBufIdx = 0; *mTxtName[0] = NULL; int grid = getCtCurWX() + (getCtCurWY() + 3) * 7 + 3; if (dComIfGs_isSaveArriveGrid(grid)) { if (grid == dIsleIdx_ForsakenFortress_e || grid == dIsleIdx_GaleIsle_e || grid == dIsleIdx_WindfallIsland_e || grid == dIsleIdx_DragonRoostIsland_e || grid == dIsleIdx_FireMountain_e || grid == dIsleIdx_GreatfishIsle_e || grid == dIsleIdx_ToweroftheGods_e || grid == dIsleIdx_IceRingIsle_e || grid == dIsleIdx_ForestHaven_e || grid == dIsleIdx_OutsetIsland_e || grid == dIsleIdx_HeadstoneIsland_e) { ((J2DTextBox*) mAreaTxtPanes[1].pane)->setCharColor(g_mfHIO.mAreaTxtColorMain); } else { ((J2DTextBox*) mAreaTxtPanes[1].pane)->setCharColor(g_mfHIO.mAreaTxtColor); } fopMsgM_messageGet(mTxtName[1], grid + 0x31a6); } else { *mTxtName[1] = NULL; } outFont->messageSet(0x5F); fopMsgM_setNowAlpha(&mAreaTxtPanes[mAreaTxtBufIdx + 1], 1.0f); fopMsgM_setAlpha(&mAreaTxtPanes[mAreaTxtBufIdx + 1]); fopMsgM_setNowAlpha(&mAreaTxtPanes[(mAreaTxtBufIdx ^ 1) + 1], 0.0f); fopMsgM_setAlpha(&mAreaTxtPanes[(mAreaTxtBufIdx ^ 1) + 1]); outFont->setAlpha(0); } /* 801B9AB0-801B9B40 .text areaTextChangeAnime__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::areaTextChangeAnime() { if (mWarpAnimTimer == 0) { BOOL alpha = PaneAlphaAreaTxt(mAreaTxtTimer, g_mfHIO.mAreaTxtAlphaFrame, 1); mAreaTxtTimer++; if (alpha == TRUE) { mAreaTxtBufIdx ^= 1; mAreaTxtTimer = 0; mWarpAnimTimer = g_mfHIO.mAreaTxtChangeFrame; } } else { mWarpAnimTimer--; } } /* 801B9B40-801B9C90 .text PaneAlphaAreaTxt__12dMenu_Fmap_cFsUci */ BOOL dMenu_Fmap_c::PaneAlphaAreaTxt(s16 i_value, u8 i_max, int i_flag) { if (i_value < 0) { return FALSE; } if (i_value > i_max) { return TRUE; } f32 inAlpha = fopMsgM_valueIncrease(i_max, i_value, 0); f32 outAlpha = 1.0f - inAlpha; fopMsgM_setNowAlpha(&mAreaTxtPanes[mAreaTxtBufIdx + i_flag], outAlpha); if (mAreaTxtBufIdx + i_flag == 2) { outFont->setAlpha(outAlpha * 255.0f); } fopMsgM_setNowAlpha(&mAreaTxtPanes[(mAreaTxtBufIdx ^ 1) + i_flag], inAlpha); if ((mAreaTxtBufIdx ^ 1) + i_flag == 2) { outFont->setAlpha(inAlpha * 255.0f); } fopMsgM_setAlpha(&mAreaTxtPanes[i_flag]); fopMsgM_setAlpha(&mAreaTxtPanes[i_flag + 1]); return FALSE; } /* 801B9C90-801BA01C .text setDspWarpBackCornerColor__12dMenu_Fmap_cFf */ void dMenu_Fmap_c::setDspWarpBackCornerColor(f32 i_ratio) { GXColor color[4]; u8 rgb[4][3]; rgb[0][0] = g_mfHIO.mWarpBackColor1.r; rgb[0][1] = g_mfHIO.mWarpBackColor1.g; rgb[0][2] = g_mfHIO.mWarpBackColor1.b; rgb[1][0] = g_mfHIO.mWarpBackColor2.r; rgb[1][1] = g_mfHIO.mWarpBackColor2.g; rgb[1][2] = g_mfHIO.mWarpBackColor2.b; rgb[2][0] = g_mfHIO.mWarpBackColor2.r; rgb[2][1] = g_mfHIO.mWarpBackColor2.g; rgb[2][2] = g_mfHIO.mWarpBackColor2.b; rgb[3][0] = g_mfHIO.mWarpBackColor2.r; rgb[3][1] = g_mfHIO.mWarpBackColor2.g; rgb[3][2] = g_mfHIO.mWarpBackColor2.b; f32 phase = fmod(i_ratio, 4.0); int idx = phase; f32 alpha = phase - idx; for (int i = 0; i < 4; i++) { int next = i + 1; if (next >= 4) { next = 0; } color[i].r = lineInter0to1(rgb[i][0], rgb[next][0], alpha); color[i].g = lineInter0to1(rgb[i][1], rgb[next][1], alpha); color[i].b = lineInter0to1(rgb[i][2], rgb[next][2], alpha); color[i].a = 255; } int idx0 = (idx + 0) % 4; int idx1 = (idx + 1) % 4; int idx2 = (idx + 2) % 4; int idx3 = (idx + 3) % 4; ((J2DPicture*)mClPane.pane)->setCornerColor( color[idx0], color[idx1], color[idx3], color[idx2]); } /* 801BA01C-801BA08C .text setWrapBackEmitter__12dMenu_Fmap_cF4cXyz */ void dMenu_Fmap_c::setWrapBackEmitter(cXyz i_pos) { mWrapBackEmitter = dComIfGp_particle_set2DmenuFore(dPa_name::ID_AK_J4_GALEMAPKIRAKIRA00, &i_pos); } /* 801BA08C-801BA110 .text setWrapSpotEmitter__12dMenu_Fmap_cFi4cXyz */ void dMenu_Fmap_c::setWrapSpotEmitter(int i_idx, cXyz i_pos) { mWrapSpotEmitters[i_idx] = dComIfGp_particle_set2DmenuFore(dPa_name::ID_AK_J4_GALESPOT00, &i_pos); } /* 801BA110-801BA19C .text _open_fishManMode__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_open_fishManMode() { if (mFrameTimer == 0) { init_fishManMode(); } BOOL ret = paneTransBase(mFrameTimer, g_mfHIO.mFishmanOpenFrame, 0.0f, 0.0f, 0, 0); mFrameTimer++; if (ret == TRUE) { mFrameTimer = 0; #if VERSION == VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_FISHMAN; #endif mFishmanProcIdx = FISHMAN_PROC_DISP_AREA; return true; } return false; } /* 801BA19C-801BA214 .text _close_fishManMode__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_close_fishManMode() { BOOL ret = paneTransBase(mFrameTimer, g_mfHIO.mFishmanCloseFrame, 0.0, 0.0, 0, 1); mFrameTimer++; if (ret == 1) { mFrameTimer = 0; mFmapMode = FMAP_MODE_NORMAL; return true; } return false; } /* 801BA214-801BA49C .text init_fishManMode__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::init_fishManMode() { mFmapMode = FMAP_MODE_FISHMAN; #if VERSION > VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_FISHMAN; #endif selCursorHide(); int i; for (i = 0; i < 3; i++) { mCk1xPanes[i].pane->hide(); mCk2xPanes[i].pane->hide(); } for (i = 0; i < 2; i++) { mCk1xPanes[i].pane->hide(); } for (i = 0; i < 8; i++) { mKr0xPanes[i].pane->hide(); } for (i = 0; i < 49; i++) { mStxxPanes[i].pane->hide(); } mLnk2Pane.pane->hide(); mSpi2Pane.pane->hide(); mStm1Pane.pane->hide(); mLnk3Pane.pane->hide(); mSpi3Pane.pane->hide(); mStl1Pane.pane->hide(); for (i = 0; i < 8; i++) { mKk3xPanes[i].pane->hide(); } playerPointGridAnimeInit(); playerPointGridAnime(); fopMsgM_paneTrans(&mKkdmPane, mGridX * 56.0f, mGridY * 56.0f); setDispIslandPos(mGridX, mGridY); zoomMapAlphaSet(mGridX, mGridY, &mR01bPane, 0x14); zoomMapAlphaSet(mGridX, mGridY, &mR01gPane, 0x1E); mTsw1Pane.pane->hide(); mR01bPane.pane->hide(); mR01gPane.pane->hide(); fopMsgM_setNowAlpha(mAreaTxtPanes, 0.0f); fopMsgM_setAlpha(mAreaTxtPanes); s32 idx = mGridX + (mGridY + 3) * 7 + 3; fopMsgM_setPaneData(&mMr01Pane, fmapDl.scrn, hist[idx]); mFishmanTimer2 = g_mfHIO.mFishmanBlinkFrame; mFishmanTimer3 = g_mfHIO.mFishmanDispWait; mFishmanProcIdx = FISHMAN_PROC_DISP_AREA; mDoAud_seStart(JA_SE_CM_SO_DRAW_MAP); } /* 801BA49C-801BA4D4 .text movefishManMode__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::movefishManMode() { (this->*FishManProcMain[mFishmanProcIdx])(); } /* 801BA4D4-801BA608 .text fmDispArea__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmDispArea() { if (mFishmanTimer2 == 0) { J2DPane* pane = mMr01Pane.pane; if (pane->isVisible()) { pane->hide(); } else { pane->show(); } mFishmanTimer2 = g_mfHIO.mFishmanBlinkFrame; } else { mFishmanTimer2--; } if (mFishmanTimer3 == 0) { mMr01Pane.pane->hide(); dComIfGs_onSaveArriveGrid(mGridX + (mGridY + 3) * 7 + 3); mKkdmPane.pane->show(); mSmskPane.pane->show(); mClbPane.pane->show(); mKtx1Pane.pane->hide(); mKtx2Pane.pane->hide(); mClb2Pane.pane->hide(); mDoAud_seStart(JA_SE_CHART_ZOOM_IN); mFishmanProcIdx = FISHMAN_PROC_ZOOM_LV1_IN; } else { mFishmanTimer3--; } } /* 801BA608-801BA768 .text fmZoomGridLv1In__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmZoomGridLv1In() { int selGridMask = selGridMaskAlphaCtrl(mFrameTimer, g_mfHIO.mFishmanZoom1Frame, 0, 0); int fmapMask = fmapMaskAlphaCtrl(mFrameTimer, g_mfHIO.mFishmanZoom1Frame, 0, 0); int zoomMap = paneTranceZoomMap(mFrameTimer - g_mfHIO.mZoomMapDelay, g_mfHIO.mFishmanZoom1Frame, mKkdmPane.mPosCenter.x - mClbPane.mPosCenterOrig.x, mKkdmPane.mPosCenter.y - mClbPane.mPosCenterOrig.y,0.0f, 0.0f, mKkdmPane.mSizeOrig.x / mClbPane.mSizeOrig.x, 1.0f, 2, 0); mFrameTimer++; if (selGridMask == TRUE && fmapMask == TRUE && zoomMap == TRUE) { mDoAud_seStart(JA_SE_CHART_ZOOM_IN); mFrameTimer = 0; mClgPane.pane->show(); for (int i = 0; i < 8; i++) { mKk3xPanes[i].pane->setInfluencedAlpha(false); } mR01bPane.pane->setInfluencedAlpha(false); mFishmanProcIdx = FISHMAN_PROC_ZOOM_LV2_IN; } } /* 801BA768-801BA88C .text fmZoomGridLv2In__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmZoomGridLv2In() { int zoomMap = paneTranceZoom2Map(mFrameTimer, g_mfHIO.mFishmanZoom2Frame, mDispIslandPosX * (mClgPane.mSizeOrig.x / 100000.0f), mDispIslandPosY * (mClgPane.mSizeOrig.y / 100000.0f), 0.0f, 0.0f, mTsw1Pane.mSizeOrig.x / mClgPane.mSizeOrig.x, 1.0f, 2, 0); int zoomMapAlpha = paneTranceZoomMapAlpah(mFrameTimer, g_mfHIO.mFishmanZoom2Frame, 0x02, 1); mFrameTimer++; if (zoomMap == TRUE && zoomMapAlpha == TRUE) { mFrameTimer = 0; mTsw1Pane.pane->show(); mR01bPane.pane->show(); mR01gPane.pane->show(); islandNameSet(0); paneAlphaZoom2Map(0, g_mfHIO.mFishmanZoom2AlphaFrame, 2, 0); mFishmanTimer1 = g_mfHIO.mFishmanMapWriteWait; mFishmanProcIdx = FISHMAN_PROC_MAP_WRITE; } } /* 801BA88C-801BAA50 .text islandNameSet__12dMenu_Fmap_cFUc */ void dMenu_Fmap_c::islandNameSet(u8 i_no) { int msgNo; int grid = mGridX + (mGridY + 3) * 7 + 3; if (grid == dIsleIdx_PrivateOasis_e && dComIfGs_isEventBit(dSv_event_flag_c::UNK_2D80)) { msgNo = 0x31D7; } else { msgNo = grid + 0x31a6; } if (grid == dIsleIdx_ForsakenFortress_e || grid == dIsleIdx_GaleIsle_e || grid == dIsleIdx_WindfallIsland_e || grid == dIsleIdx_DragonRoostIsland_e || grid == dIsleIdx_FireMountain_e || grid == dIsleIdx_GreatfishIsle_e || grid == dIsleIdx_ToweroftheGods_e || grid == dIsleIdx_IceRingIsle_e || grid == dIsleIdx_ForestHaven_e || grid == dIsleIdx_OutsetIsland_e || grid == dIsleIdx_HeadstoneIsland_e) { ((J2DTextBox*) mAreaTxtPanes[i_no].pane)->setCharColor(g_mfHIO.mAreaTxtColorMain); } else { ((J2DTextBox*) mAreaTxtPanes[i_no].pane)->setCharColor(g_mfHIO.mAreaTxtColor); } fopMsgM_messageGet(mTxtName[i_no], msgNo); } /* 801BAA50-801BAB00 .text fmMapWrite__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmMapWrite() { if (mFishmanTimer1 != 0) { mFishmanTimer1--; } else { if (mFrameTimer == 0) { #if VERSION == VERSION_DEMO mDoAud_seStart(JA_SE_SO_MAP_ADD_FIN); #else mDoAud_subBgmStart(JA_BGM_BGN_GET_BOX); #endif } BOOL zoomMap = paneAlphaZoom2Map(mFrameTimer, g_mfHIO.mFishmanZoom2AlphaFrame, 0x02, 0); mFrameTimer++; if (zoomMap == TRUE) { mFrameTimer = 0; mFishmanTimer1 = g_mfHIO.mFishmanMapWriteFrame; mFishmanProcIdx = FISHMAN_PROC_MAP_WAIT; } } } /* 801BAB00-801BABCC .text fmMapWait__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmMapWait() { if (mFishmanTimer1 != 0) { mFishmanTimer1--; } if (CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0) || CPad_CHECK_TRIG_X(0) || CPad_CHECK_TRIG_Y(0) || CPad_CHECK_TRIG_L(0) || CPad_CHECK_TRIG_R(0) || CPad_CHECK_TRIG_Z(0) || CPad_CHECK_TRIG_START(0) || mFishmanTimer1 == 0) { mDoAud_seStart(JA_SE_CHART_ZOOM_OUT); mFishmanProcIdx = FISHMAN_PROC_ZOOM_LV2_OUT; } } /* 801BABCC-801BAC88 .text paneAlphaZoom2Map__12dMenu_Fmap_cFsUcUci */ BOOL dMenu_Fmap_c::paneAlphaZoom2Map(s16 i_value, u8 i_max, u8 i_mode, int i_flag) { if (i_value < 0) { return FALSE; } if (i_value > i_max) { return TRUE; } f32 alpha = fopMsgM_valueIncrease(i_max, i_value, i_mode); if (i_flag != 2) { if (i_flag == 1) { alpha = 1.0f - alpha; } fopMsgM_setNowAlpha(&mR01gPane, alpha); fopMsgM_setAlpha(&mR01gPane); fopMsgM_setNowAlpha(mAreaTxtPanes, alpha); fopMsgM_setAlpha(mAreaTxtPanes); } return FALSE; } /* 801BAC88-801BADB8 .text fmZoomGridLv2Out__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmZoomGridLv2Out() { int zoomMap = paneTranceZoom2Map(mFrameTimer, g_mfHIO.mFishmanZoom2Frame, 0.0f, 0.0f, mDispIslandPosX * (mClgPane.mSizeOrig.x / 100000.0f), mDispIslandPosY * (mClgPane.mSizeOrig.y / 100000.0f), 1.0f, mTsw1Pane.mSizeOrig.x / mClgPane.mSizeOrig.x, 2, 1); int zoomAlpha = paneTranceZoomMapAlpah(mFrameTimer, g_mfHIO.mFishmanZoom2Frame, 0x02, 0); mFrameTimer++; if (zoomMap == TRUE && zoomAlpha == TRUE) { mDoAud_seStart(JA_SE_CHART_ZOOM_OUT); mClgPane.pane->hide(); for (int i = 0; i < 8; i++) { mKk3xPanes[i].pane->setInfluencedAlpha(true); } mR01bPane.pane->setInfluencedAlpha(true); mFrameTimer = 0; mFishmanProcIdx = FISHMAN_PROC_ZOOM_LV1_OUT; } } /* 801BADB8-801BAEF4 .text fmZoomGridLv1Out__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmZoomGridLv1Out() { int selGridMask = selGridMaskAlphaCtrl(mFrameTimer - g_mfHIO.mZoomOutDelay, g_mfHIO.mZoomAnimFrame, 0, 1); int fmapMask = fmapMaskAlphaCtrl(mFrameTimer - g_mfHIO.mZoomOutDelay, g_mfHIO.mZoomAnimFrame, 0, 1); int zoomMap = paneTranceZoomMap(mFrameTimer - g_mfHIO.mZoomMapDelay, g_mfHIO.mFishmanZoom1OutFrame, 0.0f, 0.0f, mKkdmPane.mPosCenter.x - mClbPane.mPosCenterOrig.x, mKkdmPane.mPosCenter.y - mClbPane.mPosCenterOrig.y, 1.0f, mKkdmPane.mSizeOrig.x / mClbPane.mSizeOrig.x, 2, 1); mFrameTimer++; if (selGridMask == TRUE && fmapMask == TRUE && zoomMap == TRUE) { mFrameTimer = 0; mKkdmPane.pane->hide(); mSmskPane.pane->hide(); mClbPane.pane->hide(); mFishmanTimer1 = g_mfHIO.mFishmanCloseWait; mFishmanProcIdx = FISHMAN_PROC_END_WAIT; } } /* 801BAEF4-801BAF18 .text fmEndWait__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::fmEndWait() { if (mFishmanTimer1 == 0) { mMapClose = true; } else { mFishmanTimer1--; } } /* 801BAF18-801BAFCC .text _open_wallPaper__12dMenu_Fmap_cFv */ bool dMenu_Fmap_c::_open_wallPaper() { if (mFrameTimer == 0) { #if VERSION > VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_WALLPAPER; #endif selCursorHide(); } BOOL ret = paneTransBase(mFrameTimer, g_mfHIO.mBaseAnimFrame, g_mfHIO.mOpenPosY, 0.0, 0, 0); mFrameTimer++; if (ret == 1) { mFrameTimer = 0; #if VERSION == VERSION_DEMO mButtonIconMode = FMAP_BTN_ICON_WALLPAPER; #endif mFmapMode = FMAP_MODE_WALLPAPER; return true; } return false; } /* 801BAFCC-801BB024 .text getButtonIconMode__12dMenu_Fmap_cFv */ int dMenu_Fmap_c::getButtonIconMode() { if (mMainProcIdx == MAIN_PROC_HIKAKU) { return mFmap2.getButtonIconMode() + 7; } if (mInputDisabled) { return mFmap2.getButtonIconMode() + 7; } return mButtonIconMode; } /* 801BB024-801BB088 .text draw__12dDlst_FMAP_cFv */ void dDlst_FMAP_c::draw() { J2DOrthoGraph* grafPort = dComIfGp_getCurrentGrafPort(); grafPort->setPort(); scrn->draw(0.0f, 0.0f, grafPort); }