/** * @file d_a_balloon_2D.cpp * */ #include "d/dolzel_rel.h" #include "d/actor/d_a_balloon_2D.h" #include "JSystem/J2DGraph/J2DGrafContext.h" #include "JSystem/J2DGraph/J2DScreen.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "SSystem/SComponent/c_math.h" #include "d/actor/d_a_player.h" #include "d/d_com_inf_game.h" #include "d/d_meter2_info.h" #include "d/d_msg_object.h" #include "d/d_pane_class.h" #include "m_Do/m_Do_graphic.h" #include "m_Do/m_Do_lib.h" class daBalloon2D_HIO_c : public mDoHIO_entry_c { public: inline daBalloon2D_HIO_c() { static param aParam = { 0, 0, 0, 0, 0, 0, 0, 0.0f, 1.0f, 0.0f, -10.0f, 0.8f, 0.0f, -13.0f, 1.1f, 0.9f, 0.7f, 0.0f, 18.0f, 1.0f, -6.6f, 6.6f, 1.3f, -1.3f, 9.2f, 1.0f, 0.0f, 6.6f, 1.1f, 0.9f, 1.0f, 3.9f, -9.2f, 0.85f, 0.8f, 6.6f, 1.3f, 0.75f, 0.9f, 3.9f, 0.0f, 0.85f, 0.9f, 3.9f, 0.0f, 0.95f, 0.9f, 22.0f, -17.0f, 1.0f, 20.0f, }; memcpy(&m, &aParam, sizeof(aParam)); } /* 806553A8 */ virtual ~daBalloon2D_HIO_c() {} #if DEBUG void genMessage(JORMContext*); #endif void resetAddScoreSetFlag(); struct param { /* 0x04 */ u8 mAdjustmentToggle; /* 0x08 */ s32 mScore; /* 0x0C */ u8 mComboCount; /* 0x0D */ u8 mBalloonSize; /* 0x0E */ u8 mOverheadScoreToggle; /* 0x10 */ s32 mOverheadScore; /* 0x14 */ s32 field_0x14; /* 0x18 */ f32 field_0x1c; /* 0x1C */ f32 field_0x20; /* 0x20 */ f32 mScorePosX; /* 0x24 */ f32 mScorePosY; /* 0x28 */ f32 mScoreSize; /* 0x2C */ f32 m5DNumberPosX; /* 0x30 */ f32 m5DNumberPosY; /* 0x34 */ f32 m5DNumberSizeX; /* 0x38 */ f32 m5DNumberSizeY; /* 0x3C */ f32 m5DNumberAlpha; /* 0x40 */ f32 m5DNumber2PosX; /* 0x44 */ f32 m5DNumber2PosY; /* 0x48 */ f32 m5DNumber2Size; /* 0x4C */ f32 mUnkPosX; /* 0x50 */ f32 mUnkPosY; /* 0x54 */ f32 mUnkSize; /* 0x58 */ f32 mComboPosX; /* 0x5C */ f32 mComboPosY; /* 0x60 */ f32 mComboSize; /* 0x64 */ f32 m2DNumberPosX; /* 0x68 */ f32 m2DNumberPosY; /* 0x6C */ f32 m2DNumberSizeX; /* 0x70 */ f32 m2DNumberSizeY; /* 0x74 */ f32 field_0x78; /* 0x78 */ f32 m2DNumberComboPosX; /* 0x7C */ f32 m2DNumberComboPosY; /* 0x80 */ f32 m2DNumberComboSize; /* 0x84 */ f32 m2DNumberComboAlpha; /* 0x88 */ f32 mBalloonLargePosX; /* 0x8C */ f32 mBalloonLargePosY; /* 0x90 */ f32 mBalloonLargeSize; /* 0x94 */ f32 mBalloonLargeAlpha; /* 0x98 */ f32 mBalloonMedPosX; /* 0x9C */ f32 mBalloonMedPosY; /* 0xA0 */ f32 mBalloonMedSize; /* 0xA4 */ f32 mBalloonMedAlpha; /* 0xA8 */ f32 mBalloonSmallPosX; /* 0xAC */ f32 mBalloonSmallPosY; /* 0xB0 */ f32 mBalloonSmallSize; /* 0xB4 */ f32 mBalloonSmallAlpha; /* 0xB8 */ f32 m2DNumberCombo2PosX; /* 0xBC */ f32 m2DNumberCombo2PosY; /* 0xC0 */ f32 m2DNumberCombo2Size; /* 0xC4 */ f32 m2DNumberCombo2PosX43; }; param m; }; /* 806534CC-80653518 0000EC 004C+00 1/0 0/0 0/0 .text draw__Q213daBalloon2D_c6c_listFv */ void daBalloon2D_c::c_list::draw() { dComIfGp_getCurrentGrafPort()->setup2D(); mBalloon->drawMeter(); } /* 80653518-80653538 000138 0020+00 1/1 0/0 0/0 .text daBalloon2D_createHeap__FP10fopAc_ac_c */ static int daBalloon2D_createHeap(fopAc_ac_c* i_this) { return static_cast(i_this)->createHeap(); } /* 806556D4-806556D8 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ static char* l_arcName = "Balloon2D"; /* 80653538-80653D24 000158 07EC+00 1/1 0/0 0/0 .text createHeap__13daBalloon2D_cFv */ int daBalloon2D_c::createHeap() { mScreen = new J2DScreen(); if (mScreen == NULL) { return 0; } dRes_info_c* resInfo = dComIfG_getObjectResInfo(l_arcName); JUT_ASSERT(445, resInfo != 0); JKRArchive* arc = resInfo->getArchive(); mScreen->setPriority("zelda_balloon_game.blo", 0x20000, arc); dPaneClass_showNullPane(mScreen); field_0x578 = new CPaneMgr(mScreen, 'n_all', 2, NULL); field_0x57c = new CPaneMgr(mScreen, 'score_tn', 0, NULL); field_0x580 = new CPaneMgr(mScreen, 'suji_n', 2, NULL); field_0x584 = new CPaneMgr(mScreen, 's_set_n', 0, NULL); field_0x588 = new CPaneMgr(mScreen, 'tas_n', 0, NULL); field_0x58c = new CPaneMgr(mScreen, 'combo_tn', 0, NULL); field_0x590 = new CPaneMgr(mScreen, 'num_n', 0, NULL); field_0x594 = new CPaneMgr(mScreen, 'co_set_n', 2, NULL); field_0x598 = new CPaneMgr(mScreen, 'bal_3_n', 2, NULL); field_0x59c = new CPaneMgr(mScreen, 'bal_2_n', 2, NULL); field_0x5a0 = new CPaneMgr(mScreen, 'bal_1_n', 2, NULL); field_0x5a4 = new CPaneMgr(mScreen, 'ba_com_n', 2, NULL); field_0x578->setAlphaRate(0.0f); field_0x5a4->setAlphaRate(0.0f); for (s32 i = 0; i < 10; i++) { ResTIMG* resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(i)); field_0x5c4[i] = new J2DPicture(resTimg); } ResTIMG* resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getPlusTextureName()); field_0x5ec = new J2DPicture(resTimg); if (field_0x578 == NULL || field_0x57c == NULL || field_0x580 == NULL || field_0x584 == NULL ||field_0x588 == NULL || field_0x58c == NULL || field_0x590 == NULL || field_0x594 == NULL || field_0x598 == NULL || field_0x59c == NULL || field_0x5a0 == NULL || field_0x5a4 == NULL || field_0x5c4[0] == NULL || field_0x5c4[1] == NULL || field_0x5c4[2] == NULL || field_0x5c4[3] == NULL || field_0x5c4[4] == NULL || field_0x5c4[5] == NULL || field_0x5c4[6] == NULL || field_0x5c4[7] == NULL || field_0x5c4[8] == NULL || field_0x5c4[9] == NULL || field_0x5ec == NULL) { return 0; } J2DTextBox* combos[2]; J2DTextBox* scores[2]; combos[0] = (J2DTextBox*)mScreen->search('combo_ts'); combos[1] = (J2DTextBox*)mScreen->search('combo_t'); scores[0] = (J2DTextBox*)mScreen->search('score_ts'); scores[1] = (J2DTextBox*)mScreen->search('score_t'); field_0x5a8[0] = (J2DPicture*)mScreen->search('suji_4'); field_0x5a8[1] = (J2DPicture*)mScreen->search('suji_3'); field_0x5a8[2] = (J2DPicture*)mScreen->search('suji_2'); field_0x5a8[3] = (J2DPicture*)mScreen->search('suji_1'); field_0x5a8[4] = (J2DPicture*)mScreen->search('suji_0'); field_0x5a8[5] = (J2DPicture*)mScreen->search('num_1'); field_0x5a8[6] = (J2DPicture*)mScreen->search('num_0'); for (int i = 0; i < 2; i++) { combos[i]->setString(32, ""); scores[i]->setString(32, ""); dMeter2Info_getStringKanji(0x53f, combos[i]->getStringPtr(), 0); dMeter2Info_getStringKanji(0x53e, scores[i]->getStringPtr(), 0); combos[i]->setFont(mDoExt_getMesgFont()); scores[i]->setFont(mDoExt_getMesgFont()); } setComboNum(0); setBalloonSize(0); setScoreNum(0); field_0x5f0.set(this); if ((fopAcM_GetParam(this) & 1)) { show(); } else { hide(); } return 1; } /* 8065577C-80655844 000014 00C8+00 3/3 0/0 0/0 .bss l_HOSTIO */ daBalloon2D_HIO_c l_HOSTIO; /* 80655844-80655848 0000DC 0004+00 2/2 0/0 0/0 .bss myclass__13daBalloon2D_c */ daBalloon2D_c* daBalloon2D_c::myclass; /* 80653D24-80653DB4 000944 0090+00 1/1 0/0 0/0 .text create__13daBalloon2D_cFv */ int daBalloon2D_c::create() { int rv = dComIfG_resLoad(this, l_arcName); if (rv == cPhs_COMPLEATE_e) { if (!fopAcM_entrySolidHeap(this, daBalloon2D_createHeap, 0)) { return cPhs_ERROR_e; } JUT_ASSERT(566, daBalloon2D_c::myclass == 0); myclass = this; setHIO(true); } return rv; } /* 80653DB4-80653E10 0009D4 005C+00 1/1 0/0 0/0 .text destroy__13daBalloon2D_cFv */ int daBalloon2D_c::destroy() { dComIfG_resDelete(this, l_arcName); myclass = NULL; dMeter2Info_offSub2DStatus(1); return 1; } /* 80653E10-80653EC0 000A30 00B0+00 1/1 0/0 0/0 .text draw__13daBalloon2D_cFv */ int daBalloon2D_c::draw() { if (isVisible() && !dComIfGp_isPauseFlag() && !dMsgObject_isTalkNowCheck()) { dComIfGd_set2DOpa(&field_0x5f0); dMeter2Info_onSub2DStatus(1); } else { dMeter2Info_offSub2DStatus(1); } return 1; } /* 80653EC0-80653F04 000AE0 0044+00 1/1 0/0 0/0 .text execute__13daBalloon2D_cFv */ int daBalloon2D_c::execute() { setAllAlpha(); setComboAlpha(); setHIO(false); return 1; } /* 80653F04-80653F58 000B24 0054+00 1/1 0/0 0/0 .text drawMeter__13daBalloon2D_cFv */ void daBalloon2D_c::drawMeter() { update(); mScreen->draw(0.0f, 0.0f, dComIfGp_getCurrentGrafPort()); drawAddScore(); } /* 80653F58-80653FC0 000B78 0068+00 0/0 0/0 1/1 .text setComboCount__13daBalloon2D_cFUcUc */ void daBalloon2D_c::setComboCount(u8 size, u8 comboNum) { if (mComboNum != comboNum) { setComboNum(comboNum); } if (mBalloonSize != size) { setBalloonSize(size); } } /* 80653FC0-80653FEC 000BE0 002C+00 0/0 0/0 2/2 .text setScoreCount__13daBalloon2D_cFUl */ void daBalloon2D_c::setScoreCount(u32 scoreCount) { if (mScoreCount != scoreCount) { setScoreNum(scoreCount); } } /* 80653FEC-806540B4 000C0C 00C8+00 0/0 0/0 1/1 .text addScoreCount__13daBalloon2D_cFP4cXyzUlUc */ void daBalloon2D_c::addScoreCount(cXyz* param_1, u32 param_2, u8 param_3) { for (int i = 0; i < 19; i++) { int current = 19 - i; int prev = current - 1; field_0x5f8[current].field_0x0.set(field_0x5f8[prev].field_0x0); field_0x5f8[current].field_0xc = field_0x5f8[prev].field_0xc; field_0x5f8[current].field_0xe = field_0x5f8[prev].field_0xe; field_0x5f8[current].field_0xf = field_0x5f8[prev].field_0xf; } cXyz acStack_2c; mDoLib_project(param_1, &acStack_2c); field_0x5f8[0].field_0x0.set(acStack_2c); field_0x5f8[0].field_0xc = param_2; field_0x5f8[0].field_0xe = 60; field_0x5f8[0].field_0xf = param_3; } /* 806540B4-806540B8 000CD4 0004+00 1/1 0/0 0/0 .text initiate__13daBalloon2D_cFv */ void daBalloon2D_c::initiate() { } /* 806540B8-806540BC 000CD8 0004+00 1/1 0/0 0/0 .text update__13daBalloon2D_cFv */ void daBalloon2D_c::update() { } /* 806540BC-806541B4 000CDC 00F8+00 2/2 0/0 0/0 .text setComboNum__13daBalloon2D_cFUc */ void daBalloon2D_c::setComboNum(u8 comboNum) { if (comboNum > 99) { comboNum = 99; } mComboNum = comboNum; ResTIMG* resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(comboNum / 10)); field_0x5a8[5]->changeTexture(resTimg, 0); resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(comboNum % 10)); field_0x5a8[6]->changeTexture(resTimg, 0); setComboAlpha(); } /* 806541B4-80654258 000DD4 00A4+00 2/2 0/0 0/0 .text setBalloonSize__13daBalloon2D_cFUc */ void daBalloon2D_c::setBalloonSize(u8 balloonSize) { mBalloonSize = balloonSize; switch(balloonSize) { case 0: field_0x598->show(); field_0x59c->hide(); field_0x5a0->hide(); break; case 1: field_0x598->hide(); field_0x59c->show(); field_0x5a0->hide(); break; case 2: field_0x598->hide(); field_0x59c->hide(); field_0x5a0->show(); break; } } /* 80654258-80654440 000E78 01E8+00 2/2 0/0 0/0 .text setScoreNum__13daBalloon2D_cFi */ void daBalloon2D_c::setScoreNum(int scoreNum) { if (scoreNum > 99999) { scoreNum = 99999; } mScoreCount = scoreNum; int digit = scoreNum / 10000; int num = scoreNum % 10000; ResTIMG* resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(digit)); field_0x5a8[0]->changeTexture(resTimg, 0); digit = num / 1000; int num2 = num % 1000; resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(digit)); field_0x5a8[1]->changeTexture(resTimg, 0); digit = num2 / 100; int num3 = num2 % 100; resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(digit)); field_0x5a8[2]->changeTexture(resTimg, 0); digit = num3 / 10; num3 %= 10; resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(digit)); field_0x5a8[3]->changeTexture(resTimg, 0); resTimg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', dMeter2Info_getNumberTextureName(num3)); field_0x5a8[4]->changeTexture(resTimg, 0); } /* 80654440-8065464C 001060 020C+00 1/1 0/0 0/0 .text setAllAlpha__13daBalloon2D_cFv */ void daBalloon2D_c::setAllAlpha() { mAllAlpha = field_0x578->getAlphaRate(); if (isVisible()) { if (mAllAlpha != 1.0f) { cLib_addCalc2(&mAllAlpha, 1.0f, 0.4f, 0.5f); if (fabsf(mAllAlpha - 1.0f) < 0.1f) { mAllAlpha = 1.0f; } field_0x578->setAlphaRate(mAllAlpha); field_0x580->setAlphaRate(l_HOSTIO.m.m5DNumberAlpha * mAllAlpha); field_0x594->setAlphaRate(l_HOSTIO.m.m2DNumberComboAlpha * mAllAlpha); field_0x598->setAlphaRate(l_HOSTIO.m.mBalloonLargeAlpha * mAllAlpha); field_0x59c->setAlphaRate(l_HOSTIO.m.mBalloonMedAlpha * mAllAlpha); field_0x5a0->setAlphaRate(l_HOSTIO.m.mBalloonSmallAlpha * mAllAlpha); } } else if (mAllAlpha != 1.0f) { cLib_addCalc2(&mAllAlpha, 0.0f, 0.4f, 0.5f); if (fabsf(mAllAlpha) < 0.1f) { mAllAlpha = 0.0f; } field_0x578->setAlphaRate(mAllAlpha); field_0x580->setAlphaRate(l_HOSTIO.m.m5DNumberAlpha * mAllAlpha); field_0x594->setAlphaRate(l_HOSTIO.m.m2DNumberComboAlpha * mAllAlpha); field_0x598->setAlphaRate(l_HOSTIO.m.mBalloonLargeAlpha * mAllAlpha); field_0x59c->setAlphaRate(l_HOSTIO.m.mBalloonMedAlpha * mAllAlpha); field_0x5a0->setAlphaRate(l_HOSTIO.m.mBalloonSmallAlpha * mAllAlpha); } } /* 8065464C-80654730 00126C 00E4+00 2/2 0/0 0/0 .text setComboAlpha__13daBalloon2D_cFv */ void daBalloon2D_c::setComboAlpha() { mComboAlpha = field_0x5a4->getAlphaRate() * field_0x578->getAlphaRate(); if (mComboNum != 0) { if (mComboAlpha != 1.0f) { cLib_addCalc2(&mComboAlpha, 1.0f, 0.4f, 0.5f); if (fabsf(mComboAlpha - 1.0f) < 0.1f) { mComboAlpha = 1.0f; } field_0x5a4->setAlphaRate(mComboAlpha); } } else if (mComboAlpha != 0.0f) { mComboAlpha = 0.0f; field_0x5a4->setAlphaRate(mComboAlpha); } } /* 80654730-80654E8C 001350 075C+00 1/1 0/0 0/0 .text drawAddScore__13daBalloon2D_cFv */ // NONMATCHING - field_0x0.x, regalloc void daBalloon2D_c::drawAddScore() { for (s32 i = 19; i >= 0; i--) { if (field_0x5f8[i].field_0xe != 0) { field_0x5f8[i].field_0xe--; s32 score3; s32 score2; s32 score = field_0x5f8[i].field_0xc; s16 temp0 = (field_0x5f8[i].field_0xe % 60) * 1024; u8 local_88 = 0xff; f32 dVar11 = 30.0f; f32 dVar9 = 30.0f; field_0x5f8[i].field_0x0.x += cM_ssin(temp0) * 0.3f; field_0x5f8[i].field_0x0.y -= 1.0f; if (field_0x5f8[i].field_0xe < 10) { f32 fVar5 = field_0x5f8[i].field_0xe / 10.0f; local_88 = fVar5 * 255.0f; dVar11 *= fVar5; dVar9 *= fVar5; } for (s32 j = 0; j < 10; j++) { field_0x5c4[j]->setAlpha(local_88); } field_0x5ec->setAlpha(local_88); f32 dVar8 = (field_0x5f8[i].field_0x0.y - (dVar9 / 2.0f)); s32 digit; if (score >= 10000) { f32 dVar10 = (field_0x5f8[i].field_0x0.x - (dVar11 / 2.0f) * 6.0f); field_0x5ec->draw(dVar10, dVar8, dVar11, dVar9, false, false, false); digit = score / 10000; score = score % 10000; field_0x5c4[digit]->draw(dVar10 + dVar11, dVar8, dVar11, dVar9, false, false, false); digit = score / 1000; score %= 1000; field_0x5c4[digit]->draw(dVar10 + dVar11 * 2.0f, dVar8, dVar11, dVar9, false, false, false); digit = score / 100; score %= 100; field_0x5c4[digit]->draw(dVar10 + dVar11 * 3.0f, dVar8, dVar11, dVar9, false, false, false); digit = score / 10; score %= 10; field_0x5c4[digit]->draw(dVar10 + dVar11 * 4.0f, dVar8, dVar11, dVar9, false, false, false); field_0x5c4[score]->draw(dVar10 + dVar11 * 5.0f, dVar8, dVar11, dVar9, false, false, false); } else if (score >= 1000) { f32 dVar10 = (field_0x5f8[i].field_0x0.x - (dVar11 / 2.0f) * 5.0f); field_0x5ec->draw(dVar10, dVar8, dVar11, dVar9, false, false, false); digit = score / 1000; score2 = score % 1000; field_0x5c4[digit]->draw(dVar10 + dVar11, dVar8, dVar11, dVar9, false, false, false); digit = score2 / 100; score2 %= 100; field_0x5c4[digit]->draw(dVar10 + dVar11 * 2.0f, dVar8, dVar11, dVar9, false, false, false); digit = score2 / 10; score2 %= 10; field_0x5c4[digit]->draw(dVar10 + dVar11 * 3.0f, dVar8, dVar11, dVar9, false, false, false); field_0x5c4[score2]->draw(dVar10 + dVar11 * 4.0f, dVar8, dVar11, dVar9, false, false, false); } else if (score >= 100) { f32 dVar10 = (field_0x5f8[i].field_0x0.x - (dVar11 / 2.0f) * 4.0f); field_0x5ec->draw(dVar10, dVar8, dVar11, dVar9, false, false, false); digit = score / 100; score3 = score % 100; field_0x5c4[digit]->draw(dVar10 + dVar11, dVar8, dVar11, dVar9, false, false, false); digit = score3 / 10; score3 %= 10; field_0x5c4[digit]->draw(dVar10 + dVar11 * 2.0f, dVar8, dVar11, dVar9, false, false, false); field_0x5c4[score3]->draw(dVar10 + dVar11 * 3.0f, dVar8, dVar11, dVar9, false, false, false); } else if (score >= 10) { f32 dVar10 = (field_0x5f8[i].field_0x0.x - (dVar11 / 2.0f) * 3.0f); field_0x5ec->draw(dVar10, dVar8, dVar11, dVar9, false, false, false); digit = score / 10; score3 = score % 10; field_0x5c4[digit]->draw(dVar10 + dVar11, dVar8, dVar11, dVar9, false, false, false); field_0x5c4[score3]->draw(dVar10 + dVar11 * 2.0f, dVar8, dVar11, dVar9, false, false, false); } else { f32 dVar10 = (field_0x5f8[i].field_0x0.x - (dVar11 / 2.0f) * 2.0f); field_0x5ec->draw(dVar10, dVar8, dVar11, dVar9, false, false, false); field_0x5c4[score]->draw(dVar10 + dVar11, dVar8, dVar11, dVar9, false, false, false); } } } } /* 80654E8C-80655250 001AAC 03C4+00 2/2 0/0 0/0 .text setHIO__13daBalloon2D_cFb */ void daBalloon2D_c::setHIO(bool param_1) { if ((l_HOSTIO.m.mAdjustmentToggle != 0) || param_1) { #if DEBUG if (l_HOSTIO.m.mOverheadScoreToggle != 0) { daPy_py_c* player = daPy_getPlayerActorClass(); cXyz acStack_28; acStack_28.set(player->getHeadTopPos()); addScoreCount(&acStack_28, l_HOSTIO.m.mOverheadScore, 0); l_HOSTIO.resetAddScoreSetFlag(); } #endif field_0x57c->paneTrans(l_HOSTIO.m.mScorePosX, l_HOSTIO.m.mScorePosY); field_0x57c->scale(l_HOSTIO.m.mScoreSize, l_HOSTIO.m.mScoreSize); field_0x580->paneTrans(l_HOSTIO.m.m5DNumberPosX, l_HOSTIO.m.m5DNumberPosY); field_0x580->scale(l_HOSTIO.m.m5DNumberSizeX, l_HOSTIO.m.m5DNumberSizeY); field_0x580->setAlphaRate(l_HOSTIO.m.m5DNumberAlpha * mAllAlpha); field_0x584->paneTrans(l_HOSTIO.m.m5DNumber2PosX, l_HOSTIO.m.m5DNumber2PosY); field_0x584->scale(l_HOSTIO.m.m5DNumber2Size, l_HOSTIO.m.m5DNumber2Size); field_0x588->paneTrans(l_HOSTIO.m.mUnkPosX, l_HOSTIO.m.mUnkPosY); field_0x588->scale(l_HOSTIO.m.mUnkSize, l_HOSTIO.m.mUnkSize); field_0x58c->paneTrans(l_HOSTIO.m.mComboPosX, l_HOSTIO.m.mComboPosY); field_0x58c->scale(l_HOSTIO.m.mComboSize, l_HOSTIO.m.mComboSize); field_0x590->paneTrans(l_HOSTIO.m.m2DNumberPosX, l_HOSTIO.m.m2DNumberPosY); field_0x590->scale(l_HOSTIO.m.m2DNumberSizeX, l_HOSTIO.m.m2DNumberSizeY); field_0x594->paneTrans(l_HOSTIO.m.m2DNumberComboPosX, l_HOSTIO.m.m2DNumberComboPosY); field_0x594->scale(l_HOSTIO.m.m2DNumberComboSize, l_HOSTIO.m.m2DNumberComboSize); field_0x594->setAlphaRate(l_HOSTIO.m.m2DNumberComboAlpha * mAllAlpha); field_0x598->paneTrans(l_HOSTIO.m.mBalloonLargePosX, l_HOSTIO.m.mBalloonLargePosY); field_0x598->scale(l_HOSTIO.m.mBalloonLargeSize, l_HOSTIO.m.mBalloonLargeSize); field_0x598->setAlphaRate(l_HOSTIO.m.mBalloonLargeAlpha * mAllAlpha); field_0x59c->paneTrans(l_HOSTIO.m.mBalloonMedPosX, l_HOSTIO.m.mBalloonMedPosY); field_0x59c->scale(l_HOSTIO.m.mBalloonMedSize, l_HOSTIO.m.mBalloonMedSize); field_0x59c->setAlphaRate(l_HOSTIO.m.mBalloonMedAlpha * mAllAlpha); field_0x5a0->paneTrans(l_HOSTIO.m.mBalloonSmallPosX, l_HOSTIO.m.mBalloonSmallPosY); field_0x5a0->scale(l_HOSTIO.m.mBalloonSmallSize, l_HOSTIO.m.mBalloonSmallSize); field_0x5a0->setAlphaRate(l_HOSTIO.m.mBalloonSmallAlpha * mAllAlpha); #if DEBUG if (mDoGph_gInf_c::isWide()) { field_0x5a4->paneTrans(l_HOSTIO.m.m2DNumberCombo2PosX, l_HOSTIO.m.m2DNumberCombo2PosY); } else { field_0x5a4->paneTrans(l_HOSTIO.m.m2DNumberCombo2PosX43, l_HOSTIO.m.m2DNumberCombo2PosY); } #else field_0x5a4->paneTrans(l_HOSTIO.m.m2DNumberCombo2PosX, l_HOSTIO.m.m2DNumberCombo2PosY); #endif field_0x5a4->scale(l_HOSTIO.m.m2DNumberCombo2Size, l_HOSTIO.m.m2DNumberCombo2Size); } } void daBalloon2D_HIO_c::resetAddScoreSetFlag() { JORMContext* ctx = attachJORMContext(8); ctx->startUpdateNode(this); m.mOverheadScoreToggle = 0x0; ctx->updateCheckBox(2, &m.mOverheadScoreToggle, 1, 0); ctx->endUpdateNode(); releaseJORMContext(ctx); } /* 80655250-80655304 001E70 00B4+00 1/0 0/0 0/0 .text daBalloon2D_create__FP13daBalloon2D_c */ // NONMATCHING - vtable static int daBalloon2D_create(daBalloon2D_c* i_this) { fopAcM_SetupActor(i_this, daBalloon2D_c); return i_this->create(); } /* 80655304-80655340 001F24 003C+00 2/2 0/0 0/0 .text __dt__Q213daBalloon2D_c10CHeadScoreFv */ daBalloon2D_c::CHeadScore::~CHeadScore() { } /* 80655340-80655344 001F60 0004+00 1/1 0/0 0/0 .text __ct__Q213daBalloon2D_c10CHeadScoreFv */ daBalloon2D_c::CHeadScore::CHeadScore() { } /* 80655344-80655364 001F64 0020+00 1/0 0/0 0/0 .text daBalloon2D_destroy__FP13daBalloon2D_c */ static int daBalloon2D_destroy(daBalloon2D_c* i_this) { return i_this->destroy(); } /* 80655364-80655384 001F84 0020+00 1/0 0/0 0/0 .text daBalloon2D_execute__FP13daBalloon2D_c */ static int daBalloon2D_execute(daBalloon2D_c* i_this) { return i_this->execute(); } /* 80655384-806553A4 001FA4 0020+00 1/0 0/0 0/0 .text daBalloon2D_draw__FP13daBalloon2D_c */ static int daBalloon2D_draw(daBalloon2D_c* i_this) { return i_this->draw(); } #if DEBUG void daBalloon2D_HIO_c::genMessage(JORMContext* ctx) { ctx->genCheckBox("調整ON", &m.mAdjustmentToggle, 1, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("スコア", &m.mScore, 0, 99999, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("コンボ数", &m.mComboCount, 0, 99, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->startComboBox("風船のサイズ", &m.mBalloonSize, 0, NULL, 0xffff, 0xffff, 0x100, 0x1a); ctx->genComboBoxItem("大", 0); // large ctx->genComboBoxItem("中", 1); // medium ctx->genComboBoxItem("小", 2); // small ctx->endComboBox(); ctx->genCheckBox("頭上スコアON", &m.mOverheadScoreToggle, 1, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("頭上スコア", &m.mOverheadScore, 0, 99999, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genLabel("*****「SCORE」(score_tn)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.mScorePosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.mScorePosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.mScoreSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // 5-digit number ctx->genLabel("*****5ケタの数字(suji_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.m5DNumberPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.m5DNumberPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズX", &m.m5DNumberSizeX, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズY", &m.m5DNumberSizeY, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("アルファ", &m.m5DNumberAlpha, 0.0, 1.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // "SCORE" & 5-digit number ctx->genLabel("*****「SCORE」&5ケタの数字(suji_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.m5DNumber2PosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.m5DNumber2PosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.m5DNumber2Size, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genLabel("*****「+」(tas_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.mUnkPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.mUnkPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.mUnkSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genLabel("*****「COMBO」\u3000(combo_tn)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.mComboPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.mComboPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.mComboSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genLabel("*****2ケタの数字(num_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.m2DNumberPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.m2DNumberPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズX", &m.m2DNumberSizeX, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズY", &m.m2DNumberSizeY, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // "+" & 2-digit number & "COMBO" ctx->genLabel("*****「+」&2ケタの数字&「COMBO」(co_set_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.m2DNumberComboPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.m2DNumberComboPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.m2DNumberComboSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("アルファ", &m.m2DNumberComboAlpha, 0.0, 1.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // balloon "large" ctx->genLabel("*****風船「大」(bal_1_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.mBalloonLargePosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.mBalloonLargePosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.mBalloonLargeSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("アルファ", &m.mBalloonLargeAlpha, 0.0, 1.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // balloon "medium" ctx->genLabel("*****風船「中」(bal_2_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.mBalloonMedPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.mBalloonMedPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.mBalloonMedSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("アルファ", &m.mBalloonMedAlpha, 0.0, 1.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // balloon "small" ctx->genLabel("*****風船「小」(bal_3_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.mBalloonSmallPosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.mBalloonSmallPosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.mBalloonSmallSize, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("アルファ", &m.mBalloonSmallAlpha, 0.0, 1.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // "Balloon" & "+" & two-digit number & "COMBO" ctx->genLabel("*****「風船」&「+」&2ケタの数字&「COMBO」(ba_com_n)*****", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X", &m.m2DNumberCombo2PosX, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置X(4:3)", &m.m2DNumberCombo2PosX43, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("位置Y", &m.m2DNumberCombo2PosY, -300.0, 300.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); ctx->genSlider("サイズ", &m.m2DNumberCombo2Size, 0.0, 3.0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); } #endif /* ############################################################################################## */ /* 806556D8-806556F8 -00001 0020+00 1/0 0/0 0/0 .data daBalloon2D_METHODS */ static actor_method_class daBalloon2D_METHODS = { (process_method_func)daBalloon2D_create, (process_method_func)daBalloon2D_destroy, (process_method_func)daBalloon2D_execute, 0, (process_method_func)daBalloon2D_draw, }; /* 806556F8-80655728 -00001 0030+00 0/0 0/0 1/0 .data g_profile_BALLOON2D */ extern actor_process_profile_definition g_profile_BALLOON2D = { fpcLy_CURRENT_e, // mLayerID 3, // mListID fpcPi_CURRENT_e, // mListPrio PROC_BALLOON2D, // mProcName &g_fpcLf_Method.base, // sub_method sizeof(daBalloon2D_c), // mSize 0, // mSizeOther 0, // mParameters &g_fopAc_Method.base, // sub_method 765, // mPriority &daBalloon2D_METHODS, // sub_method 0x00040000, // mStatus fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_0_e, // cullType };