// // Generated By: dol2asm // Translation Unit: msg/scrn/d_msg_scrn_howl // #include "d/msg/d_msg_scrn_howl.h" #include "m_Do/m_Do_controller_pad.h" #include "d/msg/d_msg_object.h" #include "d/pane/d_pane_class.h" #include "d/a/d_a_alink.h" #include "JSystem/JUtility/JUTTexture.h" #include "JSystem/JUtility/JUTAssert.h" #include "JSystem/J2DGraph/J2DGrafContext.h" #include "JSystem/J2DGraph/J2DScreen.h" #include "Z2AudioLib/Z2WolfHowlMgr.h" #include "dol2asm.h" // // Forward References: // extern "C" void __ct__14dMsgScrnHowl_cFv(); extern "C" void __dt__14dMsgScrnHowl_cFv(); extern "C" void exec__14dMsgScrnHowl_cFv(); extern "C" void drawSelf__14dMsgScrnHowl_cFv(); extern "C" void guide_on_init__14dMsgScrnHowl_cFv(); extern "C" void guide_on_proc__14dMsgScrnHowl_cFv(); extern "C" void guide_off_init__14dMsgScrnHowl_cFv(); extern "C" void guide_off_proc__14dMsgScrnHowl_cFv(); extern "C" void guide_stop_init__14dMsgScrnHowl_cFv(); extern "C" void guide_stop_proc__14dMsgScrnHowl_cFv(); extern "C" void guide_demo_play_init__14dMsgScrnHowl_cFv(); extern "C" void guide_demo_play_proc__14dMsgScrnHowl_cFv(); extern "C" void guide_off_test_init__14dMsgScrnHowl_cFv(); extern "C" void guide_off_test_proc__14dMsgScrnHowl_cFv(); extern "C" void fukiScale__14dMsgScrnHowl_cFf(); extern "C" void fukiTrans__14dMsgScrnHowl_cFff(); extern "C" void fukiAlpha__14dMsgScrnHowl_cFf(); extern "C" void isKeyCheck__14dMsgScrnHowl_cFv(); extern "C" void resetLine__14dMsgScrnHowl_cFv(); extern "C" void drawWave__14dMsgScrnHowl_cFv(); extern "C" void drawGuide__14dMsgScrnHowl_cFv(); extern "C" void drawGuide2__14dMsgScrnHowl_cFv(); extern "C" void drawEffect__14dMsgScrnHowl_cFv(); extern "C" void calcMain__14dMsgScrnHowl_cFv(); extern "C" void calcWave__14dMsgScrnHowl_cFv(); extern "C" void calcGuide__14dMsgScrnHowl_cFv(); extern "C" void moveLineV__14dMsgScrnHowl_cFb(); extern "C" void moveBaseLength__14dMsgScrnHowl_cFb(); extern "C" void getOnLineNum__14dMsgScrnHowl_cFi(); extern "C" void addCount__14dMsgScrnHowl_cFs(); extern "C" void addCountGuide__14dMsgScrnHowl_cFs(); extern "C" void getNowPlotPitch__14dMsgScrnHowl_cFf(); extern "C" void getPlotPitch__14dMsgScrnHowl_cFf(); extern "C" void calcPitchLevel__14dMsgScrnHowl_cFv(); extern "C" void initGuideData__14dMsgScrnHowl_cFv(); extern "C" void getGuideDataSize__14dMsgScrnHowl_cFv(); extern "C" void getGuideDataType__14dMsgScrnHowl_cFi(); extern "C" void __sinit_d_msg_scrn_howl_cpp(); extern "C" extern char const* const msg_scrn_d_msg_scrn_howl__stringBase0; // // External References: // extern "C" void mDoExt_getMesgFont__Fv(); extern "C" void drawPikari__13dMeter2Draw_cFffPffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorfUc(); extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c(); extern "C" void setSelectRubyString__14dMsgScrnBase_cFPcPcPc(); extern "C" void setSelectString__14dMsgScrnBase_cFPcPcPc(); extern "C" bool selectAnimeMove__14dMsgScrnBase_cFUcUcb(); extern "C" void selectAnimeInit__14dMsgScrnBase_cFUcUcfUc(); extern "C" void arwAnimeMove__14dMsgScrnBase_cFv(); extern "C" void arwAnimeInit__14dMsgScrnBase_cFv(); extern "C" void fukiPosCalc__14dMsgScrnBase_cFUc(); extern "C" bool isSelect__14dMsgScrnBase_cFv(); extern "C" bool selectAnimeEnd__14dMsgScrnBase_cFv(); extern "C" void dotAnimeMove__14dMsgScrnBase_cFv(); extern "C" void dotAnimeInit__14dMsgScrnBase_cFv(); extern "C" void __ct__14dMsgScrnBase_cFv(); extern "C" void __dt__14dMsgScrnBase_cFv(); extern "C" void init__14dMsgScrnBase_cFv(); extern "C" void multiDraw__14dMsgScrnBase_cFv(); extern "C" void draw__14dMsgScrnBase_cFv(); extern "C" void fontAlpha__14dMsgScrnBase_cFf(); extern "C" void __ct__8CPaneMgrFv(); extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); extern "C" void __dt__8CPaneMgrFv(); extern "C" void getGlobalPosX__8CPaneMgrFv(); extern "C" void getGlobalPosY__8CPaneMgrFv(); extern "C" void paneTrans__8CPaneMgrFff(); extern "C" void getGlobalVtx__8CPaneMgrFP7J2DPanePA3_A4_fUcbs(); extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs(); extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); extern "C" void getAlphaRate__13CPaneMgrAlphaFv(); extern "C" void cLib_addCalc2__FPffff(); extern "C" void getNowInputValue__13Z2WolfHowlMgrFv(); extern "C" void getCorrectLine__13Z2WolfHowlMgrFUc(); extern "C" void getCorrectLineNum__13Z2WolfHowlMgrFv(); extern "C" void getOnLineNum__13Z2WolfHowlMgrFv(); extern "C" void startGuideMelody__13Z2WolfHowlMgrFb(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void func_802E90C0(); extern "C" void getBounds__7J2DPaneFv(); extern "C" void __ct__9J2DScreenFv(); extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); extern "C" void __ct__10J2DPictureFPC7ResTIMG(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void setString__10J2DTextBoxFsPCce(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_21(); extern "C" void _savegpr_23(); extern "C" void _savegpr_24(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_21(); extern "C" void _restgpr_23(); extern "C" void _restgpr_24(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern dMsgObject_HIO_c g_MsgObject_HIO_c; // // Declarations: // /* ############################################################################################## */ /* 80399A20-80399A20 026080 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80399A20 = "zelda_wolf_howl.blo"; SECTION_DEAD static char const* const stringBase_80399A34 = ""; SECTION_DEAD static char const* const stringBase_80399A35 = "tt_ginnouroko_s3tc.bti"; SECTION_DEAD static char const* const stringBase_80399A4C = "tt_black_32.bti"; SECTION_DEAD static char const* const stringBase_80399A5C = "tt_iastarRR.bti"; SECTION_DEAD static char const* const stringBase_80399A6C = "tt_block8x8.bti"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_80399A7C = "\0\0\0"; #pragma pop /* 803C0FD0-803C0FDC 01E0F0 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; typedef void (dMsgScrnHowl_c::*dMsgScrnHowl_cFunc)(); #ifdef NONMATCHING static dMsgScrnHowl_cFunc init_proc[5] = { &dMsgScrnHowl_c::guide_on_init, &dMsgScrnHowl_c::guide_off_init, &dMsgScrnHowl_c::guide_stop_init, &dMsgScrnHowl_c::guide_demo_play_init, &dMsgScrnHowl_c::guide_off_test_init, }; #else /* 803C0FDC-803C0FE8 -00001 000C+00 0/1 0/0 0/0 .data @4173 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4173[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_on_init__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C0FE8-803C0FF4 -00001 000C+00 0/1 0/0 0/0 .data @4174 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4174[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_off_init__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C0FF4-803C1000 -00001 000C+00 0/1 0/0 0/0 .data @4175 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4175[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_stop_init__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C1000-803C100C -00001 000C+00 0/1 0/0 0/0 .data @4176 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4176[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_demo_play_init__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C100C-803C1018 -00001 000C+00 0/1 0/0 0/0 .data @4177 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4177[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_off_test_init__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C1018-803C1054 01E138 003C+00 1/3 0/0 0/0 .data init_proc */ SECTION_DATA static u8 init_proc[60] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; #endif #ifdef NONMATCHING static dMsgScrnHowl_cFunc process[5] = { &dMsgScrnHowl_c::guide_on_proc, &dMsgScrnHowl_c::guide_off_proc, &dMsgScrnHowl_c::guide_stop_proc, &dMsgScrnHowl_c::guide_demo_play_proc, &dMsgScrnHowl_c::guide_off_test_proc, }; #else /* 803C1054-803C1060 -00001 000C+00 0/1 0/0 0/0 .data @4178 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4178[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_on_proc__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C1060-803C106C -00001 000C+00 0/1 0/0 0/0 .data @4179 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4179[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_off_proc__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C106C-803C1078 -00001 000C+00 0/1 0/0 0/0 .data @4180 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4180[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_stop_proc__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C1078-803C1084 -00001 000C+00 0/1 0/0 0/0 .data @4181 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4181[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_demo_play_proc__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C1084-803C1090 -00001 000C+00 0/1 0/0 0/0 .data @4182 */ #pragma push #pragma force_active on SECTION_DATA static void* lit_4182[3] = { (void*)NULL, (void*)0xFFFFFFFF, (void*)guide_off_test_proc__14dMsgScrnHowl_cFv, }; #pragma pop /* 803C1090-803C10D0 01E1B0 003C+04 1/2 0/0 0/0 .data process */ SECTION_DATA static u8 process[60 + 4 /* padding */] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* padding */ 0x00, 0x00, 0x00, 0x00, }; #endif /* 803C10D0-803C10E8 01E1F0 0018+00 0/1 0/0 0/0 .data ylinen_tag$4210 */ #pragma push #pragma force_active on SECTION_DATA static u64 ylinen_tag[3] = { 'ylinen00', 'ylinen02', 'ylinen04', }; #pragma pop /* 803C10E8-803C1120 01E208 0038+00 0/1 0/0 0/0 .data tlinen_tag$4211 */ #pragma push #pragma force_active on SECTION_DATA static u64 tlinen_tag[7] = { 'tlinen00', 'tlinen01', 'tlinen02', 'tlinen03', 'tlinen04', 'tlinen05', 'tlinen06', }; #pragma pop /* 803C1120-803C1158 01E240 0038+00 0/0 0/0 0/0 .data tline_tag$4212 */ #pragma push #pragma force_active on SECTION_DATA static u64 tline_tag[7] = { 'tline00', 'tline01', 'tline02', 'tline03', 'tlinen04', 'tline05', 'tline06', }; #pragma pop /* 803C1158-803C1190 01E278 0038+00 0/0 0/0 0/0 .data tlines_tag$4213 */ #pragma push #pragma force_active on SECTION_DATA static u64 tlines_tag[7] = { 'tlines00', 'tlines01', 'tlines02', 'tlines03', 'tlines04', 'tlines05', 'tlines06', }; #pragma pop /* 803C1190-803C11E8 01E2B0 0058+00 2/2 0/0 0/0 .data __vt__14dMsgScrnHowl_c */ SECTION_DATA extern void* __vt__14dMsgScrnHowl_c[22] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)draw__14dMsgScrnBase_cFv, (void*)__dt__14dMsgScrnHowl_cFv, (void*)exec__14dMsgScrnHowl_cFv, (void*)multiDraw__14dMsgScrnBase_cFv, (void*)drawSelf__14dMsgScrnHowl_cFv, (void*)setSelectString__14dMsgScrnBase_cFPcPcPc, (void*)setSelectRubyString__14dMsgScrnBase_cFPcPcPc, (void*)arwAnimeInit__14dMsgScrnBase_cFv, (void*)arwAnimeMove__14dMsgScrnBase_cFv, (void*)dotAnimeInit__14dMsgScrnBase_cFv, (void*)dotAnimeMove__14dMsgScrnBase_cFv, (void*)isSelect__14dMsgScrnBase_cFv, (void*)selectAnimeInit__14dMsgScrnBase_cFUcUcfUc, (void*)selectAnimeMove__14dMsgScrnBase_cFUcUcb, (void*)selectAnimeEnd__14dMsgScrnBase_cFv, (void*)fukiScale__14dMsgScrnHowl_cFf, (void*)fukiTrans__14dMsgScrnHowl_cFff, (void*)fukiAlpha__14dMsgScrnHowl_cFf, (void*)fontAlpha__14dMsgScrnBase_cFf, (void*)fukiPosCalc__14dMsgScrnBase_cFUc, }; /* 80454C50-80454C54 003250 0004+00 14/14 0/0 0/0 .sdata2 @4427 */ SECTION_SDATA2 static u8 lit_4427[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80454C54-80454C58 003254 0004+00 1/1 0/0 0/0 .sdata2 @4428 */ SECTION_SDATA2 static f32 lit_4428 = 350.0f; /* 80454C58-80454C5C 003258 0004+00 2/2 0/0 0/0 .sdata2 @4429 */ SECTION_SDATA2 static f32 lit_4429 = 255.0f; /* 80454C5C-80454C60 00325C 0004+00 2/2 0/0 0/0 .sdata2 @4430 */ SECTION_SDATA2 static f32 lit_4430 = 3.0f; /* 80454C60-80454C68 003260 0004+04 8/8 0/0 0/0 .sdata2 @4431 */ SECTION_SDATA2 static f32 lit_4431[1 + 1 /* padding */] = { 1.0f, /* padding */ 0.0f, }; /* 80454C68-80454C70 003268 0008+00 4/4 0/0 0/0 .sdata2 @4434 */ SECTION_SDATA2 static f64 lit_4434 = 4503601774854144.0 /* cast s32 to float */; /* 8024096C-80241784 23B2AC 0E18+00 0/0 1/1 0/0 .text __ct__14dMsgScrnHowl_cFv */ // Matches with literals (Maybe minor issue with tag arrays) #ifdef NONMATCHING dMsgScrnHowl_c::dMsgScrnHowl_c() { init(); mpScreen = new J2DScreen(); JUT_ASSERT(61, mpScreen != 0); bool fg = mpScreen->setPriority("zelda_wolf_howl.blo", 0x20000, dComIfGp_getMsgArchive(5)); JUT_ASSERT(73, fg != false); dPaneClass_showNullPane(mpScreen); mpScreen->search('line00')->hide(); mpPmP_c = new CPaneMgr(mpScreen, 'n_all', 3, NULL); JUT_ASSERT(79, mpPmP_c != 0); mpScreen->search('ag_n')->hide(); field_0x1994 = 0.0f; field_0x1998 = 0.0f; mpScreen->search('wi_btn_n')->hide(); mpButtonIcon[0] = new CPaneMgr(mpScreen, 'cbtn_n', 2, NULL); JUT_ASSERT(91, mpButtonIcon[0] != 0); mpButtonText[0] = new CPaneMgr(mpScreen, 'g_ltxt_n', 2, NULL); JUT_ASSERT(93, mpButtonText[0] != 0); mpButtonIcon[1] = new CPaneMgr(mpScreen, 'abt_n', 2, NULL); JUT_ASSERT(96, mpButtonIcon[1] != 0); mpButtonText[1] = new CPaneMgr(mpScreen, 'gr_txt_n', 2, NULL); JUT_ASSERT(98, mpButtonText[1] != 0); J2DTextBox* piStack_19c = (J2DTextBox*)mpScreen->search('fgl_info'); J2DTextBox* piStack_1a0 = (J2DTextBox*)mpScreen->search('fgr_info'); mpScreen->search('g_l_info')->hide(); mpScreen->search('g_r_info')->hide(); piStack_19c->setString(0x40, ""); piStack_19c->setFont(mDoExt_getMesgFont()); dMeter2Info_getStringKanji(0x4d4, piStack_19c->getStringPtr(), NULL); piStack_1a0->setString(0x40, ""); piStack_1a0->setFont(mDoExt_getMesgFont()); dMeter2Info_getStringKanji(0x4d5, piStack_1a0->getStringPtr(), NULL); field_0x2195 = 0; for (int i = 0; i < 0x300; i++) { field_0x180[i] = 0.0f; field_0xd80[i] = 0.0f; field_0x2198[i] = 0; field_0x2498[i] = 0; field_0x1b14[i] = 0; } for (int i = 0; i < 3; i++) { field_0x1b08[i] = 0.0f; } field_0x2114 = 0; field_0x2118 = 0; field_0x211c = 0; field_0x2120 = 0; for (int i = 0; i < 30; i++) { field_0x213a[i] = 0; field_0x2158[i] = 0; field_0x2176[i] = 0; field_0x19a0[i] = 0.0f; field_0x1a18[i] = 0.0f; field_0x1a90[i] = 0.0f; } field_0x279b = 0x0; field_0x2124 = 0; field_0x2128 = 0; mPlotTime = 0; field_0x212c = 0; field_0x212e = 0; field_0x2126 = 0; field_0x2130 = 0; field_0x2132 = 0; field_0x17c = 1; field_0x279a = 0; field_0x199c = 0.0f; s16 howl = daAlink_getAlinkActorClass()->checkWindStoneHowl(); if (howl != 0) { field_0x2798 = 3; } else { field_0x2798 = 0; } field_0x2799 = field_0x2798; (this->*init_proc[field_0x2798])(); field_0x1980 = g_MsgObject_HIO_c.mHowlHIO.mDrawInterval; field_0x2136 = (350.0f / field_0x1980); field_0x2138 = 0; field_0x1984 = 255.0f / field_0x2136; mpABase = new CPaneMgr(mpScreen, 'a_base', 0, NULL); JUT_ASSERT(218, mpABase != 0); mpLineAll = new CPaneMgr(mpScreen, 'line_all', 0, NULL); JUT_ASSERT(221, mpLineAll != 0); f32 in_f31; for (int i = 0; i < 7; i++) { J2DPane* piStack_1b4 = mpScreen->search(tlinen_tag[i]); if (i == 0) { CPaneMgr aCStack_b0; Mtx mtx1; Vec fStack_120 = mpABase->getGlobalVtx(&mtx1, 0, true, 0); Vec fStack_144 = aCStack_b0.getGlobalVtxCenter(piStack_1b4, true, 0); in_f31 = fStack_120.x - fStack_144.x; } f32 f29 = piStack_1b4->getBounds().i.y; piStack_1b4->move(g_MsgObject_HIO_c.mHowlHIO.mInputStartPoint + ((in_f31 + piStack_1b4->getBounds().i.x) - 3.0f), f29); } for (int i = 0; i < 3; i++) { mpLineH[i] = new CPaneMgr(mpScreen, ylinen_tag[i], 0, NULL); JUT_ASSERT(242, mpLineH[i] != 0); } for (int i = 0; i < 7; i++) { mpLineV[i] = new CPaneMgr(mpScreen, tline_tag[i], 2, NULL); JUT_ASSERT(247, mpLineV[i] != 0); } Mtx mtx2; field_0x128 = mpLineH[0]->getGlobalVtx(&mtx2, 0, true, 0); field_0x134 = mpLineH[0]->getGlobalVtx(&mtx2, 3, true, 0); field_0x140 = mpLineH[2]->getGlobalVtx(&mtx2, 3, true, 0); field_0x14c = mpLineV[0]->getGlobalVtx(&mtx2, 0, true, 0); field_0x158 = mpLineV[0]->getGlobalVtx(&mtx2, 3, true, 0); field_0x164 = mpLineV[1]->getGlobalVtx(&mtx2, 0, true, 0); field_0x170 = mpLineV[1]->getGlobalVtx(&mtx2, 3, true, 0); field_0x279c = 0.0f; field_0x27a0 = 0.0f; field_0x27a4 = 1.0f; field_0x27a8 = 0.0f; ResTIMG const* res = (ResTIMG const*) dComIfGp_getMsgArchive(5)->getResource('TIMG', "tt_ginnouroko_s3tc.bti"); mpDot = new J2DPicture(res); JUT_ASSERT(275, mpDot != 0); mpDot->setWhite(JUtility::TColor(0xff, 0xff, 0x71, 0xff)); res = (ResTIMG const*)dComIfGp_getMsgArchive(5)->getResource('TIMG', "tt_black_32.bti"); mpGuideDot = new J2DPicture(res); JUT_ASSERT(280, mpGuideDot != 0); mpGuideDot->setBlackWhite(((J2DPicture*)mpScreen->search('line00'))->getBlack(), ((J2DPicture*)mpScreen->search('line00'))->getWhite()); res = (ResTIMG const*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_iastarRR.bti"); mpTopBall = new J2DPicture(res); JUT_ASSERT(287, mpTopBall != 0); mpTopBall->setBlackWhite(g_MsgObject_HIO_c.mHowlHIO.mDotBlack, g_MsgObject_HIO_c.mHowlHIO.mDotWhite); ; for (int i = 0; i < 5; i++) { mpTopBallTail[i] = new J2DPicture(res); JUT_ASSERT(292, mpTopBallTail[i] != 0); mpTopBallTail[i]->setBlackWhite(g_MsgObject_HIO_c.mHowlHIO.mDotBlack, g_MsgObject_HIO_c.mHowlHIO.mDotWhite); } field_0x2134 = 0; field_0x1988 = mpScreen->search('line00')->getWidth(); field_0x198c = mpScreen->search('line00')->getHeight(); field_0x2194 = daAlink_getAlinkActorClass()->getCorrectCurveID(); mCorrectLineMax = 0; field_0x2197 = 0; res = (ResTIMG const*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti"); mpWaveTex = new J2DPicture(res); JUT_ASSERT(307, mpWaveTex != 0); mpWaveTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 200, 0, 255)); mpWaveTex->setCornerColor( JUtility::TColor(128, 128, 128, 0), JUtility::TColor(255, 255, 255, 255), JUtility::TColor(128, 128, 128, 0), JUtility::TColor(255, 255, 255, 255)); mpWaveTex->setAlpha(0); if (field_0x2194 >= 0) { mCorrectLineMax = daAlink_getAlinkActorClass()->getCorrectLineNum(); JUT_ASSERT(322, mCorrectLineMax < LINE_MAX); field_0x2197 = LINE_MAX; field_0x2138 = getGuideDataSize(); } resetLine(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm dMsgScrnHowl_c::dMsgScrnHowl_c() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/__ct__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 80241784-80241A70 23C0C4 02EC+00 1/0 0/0 0/0 .text __dt__14dMsgScrnHowl_cFv */ dMsgScrnHowl_c::~dMsgScrnHowl_c() { delete mpScreen; mpScreen = NULL; delete mpPmP_c; mpPmP_c = NULL; for (int i = 0; i < 2; i++) { delete mpButtonIcon[i]; mpButtonIcon[i] = NULL; delete mpButtonText[i]; mpButtonText[i] = NULL; } for (int i = 0; i < 3; i++) { delete mpLineH[i]; mpLineH[i] = NULL; } for (int i = 0; i < 7; i++) { delete mpLineV[i]; mpLineV[i] = NULL; } delete mpABase; mpABase = NULL; delete mpLineAll; mpLineAll = NULL; delete mpDot; mpDot = NULL; delete mpGuideDot; mpGuideDot = NULL; delete mpTopBall; mpTopBall = NULL; for (int i = 0; i < 5; i++) { delete mpTopBallTail[i]; mpTopBallTail[i] = NULL; } delete mpWaveTex; mpWaveTex = NULL; dComIfGp_getMsgArchive(5)->removeResourceAll();; } /* ############################################################################################## */ /* 80454C70-80454C74 003270 0004+00 7/7 0/0 0/0 .sdata2 @4561 */ SECTION_SDATA2 static f32 lit_4561 = 0.5f; /* 80454C74-80454C78 003274 0004+00 2/2 0/0 0/0 .sdata2 @4562 */ SECTION_SDATA2 static f32 lit_4562 = 1.0f / 5.0f; /* 80454C78-80454C80 003278 0004+04 2/2 0/0 0/0 .sdata2 @4563 */ SECTION_SDATA2 static f32 lit_4563[1 + 1 /* padding */] = { 1.0f / 10.0f, /* padding */ 0.0f, }; /* 80241A70-80241C30 23C3B0 01C0+00 1/0 0/0 0/0 .text exec__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::exec() { field_0x2799 = field_0x2798; (this->*process[field_0x2798])(); for (int i = 0; i < 0x300; i++) { if (field_0x1b14[i] > 0) { field_0x1b14[i]--; } } if (field_0x2799 != field_0x2798) { (this->*init_proc[field_0x2798])(); } f32 dVar10 = mpPmP_c->getAlphaRate(); f32 fVar1; f32 fVar2; if (field_0x2798 == 3) { fVar1 = 0.5f; fVar2 = 0.0f; } else { fVar1 = 1.0f; fVar2 = 1.0f; } if (field_0x1994 != fVar1) { cLib_addCalc2(&field_0x1994, fVar1, 0.2f, 1.0f); if (fabsf(field_0x1994 - fVar1) < 0.1f) { field_0x1994 = fVar1; } } if (field_0x1998 != fVar2) { cLib_addCalc2(&field_0x1998, fVar2, 0.2f, 1.0f); if (fabsf(field_0x1998 - fVar2) < 0.1f) { field_0x1998 = fVar2; } } mpButtonIcon[0]->setAlphaRate(field_0x1994 * dVar10); mpButtonIcon[1]->setAlphaRate(field_0x1994 * dVar10); mpButtonText[0]->setAlphaRate(field_0x1998 * dVar10); mpButtonText[1]->setAlphaRate(field_0x1998 * dVar10); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::exec() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/exec__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80454C80-80454C88 003280 0008+00 6/6 0/0 0/0 .sdata2 @4587 */ SECTION_SDATA2 static f64 lit_4587 = 4503599627370496.0 /* cast u32 to float */; /* 80241C30-80241D58 23C570 0128+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::drawSelf() { J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort(); GXGetScissor(&field_0x2114, &field_0x2118, &field_0x211c, &field_0x2120); if (field_0x2138 != 0) { if ((field_0x2798 == 0) || field_0x2798 == 4) { drawGuide(); } else { drawGuide2(); } } if (field_0x2798 != 3) { drawWave(); } grafContext->scissor(field_0x2114, field_0x2118, field_0x211c, field_0x2120); grafContext->setScissor(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::drawSelf() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/drawSelf__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 80241D58-80241D5C 23C698 0004+00 1/0 0/0 0/0 .text guide_on_init__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_on_init() { /* empty function */ } /* 80241D5C-80241DFC 23C69C 00A0+00 1/0 0/0 0/0 .text guide_on_proc__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_on_proc() { if (daAlink_getAlinkActorClass()->getWolfHowlTimer() == 0) { if (field_0x2195 == 1) { field_0x2195 = 2; } if (mDoCPd_c::getTrigB(0) != 0 && field_0x2195 == 2) { resetLine(); } } else { if (field_0x2195 == 2) { resetLine(); } field_0x2195 = 1; calcMain(); } } /* 80241DFC-80241E00 23C73C 0004+00 1/0 0/0 0/0 .text guide_off_init__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_off_init() { /* empty function */ } /* 80241E00-80241E7C 23C740 007C+00 1/0 0/0 0/0 .text guide_off_proc__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_off_proc() { calcMain(); if (daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getReleaseTimer() != 30) { if (daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) { return; } } field_0x2798 = 2; resetLine(); } /* 80241E7C-80241E80 23C7BC 0004+00 1/0 0/0 0/0 .text guide_stop_init__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_stop_init() { /* empty function */ } /* 80241E80-80241F28 23C7C0 00A8+00 1/0 0/0 0/0 .text guide_stop_proc__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_stop_proc() { field_0x180[field_0x2124] = getNowPlotPitch(-daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getNowInputValue()); if (mDoCPd_c::getHoldA(0) != 0) { resetLine(); field_0x2798 = 1; } else { if (mDoCPd_c::getTrigB(0) != 0) { resetLine(); field_0x2798 = 3; } } } /* 80241F28-80241F34 23C868 000C+00 1/0 0/0 0/0 .text guide_demo_play_init__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_demo_play_init() { field_0x279a = 0; } /* 80241F34-8024202C 23C874 00F8+00 1/0 0/0 0/0 .text guide_demo_play_proc__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_demo_play_proc() { if (mDoCPd_c::getHoldA(0) != 0) { if (daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) { resetLine(); field_0x2798 = 1; } } calcMain(); bool startGuideMelody = false; if (mPlotTime == 30) { startGuideMelody = true; } field_0x17c = daAlink_getAlinkActorClass()->getWolfHowlMgrP()->startGuideMelody(startGuideMelody); if (mPlotTime >= 30) { if (field_0x17c == 0) { if (field_0x279a != 0) { resetLine(); field_0x279a = 0; } } else if (field_0x279a == 0) { field_0x279a = 1; } } } /* 8024202C-80242030 23C96C 0004+00 1/0 0/0 0/0 .text guide_off_test_init__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_off_test_init() { /* empty function */ } /* 80242030-80242034 23C970 0004+00 1/0 0/0 0/0 .text guide_off_test_proc__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::guide_off_test_proc() { /* empty function */ } /* 80242034-80242038 23C974 0004+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnHowl_cFf */ void dMsgScrnHowl_c::fukiScale(f32 param_0) { /* empty function */ } /* 80242038-8024205C 23C978 0024+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnHowl_cFff */ void dMsgScrnHowl_c::fukiTrans(f32 param_0, f32 param_1) { mpPmP_c->paneTrans(param_0, param_1); } /* 8024205C-80242080 23C99C 0024+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnHowl_cFf */ void dMsgScrnHowl_c::fukiAlpha(f32 param_0) { mpPmP_c->setAlphaRate(param_0); } /* 80242080-802420D4 23C9C0 0054+00 0/0 1/1 0/0 .text isKeyCheck__14dMsgScrnHowl_cFv */ bool dMsgScrnHowl_c::isKeyCheck() { if (daAlink_getAlinkActorClass()->getWolfHowlTimer() == 0 && field_0x2799 == field_0x2798 && (field_0x2798 == 3 || (field_0x2798 == 0 && field_0x2195 == 0))) { return true; } return false; } /* 802420D4-80242198 23CA14 00C4+00 5/5 0/0 0/0 .text resetLine__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::resetLine() { field_0x2195 = 0; field_0x2128 = 0; mPlotTime = 0; field_0x212c = 0; field_0x212e = 0; field_0x2124 = 0; field_0x2130 = 0; field_0x2126 = 0; field_0x279b = 0; for (int i = 0; i < 30; i++) { field_0x2158[i] = 0; field_0x2176[i] = 0; field_0x19a0[i] = 0.0f; field_0x1a18[i] = 0.0f; field_0x1a90[i] = 0.0f; } if (field_0x2138 != 0) { initGuideData(); } moveLineV(true); moveBaseLength(true); field_0x2138 = getGuideDataSize(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::resetLine() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/resetLine__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80454C88-80454C8C 003288 0004+00 2/2 0/0 0/0 .sdata2 @4824 */ SECTION_SDATA2 static f32 lit_4824 = 30.0f; /* 80454C8C-80454C90 00328C 0004+00 1/1 0/0 0/0 .sdata2 @4825 */ SECTION_SDATA2 static f32 lit_4825 = 16.0f; /* 80454C90-80454C94 003290 0004+00 1/1 0/0 0/0 .sdata2 @4826 */ SECTION_SDATA2 static f32 lit_4826 = 32.0f; /* 80454C94-80454C98 003294 0004+00 4/4 0/0 0/0 .sdata2 @4827 */ SECTION_SDATA2 static f32 lit_4827 = 2.0f; /* 80454C98-80454C9C 003298 0004+00 1/1 0/0 0/0 .sdata2 @4828 */ SECTION_SDATA2 static f32 lit_4828 = 5.0f; /* 80454C9C-80454CA0 00329C 0004+00 1/1 0/0 0/0 .sdata2 @4829 */ SECTION_SDATA2 static f32 lit_4829 = 15.0f; /* 80242198-802427A8 23CAD8 0610+00 1/1 0/0 0/0 .text drawWave__14dMsgScrnHowl_cFv */ // float regallocs #ifdef NONMATCHING void dMsgScrnHowl_c::drawWave() { J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort(); f32 local_e0 = mpLineH[0]->getGlobalPosX(); s16 sVar14 = field_0x2124; f32 local_60 = 0.0f; f32 local_64 = 0.0f; f32 local_68 = 0.0f; f32 f26 = local_e0; f32 local_e4 = field_0x180[sVar14]; s32 uVar6 = g_MsgObject_HIO_c.mHowlHIO.mWaveformDotLen; s32 local_80 = field_0x2128 - 1 - uVar6; f32 fVar4 = (30 - daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getReleaseTimer()) / 30.0f; if (local_80 < 0) { local_80 = 0; } s32 local_94 = 0; Vec fVar12 = field_0x128; Vec this_02 = field_0x140; f32 fVar1 = mDoGph_gInf_c::getWidthF() / 608.0f; f32 fVar2 = mDoGph_gInf_c::getHeightF() / 448.0f; f32 dVar16 = mDoGph_gInf_c::getMinXF(); grafContext->scissor( (fVar12.x - dVar16) / fVar1 - 16.0f, (fVar12.y / fVar2) / fVar2 - 16.0f, 32.0f + (this_02.x - fVar12.x) / fVar1, 32.0f + ((this_02.y - fVar12.y) + 2.0f) ); grafContext->setScissor(); bool bVar5 = true; if (field_0x2798 == 0) { if (mPlotTime != field_0x212c) { field_0x212c = mPlotTime; } else { bVar5 = false; } } if (bVar5) { for (int iVar10 = 0; iVar10 < field_0x2128 - 1; iVar10++) { f32 local_54 = local_e0; f32 local_c8 = field_0x180[sVar14]; s32 sVar3 = field_0x1b14[sVar14]; local_e0 += field_0x1980; local_68 += field_0x1984; if (local_68 > 255.0f) { local_68 = 255.0f; } sVar14 = addCount(sVar14); f32 fVar2 = field_0x180[sVar14]; s16 temp_r4 = field_0x1b14[sVar14]; if (iVar10 == field_0x2128 - 2) { local_60 = local_e0; local_64 = fVar2; local_94 = temp_r4; } if (mPlotTime >= 30 && iVar10 >= local_80 && iVar10 >= 30) { f32 local_b0 = 0.0f; if (sVar3 > 0) { local_b0 = (f32)sVar3 / (f32)uVar6; } if (fVar4 > 0.0f && local_b0 > 0.0f) { f32 fVar7 = 0.1f + 0.2f * local_b0; f32 fVar8 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale * fVar7; f32 fVar9 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale * fVar7; u8 cVar9 = 255.0f * local_b0 * fVar4; if (cVar9 != 0) { f32 local_c4 = local_54; f32 dVar16 = 5.0f; fVar2 = local_e0 - local_54; f32 f19 = fVar2 / 5.0f; f32 f17 = (fVar2 - local_c8) / 5.0f; for (int iVar15 = 0; iVar15 < 5; iVar15++) { mpTopBallTail[iVar15]->setAlpha(cVar9); mpTopBallTail[iVar15]->draw(local_c4 - fVar8 / 2, local_c8 - fVar9 / 2, fVar8, fVar9, false, false, false); local_c4 += f19; local_c8 += f17; } } } } local_54 = fVar1; } if (fVar4 > 0.0f) { f32 fVar1 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale; f32 fVar2 = 32.0f * g_MsgObject_HIO_c.mHowlHIO.mDotScale; f32 local_dc = 0.0f; f32 f17; f32 f18; if (field_0x2128 != 0) { if (local_94 > 0) { local_dc = (f32)local_94 / (f32)uVar6; } f17 = local_60; f18 = local_64; } else { field_0x2134++; if (field_0x2134 > 30) { field_0x2134 = 0; } if (field_0x2134 < 15) { local_dc = field_0x2134 / 15.0f; } else { local_dc = (30.0f - field_0x2134) / 15.0f; } f17 = f26; f18 = local_e4; } if (local_dc > 0.0f) { mpTopBall->setAlpha(255.0f * local_dc * fVar4); mpTopBall->draw( f17 - fVar1 / 2, f18 - fVar2 / 2, fVar1, fVar2, false, false, false); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::drawWave() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/drawWave__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 802427A8-80242FE4 23D0E8 083C+00 1/1 0/0 0/0 .text drawGuide__14dMsgScrnHowl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::drawGuide() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/drawGuide__14dMsgScrnHowl_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80454CA0-80454CA4 0032A0 0004+00 1/1 0/0 0/0 .sdata2 @5203 */ SECTION_SDATA2 static f32 lit_5203 = 18.0f; /* 80242FE4-802435BC 23D924 05D8+00 1/1 0/0 0/0 .text drawGuide2__14dMsgScrnHowl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::drawGuide2() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/drawGuide2__14dMsgScrnHowl_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80454CA4-80454CA8 0032A4 0004+00 1/1 0/0 0/0 .sdata2 @5233 */ SECTION_SDATA2 static f32 lit_5233 = 12.0f; /* 80454CA8-80454CAC 0032A8 0004+00 1/1 0/0 0/0 .sdata2 @5234 */ SECTION_SDATA2 static f32 lit_5234 = 50.0f; /* 802435BC-80243838 23DEFC 027C+00 1/1 0/0 0/0 .text drawEffect__14dMsgScrnHowl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::drawEffect() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/drawEffect__14dMsgScrnHowl_cFv.s" } #pragma pop /* 80243838-8024389C 23E178 0064+00 3/3 0/0 0/0 .text calcMain__14dMsgScrnHowl_cFv */ void dMsgScrnHowl_c::calcMain() { if (mPlotTime < field_0x2138 + 380) { mPlotTime++; } else { field_0x212c--; } calcWave(); calcGuide(); } /* 8024389C-80243A50 23E1DC 01B4+00 1/1 0/0 0/0 .text calcWave__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::calcWave() { if (field_0x2128 < field_0x2136) { field_0x2132 = field_0x2128; field_0x2128++; moveBaseLength(true); } else { if (field_0x212e < field_0x2138 + 380) { field_0x212e++; } field_0x2132 = field_0x2124; field_0x2124 = addCount(field_0x2124); moveLineV(false); moveBaseLength(false); for (int iVar5 = 0; iVar5 < 30; iVar5++) { if (field_0x1a90[iVar5] > 0.0f) { field_0x19a0[iVar5] -= field_0x1980; } } } if (field_0x2798 != 3) { s8 i_onNum = daAlink_getAlinkActorClass()->getOnLineNum(); if (i_onNum >= 0 && mPlotTime >= 30 && daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) { JUT_ASSERT(1439, i_onNum < LINE_MAX); JUT_ASSERT(1439, mPlotTime <= PLOT_BUFFER_MAX_e); field_0x2158[i_onNum]++; field_0x2498[mPlotTime] = 1; } else { field_0x2498[mPlotTime] = 0; } } field_0x180[field_0x2132] = getNowPlotPitch(-daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getNowInputValue()); field_0x1b14[field_0x2132] = g_MsgObject_HIO_c.mHowlHIO.mWaveformDotLen; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::calcWave() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/calcWave__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 80243A50-80243BE0 23E390 0190+00 1/1 0/0 0/0 .text calcGuide__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::calcGuide() { if (field_0x2138 != 0) { if ((daAlink_getAlinkActorClass()->getWolfHowlTimer() != 0) || (field_0x2798 == 3)) { calcPitchLevel(); for (int i = 0; i < 350; i++) { if (field_0x2130 < field_0x2136) { if (i < field_0x2138) { u8 dataType = getGuideDataType(i); field_0xd80[i] = getPlotPitch(dataType); field_0x2198[i] = dataType; } else { field_0xd80[i] = 0.0f; field_0x2198[i] = 0; } } else if (i + (field_0x2130 - field_0x2136) < field_0x2138) { u8 dataType = getGuideDataType(i + (field_0x2130 - field_0x2136)); field_0xd80[i] = getPlotPitch(dataType); field_0x2198[i] = dataType; } else { field_0xd80[i] = 0.0f; field_0x2198[i] = 0; } } if (field_0x2130 < (field_0x2138 + field_0x2136)) { field_0x2130++; } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::calcGuide() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/calcGuide__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 80243BE0-80243DCC 23E520 01EC+00 2/2 0/0 0/0 .text moveLineV__14dMsgScrnHowl_cFb */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::moveLineV(bool param_0) { f32 dVar7 = (mpLineH[0]->getInitPosX() - mpLineV[0]->getInitCenterPosX()); f32 fVar1; if (param_0) { fVar1 = 0.0f; } else { fVar1 = (mpLineV[0]->getCenterPosX() - mpLineV[0]->getInitCenterPosX()); fVar1 -= field_0x1980; } f32 dVar8 = (mpLineV[0]->getInitCenterPosX() - mpLineV[1]->getInitCenterPosX()) - g_MsgObject_HIO_c.mHowlHIO.mLineSpaceOffset; if (fVar1 < dVar7) { fVar1 -= dVar8; } if (fVar1 < (dVar7 - (dVar8 / 2))) { f32 fVar4 = ((dVar7 - (dVar8 / 2)) - fVar1); dVar7 = fVar4 / (-dVar8 / 2); mpLineV[0]->setAlphaRate(1.0f - dVar7); mpLineV[6]->setAlphaRate(1.0f); } else { f32 fVar4 = fVar1 - (dVar7 - (dVar8 / 2)); dVar7 = fVar4 / (-dVar8 / 2); mpLineV[0]->setAlphaRate(1.0f); mpLineV[6]->setAlphaRate((1.0f - dVar7)); } f32 fVar3 = 0.0f; for (int i = 0; i < 7; i++) { if (0 < i && i < 6) { mpLineV[i]->setAlphaRate(1.0f); } mpLineV[i]->move((fVar3 + (fVar1 + mpLineV[i]->getInitPosX())), mpLineV[i]->getInitPosY()); fVar3 += g_MsgObject_HIO_c.mHowlHIO.mLineSpaceOffset; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::moveLineV(bool param_0) { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/moveLineV__14dMsgScrnHowl_cFb.s" } #pragma pop #endif /* 80243DCC-80243EEC 23E70C 0120+00 2/2 0/0 0/0 .text moveBaseLength__14dMsgScrnHowl_cFb */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::moveBaseLength(bool param_0) { if (param_0) { field_0x1990 = 0.0f; } else { field_0x1990 -= field_0x1980; } f32 dVar6 = mpLineH[0]->getGlobalPosX(); f32 dVar8 = mpABase->getGlobalPosX() + mpABase->getSizeX(); f32 dVar7 = field_0x1990 + (mpABase->getInitGlobalPosX() - field_0x27a8); if (dVar7 < dVar6) { dVar7 = dVar6; } f32 dVar9 = dVar7 - mpABase->getInitGlobalPosX(); mpABase->resize((dVar8 - dVar7), mpABase->getSizeY()); mpABase->move(dVar9 + mpABase->getInitPosX(), mpABase->getPosY()); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::moveBaseLength(bool param_0) { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/moveBaseLength__14dMsgScrnHowl_cFb.s" } #pragma pop #endif /* 80243EEC-80243F58 23E82C 006C+00 2/2 0/0 0/0 .text getOnLineNum__14dMsgScrnHowl_cFi */ s8 dMsgScrnHowl_c::getOnLineNum(int param_0) { if (param_0 < 0) { return -1; } if (param_0 >= 30 && param_0 < field_0x2138 + 380) { int iVar1 = 30; for (int i = 0; i < mCorrectLineMax; i++) { iVar1 += field_0x213a[i]; if (param_0 < iVar1) { return i; } } } return -1; } /* 80243F58-80243F7C 23E898 0024+00 2/2 0/0 0/0 .text addCount__14dMsgScrnHowl_cFs */ s16 dMsgScrnHowl_c::addCount(s16 param_0) { if (++param_0 >= field_0x2136) { param_0 -= field_0x2136; } return param_0; } /* 80243F7C-80243F94 23E8BC 0018+00 2/2 0/0 0/0 .text addCountGuide__14dMsgScrnHowl_cFs */ s16 dMsgScrnHowl_c::addCountGuide(s16 param_0) { if (++param_0 >= 350) { param_0 -= 350; } return param_0; } /* ############################################################################################## */ /* 80454CAC-80454CB0 0032AC 0004+00 1/1 0/0 0/0 .sdata2 @5508 */ SECTION_SDATA2 static f32 lit_5508 = -1.0f; /* 80243F94-80244108 23E8D4 0174+00 2/2 0/0 0/0 .text getNowPlotPitch__14dMsgScrnHowl_cFf */ // Matches with literals #ifdef NONMATCHING f32 dMsgScrnHowl_c::getNowPlotPitch(f32 param_0) { if (param_0 < 0.0f) { param_0 *= -1.0f; return mpLineH[1]->getGlobalCenterPosY() + (param_0 * (mpLineH[0]->getGlobalCenterPosY() - mpLineH[1]->getGlobalCenterPosY())); } return mpLineH[1]->getGlobalCenterPosY() + (param_0 * (mpLineH[2]->getGlobalCenterPosY() - mpLineH[1]->getGlobalCenterPosY())); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 dMsgScrnHowl_c::getNowPlotPitch(f32 param_0) { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/getNowPlotPitch__14dMsgScrnHowl_cFf.s" } #pragma pop #endif /* 80244108-8024414C 23EA48 0044+00 2/2 0/0 0/0 .text getPlotPitch__14dMsgScrnHowl_cFf */ // Matches with literals #ifdef NONMATCHING f32 dMsgScrnHowl_c::getPlotPitch(f32 param_0) { if (1.0f == param_0) { return field_0x1b08[0]; } if (2.0f == param_0) { return field_0x1b08[1]; } if (3.0f == param_0) { return field_0x1b08[2]; } return 0.0f; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 dMsgScrnHowl_c::getPlotPitch(f32 param_0) { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/getPlotPitch__14dMsgScrnHowl_cFf.s" } #pragma pop #endif /* 8024414C-802441FC 23EA8C 00B0+00 2/2 0/0 0/0 .text calcPitchLevel__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::calcPitchLevel() { field_0x1b08[0] = mpLineH[0]->getGlobalCenterPosY(); field_0x1b08[1] = mpLineH[1]->getGlobalCenterPosY(); field_0x1b08[2] = mpLineH[2]->getGlobalCenterPosY(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::calcPitchLevel() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/calcPitchLevel__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 802441FC-80244304 23EB3C 0108+00 1/1 0/0 0/0 .text initGuideData__14dMsgScrnHowl_cFv */ // Matches with literals #ifdef NONMATCHING void dMsgScrnHowl_c::initGuideData() { calcPitchLevel(); for (int i = 0; i < 350; i++) { if (field_0x2138 <= 350) { if (i < field_0x2138) { u8 dataType = getGuideDataType(i); field_0xd80[i] = getPlotPitch(dataType); field_0x2198[i] = dataType; } else { field_0xd80[i] = 0.0f; field_0x2198[i] = 0; } } else { u8 dataType = getGuideDataType(i); field_0xd80[i] = getPlotPitch(dataType); field_0x2198[i] = dataType; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMsgScrnHowl_c::initGuideData() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/initGuideData__14dMsgScrnHowl_cFv.s" } #pragma pop #endif /* 80244304-8024438C 23EC44 0088+00 2/2 0/0 0/0 .text getGuideDataSize__14dMsgScrnHowl_cFv */ u16 dMsgScrnHowl_c::getGuideDataSize() { u16 dataSize = field_0x2197; for (int i = 0; i < mCorrectLineMax; i++) { field_0x213a[i] = daAlink_getAlinkActorClass()->getCorrectLine(i).length; dataSize += field_0x213a[i]; } return dataSize; } /* 8024438C-80244454 23ECCC 00C8+00 2/2 0/0 0/0 .text getGuideDataType__14dMsgScrnHowl_cFi */ u8 dMsgScrnHowl_c::getGuideDataType(int param_0) { u16 uVar2 = field_0x2197; u16 uVar3 = field_0x2197; for (int i = 0; i < mCorrectLineMax; i++) { uVar3 += daAlink_getAlinkActorClass()->getCorrectLine(i).length; if (uVar2 <= param_0 && uVar3 > param_0) { return daAlink_getAlinkActorClass()->getCorrectLine(i).barType; } uVar2 = uVar3; } return 0; } /* 80244454-80244558 23ED94 0104+00 0/0 1/0 0/0 .text __sinit_d_msg_scrn_howl_cpp */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void __sinit_d_msg_scrn_howl_cpp() { nofralloc #include "asm/msg/scrn/d_msg_scrn_howl/__sinit_d_msg_scrn_howl_cpp.s" } #pragma pop #pragma push #pragma force_active on REGISTER_CTORS(0x80244454, __sinit_d_msg_scrn_howl_cpp); #pragma pop /* 80399A20-80399A20 026080 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */