// // Generated by dtk // Translation Unit: d_picture_box.cpp // #include "d/dolzel.h" // IWYU pragma: keep #include "d/d_picture_box.h" #include "d/d_s_play.h" #include "f_op/f_op_msg.h" #include "d/d_com_inf_game.h" #include "m_Do/m_Do_graphic.h" #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_MemCardRWmng.h" #include "m_Do/m_Do_dvd_thread.h" #include "f_op/f_op_camera.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JKernel/JKRAram.h" #include "JSystem/J2DGraph/J2DOrthoGraph.h" #include "d/actor/d_a_player.h" #include "d/d_meter.h" #include "d/d_snap.h" #include const static u8 photo_idx[] = { 0x88, 0xce, 0x85, 0x53, 0x86, 0xa9, 0x9b, }; const char* photo_data[7] = { "/res/Photo/KOKUOU.DDS", "/res/Photo/GANONDROF.DDS", "/res/Photo/DAIYOUSEI.DDS", "/res/Photo/JAV.DDS", "/res/Photo/CHOUYOUSEI.DDS", "/res/Photo/KAZEKENJA.DDS", "/res/Photo/TIKENJA.DDS", }; /* 802258C8-80225954 .text dPb_erasePicture__Fv */ void dPb_erasePicture() { u8 selectPicture = dComIfGp_getSelectPicture(); u8 evReg = dComIfGs_getEventReg(dSv_event_flag_c::UNK_89FF); if (selectPicture < 3) { u8 evReg2 = evReg | (1 << selectPicture); dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, evReg2); dComIfGp_setItemPictureNumCount(-1); } // !@bug: This function does not set the picture flags, meaning the removing pictures are never cleared from the memcard. // This was fixed for PAL. #if VERSION >= VERSION_PAL dComIfGp_onPictureFlag(0); dComIfGp_onPictureFlag(1); dComIfGp_onPictureFlag(2); #endif } /* 80225954-80225E88 .text screenSet__9dJle_Pb_cFv */ void dJle_Pb_c::screenSet() { static const u32 sb_l[] = { 'sb01', 'sb02', 'sb03', 'sb04', 'sb05', 'sb06', 'sb07', 'sb08', 'sb09', 'sb10', 'sb11', 'sb12' }; static const u32 st_l[] = { 'st01', 'st02', 'st03', 'st04', 'st05', 'st06', 'st07', 'st08', 'st09', 'st10', 'st11', 'st12' }; static const u32 icn_l[] = { 'icn1', 'icn2', 'icn3' }; static const u32 emp_l[] = { 'emp1', 'emp2', 'emp3' }; static const u32 sp_l[] = { 'sp00', 'sp01', 'sp02', 'sp03', 'sp04', 'sp05', 'sp06', 'sp07' }; static const u32 no_l[] = { 'no1', 'no2', 'no3' }; static const u32 nob_l[] = { 'no1b', 'no2b', 'no3b' }; static const u32 nok_l[] = { 'no1k', 'no2k', 'no3k' }; for (s32 i = 0; i < 12; i++) { fopMsgM_setPaneData(&pane_sb[i], scrn1, sb_l[i]); fopMsgM_setPaneData(&pane_st[i], scrn1, st_l[i]); pane_sb[i].mUserArea = pane_sb[i].pane->getRotate(); } fopMsgM_setPaneData(&pane_ylig, scrn, 'ylig'); fopMsgM_setPaneData(&pane_ylef, scrn, 'ylef'); for (s32 i = 0; i < 3; i++) { fopMsgM_setPaneData(&pane_icn[i], scrn, icn_l[i]); fopMsgM_setPaneData(&pane_emp[i], scrn, emp_l[i]); } fopMsgM_setPaneData(&pane_ct1, scrn, 'ct1'); fopMsgM_setPaneData(&pane_ct2, scrn, 'ct2'); for (s32 i = 0; i < 8; i++) { fopMsgM_setPaneData(&pane_sp[i], scrn, sp_l[i]); } for (s32 i = 0; i < 3; i++) { fopMsgM_setPaneData(&pane_no[i], scrn, no_l[i]); fopMsgM_setPaneData(&pane_nob[i], scrn, nob_l[i]); fopMsgM_setPaneData(&pane_nok[i], scrn, nok_l[i]); } fopMsgM_setPaneData(&pane_b1, scrn, 'b1'); fopMsgM_setPaneData(&pane_b2, scrn, 'b2'); fopMsgM_setPaneData(&pane_wnum, scrn, 'wnum'); fopMsgM_setPaneData(&pane_wnuk, scrn, 'wnuk'); fopMsgM_setPaneData(&pane_wpba, scrn, 'wpba'); fopMsgM_setPaneData(&pane_wbap, scrn, 'wbap'); fopMsgM_setPaneData(&pane_wpsc, scrn, 'wpsc'); fopMsgM_setPaneData(&pane_yrtn, scrn, 'yrtn'); fopMsgM_setPaneData(&pane_yzom, scrn, 'yzom'); fopMsgM_setPaneData(&pane_crtn, scrn, 'crtn'); fopMsgM_setPaneData(&pane_czom, scrn, 'czom'); fopMsgM_setPaneData(&pane_lrtn, scrn, 'lrtn'); fopMsgM_setPaneData(&pane_rzom, scrn, 'rzom'); fopMsgM_setPaneData(&pane_shut, scrn, 'shut'); fopMsgM_setPaneData(&pane_fd00, scrn, 'fd00'); fopMsgM_setPaneData(&pane_wp03, scrn, 'wp03'); fopMsgM_setPaneData(&pane_wp02, scrn, 'wp02'); fopMsgM_setPaneData(&pane_wp01, scrn, 'wp01'); fopMsgM_setPaneData(&pane_wp04, scrn, 'wp04'); icn_white.set(((J2DPicture*) pane_icn[0].pane)->getWhite()); icn_black.set(((J2DPicture*) pane_icn[0].pane)->getBlack()); emp_white.set(((J2DPicture*) pane_emp[0].pane)->getWhite()); emp_black.set(((J2DPicture*) pane_emp[0].pane)->getBlack()); #if VERSION >= VERSION_PAL if (dComIfGs_getPalLanguage() != 0) { char buf[0x10]; sprintf(buf, "wipe_in2_%d.bti", dComIfGs_getPalLanguage()); ((J2DPicture*)pane_rzom.pane)->changeTexture(buf, 0); sprintf(buf, "wipe_out2_%d.bti", dComIfGs_getPalLanguage()); ((J2DPicture*)pane_lrtn.pane)->changeTexture(buf, 0); } #endif #if VERSION > VERSION_JPN pane_yrtn.mPosCenterOrig.x -= 12.0f; fopMsgM_paneTrans(&pane_yrtn, 0.0f, 0.0f); pane_yzom.mPosCenterOrig.x -= 12.0f; fopMsgM_paneTrans(&pane_yzom,0.0f, 0.0f); pane_crtn.mPosCenterOrig.x -= 12.0f; fopMsgM_paneTrans(&pane_crtn,0.0f, 0.0f); pane_czom.mPosCenterOrig.x -= 12.0f; fopMsgM_paneTrans(&pane_czom,0.0, 0.0); #endif shutterHide(); fopMsgM_blendInit(&pane_crtn,"font_09_02.bti"); fopMsgM_blendInit(&pane_czom,"font_09_02.bti"); pane_czom.pane->rotate(pane_czom.mSizeOrig.x / 2.0f, pane_czom.mSizeOrig.y / 2.0f, ROTATE_Z, 180.0f); fopMsgM_blendInit(&pane_ylig, "cursor_00_02.bti"); fopMsgM_blendInit(&pane_ylef, "cursor_00_02.bti"); fopMsgM_blendInit(&pane_yrtn, "cursor_00_02.bti"); fopMsgM_blendInit(&pane_yzom, "cursor_00_02.bti"); } /* 80225E88-8022616C .text screenSet2__9dJle_Pb_cFv */ void dJle_Pb_c::screenSet2() { scrn2->search('yz80')->hide(); scrn2->search('dt80')->hide(); fopMsgM_setPaneData(&pane_tx[0], scrn2->search('tx82')); fopMsgM_setPaneData(&pane_tx[1], scrn2->search('tx83')); fopMsgM_setPaneData(&pane_tx[2], scrn2->search('tx80')); fopMsgM_setPaneData(&pane_tx[3], scrn2->search('tx81')); #if VERSION < VERSION_PAL if(dComIfGs_getOptRuby()) { pane_tx[0].pane->move(pane_tx[0].pane->getBounds().i.x, pane_tx[0].pane->getBounds().i.y - 4.0f); pane_tx[2].pane->move(pane_tx[2].pane->getBounds().i.x, pane_tx[2].pane->getBounds().i.y - 4.0f); } #else if(dComIfGs_getOptRuby()) { pane_tx[0].pane->move(pane_tx[0].pane->getBounds().i.x, pane_tx[0].pane->getBounds().i.y - 14.0f); pane_tx[2].pane->move(pane_tx[2].pane->getBounds().i.x, pane_tx[2].pane->getBounds().i.y - 14.0f); } else { pane_tx[0].pane->move(pane_tx[0].pane->getBounds().i.x, pane_tx[0].pane->getBounds().i.y - 10.0f); pane_tx[2].pane->move(pane_tx[2].pane->getBounds().i.x, pane_tx[2].pane->getBounds().i.y - 10.0f); } #endif pane_tx[1].pane->move(pane_tx[1].pane->getBounds().i.x, pane_tx[1].pane->getBounds().i.y - 3.0f); pane_tx[3].pane->move(pane_tx[3].pane->getBounds().i.x, pane_tx[3].pane->getBounds().i.y - 3.0f); ((J2DTextBox *)(pane_tx[0].pane))->setFont(font0); ((J2DTextBox *)(pane_tx[1].pane))->setFont(font1); ((J2DTextBox *)(pane_tx[2].pane))->setFont(font0); ((J2DTextBox *)(pane_tx[3].pane))->setFont(font1); #if VERSION <= VERSION_JPN J2DTextBox::TFontSize fontSize; if (g_msgDHIO.field_0x08 == 0) { fontSize.mSizeX = fontSize.mSizeY = (int)g_msgHIO.field_0x58; J2DTextBox::TFontSize fontSize2; fontSize2.mSizeX = fontSize2.mSizeY = g_msgHIO.field_0x68; ((J2DTextBox *)(pane_tx[0].pane))->setFontSize(fontSize); ((J2DTextBox *)(pane_tx[1].pane))->setFontSize(fontSize2); ((J2DTextBox *)(pane_tx[2].pane))->setFontSize(fontSize); ((J2DTextBox *)(pane_tx[3].pane))->setFontSize(fontSize2); } else { fontSize.mSizeX = fontSize.mSizeY = g_msgHIO.field_0x70; ((J2DTextBox *)(pane_tx[0].pane))->setFontSize(fontSize); ((J2DTextBox *)(pane_tx[2].pane))->setFontSize(fontSize); } #else J2DTextBox::TFontSize fontSize; fontSize.mSizeX = fontSize.mSizeY = g_msgHIO.field_0x70; ((J2DTextBox *)(pane_tx[0].pane))->setFontSize(fontSize); ((J2DTextBox *)(pane_tx[2].pane))->setFontSize(fontSize); #endif #if VERSION <= VERSION_JPN ((J2DTextBox *)(pane_tx[0].pane))->setCharSpace(-2.0f); ((J2DTextBox *)(pane_tx[1].pane))->setCharSpace(-1.0f); ((J2DTextBox *)(pane_tx[2].pane))->setCharSpace(-2.0f); ((J2DTextBox *)(pane_tx[3].pane))->setCharSpace(-1.0f); #else ((J2DTextBox *)(pane_tx[0].pane))->setCharSpace(0.0f); ((J2DTextBox *)(pane_tx[1].pane))->setCharSpace(0.0f); ((J2DTextBox *)(pane_tx[2].pane))->setCharSpace(0.0f); ((J2DTextBox *)(pane_tx[3].pane))->setCharSpace(0.0f); #endif #if VERSION <= VERSION_JPN if (g_msgDHIO.field_0x08 == 0) { ((J2DTextBox *)(pane_tx[0].pane))->setLineSpace(42.0f); ((J2DTextBox *)(pane_tx[1].pane))->setLineSpace(42.0f); ((J2DTextBox *)(pane_tx[2].pane))->setLineSpace(42.0f); ((J2DTextBox *)(pane_tx[3].pane))->setLineSpace(42.0f); } else { ((J2DTextBox *)(pane_tx[0].pane))->setLineSpace(g_msgHIO.field_0x5e); ((J2DTextBox *)(pane_tx[2].pane))->setLineSpace(g_msgHIO.field_0x5e); } #else ((J2DTextBox *)(pane_tx[0].pane))->setLineSpace(28.0f); ((J2DTextBox *)(pane_tx[2].pane))->setLineSpace(28.0f); #endif } /* 8022616C-802262CC .text cameraAlphaInc__9dJle_Pb_cFf */ void dJle_Pb_c::cameraAlphaInc(f32 alpha) { for (s32 i = 0; i < 12; i++) { fopMsgM_setNowAlpha(&pane_sb[i], alpha); fopMsgM_setNowAlpha(&pane_st[i], alpha); } fopMsgM_setNowAlpha(&pane_wnum, alpha); fopMsgM_setNowAlpha(&pane_wnuk, alpha); fopMsgM_setNowAlpha(&pane_wpba, alpha); fopMsgM_setNowAlpha(&pane_wbap, alpha); fopMsgM_setNowAlpha(&pane_wpsc, alpha); fopMsgM_setNowAlpha(&pane_yrtn, alpha); fopMsgM_setNowAlpha(&pane_yzom, alpha); fopMsgM_setNowAlpha(&pane_crtn, alpha); fopMsgM_setNowAlpha(&pane_czom, alpha); fopMsgM_setNowAlpha(&pane_lrtn, alpha); fopMsgM_setNowAlpha(&pane_rzom, alpha); fopMsgM_setNowAlpha(&pane_fd00, alpha); fopMsgM_setNowAlpha(&pane_wp03, alpha); fopMsgM_setNowAlpha(&pane_wp02, alpha); fopMsgM_setNowAlpha(&pane_wp01, alpha); fopMsgM_setNowAlpha(&pane_wp04, alpha); fopMsgM_setNowAlpha(&pane_tx[0], alpha); fopMsgM_setNowAlpha(&pane_tx[1], alpha); fopMsgM_setNowAlpha(&pane_tx[2], alpha); fopMsgM_setNowAlpha(&pane_tx[3], alpha); } /* 802262CC-802264A0 .text browseAlphaInc__9dJle_Pb_cFf */ void dJle_Pb_c::browseAlphaInc(f32 alpha) { for (s32 i = 0; i < 12; i++) { fopMsgM_setNowAlpha(&pane_sb[i], alpha); fopMsgM_setNowAlpha(&pane_st[i], alpha); } fopMsgM_setNowAlpha(&pane_ylig, alpha); fopMsgM_setNowAlpha(&pane_ylef, alpha); for (s32 i = 0; i < 3; i++) { if (mPhotoSlotOccupied[i]) { fopMsgM_setNowAlpha(&pane_icn[i], alpha); } fopMsgM_setNowAlpha(&pane_emp[i], alpha); } fopMsgM_setNowAlpha(&pane_ct1, alpha); fopMsgM_setNowAlpha(&pane_ct2, alpha); for (s32 i = 0; i < 8; i++) { fopMsgM_setNowAlpha(&pane_sp[i], alpha); } for(s32 i = 0; i < 3; i++) { fopMsgM_setNowAlpha(&pane_no[i], alpha); fopMsgM_setNowAlpha(&pane_nob[i], alpha); fopMsgM_setNowAlpha(&pane_nok[i], alpha); } fopMsgM_setNowAlpha(&pane_b1, alpha); fopMsgM_setNowAlpha(&pane_b2, alpha); fopMsgM_setNowAlpha(&pane_shut, alpha); fopMsgM_setNowAlpha(&pane_wp03, alpha); fopMsgM_setNowAlpha(&pane_wp02, alpha); fopMsgM_setNowAlpha(&pane_wp01, alpha); fopMsgM_setNowAlpha(&pane_wp04, alpha); fopMsgM_setNowAlpha(&pane_tx[0], alpha); fopMsgM_setNowAlpha(&pane_tx[1], alpha); fopMsgM_setNowAlpha(&pane_tx[2], alpha); fopMsgM_setNowAlpha(&pane_tx[3], alpha); } /* 802264A0-802265C0 .text getAlphaInc__9dJle_Pb_cFf */ void dJle_Pb_c::getAlphaInc(f32 alpha) { fopMsgM_setNowAlpha(&pane_ct1, alpha); fopMsgM_setNowAlpha(&pane_ct2, alpha); for (s32 i = 0; i < 8; i++) { fopMsgM_setNowAlpha(&pane_sp[i], alpha); } fopMsgM_setNowAlpha(pane_no, alpha); fopMsgM_setNowAlpha(pane_nob, alpha); fopMsgM_setNowAlpha(pane_nok, alpha); fopMsgM_setNowAlpha(&pane_b1, alpha); fopMsgM_setNowAlpha(&pane_b2, alpha); fopMsgM_setNowAlpha(&pane_shut, alpha); fopMsgM_setNowAlpha(&pane_wp03, alpha); fopMsgM_setNowAlpha(&pane_wp02, alpha); fopMsgM_setNowAlpha(&pane_wp01, alpha); fopMsgM_setNowAlpha(&pane_wp04, alpha); fopMsgM_setNowAlpha(&pane_tx[0], alpha); fopMsgM_setNowAlpha(&pane_tx[1], alpha); fopMsgM_setNowAlpha(&pane_tx[2], alpha); fopMsgM_setNowAlpha(&pane_tx[3], alpha); } /* 802265C0-80226A40 .text alphaDec__9dJle_Pb_cFf */ void dJle_Pb_c::alphaDec(f32 scale) { for (s32 i = 0; i < 12; i++) { pane_sb[i].pane->setAlpha(pane_sb[i].mNowAlpha * scale); pane_st[i].pane->setAlpha(pane_st[i].mNowAlpha * scale); } pane_ylig.pane->setAlpha(pane_ylig.mNowAlpha * scale); pane_ylef.pane->setAlpha(pane_ylef.mNowAlpha * scale); pane_wnum.pane->setAlpha(pane_wnum.mNowAlpha * scale); pane_wnuk.pane->setAlpha(pane_wnuk.mNowAlpha * scale); pane_wpba.pane->setAlpha(pane_wpba.mNowAlpha * scale); pane_wbap.pane->setAlpha(pane_wbap.mNowAlpha * scale); pane_wpsc.pane->setAlpha(pane_wpsc.mNowAlpha * scale); pane_yrtn.pane->setAlpha(pane_yrtn.mNowAlpha * scale); pane_yzom.pane->setAlpha(pane_yzom.mNowAlpha * scale); pane_crtn.pane->setAlpha(pane_crtn.mNowAlpha * scale); pane_czom.pane->setAlpha(pane_czom.mNowAlpha * scale); pane_lrtn.pane->setAlpha(pane_lrtn.mNowAlpha * scale); pane_rzom.pane->setAlpha(pane_rzom.mNowAlpha * scale); pane_shut.pane->setAlpha(pane_shut.mNowAlpha * scale); pane_fd00.pane->setAlpha(pane_fd00.mNowAlpha * scale); pane_wp03.pane->setAlpha(pane_wp03.mNowAlpha * scale); pane_wp02.pane->setAlpha(pane_wp02.mNowAlpha * scale); pane_wp01.pane->setAlpha(pane_wp01.mNowAlpha * scale); pane_wp04.pane->setAlpha(pane_wp04.mNowAlpha * scale); pane_tx[0].pane->setAlpha(pane_tx[0].mNowAlpha * scale); pane_tx[1].pane->setAlpha(pane_tx[1].mNowAlpha * scale); pane_tx[2].pane->setAlpha(pane_tx[2].mNowAlpha * scale); pane_tx[3].pane->setAlpha(pane_tx[3].mNowAlpha * scale); } /* 80226A40-80226B7C .text zoomScale__9dJle_Pb_cFv */ void dJle_Pb_c::zoomScale() { f32 cameraZoomScale = dComIfGp_getCameraZoomScale(0); if (dComIfGp_getCameraZoomScale(0) < 1.0f) { cameraZoomScale = 1.0f; } if (cameraZoomScale > 9.0f) { cameraZoomScale = 9.0f; } if (cameraZoomScale != mZoomScale) { bool tmp = true; if (mZoomScale == 0.0f) { tmp = false; } mZoomScale = cameraZoomScale; changeScale(mZoomScale); if (mZoomScale == 1.0f || mZoomScale == 9.0f) { if (tmp) { mDoAud_seStart(JA_SE_TELESCOPE_STOP); } } else { f32 cameraZoomForcus = dComIfGp_getCameraZoomForcus(0); mDoAud_seStart(JA_SE_TELESCOPE_ZOOM, NULL, cameraZoomForcus * 0x8000 + 0.5f); } } } /* 80226B7C-80226C68 .text changeScale__9dJle_Pb_cFi */ void dJle_Pb_c::changeScale(int scale) { static const char* number[] = { "rupy_num_01.bti", "rupy_num_02.bti", "rupy_num_03.bti", "rupy_num_04.bti", "rupy_num_05.bti", "rupy_num_06.bti", "rupy_num_07.bti", "rupy_num_08.bti", "rupy_num_09.bti", }; f32 a = (pane_wpsc.mPosTopLeftOrig.y + pane_wbap.mSizeOrig.y / 2.0f) - pane_wbap.mPosCenterOrig.y; f32 b = ((pane_wpsc.mPosTopLeftOrig.y + pane_wpsc.mSizeOrig.y) - pane_wbap.mSizeOrig.y / 2.0f) - pane_wbap.mPosCenterOrig.y; ((J2DPicture*)pane_wnum.pane)->changeTexture(number[scale - 1], 0); ((J2DPicture*)pane_wnuk.pane)->changeTexture(number[scale - 1], 0); f32 transY; if (mZoomScale < 5.0f) { transY = (5.0f - mZoomScale) / 4.0f * b; } else { transY = (mZoomScale - 5.0f) / 4.0f * a; } fopMsgM_paneTrans(&pane_wbap, 0.0f, transY); } /* 80226C68-80227158 .text up_downIconMove__9dJle_Pb_cFv */ void dJle_Pb_c::up_downIconMove() { f32 f31; pane_crtn.mUserArea++; if (pane_crtn.mUserArea < 10) { f31 = fopMsgM_valueIncrease(20, pane_crtn.mUserArea, 0); ((J2DPicture *)(pane_yrtn.pane))->setBlendRatio(0.0f, 1.0f, 1.0f, 1.0f); ((J2DPicture *)(pane_yzom.pane))->setBlendRatio(0.0f, 1.0f, 1.0f, 1.0f); if(dComIfGp_getCameraZoomScale(0) != 1.0f && pane_yrtn.mUserArea == 0) { ((J2DPicture *)(pane_crtn.pane))->setBlendRatio(f31, 1.0f - f31, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_yrtn, 0.0f, 7.0f); } if (dComIfGp_getCameraZoomScale(0) != 9.0f && pane_yzom.mUserArea == 0) { ((J2DPicture *)(pane_czom.pane))->setBlendRatio(f31, 1.0f - f31, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_yzom, 0.0f, -7.0f); } } else { f31 = fopMsgM_valueIncrease(20, pane_crtn.mUserArea - 10, 0); ((J2DPicture *)(pane_yrtn.pane))->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f); ((J2DPicture *)(pane_yzom.pane))->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f); if (dComIfGp_getCameraZoomScale(0) == 1.0f) { if (pane_yrtn.mUserArea == 0) { ((J2DPicture *)(pane_crtn.pane))->setBlendRatio(1.0f - f31, f31, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_yrtn, 0.0f, 0.0f); } if (pane_crtn.mUserArea == 20) { pane_yrtn.mUserArea = 1; } } else if (pane_yrtn.mUserArea == 0) { ((J2DPicture *)(pane_crtn.pane))->setBlendRatio(1.0f - f31, f31, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_yrtn, 0.0f, 0.0f); } else if (pane_crtn.mUserArea == 20) { pane_yrtn.mUserArea = 0; } if (dComIfGp_getCameraZoomScale(0) == 9.0f) { if (pane_yzom.mUserArea == 0) { ((J2DPicture *)(pane_czom.pane))->setBlendRatio(1.0f - f31, f31, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_yzom, 0.0f, 0.0f); } if (pane_crtn.mUserArea == 20) { pane_yzom.mUserArea = 1; } } else if (pane_yzom.mUserArea == 0) { ((J2DPicture *)(pane_czom.pane))->setBlendRatio(1.0f - f31, f31, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_yzom, 0.0f, 0.0f); } else if (pane_crtn.mUserArea == 20) { pane_yzom.mUserArea = 0; } } if (dComIfGp_getCameraZoomScale(0) == 1.0f) { pane_yrtn.pane->hide(); pane_yzom.pane->show(); } else if (dComIfGp_getCameraZoomScale(0) == 9.0f) { pane_yrtn.pane->show(); pane_yzom.pane->hide(); } else { pane_yrtn.pane->show(); pane_yzom.pane->show(); } if (pane_crtn.mUserArea >= 20) { pane_crtn.mUserArea = 0; } } /* 80227158-80227338 .text left_rightIconMove__9dJle_Pb_cFv */ void dJle_Pb_c::left_rightIconMove() { pane_ylig.mUserArea++; if (pane_ylig.mUserArea < 10) { if (mSelectedPhotoSlot != 2) { ((J2DPicture *)(pane_ylig.pane))->setBlendRatio(0.0F, 1.0f, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_ylig, 7.0f, 0.0f); } if (mSelectedPhotoSlot != 1) { ((J2DPicture *)(pane_ylef.pane))->setBlendRatio(0.0F, 1.0f, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_ylef, -7.0f, 0.0f); } } else { if (mSelectedPhotoSlot != 2) { ((J2DPicture *)(pane_ylig.pane))->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_ylig, 0.0f, 0.0f); } if (mSelectedPhotoSlot != 1) { ((J2DPicture *)(pane_ylef.pane))->setBlendRatio(1.0f, 0.0f, 1.0f, 1.0f); fopMsgM_paneTrans(&pane_ylef, 0.0f, 0.0f); } } if (pane_ylig.mUserArea >= 20) { pane_ylig.mUserArea = 0; } } /* 80227338-80227520 .text clickShutterMode__9dJle_Pb_cFv */ void dJle_Pb_c::clickShutterMode() { int iVar3; short iVar7; f32 dVar8; iVar3 = g_meterHIO.field_0x124; iVar7 = iVar3 << 1; if (mShutterCounter < iVar3) { mShutterCounter++; dVar8 = fopMsgM_valueIncrease(iVar3, mShutterCounter, 0); } else if (mShutterCounter == iVar3) { if (mDoGph_getCaptureStep() == 5) { mShutterCounter++; dMenu_flagSet(1); } dVar8 = 1.0f; } else { mShutterCounter++; dVar8 = fopMsgM_valueIncrease(iVar3, iVar7 - mShutterCounter, 0); } for(int i = 0; i < 12; i++) { f32 rotateAngle = pane_sb[i].mUserArea + g_meterHIO.field_0x24 * dVar8; pane_sb[i].pane->rotate(pane_sb[i].mSizeOrig.x / 2.0f, pane_sb[i].mSizeOrig.y / 2.0f, ROTATE_Z, rotateAngle); fopMsgM_paneTrans(&pane_st[i], 0.0f, dVar8 * -(pane_st[i].mPosTopLeftOrig.y - pane_sb[i].mSizeOrig.y / 2.0f)); shutterLineRotateCenter(rotateAngle, i); } shutterLineMove(); if (mShutterCounter == iVar7) { mModeSubState = PB_SUB_SHIFT_1_TO_0_e; shutterHide(); messageSet(0xedd); } } /* 80227520-802277A0 .text selectMode__9dJle_Pb_cFv */ void dJle_Pb_c::selectMode() { u8 pictureNum; u8 selection = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0); if (selection != mSelectedChoiceIndex) { mSelectedChoiceIndex = selection; mDoAud_seStart(JA_SE_TALK_CURSOR); } if (CPad_CHECK_TRIG_A(0)) { if (mDoGph_getCaptureStep() == 5) { mDoGph_setCaptureStep(6); if (selection == 0) { pictureNum = dComIfGs_getPictureNum(); card_pictdata* pict = mPhotoBuffer[pictureNum]; #if VERSION <= VERSION_JPN dComIfGp_onPictureFlag(pictureNum); #else dComIfGp_onPictureFlag(0); dComIfGp_onPictureFlag(1); dComIfGp_onPictureFlag(2); #endif pict->snap_result = dSnap_GetResult(); pict->snap_result_detail = dSnap_GetResultDetail(); pict->capture_format = mCaptureFormat; memcpy(pict->tex_buffer, mDoGph_getCaptureTextureBuffer(), sizeof(pict->tex_buffer)); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer)); #else DCStoreRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer)); #endif dComIfGp_setItemPictureNumCount(1); pictureNum = dComIfGs_getPictureNum() + 1; mPhotoSlotOccupied[dComIfGs_getPictureNum()] = 1; mDoAud_seStart(JA_SE_UTUSHIE_SAVE_PIC); } else { pictureNum = dComIfGs_getPictureNum(); mDoAud_seStart(JA_SE_UTUSHIE_DEL_PIC); } remainMessageSet(pictureNum); mModeSubState = PB_SUB_IDLE_e; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); dMenu_flagSet(0); } } else if (CPad_CHECK_TRIG_B(0) && mDoGph_getCaptureStep() == 5) { mDoGph_setCaptureStep(6); remainMessageSet(dComIfGs_getPictureNum()); mDoAud_seStart(JA_SE_UTUSHIE_DEL_PIC); mModeSubState = PB_SUB_IDLE_e; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); dMenu_flagSet(0); } } /* 802277A0-80227944 .text cameraMode__9dJle_Pb_cFv */ void dJle_Pb_c::cameraMode() { if (CPad_CHECK_TRIG_A(0)) { if (mDoGph_getCaptureStep() == 0 && dComIfGs_getPictureNum() < 3) { mShutterCounter = 0; mModeSubState = PB_SUB_CONFIRM_e; if (dComIfGs_getItem(8) == dItemNo_PICTO_BOX_e) { mCaptureFormat = GX_TF_I8; } else { mCaptureFormat = GX_TF_RGB565; } mDoGph_setCaptureCaptureFormat(mCaptureFormat); mDoGph_setCaptureTextureFormat(GX_TF_CMPR); mDoGph_setCaptureStep(1); dComIfGp_setScopeMesgStatus(fopMsgStts_STOP_e); shutterShow(); mDoAud_seStart(JA_SE_UTSUSHIE_SHUTTER); dSnap_ReleaseShutter(); } } else if (CPad_CHECK_TRIG_R(0)) { mModeSwapActive = 1; mShutterCounter = 0; shutterShow(); mSelectedPhotoSlot = 0; mDoAud_seStart(JA_SE_UTUSHIE_CHANGE_MODE); } else if (!dComIfGp_checkCameraAttentionStatus(0, dCamAttnStts_PICTO_BOX_AIM_e)) { mExecState = PB_EXEC_CLOSE_e; } #if VERSION > VERSION_JPN else if (mDoGph_getCaptureStep() == -1) { daPy_getPlayerActorClass()->onPhotoBoxCancel(); mExecState = PB_EXEC_CLOSE_e; } #endif else { zoomScale(); } up_downIconMove(); } /* 80227944-80227D34 .text pictureDraw__9dJle_Pb_cFUci */ void dJle_Pb_c::pictureDraw(u8 mono_color_1_alpha, int img_index) { s32 r30, r29; u32 left, top, width, height; f32 projv[7]; f32 viewv[6]; Mtx44 mtx; GXTexObj tex_obj; card_pictdata* pict = mPhotoBuffer[img_index]; u32 index = (img_index == 3) ? 0 : img_index; f32 f2 = pane_no[index].mPosTopLeft.x + REG6_F(0); f32 f3 = pane_no[index].mPosTopLeft.y + REG6_F(1); r30 = (f2 + (f2 + pane_no[index].mSizeOrig.x)) / 2.0f; r29 = (f3 + (f3 + pane_no[index].mSizeOrig.y)) / 2.0f; static const GXColor mCaptureMonoColor0 = {0x00, 0x00, 0x00, 0x00}; static GXColor mCaptureMonoColor1 = {0xFF, 0xFF, 0xFF, mono_color_1_alpha}; GXGetProjectionv(projv); GXGetViewportv(viewv); GXGetScissor(&left, &top, &width, &height); GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); GXSetNumChans(0); GXSetNumTexGens(1); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, false, GX_PTIDENTITY); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG0, mCaptureMonoColor0); GXSetTevColor(GX_TEVREG1, mCaptureMonoColor1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C0, GX_CC_C1, GX_CC_TEXC, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV); GXSetZCompLoc(1); GXSetZMode(false, GX_ALWAYS, false); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_COPY); GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); GXSetClipMode(GX_CLIP_DISABLE); GXSetCullMode(GX_CULL_NONE); GXSetDither(1); GXSetNumIndStages(0); GXSetTevDirect(GX_TEVSTAGE0); C_MTXOrtho(mtx, -21.0f, 503.0f, -9.0f, 650.0f, 0.0f, 10.0f); GXSetProjection(mtx, GX_ORTHOGRAPHIC); GXLoadPosMtxImm(mDoMtx_getIdentity(), 0); GXSetCurrentMtx(0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0); GXInitTexObj(&tex_obj, pict->tex_buffer, 0x98, 0x68, GX_TF_CMPR, GX_CLAMP, GX_CLAMP, GX_FALSE); GXLoadTexObj(&tex_obj, GX_TEXMAP0); s32 r31 = (s32)r30 - 0x98; s32 r28 = (s32)r29 - 0x68; s32 r30new = (s32)r30 + 0x98; s32 r29new = (s32)r29 + 0x68; { GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3s16(r31, r28, 0); GXTexCoord2s8(0, 0); GXPosition3s16(r30new, r28, 0); GXTexCoord2s8(1, 0); GXPosition3s16(r30new, r29new, 0); GXTexCoord2s8(1, 1); GXPosition3s16(r31, r29new, 0); GXTexCoord2s8(0, 1); GXEnd(); } GXSetProjectionv(projv); GXSetViewport(viewv[0], viewv[1], viewv[2], viewv[3], viewv[4], viewv[5]); GXSetScissor(left, top, width, height); GXSetClipMode(GX_CLIP_ENABLE); GXDrawDone(); } /* 80227D34-80227ED8 .text pictureEraseWait__9dJle_Pb_cFv */ void dJle_Pb_c::pictureEraseWait() { u8 bVar1 = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0); if (bVar1 != mSelectedChoiceIndex) { mSelectedChoiceIndex = bVar1; mDoAud_seStart(JA_SE_TALK_CURSOR); } if (CPad_CHECK_TRIG_A(0)) { if (bVar1 == 0) { pictureErase(); mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC); } else { existMessageSet(dComIfGs_getPictureNum()); mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC); } mModeSubState = PB_SUB_IDLE_e; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); } else if (CPad_CHECK_TRIG_B(0)) { existMessageSet(dComIfGs_getPictureNum()); mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC); mModeSubState = PB_SUB_IDLE_e; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); } } /* 80227ED8-802280C8 .text pictureDecide__9dJle_Pb_cFv */ void dJle_Pb_c::pictureDecide() { u8 bVar2 = mMsgDataProc.selectCheckYoko(mMsgSelectArrowPic, mChoiceCursorX0, mChoiceCursorY, mChoiceCursorX1 - mChoiceCursorX0); if (bVar2 != mSelectedChoiceIndex) { mSelectedChoiceIndex = bVar2; mDoAud_seStart(JA_SE_TALK_CURSOR); } if (CPad_CHECK_TRIG_A(0)) { if (bVar2 == 0) { card_pictdata* pict = mPhotoBuffer[mSelectedPhotoSlot]; dComIfGp_setSelectPicture(mSelectedPhotoSlot); dComIfGp_setPictureFormat(pict->capture_format); dComIfGp_setPictureStatus(1); dComIfGp_setPictureResult(pict->snap_result); dComIfGp_setPictureResultDetail(pict->snap_result_detail); #if VERSION <= VERSION_JPN mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC); #endif daPy_getPlayerActorClass()->onPhotoBoxCancel(); mExecState = PB_EXEC_CLOSE_e; #if VERSION <= VERSION_JPN mDoAud_seStart(JA_SE_UTUSHIE_B_DEL_PIC); #else mDoAud_seStart(JA_SE_UTUSHIE_B_SHOW); #endif } else { existMessageSet(dComIfGs_getPictureNum()); mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC); } mModeSubState = PB_SUB_IDLE_e; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); } else if (CPad_CHECK_TRIG_B(0)) { existMessageSet(dComIfGs_getPictureNum()); mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC); mModeSubState = PB_SUB_IDLE_e; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); } } /* 802280C8-80228184 .text pictureErase__9dJle_Pb_cFv */ void dJle_Pb_c::pictureErase() { if (mPhotoSlotOccupied[mSelectedPhotoSlot]) { mPhotoDeletedFlag = 1; mPhotoSlotOccupied[mSelectedPhotoSlot] = 0; fopMsgM_setNowAlphaZero(&pane_icn[mSelectedPhotoSlot]); dComIfGp_setItemPictureNumCount(-1); dComIfGp_onPictureFlag(0); dComIfGp_onPictureFlag(1); dComIfGp_onPictureFlag(2); } existMessageSet(dComIfGs_getPictureNum() - 1); } /* 80228184-80228284 .text pictureTransX__9dJle_Pb_cFfffff */ void dJle_Pb_c::pictureTransX(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5) { f32 y = param_5; for (int i = 0; i < 3; i++) { fopMsgM_paneTrans(&pane_no[i], param_1, 0.0f); fopMsgM_paneTrans(&pane_nob[i], param_1, 0.0f); } fopMsgM_paneTrans(&pane_nok[0], param_2, -y); fopMsgM_paneTrans(&pane_nok[1], param_3, y); fopMsgM_paneTrans(&pane_nok[2], param_4, y); } /* 80228284-80228470 .text changePicture__9dJle_Pb_cFv */ void dJle_Pb_c::changePicture() { s16 r31 = g_meterHIO.field_0x124 << 1; f32 f31 = pane_no[0].mPosCenterOrig.x - pane_no[1].mPosCenterOrig.x; f32 f30 = pane_nok[0].mPosCenterOrig.y - pane_nok[1].mPosCenterOrig.y; mShutterCounter++; u8 r0 = mModeSubState; f32 f1; f32 f3; f32 f4; f32 f1_2; f32 f3_2; f32 f4_2; f32 f5; if (r0 == PB_SUB_SHIFT_1_TO_0_e) { f1 = fopMsgM_valueIncrease(r31, r31 - mShutterCounter, 0); f3 = (pane_nok[2].mPosCenterOrig.x - pane_nok[0].mPosCenterOrig.x); f4 = (pane_nok[0].mPosCenterOrig.x - pane_nok[1].mPosCenterOrig.x); f1_2 = f31 * f1; f3_2 = f3 * f1; f4_2 = f4 * f1; f5 = f30 * f1; pictureTransX(f1_2, f3_2, f4_2, f3_2, f5); } else if (r0 == PB_SUB_SHIFT_0_TO_2_e) { f1 = fopMsgM_valueIncrease(r31, mShutterCounter, 0); f3 = (pane_nok[1].mPosCenterOrig.x - pane_nok[0].mPosCenterOrig.x); f4 = (pane_nok[0].mPosCenterOrig.x - pane_nok[2].mPosCenterOrig.x); f1_2 = -f31 * f1; f3_2 = f3 * f1; f4_2 = f4 * f1; f5 = f30 * f1; pictureTransX(f1_2, f3_2, f3_2, f4_2, f5); } else if (r0 == PB_SUB_SHIFT_0_TO_1_e) { f1 = fopMsgM_valueIncrease(r31, mShutterCounter, 0); f3 = (pane_nok[2].mPosCenterOrig.x - pane_nok[0].mPosCenterOrig.x); f4 = (pane_nok[0].mPosCenterOrig.x - pane_nok[1].mPosCenterOrig.x); f1_2 = f31 * f1; f3_2 = f3 * f1; f4_2 = f4 * f1; f5 = f30 * f1; pictureTransX(f1_2, f3_2, f4_2, f3_2, f5); } else if (r0 == PB_SUB_SHIFT_2_TO_0_e) { f1 = fopMsgM_valueIncrease(r31, r31 - mShutterCounter, 0); f3 = (pane_nok[1].mPosCenterOrig.x - pane_nok[0].mPosCenterOrig.x); f4 = (pane_nok[0].mPosCenterOrig.x - pane_nok[2].mPosCenterOrig.x); f1_2 = -f31 * f1; f3_2 = f3 * f1; f4_2 = f4 * f1; f5 = f30 * f1; pictureTransX(f1_2, f3_2, f3_2, f4_2, f5); } if (mShutterCounter == r31) { mModeSubState = PB_SUB_IDLE_e; } } /* 80228470-80228650 .text shutterChange__9dJle_Pb_cFv */ void dJle_Pb_c::shutterChange() { s16 shutterTime = g_meterHIO.field_0x124; s16 shutterTime2 = shutterTime << 1; s16 shutterCounter = mShutterCounter; f32 f29; if (shutterCounter < shutterTime) { mShutterCounter = shutterCounter + 1; f29 = fopMsgM_valueIncrease(shutterTime, mShutterCounter, 0); } else if (shutterCounter == shutterTime) { mShutterCounter = shutterCounter + 1; f29 = 1.0f; if (mViewMode == PB_VIEW_CAMERA_e) { changeCameraToBrowse(); } else { changeBrowseToCamera(); } } else { mShutterCounter = shutterCounter + 1; f29 = fopMsgM_valueIncrease(shutterTime, shutterTime2 - mShutterCounter, 0); if (mShutterCounter == shutterTime2) { shutterHide(); mModeSwapActive = 0; } } for (int i = 0; i < 12; i++) { f32 rotateAngle = pane_sb[i].mUserArea + g_meterHIO.field_0x24 * f29; pane_sb[i].pane->rotate( pane_sb[i].mSizeOrig.x / 2.0f, pane_sb[i].mSizeOrig.y / 2.0f, ROTATE_Z, rotateAngle ); fopMsgM_paneTrans( &pane_st[i], 0.0f, f29 * -(pane_st[i].mPosTopLeftOrig.y - pane_sb[i].mSizeOrig.y / 2.0f) ); shutterLineRotateInitPos(rotateAngle, i); } shutterLineMove(); } /* 80228650-80228788 .text moveCamera__9dJle_Pb_cFv */ void dJle_Pb_c::moveCamera() { camera_class* camera = dComIfGp_getCamera(0); if (mModeSubState == PB_SUB_CONFIRM_e) { camera->mCamera.Stay(); clickShutterMode(); dComIfGp_setAStatusForce(dActStts_BLANK_e); dComIfGp_setDoStatusForce(dActStts_BLANK_e); if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) { dComIfGp_setRStatusForce(dActStts_BLANK_e); } dComIfGp_setRStatus(dActStts_BLANK_e); } else if (mModeSubState == PB_SUB_SHIFT_1_TO_0_e) { camera->mCamera.Stay(); selectMode(); dComIfGp_setDoStatusForce(dActStts_CHOOSE_e); dComIfGp_setAStatusForce(dActStts_RETURN_e); } else { cameraMode(); #if VERSION > VERSION_DEMO if (mModeSubState == PB_SUB_CONFIRM_e) { camera->mCamera.Stay(); } #endif if (dComIfGs_getPictureNum() < 3) { dComIfGp_setDoStatusForce(dActStts_TAKE_PHOTO_e); } else { dComIfGp_setDoStatusForce(dActStts_BLANK_e); } dComIfGp_setAStatusForce(dActStts_RETURN_e); if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) { dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e); } } } /* 80228788-80228BA8 .text moveBrowse__9dJle_Pb_cFv */ void dJle_Pb_c::moveBrowse() { stick->checkTrigger(); if (mModeSubState == PB_SUB_IDLE_e) { if (CPad_CHECK_TRIG_R(0)) { mModeSwapActive = 1; mShutterCounter = 0; shutterShow(); mDoAud_seStart(JA_SE_UTUSHIE_CHANGE_MODE); } else if (CPad_CHECK_TRIG_A(0)) { if (mPhotoSlotOccupied[mSelectedPhotoSlot] != 0) { mModeSubState = PB_SUB_CONFIRM_e; messageSet(0xee2); dComIfGp_setScopeMesgStatus(fopMsgStts_STOP_e); mDoAud_seStart(JA_SE_UTUSHIE_PIC_OK); } } else if (stick->checkRightTrigger()) { if (mSelectedPhotoSlot == 1) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 0; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_1_TO_0_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } else if (mSelectedPhotoSlot == 0) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 2; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_0_TO_2_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } } else if (stick->checkLeftTrigger()) { if (mSelectedPhotoSlot == 0) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 1; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_0_TO_1_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } else if (mSelectedPhotoSlot == 2) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 0; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_2_TO_0_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } } else if ( CPad_CHECK_TRIG_B(0) || (CPad_CHECK_TRIG_X(0) && dComIfGs_getSelectItem(0) == dInvSlot_CAMERA_e) || (CPad_CHECK_TRIG_Y(0) && dComIfGs_getSelectItem(1) == dInvSlot_CAMERA_e) || (CPad_CHECK_TRIG_Z(0) && dComIfGs_getSelectItem(2) == dInvSlot_CAMERA_e) ) { daPy_getPlayerActorClass()->onNoResetFlg0( daPy_py_c::daPyFlg0_PHOTO_BOX_CANCEL ); mExecState = PB_EXEC_CLOSE_e; mDoAud_seStart(JA_SE_ITM_SUBMENU_OUT); } else { left_rightIconMove(); } if (dComIfGs_getPictureNum()) { dComIfGp_setDoStatusForce(dActStts_CHOOSE_e); } else { dComIfGp_setDoStatusForce(dActStts_BLANK_e); } dComIfGp_setAStatusForce(dActStts_RETURN_e); #if VERSION == VERSION_DEMO dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e); #else if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) { dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e); } #endif } else if (mModeSubState == PB_SUB_CONFIRM_e) { pictureEraseWait(); if (dComIfGs_getPictureNum()) { dComIfGp_setDoStatusForce(dActStts_CHOOSE_e); } else { dComIfGp_setDoStatusForce(dActStts_BLANK_e); } dComIfGp_setAStatusForce(dActStts_RETURN_e); } else { changePicture(); dComIfGp_setDoStatusForce(dActStts_BLANK_e); } setColorAnime(mSelectedPhotoSlot); } /* 80228BA8-80228F40 .text selectBrowse__9dJle_Pb_cFv */ void dJle_Pb_c::selectBrowse() { stick->checkTrigger(); if (mModeSubState == PB_SUB_IDLE_e) { if (CPad_CHECK_TRIG_A(0)) { if (mPhotoSlotOccupied[mSelectedPhotoSlot] != 0) { messageSet(0xee3); mModeSubState = PB_SUB_CONFIRM_e; } } else if ( CPad_CHECK_TRIG_B(0) || (CPad_CHECK_TRIG_X(0) && dComIfGs_getSelectItem(0) == dInvSlot_CAMERA_e) || (CPad_CHECK_TRIG_Y(0) && dComIfGs_getSelectItem(1) == dInvSlot_CAMERA_e) || (CPad_CHECK_TRIG_Z(0) && dComIfGs_getSelectItem(2) == dInvSlot_CAMERA_e) ) { daPy_getPlayerActorClass()->onPhotoBoxCancel(); dComIfGp_setPictureStatus(0); mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC); mExecState = PB_EXEC_CLOSE_e; mDoAud_seStart(JA_SE_ITM_SUBMENU_OUT); } else if (stick->checkRightTrigger()) { if (mSelectedPhotoSlot == 1) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 0; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_1_TO_0_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } else if (mSelectedPhotoSlot == 0) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 2; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_0_TO_2_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } } else if (stick->checkLeftTrigger()) { if (mSelectedPhotoSlot == 0) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 1; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_0_TO_1_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } else if (mSelectedPhotoSlot == 2) { setColorInit(mSelectedPhotoSlot); mSelectedPhotoSlot = 0; mShutterCounter = 0; mModeSubState = PB_SUB_SHIFT_2_TO_0_e; mDoAud_seStart(JA_SE_UTUSHIE_SWITCH_PIC); } } else { left_rightIconMove(); } if (dComIfGs_getPictureNum()) { dComIfGp_setDoStatusForce(dActStts_CHOOSE_e); } else { dComIfGp_setDoStatusForce(dActStts_BLANK_e); } dComIfGp_setAStatusForce(dActStts_RETURN_e); if (dComIfGp_getPictureStatus() != 2 && dComIfGp_getPictureStatus() != 3) { dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e); } } else if (mModeSubState == PB_SUB_CONFIRM_e) { pictureDecide(); dComIfGp_setDoStatusForce(dActStts_CHOOSE_e); dComIfGp_setAStatusForce(dActStts_RETURN_e); } else { changePicture(); dComIfGp_setDoStatusForce(dActStts_BLANK_e); } setColorAnime(mSelectedPhotoSlot); } /* 80228F40-80229100 .text getBrowse__9dJle_Pb_cFv */ void dJle_Pb_c::getBrowse() { if (CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0) || (CPad_CHECK_TRIG_X(0) && dComIfGs_getSelectItem(0) == dInvSlot_CAMERA_e) || (CPad_CHECK_TRIG_Y(0) && dComIfGs_getSelectItem(1) == dInvSlot_CAMERA_e) || (CPad_CHECK_TRIG_Z(0) && dComIfGs_getSelectItem(2) == dInvSlot_CAMERA_e) ) { #if VERSION <= VERSION_JPN u8 pictureNum = dComIfGs_getPictureNum(); dComIfGp_onPictureFlag(pictureNum); #else dComIfGp_onPictureFlag(0); dComIfGp_onPictureFlag(1); dComIfGp_onPictureFlag(2); #endif memcpy(mPhotoBuffer[dComIfGs_getPictureNum()], mPhotoBuffer[3], sizeof(card_pictdata)); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], sizeof(card_pictdata)); #else DCStoreRangeNoSync(mPhotoBuffer[dComIfGs_getPictureNum()], sizeof(card_pictdata)); #endif dComIfGp_setItemPictureNumCount(1); mPhotoSlotOccupied[dComIfGs_getPictureNum()] = 1; daPy_getPlayerActorClass()->onPhotoBoxCancel(); dComIfGp_setPictureStatus(0); mDoAud_seStart(JA_SE_UTUSHIE_B_LEAVE_PIC); mExecState = PB_EXEC_CLOSE_e; mDoAud_seStart(JA_SE_ITM_SUBMENU_OUT); } dComIfGp_setDoStatusForce(dActStts_NEXT_e); dComIfGp_setAStatusForce(dActStts_RETURN_e); } /* 80229100-8022929C .text changeBrowseToCamera__9dJle_Pb_cFv */ void dJle_Pb_c::changeBrowseToCamera() { mViewMode = PB_VIEW_CAMERA_e; setColorInit(mSelectedPhotoSlot); pictureTransX(0.0f, 0.0f, 0.0f, 0.0f, 0.0f); fopMsgM_setNowAlphaZero(&pane_ylef); fopMsgM_setNowAlphaZero(&pane_ylig); for(int i = 0; i < 3; i++) { fopMsgM_setNowAlphaZero(&pane_icn[i]); fopMsgM_setNowAlphaZero(&pane_emp[i]); } fopMsgM_setNowAlphaZero(&pane_ct1); fopMsgM_setNowAlphaZero(&pane_ct2); for(int i = 0; i < 8; i++) { fopMsgM_setNowAlphaZero(&pane_sp[i]); } for(int i = 0; i < 3; i++) { fopMsgM_setNowAlphaZero(&pane_no[i]); fopMsgM_setNowAlphaZero(&pane_nob[i]); fopMsgM_setNowAlphaZero(&pane_nok[i]); } fopMsgM_setNowAlphaZero(&pane_b1); fopMsgM_setNowAlphaZero(&pane_b2); fopMsgM_setNowAlphaZero(&pane_shut); fopMsgM_setInitAlpha(&pane_wnum); fopMsgM_setInitAlpha(&pane_wnuk); fopMsgM_setInitAlpha(&pane_wpba); fopMsgM_setInitAlpha(&pane_wbap); fopMsgM_setInitAlpha(&pane_wpsc); fopMsgM_setInitAlpha(&pane_yrtn); fopMsgM_setInitAlpha(&pane_yzom); fopMsgM_setInitAlpha(&pane_crtn); fopMsgM_setInitAlpha(&pane_czom); fopMsgM_setInitAlpha(&pane_lrtn); fopMsgM_setInitAlpha(&pane_rzom); fopMsgM_setInitAlpha(&pane_fd00); changeData(); remainMessageSet(dComIfGs_getPictureNum()); dMenu_flagSet(0); } /* 8022929C-80229430 .text changeCameraToBrowse__9dJle_Pb_cFv */ void dJle_Pb_c::changeCameraToBrowse() { mViewMode = PB_VIEW_BROWSE_e; fopMsgM_setNowAlphaZero(&pane_wnum); fopMsgM_setNowAlphaZero(&pane_wnuk); fopMsgM_setNowAlphaZero(&pane_wpba); fopMsgM_setNowAlphaZero(&pane_wbap); fopMsgM_setNowAlphaZero(&pane_wpsc); fopMsgM_setNowAlphaZero(&pane_yrtn); fopMsgM_setNowAlphaZero(&pane_yzom); fopMsgM_setNowAlphaZero(&pane_crtn); fopMsgM_setNowAlphaZero(&pane_czom); fopMsgM_setNowAlphaZero(&pane_lrtn); fopMsgM_setNowAlphaZero(&pane_rzom); fopMsgM_setNowAlphaZero(&pane_fd00); fopMsgM_setInitAlpha(&pane_ylef); fopMsgM_setInitAlpha(&pane_ylig); for(int i = 0; i < 3; i++) { if(mPhotoSlotOccupied[i]) { fopMsgM_setInitAlpha(&pane_icn[i]); } else { fopMsgM_setNowAlphaZero(&pane_icn[i]); } fopMsgM_setInitAlpha(&pane_emp[i]); } fopMsgM_setInitAlpha(&pane_ct1); fopMsgM_setInitAlpha(&pane_ct2); for(int i = 0; i < 8; i++) { fopMsgM_setInitAlpha(&pane_sp[i]); } for(int i = 0; i < 3; i++) { fopMsgM_setInitAlpha(&pane_no[i]); fopMsgM_setInitAlpha(&pane_nob[i]); fopMsgM_setInitAlpha(&pane_nok[i]); } fopMsgM_setInitAlpha(&pane_b1); fopMsgM_setInitAlpha(&pane_b2); fopMsgM_setInitAlpha(&pane_shut); existMessageSet(dComIfGs_getPictureNum()); dMenu_flagSet(1); } /* 80229430-80229520 .text setColorInit__9dJle_Pb_cFUc */ void dJle_Pb_c::setColorInit(u8 param_1) { ((J2DPicture *)pane_icn[param_1].pane)->setWhite(icn_white); ((J2DPicture *)pane_emp[param_1].pane)->setWhite(emp_white); ((J2DPicture *)pane_emp[param_1].pane)->setBlack(emp_black); pane_icn[param_1].mUserArea = 0; if (mPhotoSlotOccupied[param_1] != 0) { fopMsgM_setInitAlpha(&pane_icn[param_1]); } fopMsgM_setInitAlpha(&pane_emp[param_1]); } /* 80229520-80229980 .text setColorAnime__9dJle_Pb_cFUc */ void dJle_Pb_c::setColorAnime(u8 param_1) { JUtility::TColor icnWhite, empWhite, empBlack; pane_icn[param_1].mUserArea++; if (pane_icn[param_1].mUserArea >= 0x28) { pane_icn[param_1].mUserArea = 0; } int frame = pane_icn[param_1].mUserArea; f32 t; if (frame < 20) { t = fopMsgM_valueIncrease(20, frame, 0); } else { t = fopMsgM_valueIncrease(20, 0x28 - frame, 0); } icnWhite.r = (icn_white.r - t * (icn_white.r - 255.0f)); icnWhite.g = (icn_white.g - t * (icn_white.g - 60.0f)); icnWhite.b = (icn_white.b - t * (icn_white.b - 60.0f)); icnWhite.a = 0xFF; empWhite.r = (emp_white.r - t * (emp_white.r - 255.0f)); empWhite.g = (emp_white.g - t * (emp_white.g - 60.0f)); empWhite.b = (emp_white.b - t * (emp_white.b - 60.0f)); empWhite.a = 0xFF; empBlack.r = (emp_black.r - t * (emp_black.r - 255.0f)); empBlack.g = (emp_black.g - t * (emp_black.g - 60.0f)); empBlack.b = (emp_black.b - t * (emp_black.b - 60.0f)); empBlack.a = 0; ((J2DPicture*)pane_icn[param_1].pane)->setWhite(icnWhite); ((J2DPicture*)pane_emp[param_1].pane)->setWhite(empWhite); ((J2DPicture*)pane_emp[param_1].pane)->setBlack(empBlack); if (mPhotoSlotOccupied[param_1] != 0) { fopMsgM_setNowAlpha(&pane_icn[param_1], (pane_icn[param_1].mInitAlpha - (pane_icn[param_1].mInitAlpha - 100.0f) * t) / pane_icn[param_1].mInitAlpha); } fopMsgM_setNowAlpha(&pane_emp[param_1], (pane_emp[param_1].mInitAlpha - (pane_emp[param_1].mInitAlpha - 100.0f) * t) / pane_emp[param_1].mInitAlpha); } /* 80229980-80229A7C .text changeData__9dJle_Pb_cFv */ void dJle_Pb_c::changeData() { int j = 0; for(int i = 0; i < 3; i++) { if (mPhotoSlotOccupied[i] != 0) { if(i != j) { mPhotoSlotOccupied[i] = 0; mPhotoSlotOccupied[j] = 1; memcpy(mPhotoBuffer[j], mPhotoBuffer[i], sizeof(card_pictdata)); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mPhotoBuffer[j], sizeof(card_pictdata)); #else DCStoreRangeNoSync(mPhotoBuffer[j], sizeof(card_pictdata)); #endif } mDoMemCdRWm_SetCheckSumPictData((u8*)mPhotoBuffer[i]); JKRMainRamToAram((u8*)mPhotoBuffer[i], dComIfGp_getPictureBoxData(j), sizeof(card_pictdata), EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1); j++; } } dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, 0); } /* 80229A7C-80229AF4 .text label_sort__9dJle_Pb_cFv */ bool dJle_Pb_c::label_sort() { u8 count = 0; for (int i = 0; i < 3; i++) { mPictureSlotSortMap[i] = -1; if (!getPicLabelData(i)) { mPictureSlotSortMap[count] = i; count++; } } return true; } /* 80229AF4-80229B58 .text getPicLabelData__9dJle_Pb_cFUc */ u8 dJle_Pb_c::getPicLabelData(u8 param_1) { u8 eventReg = dComIfGs_getEventReg(dSv_event_flag_c::UNK_89FF); u8 result = 0; if (param_1 < 3) { result = eventReg & (1 << param_1); } return result; } /* 80229B58-80229D48 .text shutterLineRotateCenter__9dJle_Pb_cFfi */ void dJle_Pb_c::shutterLineRotateCenter(f32 param_1, int param_2) { f32 sin1; f32 cos1; f32 cos2; f32 sin2; f32 sin3; f32 cos3; f32 cos4; f32 sin4; f32 angle; f32 x1; f32 y; f32 x2; x1 = pane_st[param_2].mPosTopLeftOrig.x + pane_sb[param_2].mSizeOrig.x / 2.0f; y = pane_st[param_2].mPosTopLeft.y - pane_sb[param_2].mSizeOrig.y / 2.0f; x2 = x1 + pane_st[param_2].mSizeOrig.x; angle = M_PI * (param_1 / 180.0f); sin1 = sin(angle); cos1 = cos(angle); f32 f26 = x1 * cos1 - y * sin1; cos2 = cos(angle); sin2 = sin(angle); f32 f25 = x1 * sin2 + y * cos2; sin3 = sin(angle); cos3 = cos(angle); f32 f27 = x2 * cos3 - y * sin3; cos4 = cos(angle); sin4 = sin(angle); f32 f1 = x2 * sin4 + y * cos4; mShutterLineX1[param_2] = f26 + pane_no[0].mPosCenterOrig.x; mShutterLineY1[param_2] = f25 + pane_no[0].mPosCenterOrig.y; mShutterLineX2[param_2] = f27 + pane_no[0].mPosCenterOrig.x; mShutterLineY2[param_2] = f1 + pane_no[0].mPosCenterOrig.y; } /* 80229D48-80229F3C .text shutterLineRotateInitPos__9dJle_Pb_cFfi */ void dJle_Pb_c::shutterLineRotateInitPos(f32 param_1, int param_2) { f32 sin1; f32 cos1; f32 cos2; f32 sin2; f32 sin3; f32 cos3; f32 cos4; f32 sin4; f32 angle; f32 x1; f32 y; f32 x2; x1 = pane_st[param_2].mPosTopLeftOrig.x + pane_sb[param_2].mSizeOrig.x / 2.0f; y = pane_st[param_2].mPosTopLeft.y - pane_sb[param_2].mSizeOrig.y / 2.0f; x2 = x1 + pane_st[param_2].mSizeOrig.x; angle = M_PI * (param_1 / 180.0f); sin1 = sin(angle); cos1 = cos(angle); f32 f26 = x1 * cos1 - y * sin1; cos2 = cos(angle); sin2 = sin(angle); f32 f25 = x1 * sin2 + y * cos2; sin3 = sin(angle); cos3 = cos(angle); f32 f27 = x2 * cos3 - y * sin3; cos4 = cos(angle); sin4 = sin(angle); f32 f1 = x2 * sin4 + y * cos4; mShutterLineX1[param_2] = f26 + pane_sb[param_2].mPosCenterOrig.x; mShutterLineY1[param_2] = f25 + pane_sb[param_2].mPosCenterOrig.y; mShutterLineX2[param_2] = f27 + pane_sb[param_2].mPosCenterOrig.x; mShutterLineY2[param_2] = f1 + pane_sb[param_2].mPosCenterOrig.y; } /* 80229F3C-8022A09C .text shutterLineMove__9dJle_Pb_cFv */ void dJle_Pb_c::shutterLineMove() { f32 intersectionX[12]; f32 intersectionY[12]; f32 x1; f32 xNext; f32 determinant; f32 a1; f32 b1; f32 b2; f32 c1; f32 x2OrA2; for (int i = 0; i < 12; i++) { u32 next = (i == 11) ? 0 : i + 1; x1 = mShutterLineX1[i]; x2OrA2 = mShutterLineX2[i]; if (x1 != x2OrA2) { f32 y1 = mShutterLineY1[i]; a1 = -(y1 - mShutterLineY2[i]) / (x1 - x2OrA2); b1 = 1.0f; c1 = y1 + a1 * x1; } else { a1 = 1.0f; b1 = 0.0f; c1 = x1; } xNext = mShutterLineX1[next]; x2OrA2 = mShutterLineX2[next]; if (xNext != x2OrA2) { f32 nextY = mShutterLineY1[next]; x2OrA2 = -(nextY - mShutterLineY2[next]) / (xNext - x2OrA2); b2 = 1.0f; xNext = nextY + x2OrA2 * xNext; } else { x2OrA2 = 1.0f; b2 = 0.0f; } determinant = a1 * b2 - x2OrA2 * b1; if (determinant) { f32 temp1 = (b2 * c1 - b1 * xNext) / determinant; f32 temp2 = (-x2OrA2 * c1 + a1 * xNext) / determinant;; intersectionX[i] = temp1; intersectionY[i] = temp2; } else { intersectionX[i] = x1; intersectionY[i] = mShutterLineY1[i]; } } for (int i = 0; i < 12; i++) { mShutterLineX1[i] = intersectionX[i]; mShutterLineY1[i] = intersectionY[i]; } } /* 8022A09C-8022A120 .text shutterLineDraw__9dJle_Pb_cFUc */ void dJle_Pb_c::shutterLineDraw(u8 shutter_alpha) { JUtility::TColor shutterLineColor(0xFF, 0xFF, 0xFF, shutter_alpha); for (int i = 0; i < 12; i++) { J2DDrawLine(mShutterLineX1[i], mShutterLineY1[i], mShutterLineX2[i], mShutterLineY2[i], shutterLineColor, 0xc); } } /* 8022A120-8022A7A8 .text messageSet__9dJle_Pb_cFUl */ void dJle_Pb_c::messageSet(u32 msgNo) { fopMsgM_msgGet_c msgGet; char colorTag[0x1C]; char whiteTag[0x1C]; msgGet.mMsgIdx = 0; msgGet.mGroupID = 0; msgGet.mMsgNo = 0; msgGet.mResMsgNo = 0; u32 color = fopMsgM_getColorTable(0); u8 firstChoiceSeen = 0; mSelectedChoiceIndex = 0; f32 tx0FontSizeX = ((J2DTextBox*)pane_tx[0].pane)->mFontSizeX; f32 tx1FontSizeX = ((J2DTextBox*)pane_tx[1].pane)->mFontSizeX; mMsgIconFontMainPic->hide(); mMsgIconFontSubPic->hide(); mMsgSelectArrowPic->hide(); mMsgIconFontMainPic->setAlpha(0); mMsgIconFontSubPic->setAlpha(0); mMsgSelectArrowPic->setAlpha(0); mChoiceArrowIconIdx = 0xFF; mMsgIconDrawState = -1; if (head_p != NULL) { JKRFileLoader::removeResource(head_p, NULL); head_p = NULL; } head_p = msgGet.getMesgHeader(msgNo); JUT_ASSERT(VERSION_SELECT(1841, 1836, 1881, 1908), head_p); const char* text = msgGet.getMessage(head_p); mMsgEntry = msgGet.getMesgEntry(head_p); sprintf(colorTag, "\x1b" "CC[%08x]" "\x1b" "GM[0]", color); sprintf(whiteTag, "\x1b" "CC[000000FF]" "\x1b" "GM[0]"); strcpy(mMsgTextBuffer[0], colorTag); strcpy(mMsgTextBuffer[1], colorTag); strcpy(mMsgTextBuffer[2], whiteTag); strcpy(mMsgTextBuffer[3], whiteTag); mMsgDataProc.dataInit(); mMsgDataProc.setBmgData((char*)text); mMsgDataProc.setOutMessage(mMsgTextBuffer[0], mMsgTextBuffer[1], mMsgTextBuffer[2], mMsgTextBuffer[3]); mMsgDataProc.setFont(font0); mMsgDataProc.setRubyFont(font1); mMsgDataProc.charSpace = ((J2DTextBox*)pane_tx[0].pane)->mCharSpace; mMsgDataProc.rubyCharSpace = ((J2DTextBox*)pane_tx[1].pane)->mCharSpace; mMsgDataProc.lineSpace = ((J2DTextBox*)pane_tx[0].pane)->getLineSpace(); mMsgDataProc.setMesgEntry(&mMsgEntry); mMsgDataProc.fontSize = tx0FontSizeX; mMsgDataProc.rubyFontSize = tx1FontSizeX; mMsgDataProc.lineWidth = 0x1F7; mMsgDataProc.centerLineWidth = 0x1E6; mMsgDataProc.sendSpeed = g_msgHIO.field_0x82; mMsgDataProc.spaceTimer = g_msgHIO.field_0x6c; mMsgDataProc.field_0x299 = 1; if (g_msgHIO.field_0x83 != 0) { mMsgDataProc.spaceFlag = 1; } else { mMsgDataProc.spaceFlag = 0; } mMsgDataProc.stringLength(); mMsgDataProc.stringShift(); mMsgDataProc.iconIdxRefresh(); mMsgLineCount = mMsgDataProc.lineCount; mMsgDataProc.lineCount = 0; f32 yShift = ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) * (((J2DTextBox*)pane_tx[0].pane)->getLineSpace() / 2.0f)); for (int i = 0; i < 4; i++) { ((J2DTextBox*)pane_tx[i].pane)->shiftSet(0.0f, yShift); } mMsgDataProc.stringSet(); for (int i = 0; i < 4; i++) { ((J2DTextBox*)pane_tx[i].pane)->setString(mMsgTextBuffer[i]); } for (int i = 0; i < 15; i++) { int halfLine = ((J2DTextBox*)pane_tx[0].pane)->getLineSpace() / 2.0f; u8 icon = mMsgDataProc.field_0x281[i]; u32 fontData = mMsgDataProc.field_0x25C; if (icon == 20) { mChoiceCursorX0 = (int)( ((J2DTextBox*)pane_tx[0].pane)->mBounds.i.x + (f32)mMsgDataProc.getIconPosX(i) ); mChoiceCursorY = (int)( ((J2DTextBox*)pane_tx[0].pane)->mBounds.i.y + (f32)( halfLine * ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) + mMsgDataProc.getIconPosY(i) * 2) ) ); mMsgSelectArrowPic->show(); mMsgSelectArrowPic->setAlpha(0xFF); mChoiceArrowIconIdx = i; if (firstChoiceSeen == 0) { firstChoiceSeen = 1; mSelectedChoiceIndex = 1; } else { firstChoiceSeen = 0; mSelectedChoiceIndex = 0; } } else if (icon == 0x15) { mChoiceCursorX1 = (int)( ((J2DTextBox*)pane_tx[0].pane)->mBounds.i.x + (f32)mMsgDataProc.getIconPosX(i) ); mChoiceCursorYAlt = (int)( ((J2DTextBox*)pane_tx[0].pane)->mBounds.i.y + (f32)( halfLine * ((1 - mMsgLineCount) + mMsgDataProc.getIconPosY(i) * 2) ) ); mMsgSelectArrowPic->show(); mMsgSelectArrowPic->setAlpha(0xFF); mChoiceArrowIconIdx = i; if (firstChoiceSeen != 0) { mSelectedChoiceIndex = 1; } else { mSelectedChoiceIndex = 0; } } else if (icon != 0xFF && mMsgIconDrawState == -1) { fopMsgM_outFontSet( mMsgIconFontMainPic, mMsgIconFontSubPic, &mMsgIconDrawState, fontData, icon ); } } if (dComIfGs_getOptRuby()) { pane_tx[1].pane->hide(); pane_tx[3].pane->hide(); } else { if (pane_tx[1].pane->isVisible()) { pane_tx[1].pane->show(); } if (pane_tx[3].pane->isVisible()) { pane_tx[3].pane->show(); } } } /* 8022A7A8-8022A810 .text remainMessageSet__9dJle_Pb_cFUc */ void dJle_Pb_c::remainMessageSet(u8 param_1) { if (param_1 == 0) { messageSet(0xed9); } else if (param_1 == 1) { messageSet(0xeda); } else if (param_1 == 2) { messageSet(0xedb); } else if (param_1 == 3) { messageSet(0xedc); } } /* 8022A810-8022A878 .text existMessageSet__9dJle_Pb_cFUc */ void dJle_Pb_c::existMessageSet(u8 param_1) { if (param_1 == 0) { messageSet(0xee1); } else if (param_1 == 1) { messageSet(0xee0); } else if (param_1 == 2) { messageSet(0xedf); } else if (param_1 == 3) { messageSet(0xede); } } /* 8022A878-8022A8A8 .text shutterShow__9dJle_Pb_cFv */ void dJle_Pb_c::shutterShow() { for(int i = 0; i < 12; i++) { pane_sb[i].pane->show(); pane_st[i].pane->show(); } } /* 8022A8A8-8022A8DC .text shutterHide__9dJle_Pb_cFv */ void dJle_Pb_c::shutterHide() { for(int i = 0; i < 12; i++) { pane_sb[i].pane->hide(); pane_st[i].pane->hide(); } } /* 8022A8DC-8022AF44 .text _create__9dJle_Pb_cFP10JKRExpHeap */ void dJle_Pb_c::_create(JKRExpHeap* i_heap) { int j = 0; int k = 0; scrn = new J2DScreen(); JUT_ASSERT(VERSION_SELECT(2038, 2033, 2086, 2113), scrn != NULL); scrn->set("wipe_01_01.blo", dComIfGp_getCameraResArchive()); scrn1 = new J2DScreen(); JUT_ASSERT(VERSION_SELECT(2042, 2037, 2090, 2117), scrn1 != NULL); scrn1->set("wipe_01_02.blo", dComIfGp_getCameraResArchive()); scrn2 = new J2DScreen(); JUT_ASSERT(VERSION_SELECT(2046, 2041, 2094, 2121), scrn2 != NULL); scrn2->set("hukidashi_08.blo", dComIfGp_getMsgArchive()); font0 = mDoExt_getMesgFont(); JUT_ASSERT(VERSION_SELECT(2050, 2045, 2098, 2125), font0 != NULL); font1 = mDoExt_getRubyFont(); JUT_ASSERT(VERSION_SELECT(2053, 2048, 2102, 2129), font1 != NULL); stick = new STControl(5, 2, 3, 2); JUT_ASSERT(VERSION_SELECT(2056, 2051, 2107, 2134), stick != NULL); mMsgIconFontMainPic = new J2DPicture("font_07_02.bti"); mMsgIconFontSubPic = new J2DPicture("font_07_02.bti"); mMsgSelectArrowPic = new J2DPicture("font_10.bti"); mImportedPhotoLoadReq = NULL; fopMsgM_blendInit(mMsgIconFontMainPic, "font_00.bti"); fopMsgM_blendInit(mMsgIconFontSubPic, "font_00.bti"); fopMsgM_blendInit(mMsgSelectArrowPic, "font_10.bti"); mMsgIconFontMainPic->hide(); mMsgIconFontSubPic->hide(); mMsgSelectArrowPic->hide(); mMsgIconFontMainPic->setAlpha(0); mMsgIconFontSubPic->setAlpha(0); mMsgSelectArrowPic->setAlpha(0); mMsgIconDrawState = -1; screenSet(); screenSet2(); mZoomScale = 0.0f; mFadeTimer = 0; mShutterCounter = 0; mModeSwapActive = 0; mChoiceArrowIconIdx = -1; if (dComIfGp_getPictureStatus() == 2) { mExecState = PB_EXEC_BROWSE_OPEN_e; mViewMode = PB_VIEW_BROWSE_e; } else if (dComIfGp_getPictureStatus() == 3) { mExecState = PB_EXEC_GET_OPEN_e; mImportedPhotoLoadReq = mDoDvdThd_toMainRam_c::create(photo_data[dComIfGp_getGetPictureNum()], 0, i_heap); mViewMode = PB_VIEW_GET_e; } else { mExecState = PB_EXEC_CAMERA_OPEN_e; mViewMode = PB_VIEW_CAMERA_e; } mModeSubState = PB_SUB_IDLE_e; zoomScale(); mSelectedPhotoSlot = 0; head_p = NULL; mPhotoDeletedFlag = 0; mCaptureFormat = GX_TF_I8; mMsgLineCount = 0; mChoiceCursorYAlt = 0; mChoiceCursorY = 0; mChoiceCursorX1 = 0; mChoiceCursorX0 = 0; label_sort(); for (int i = 0; i < 3; i++) { mPhotoSlotOccupied[i] = 0; if (i < dComIfGs_getPictureNum() && mPictureSlotSortMap[i] != 0xFF) { mPhotoSlotOccupied[j] = 1; JKRAramToMainRam( dComIfGp_getPictureBoxData(mPictureSlotSortMap[i]), (u8*)mPhotoBuffer[k], sizeof(card_pictdata) ); j++; k++; } } for(int i = 0; i < 12; i++) { shutterLineRotateInitPos(pane_sb[i].mUserArea, i); } } /* 8022AF44-8022B018 .text _copen__9dJle_Pb_cFv */ void dJle_Pb_c::_copen() { if (mFadeTimer == 0) { remainMessageSet(dComIfGs_getPictureNum()); } mFadeTimer++; cameraAlphaInc(fopMsgM_valueIncrease(10, mFadeTimer, 0)); if (mFadeTimer == 10) { dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); mExecState = PB_EXEC_CAMERA_MOVE_e; mDoAud_seStart(JA_SE_ITM_SUBMENU_IN_2); } dComIfGp_setDoStatusForce(dActStts_BLANK_e); #if VERSION > VERSION_DEMO dComIfGp_setAStatusForce(dActStts_BLANK_e); #endif up_downIconMove(); } /* 8022B018-8022B0F8 .text _bopen__9dJle_Pb_cFv */ void dJle_Pb_c::_bopen() { if (mFadeTimer == 0) { if(!dComIfGs_getPictureNum()) { messageSet(0xee4); } else { existMessageSet(dComIfGs_getPictureNum()); } } mFadeTimer++; browseAlphaInc(fopMsgM_valueIncrease(10, mFadeTimer, 0)); if (mFadeTimer == 10) { dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); mExecState = PB_EXEC_BROWSE_MOVE_e; mDoAud_seStart(JA_SE_ITM_SUBMENU_IN_2); } dComIfGp_setDoStatusForce(dActStts_BLANK_e); #if VERSION > VERSION_DEMO dComIfGp_setAStatusForce(dActStts_BLANK_e); #endif } /* 8022B0F8-8022B214 .text _gopen__9dJle_Pb_cFv */ void dJle_Pb_c::_gopen() { if (mFadeTimer == 0) { messageSet(0xee5); } if (mFadeTimer >= 10) { if (mImportedPhotoLoadReq->sync() != 0) { card_pictdata* pict = mPhotoBuffer[3]; memcpy(pict->tex_buffer, mImportedPhotoLoadReq->getMemAddress(), sizeof(pict->tex_buffer)); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer)); #else DCStoreRangeNoSync(pict->tex_buffer, sizeof(pict->tex_buffer)); #endif u8 picNo = dComIfGp_getGetPictureNum(); pict->snap_result = photo_idx[picNo]; pict->snap_result_detail = 0; pict->capture_format = GX_TF_CMPR; dComIfGp_setScopeMesgStatus(fopMsgStts_SCOPE_ACTIVE_e); mExecState = PB_EXEC_GET_MOVE_e; mDoAud_seStart(JA_SE_ITM_SUBMENU_IN_2); } } else { mFadeTimer++; getAlphaInc(fopMsgM_valueIncrease(10, mFadeTimer, 0)); } dComIfGp_setDoStatusForce(dActStts_BLANK_e); dComIfGp_setAStatusForce(dActStts_BLANK_e); } /* 8022B214-8022B298 .text _close__9dJle_Pb_cFv */ void dJle_Pb_c::_close() { mFadeTimer--; alphaDec(fopMsgM_valueIncrease(10, mFadeTimer, 0)); if (mFadeTimer == 0) { changeData(); mExecState = PB_EXEC_CLOSED_e; dMenu_flagSet(0); } #if VERSION > VERSION_DEMO dComIfGp_setDoStatusForce(dActStts_BLANK_e); dComIfGp_setAStatusForce(dActStts_BLANK_e); #endif } /* 8022B298-8022B2E0 .text _cmove__9dJle_Pb_cFv */ void dJle_Pb_c::_cmove() { if (mModeSwapActive == 0) { if (mViewMode == PB_VIEW_CAMERA_e) { moveCamera(); } else { moveBrowse(); } } else { shutterChange(); } } /* 8022B2E0-8022B300 .text _bmove__9dJle_Pb_cFv */ void dJle_Pb_c::_bmove() { selectBrowse(); } /* 8022B300-8022B320 .text _gmove__9dJle_Pb_cFv */ void dJle_Pb_c::_gmove() { getBrowse(); } /* 8022B320-8022B9E8 .text draw__9dJle_Pb_cFv */ void dJle_Pb_c::draw() { /* Nonmatching - retail-only regalloc */ if (mExecState != PB_EXEC_CLOSE_e && mExecState != PB_EXEC_CLOSED_e) { for (int i = 0; i < 12; i++) { fopMsgM_setAlpha(&pane_sb[i]); fopMsgM_setAlpha(&pane_st[i]); } fopMsgM_setAlpha(&pane_ylig); fopMsgM_setAlpha(&pane_ylef); for (int i = 0; i < 3; i++) { fopMsgM_setAlpha(&pane_icn[i]); fopMsgM_setAlpha(&pane_emp[i]); } fopMsgM_setAlpha(&pane_ct1); fopMsgM_setAlpha(&pane_ct2); for (int i = 0; i < 8; i++) { fopMsgM_setAlpha(&pane_sp[i]); } for (int i = 0; i < 3; i++) { fopMsgM_setAlpha(&pane_no[i]); fopMsgM_setAlpha(&pane_nob[i]); fopMsgM_setAlpha(&pane_nok[i]); } fopMsgM_setAlpha(&pane_b1); fopMsgM_setAlpha(&pane_b2); fopMsgM_setAlpha(&pane_wnum); fopMsgM_setAlpha(&pane_wnuk); fopMsgM_setAlpha(&pane_wpba); fopMsgM_setAlpha(&pane_wbap); fopMsgM_setAlpha(&pane_wpsc); fopMsgM_setAlpha(&pane_yrtn); fopMsgM_setAlpha(&pane_yzom); fopMsgM_setAlpha(&pane_crtn); fopMsgM_setAlpha(&pane_czom); fopMsgM_setAlpha(&pane_lrtn); fopMsgM_setAlpha(&pane_rzom); fopMsgM_setAlpha(&pane_shut); fopMsgM_setAlpha(&pane_fd00); fopMsgM_setAlpha(&pane_wp03); fopMsgM_setAlpha(&pane_wp02); fopMsgM_setAlpha(&pane_wp01); fopMsgM_setAlpha(&pane_wp04); fopMsgM_setAlpha(&pane_tx[0]); fopMsgM_setAlpha(&pane_tx[1]); fopMsgM_setAlpha(&pane_tx[2]); fopMsgM_setAlpha(&pane_tx[3]); } J2DOrthoGraph* graph = dComIfGp_getCurrentGrafPort(); graph->setPort(); if (mModeSwapActive == 0) { scrn1->draw(0.0f, 0.0f, graph); shutterLineDraw(g_meterHIO.field_0x120); scrn->draw(0.0f, 0.0f, graph); scrn2->draw(0.0f, 0.0f, graph); if (mExecState != PB_EXEC_CLOSED_e) { if (mViewMode == PB_VIEW_GET_e) { #if VERSION == VERSION_DEMO pictureDraw(pane_tx[0].mNowAlpha, 3); #else if ((mExecState == PB_EXEC_GET_MOVE_e || mExecState == PB_EXEC_CLOSE_e) && mImportedPhotoLoadReq->sync() != 0) { pictureDraw(pane_tx[0].mNowAlpha, 3); } #endif } else if (mViewMode == PB_VIEW_BROWSE_e) { for (int i = 0; i < 3; i++) { if (mPhotoSlotOccupied[i] != 0) { pictureDraw(pane_tx[0].mNowAlpha, i); } } } } dComIfGp_getCurrentGrafPort()->setPort(); for (int idx = 0; idx < 15; idx++) { if (idx == mChoiceArrowIconIdx) { mMsgDataProc.selectArrow( mMsgSelectArrowPic, mChoiceCursorX0 + mSelectedChoiceIndex * (mChoiceCursorX1 - mChoiceCursorX0), mChoiceCursorY, VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70), VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70) ); } else { u8 iconNo = mMsgDataProc.field_0x281[idx]; if (iconNo != 0xFF && iconNo != 20 && iconNo != 0x15) { int posX = mMsgDataProc.getIconPosX(idx); int posY = mMsgDataProc.getIconPosY(idx); u32 color = mMsgDataProc.getIconColor(idx); J2DTextBox* base = (J2DTextBox*)pane_tx[0].pane; f32 lineSpace = base->getLineSpace(); int r9 = (int)(lineSpace / 2.0f); int r5 = posX + base->mBounds.i.x; f32 f1 = r9 * ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) + posY * 2); int r6 = f1 + base->mBounds.i.y; u8 alpha = base->getAlpha(); fopMsgM_outFontDraw( mMsgIconFontMainPic, mMsgIconFontSubPic, r5, r6, color, &mMsgIconDrawState, alpha, iconNo ); } } } } else { scrn->draw(0.0f, 0.0f, graph); scrn2->draw(0.0f, 0.0f, graph); if (mExecState != PB_EXEC_CLOSED_e) { if (mViewMode == PB_VIEW_GET_e) { #if VERSION == VERSION_DEMO pictureDraw(pane_tx[0].mNowAlpha, 3); #else if ((mExecState == PB_EXEC_GET_MOVE_e || mExecState == PB_EXEC_CLOSE_e) && mImportedPhotoLoadReq->sync() != 0) { pictureDraw(pane_tx[0].mNowAlpha, 3); } #endif } else if (mViewMode == PB_VIEW_BROWSE_e) { for (int i = 0; i < 3; i++) { if (mPhotoSlotOccupied[i] != 0) { pictureDraw(pane_tx[0].mNowAlpha, i); } } } } graph = dComIfGp_getCurrentGrafPort(); graph->setPort(); for (int idx = 0; idx < 15; idx++) { if (idx == mChoiceArrowIconIdx) { mMsgDataProc.selectArrow( mMsgSelectArrowPic, mChoiceCursorX0 + mSelectedChoiceIndex * (mChoiceCursorX1 - mChoiceCursorX0), mChoiceCursorY, VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70), VERSION_SELECT(29.0f, 29.0f, g_msgHIO.field_0x70, g_msgHIO.field_0x70) ); } else { u8 iconNo = mMsgDataProc.field_0x281[idx]; if (iconNo != 0xFF && iconNo != 20 && iconNo != 0x15) { int posX = mMsgDataProc.getIconPosX(idx); int posY = mMsgDataProc.getIconPosY(idx); u32 color = mMsgDataProc.getIconColor(idx); J2DTextBox* base = (J2DTextBox*)pane_tx[0].pane; f32 lineSpace = base->getLineSpace(); int r9 = (int)(lineSpace / 2.0f); int r5 = posX + base->mBounds.i.x; f32 f1 = r9 * ((VERSION_SELECT(1, 1, 2, 2) - mMsgLineCount) + posY * 2); int r6 = f1 + base->mBounds.i.y; u8 alpha = base->getAlpha(); fopMsgM_outFontDraw( mMsgIconFontMainPic, mMsgIconFontSubPic, r5, r6, color, &mMsgIconDrawState, alpha, iconNo ); } } } scrn1->draw(0.0f, 0.0f, graph); shutterLineDraw(g_meterHIO.field_0x120); } } /* 8022B9E8-8022BB3C .text _delete__9dJle_Pb_cFP10JKRExpHeap */ void dJle_Pb_c::_delete(JKRExpHeap* i_heap) { if (head_p != NULL) { JKRFileLoader::removeResource(head_p, NULL); } if (mDoGph_getCaptureStep()) { #if VERSION == VERSION_DEMO mDoGph_setCaptureStep(6); #else mDoGph_CaptureCansel(); #endif } mDoExt_removeMesgFont(); mDoExt_removeRubyFont(); for(int i = 0; i < 4; i++) { i_heap->free(mMsgTextBuffer[i]); } if (mImportedPhotoLoadReq != NULL) { delete mImportedPhotoLoadReq; } delete scrn; delete scrn2; delete stick; delete mMsgIconFontMainPic; delete mMsgIconFontSubPic; delete mMsgSelectArrowPic; } /* 8022BB3C-8022BB7C .text dPb_Draw__FP12sub_pb_class */ static BOOL dPb_Draw(sub_pb_class* i_this) { dComIfGd_set2DOpa(i_this->dPb_c); return TRUE; } /* 8022BB7C-8022BC84 .text dPb_Execute__FP12sub_pb_class */ static BOOL dPb_Execute(sub_pb_class* i_this) { JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_this->heap); dJle_Pb_c* a_this = i_this->dPb_c; if (a_this->getStatus() == PB_EXEC_CAMERA_OPEN_e) { a_this->_copen(); } else if (a_this->getStatus() == PB_EXEC_BROWSE_OPEN_e) { a_this->_bopen(); } else if (a_this->getStatus() == PB_EXEC_GET_OPEN_e) { a_this->_gopen(); } else if (a_this->getStatus() == PB_EXEC_CAMERA_MOVE_e) { a_this->_cmove(); dComIfGp_onCameraAttentionStatus(0, dCamAttnStts_SUBJECT_e); } else if (a_this->getStatus() == PB_EXEC_BROWSE_MOVE_e) { a_this->_bmove(); } else if (a_this->getStatus() == PB_EXEC_GET_MOVE_e) { a_this->_gmove(); } else if (a_this->getStatus() == PB_EXEC_CLOSE_e) { a_this->_close(); if (i_this->dPb_c->getStatus() == PB_EXEC_CLOSED_e) { i_this->mStatus = fopMsgStts_BOX_CLOSED_e; } } else if (a_this->getStatus() == PB_EXEC_CLOSED_e && i_this->mStatus == fopMsgStts_MSG_DESTROYED_e) { fopMsgM_Delete(i_this); } mDoExt_setCurrentHeap(oldHeap); return TRUE; } /* 8022BC84-8022BC8C .text dPb_IsDelete__FP12sub_pb_class */ static BOOL dPb_IsDelete(sub_pb_class*) { return TRUE; } /* 8022BC8C-8022BD8C .text dPb_Delete__FP12sub_pb_class */ static BOOL dPb_Delete(sub_pb_class* i_this) { JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_this->heap); i_this->dPb_c->_delete(i_this->heap); delete i_this->dPb_c; for(int i = 0; i < 4; i++) { i_this->heap->free(i_this->buffer[i]); } dComIfGp_getMsgArchive()->removeResourceAll(); dComIfGp_getCameraResArchive()->removeResourceAll(); i_this->heap->freeAll(); mDoExt_setCurrentHeap(oldHeap); dComIfGp_setHeapLockFlag(0); dComIfGp_setScopeMesgStatus(fopMsgStts_MSG_UNK0_e); dComIfGp_setDoStatusForce(dActStts_BLANK_e); dComIfGp_setAStatusForce(dActStts_BLANK_e); dComIfGp_setRStatusForce(dActStts_BLANK_e); dComIfGp_setRStatus(dActStts_BLANK_e); return TRUE; } /* 8022BD8C-8022C03C .text dPb_Create__FP9msg_class */ static cPhs_State dPb_Create(msg_class* i_this) { sub_pb_class* i_Pb = (sub_pb_class*)i_this; if ((dComIfGp_isHeapLockFlag() != 0) && (dComIfGp_isHeapLockFlag() != 6)) { return cPhs_INIT_e; } if (dComIfGs_getPictureNum() > 3) { dComIfGs_setPictureNum(0); } i_Pb->heap = dComIfGp_getExpHeap2D(); dComIfGp_setHeapLockFlag(6); JUT_ASSERT(VERSION_SELECT(2716, 2725, 2796, 2823), i_Pb->heap != NULL); JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_Pb->heap); i_Pb->dPb_c = new dJle_Pb_c(); for(int i = 0; i < 4; i++) { i_Pb->buffer[i] = (card_pictdata*)i_Pb->heap->alloc(sizeof(card_pictdata), 0x20); JUT_ASSERT(VERSION_SELECT(2725, 2734, 2805, 2832), i_Pb->buffer[i] != NULL); i_Pb->dPb_c->getMemory(i_Pb->buffer[i], i); } for(int i = 0; i < 4; i++) { char* buffer = (char*)i_Pb->heap->alloc(1000, 4); i_Pb->dPb_c->setTextArea(buffer, i); JUT_ASSERT(VERSION_SELECT(2732, 2741, 2812, 2839), buffer != NULL); } i_Pb->dPb_c->_create(i_Pb->heap); mDoExt_setCurrentHeap(oldHeap); dComIfGp_setScopeMesgStatus(fopMsgStts_MSG_UNK0_e); if (dComIfGs_getPictureNum() < 3) { dComIfGp_setDoStatusForce(dActStts_TAKE_PHOTO_e); } else { dComIfGp_setDoStatusForce(dActStts_BLANK_e); } if (dComIfGp_getPictureStatus() == 2) { dComIfGp_setAStatusForce(dActStts_RETURN_e); dComIfGp_setRStatusForce(dActStts_HIDDEN_e); } else if (dComIfGp_getPictureStatus() == 3) { dComIfGp_setAStatusForce(dActStts_HIDDEN_e); dComIfGp_setRStatusForce(dActStts_HIDDEN_e); } else { dComIfGp_setAStatusForce(dActStts_RETURN_e); dComIfGp_setRStatusForce(dActStts_SWAP_MODES_e); } return cPhs_COMPLEATE_e; } static msg_method_class l_dPb_Method = { (process_method_func)dPb_Create, (process_method_func)dPb_Delete, (process_method_func)dPb_Execute, (process_method_func)dPb_IsDelete, (process_method_func)dPb_Draw, }; msg_process_profile_definition g_profile_PB = { /* Layer ID */ fpcLy_CURRENT_e, /* List ID */ 0x000C, /* List Prio */ fpcPi_CURRENT_e, /* Proc Name */ fpcNm_PB_e, /* Proc SubMtd */ &g_fpcLf_Method.base, /* Size */ sizeof(sub_pb_class), /* Size Other */ 0, /* Parameters */ 0, /* Leaf SubMtd */ &g_fopMsg_Method, /* Draw Prio */ fpcDwPi_PB_e, /* Msg SubMtd */ &l_dPb_Method, };