// // Generated By: dol2asm // Translation Unit: d/d_msg_class // #include "d/d_msg_class.h" #include "stdio.h" #include "d/d_meter2_info.h" #include "d/d_msg_object.h" #include "d/d_msg_unit.h" #include "dol2asm.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "d/d_msg_out_font.h" #include "m_Do/m_Do_graphic.h" #include "d/d_lib.h" #include "JSystem/JUtility/JUTFont.h" // // Forward References: // extern "C" static void checkCharInfoCharactor__Fi(); extern "C" static void changeCodeToChar__FUs(); extern "C" static void change1ByteTo2Bytes__Fi(); extern "C" static void changeKataToHira__Fi(); extern "C" static void isOutfontKanjiCode__Fi(); extern "C" static void getFontCCColorTable__FUcUc(); extern "C" static void getFontGCColorTable__FUcUc(); extern "C" static void getOutFontNumberType__Fi(); extern "C" static void getPohNum__Fv(); extern "C" void __ct__19jmessage_tReferenceFv(); extern "C" void __dt__19jmessage_tReferenceFv(); extern "C" void calcDistance__19jmessage_tReferenceFv(); extern "C" void getLineMax__19jmessage_tReferenceFv(); extern "C" void isKanban__19jmessage_tReferenceFv(); extern "C" void isPlaceName__19jmessage_tReferenceFv(); extern "C" void isBossName__19jmessage_tReferenceFv(); extern "C" void isSaveSeq__19jmessage_tReferenceFv(); extern "C" void isBook__19jmessage_tReferenceFv(); extern "C" void isStaffRoll__19jmessage_tReferenceFv(); extern "C" void isHowl__19jmessage_tReferenceFv(); extern "C" void isMidona__19jmessage_tReferenceFv(); extern "C" void resetReference__19jmessage_tReferenceFv(); extern "C" void pageSend__19jmessage_tReferenceFv(); extern "C" void selectMessage__19jmessage_tReferenceFv(); extern "C" void inputNumber__19jmessage_tReferenceFv(); extern "C" void getWord__19jmessage_tReferenceFi(); extern "C" void resetWord__19jmessage_tReferenceFv(); extern "C" void setCharactor__19jmessage_tReferenceFUs(); extern "C" void addCharactor__19jmessage_tReferenceFUs(); extern "C" void resetCharactor__19jmessage_tReferenceFv(); extern "C" void shiftCharCountBuffer__19jmessage_tReferenceFv(); extern "C" void resetCharCountBuffer__19jmessage_tReferenceFv(); extern "C" void allsetCharCountBuffer__19jmessage_tReferenceFv(); extern "C" void isCharSend__19jmessage_tReferenceFv(); extern "C" void isLightSend__19jmessage_tReferenceFv(); extern "C" void isLightEnd__19jmessage_tReferenceFv(); extern "C" void decideOutFontRupeeColor__19jmessage_tReferenceFi(); extern "C" void __ct__17jmessage_tControlFv(); extern "C" void __ct__26jmessage_tMeasureProcessorFPC19jmessage_tReference(); extern "C" void do_begin__26jmessage_tMeasureProcessorFPCvPCc(); extern "C" void do_end__26jmessage_tMeasureProcessorFv(); extern "C" void do_character__26jmessage_tMeasureProcessorFi(); extern "C" void do_tag__26jmessage_tMeasureProcessorFUlPCvUl(); extern "C" void do_scale__26jmessage_tMeasureProcessorFf(); extern "C" void do_space__26jmessage_tMeasureProcessorFUl(); extern "C" void do_pageType__26jmessage_tMeasureProcessorFi(); extern "C" void do_name1__26jmessage_tMeasureProcessorFv(); extern "C" void do_rubyset__26jmessage_tMeasureProcessorFPCvUl(); extern "C" void push_word__26jmessage_tMeasureProcessorFPc(); extern "C" void __ct__27jmessage_tSequenceProcessorFPC19jmessage_tReferenceP17jmessage_tControl(); extern "C" void __dt__26jmessage_tMeasureProcessorFv(); extern "C" void do_reset__27jmessage_tSequenceProcessorFv(); extern "C" void do_begin__27jmessage_tSequenceProcessorFPCvPCc(); extern "C" void do_end__27jmessage_tSequenceProcessorFv(); extern "C" void do_isReady__27jmessage_tSequenceProcessorFv(); extern "C" void do_character__27jmessage_tSequenceProcessorFi(); extern "C" void do_tag__27jmessage_tSequenceProcessorFUlPCvUl(); extern "C" bool do_jump_isReady__27jmessage_tSequenceProcessorFv(); extern "C" void do_name1__27jmessage_tSequenceProcessorFv(); extern "C" void do_space__27jmessage_tSequenceProcessorFUl(); extern "C" void do_rubyset__27jmessage_tSequenceProcessorFPCvUl(); extern "C" void push_word__27jmessage_tSequenceProcessorFv(); extern "C" void messageSePlay__27jmessage_tSequenceProcessorFUcUcP4cXyz(); extern "C" void do_jump__27jmessage_tSequenceProcessorFPCvPCc(); extern "C" void calcStringLength__27jmessage_tSequenceProcessorFv(); extern "C" void __ct__28jmessage_tRenderingProcessorFPC19jmessage_tReference(); extern "C" void do_reset__28jmessage_tRenderingProcessorFv(); extern "C" void do_begin__28jmessage_tRenderingProcessorFPCvPCc(); extern "C" void do_end__28jmessage_tRenderingProcessorFv(); extern "C" void do_character__28jmessage_tRenderingProcessorFi(); extern "C" void do_tag__28jmessage_tRenderingProcessorFUlPCvUl(); extern "C" void resetRendering__28jmessage_tRenderingProcessorFv(); extern "C" void do_widthcenter__28jmessage_tRenderingProcessorFv(); extern "C" void do_selwidthcenter__28jmessage_tRenderingProcessorFi(); extern "C" void do_heightcenter__28jmessage_tRenderingProcessorFv(); extern "C" void do_color__28jmessage_tRenderingProcessorFUc(); extern "C" void do_scale__28jmessage_tRenderingProcessorFf(); extern "C" void do_linedown__28jmessage_tRenderingProcessorFs(); extern "C" void do_transY__28jmessage_tRenderingProcessorFsb(); extern "C" void do_outfont__28jmessage_tRenderingProcessorFUcUl(); extern "C" void do_arrow2__28jmessage_tRenderingProcessorFv(); extern "C" void getLineLength__28jmessage_tRenderingProcessorFi(); extern "C" void do_strcat__28jmessage_tRenderingProcessorFPcbbb(); extern "C" void do_rubyset__28jmessage_tRenderingProcessorFPCvUl(); extern "C" void do_rubystrcat__28jmessage_tRenderingProcessorFPcPcff(); extern "C" void do_name1__28jmessage_tRenderingProcessorFv(); extern "C" void do_numset__28jmessage_tRenderingProcessorFs(); extern "C" void push_word__28jmessage_tRenderingProcessorFv(); extern "C" void getCharInfo__28jmessage_tRenderingProcessorFfffff(); extern "C" void __ct__26jmessage_string_tReferenceFv(); extern "C" void __dt__26jmessage_string_tReferenceFv(); extern "C" void init__26jmessage_string_tReferenceFP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc(); extern "C" void setCharactor__26jmessage_string_tReferenceFUs(); extern "C" void addCharactor__26jmessage_string_tReferenceFUs(); extern "C" void resetCharactor__26jmessage_string_tReferenceFv(); extern "C" void getLineLength__26jmessage_string_tReferenceFi(); extern "C" void addLineLength__26jmessage_string_tReferenceFif(); extern "C" void getOutfontLength__26jmessage_string_tReferenceFi(); extern "C" void setOutfontLength__26jmessage_string_tReferenceFif(); extern "C" void clearOutfontLength__26jmessage_string_tReferenceFi(); extern "C" void getLineCountNowPage__26jmessage_string_tReferenceFv(); extern "C" void __ct__24jmessage_string_tControlFv(); extern "C" void __ct__33jmessage_string_tMeasureProcessorFPC26jmessage_string_tReference(); extern "C" void do_begin__33jmessage_string_tMeasureProcessorFPCvPCc(); extern "C" void do_end__33jmessage_string_tMeasureProcessorFv(); extern "C" void do_character__33jmessage_string_tMeasureProcessorFi(); extern "C" void do_tag__33jmessage_string_tMeasureProcessorFUlPCvUl(); extern "C" void do_rubyset__33jmessage_string_tMeasureProcessorFPCvUl(); extern "C" void __ct__34jmessage_string_tSequenceProcessorFPC26jmessage_string_tReferenceP24jmessage_string_tControl(); extern "C" void __dt__33jmessage_string_tMeasureProcessorFv(); extern "C" void do_reset__34jmessage_string_tSequenceProcessorFv(); extern "C" void do_begin__34jmessage_string_tSequenceProcessorFPCvPCc(); extern "C" void do_end__34jmessage_string_tSequenceProcessorFv(); extern "C" bool do_isReady__34jmessage_string_tSequenceProcessorFv(); extern "C" void do_character__34jmessage_string_tSequenceProcessorFi(); extern "C" void do_tag__34jmessage_string_tSequenceProcessorFUlPCvUl(); extern "C" bool do_jump_isReady__34jmessage_string_tSequenceProcessorFv(); extern "C" void do_jump__34jmessage_string_tSequenceProcessorFPCvPCc(); extern "C" void __ct__35jmessage_string_tRenderingProcessorFPC26jmessage_string_tReference(); extern "C" void getLineCountNowPage__35jmessage_string_tRenderingProcessorFv(); extern "C" void do_reset__35jmessage_string_tRenderingProcessorFv(); extern "C" void do_begin__35jmessage_string_tRenderingProcessorFPCvPCc(); extern "C" void do_end__35jmessage_string_tRenderingProcessorFv(); extern "C" void do_character__35jmessage_string_tRenderingProcessorFi(); extern "C" void do_tag__35jmessage_string_tRenderingProcessorFUlPCvUl(); extern "C" void do_widthcenter__35jmessage_string_tRenderingProcessorFv(); extern "C" void do_heightcenter__35jmessage_string_tRenderingProcessorFv(); extern "C" void do_strcat__35jmessage_string_tRenderingProcessorFPc(); extern "C" void do_rubyset__35jmessage_string_tRenderingProcessorFPCvUl(); extern "C" void do_rubystrcat__35jmessage_string_tRenderingProcessorFPc(); extern "C" void do_outfont__35jmessage_string_tRenderingProcessorFUc(); extern "C" void do_color__35jmessage_string_tRenderingProcessorFUc(); extern "C" void do_scale__35jmessage_string_tRenderingProcessorFf(); extern "C" void do_linedown__35jmessage_string_tRenderingProcessorFs(); extern "C" void do_numset__35jmessage_string_tRenderingProcessorFs(); extern "C" void push_word__35jmessage_string_tRenderingProcessorFPCc(); extern "C" void __dt__35jmessage_string_tRenderingProcessorFv(); extern "C" void __dt__34jmessage_string_tSequenceProcessorFv(); extern "C" void __dt__24jmessage_string_tControlFv(); extern "C" void __dt__28jmessage_tRenderingProcessorFv(); extern "C" void __dt__27jmessage_tSequenceProcessorFv(); extern "C" void getActorPos__19jmessage_tReferenceFv(); extern "C" extern char const* const d_msg_d_msg_class__stringBase0; // // External References: // extern "C" void mDoExt_getMesgFont__Fv(); extern "C" void dComIfGp_getReverb__Fi(); extern "C" void dComIfGs_checkGetInsectNum__Fv(); extern "C" void __ct__9STControlFssssffss(); extern "C" void setWaitParm__9STControlFssssffss(); extern "C" void checkTrigger__9STControlFv(); extern "C" void checkLeftTrigger__9STControlFv(); extern "C" void checkRightTrigger__9STControlFv(); extern "C" void checkUpTrigger__9STControlFv(); extern "C" void checkDownTrigger__9STControlFv(); extern "C" void getBombNum__21dSv_player_item_max_cCFUc(); extern "C" void onEventBit__11dSv_event_cFUs(); extern "C" void getEventReg__11dSv_event_cCFUs(); extern "C" void dMeter2Info_getNewLetterNum__Fv(); extern "C" void initialize__10COutFont_cFv(); extern "C" void talkStartInit__12dMsgObject_cFv(); extern "C" void isKanbanMessage__12dMsgObject_cFv(); extern "C" void isHowlMessage__12dMsgObject_cFv(); extern "C" void isMidonaMessage__12dMsgObject_cFv(); extern "C" void isPlaceMessage__12dMsgObject_cFv(); extern "C" void isBossMessage__12dMsgObject_cFv(); extern "C" bool isBookMessage__12dMsgObject_cFv(); extern "C" void isStaffMessage__12dMsgObject_cFv(); extern "C" void isSaveMessage__12dMsgObject_cFv(); extern "C" void getSmellName__12dMsgObject_cFv(); extern "C" void getPortalName__12dMsgObject_cFv(); extern "C" void getBombName__12dMsgObject_cFv(); extern "C" void getInsectName__12dMsgObject_cFv(); extern "C" void getLetterName__12dMsgObject_cFv(); extern "C" void getSelectBombNum__12dMsgObject_cFv(); extern "C" void addSelectBomBag__12dMsgObject_cFUc(); extern "C" void resetSelectBomBag__12dMsgObject_cFv(); extern "C" void getMsgOutputType__12dMsgObject_cFv(); extern "C" void getWord__12dMsgObject_cFv(); extern "C" void getSelectWord__12dMsgObject_cFi(); extern "C" void getSelectWordFlag__12dMsgObject_cFv(); extern "C" void getSelectBombPrice__12dMsgObject_cFv(); extern "C" void getItemEquipButton__12dMsgObject_cFv(); extern "C" void dMsgObject_getFundRaising__Fv(); extern "C" void setTag__10dMsgUnit_cFiiPcb(); extern "C" void __mi__4cXyzCFRC3Vec(); extern "C" void __ct__Q28JMessage8TControlFv(); extern "C" void __dt__Q28JMessage8TControlFv(); extern "C" void __dt__Q28JMessage10TReferenceFv(); extern "C" bool do_word__Q28JMessage10TReferenceCFUl(); extern "C" void stack_pushCurrent__Q28JMessage10TProcessorFPCc(); extern "C" void do_reset__Q28JMessage10TProcessorFv(); extern "C" void do_select_begin__Q28JMessage10TProcessorFUl(); extern "C" void do_select_end__Q28JMessage10TProcessorFv(); extern "C" void do_select_separate__Q28JMessage10TProcessorFv(); extern "C" void do_resetStatus___Q28JMessage10TProcessorFPCc(); extern "C" bool do_setBegin_isReady___Q28JMessage10TProcessorCFv(); extern "C" void process_onCharacterEnd_normal___Q28JMessage10TProcessorFPQ28JMessage10TProcessor(); extern "C" void __ct__Q28JMessage18TSequenceProcessorFPCQ28JMessage10TReferencePQ28JMessage8TControl(); extern "C" void __dt__Q28JMessage18TSequenceProcessorFv(); extern "C" void do_branch_query__Q28JMessage18TSequenceProcessorFUl(); extern "C" s32 do_branch_queryResult__Q28JMessage18TSequenceProcessorFv(); extern "C" void do_branch__Q28JMessage18TSequenceProcessorFPCvPCc(); extern "C" void do_resetStatus___Q28JMessage18TSequenceProcessorFPCc(); extern "C" void do_setBegin_isReady___Q28JMessage18TSequenceProcessorCFv(); extern "C" void do_begin___Q28JMessage18TSequenceProcessorFPCvPCc(); extern "C" void do_end___Q28JMessage18TSequenceProcessorFv(); extern "C" void do_tag___Q28JMessage18TSequenceProcessorFUlPCvUl(); extern "C" void __ct__Q28JMessage19TRenderingProcessorFPCQ28JMessage10TReference(); extern "C" void __dt__Q28JMessage19TRenderingProcessorFv(); extern "C" void process__Q28JMessage19TRenderingProcessorFPCc(); extern "C" void do_begin___Q28JMessage19TRenderingProcessorFPCvPCc(); extern "C" void do_end___Q28JMessage19TRenderingProcessorFv(); extern "C" void do_tag___Q28JMessage19TRenderingProcessorFUlPCvUl(); extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void setString__12Z2SpeechMgr2FPCUssUcUs(); extern "C" void playOneShotVoice__12Z2SpeechMgr2FUcUsP3VecSc(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void getBounds__7J2DPaneFv(); extern "C" void getParentPane__7J2DPaneFv(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void _savefpr_27(); extern "C" void _restfpr_27(); extern "C" void _savegpr_24(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_24(); extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" extern void* __vt__17jmessage_tControl[3]; extern "C" extern void* __vt__Q28JMessage10TReference[4 + 1 /* padding */]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; SECTION_DATA extern void* __vt__35jmessage_string_tRenderingProcessor[16]; SECTION_DATA extern void* __vt__34jmessage_string_tSequenceProcessor[22]; SECTION_DATA extern void* __vt__33jmessage_string_tMeasureProcessor[16]; SECTION_DATA extern void* __vt__24jmessage_string_tControl[3]; SECTION_DATA extern void* __vt__26jmessage_string_tReference[4]; SECTION_DATA extern void* __vt__28jmessage_tRenderingProcessor[16]; SECTION_DATA extern void* __vt__27jmessage_tSequenceProcessor[22]; SECTION_DATA extern void* __vt__26jmessage_tMeasureProcessor[16]; SECTION_DATA extern void* __vt__19jmessage_tReference[4 + 1 /* padding */]; // // Declarations: // /* 80228578-802285CC 222EB8 0054+00 1/1 0/0 0/0 .text checkCharInfoCharactor__Fi */ static bool checkCharInfoCharactor(int c) { if (c != 0x8140 && c != 0x8141 && c != 0x8142 && c != 0x0020 && c != 0x0022 && c != 0x0027 && c != 0x002C && c != 0x002E) { return true; } return false; } /* 802285CC-80228608 222F0C 003C+00 3/3 0/0 0/0 .text changeCodeToChar__FUs */ static char* changeCodeToChar(u16 param_0) { static char mMoji[3]; mMoji[0] = mMoji[1] = mMoji[2] = 0; mMoji[0] = param_0 >> 8; int val = param_0; if (mMoji[0] == 0) { mMoji[0] = val; } else { mMoji[1] = val; } return mMoji; } /* 80228608-80228838 222F48 0230+00 5/4 0/0 0/0 .text change1ByteTo2Bytes__Fi */ static u16 change1ByteTo2Bytes(int param_0) { static u16 char_table[] = { 0x0000, 0x8142, 0x8175, 0x8176, 0x8141, 0x8145, 0x8392, 0x8340, 0x8342, 0x8344, 0x8346, 0x8348, 0x8383, 0x8385, 0x8387, 0x8362, 0x815B, 0x8341, 0x8343, 0x8345, 0x8347, 0x8349, 0x834A, 0x834C, 0x834E, 0x8350, 0x8352, 0x8354, 0x8356, 0x8358, 0x835A, 0x835C, 0x835E, 0x8360, 0x8363, 0x8365, 0x8367, 0x8369, 0x836A, 0x836B, 0x836C, 0x836D, 0x836E, 0x8371, 0x8374, 0x8377, 0x837A, 0x837D, 0x837E, 0x8380, 0x8381, 0x8382, 0x8384, 0x8386, 0x8388, 0x8389, 0x838A, 0x838B, 0x838C, 0x838D, 0x838F, 0x8393, 0x814A, 0x814B, }; u16 var_r30 = param_0; if (param_0 >= '0' && param_0 <= '9') { var_r30 = param_0 + 0x821F; } else if (param_0 >= 'A' && param_0 <= 'Z') { var_r30 = param_0 + 0x8230; } else if (param_0 >= 'a' && param_0 <= 'z') { var_r30 = param_0 + 0x8251; } else if (param_0 >= 0xA0 && param_0 <= 0xDF) { int sp8 = param_0 - 0xA0; var_r30 = char_table[sp8]; } else { switch (param_0) { case 0x20: var_r30 = 0x8140; break; case 0x21: var_r30 = 0x8149; break; case 0x22: var_r30 = 0x8168; break; case 0x23: var_r30 = 0x8194; break; case 0x24: var_r30 = 0x8190; break; case 0x25: var_r30 = 0x8193; break; case 0x26: var_r30 = 0x8195; break; case 0x27: var_r30 = 0x8166; break; case 0x28: var_r30 = 0x8169; break; case 0x29: var_r30 = 0x816a; break; case 0x2A: var_r30 = 0x8196; break; case 0x2B: var_r30 = 0x817b; break; case 0x2C: var_r30 = 0x8143; break; case 0x2D: var_r30 = 0x817c; break; case 0x2E: var_r30 = 0x8144; break; case 0x2F: var_r30 = 0x815e; break; case 0x3A: var_r30 = 0x8146; break; case 0x3B: var_r30 = 0x8147; break; case 0x3C: var_r30 = 0x8171; break; case 0x3D: var_r30 = 0x8181; break; case 0x3E: var_r30 = 0x8172; break; case 0x3F: var_r30 = 0x8148; break; case 0x4B: var_r30 = 0x816d; break; case 0x4C: var_r30 = 0x818f; break; case 0x4D: var_r30 = 0x816e; break; case 0x4E: var_r30 = 0x813f; break; case 0x4F: var_r30 = 0x8151; break; case 0x5B: var_r30 = 0x816f; break; case 0x5C: var_r30 = 0x8162; break; case 0x5D: var_r30 = 0x8170; break; case 0x5E: var_r30 = 0x8140; break; case 0x5F: var_r30 = 0; break; } } return var_r30; } /* 80228838-802288A8 223178 0070+00 8/8 0/0 0/0 .text changeKataToHira__Fi */ static u16 changeKataToHira(int param_0) { u16 var_r5 = param_0; if (param_0 >= 0x8340 && param_0 <= 0x837E) { var_r5 = param_0 - 0xA1; } else if (param_0 >= 0x8380 && param_0 <= 0x8393) { var_r5 = param_0 - 0xA2; } else if (param_0 == 0x8394) { var_r5 = 0x82D4; } return var_r5; } /* 802288A8-802288FC 2231E8 0054+00 4/4 0/0 0/0 .text isOutfontKanjiCode__Fi */ static bool isOutfontKanjiCode(int param_0) { switch (param_0) { case 0x5C: case 0x40: case 0x24: case 0x81F2: case 0x81F3: return true; default: return false; } } /* 802288FC-802289A8 22323C 00AC+00 2/2 0/0 0/0 .text getFontCCColorTable__FUcUc */ static u32 getFontCCColorTable(u8 i_colorNo, u8 i_fukiKind) { static const u32 colorTable[9] = { 0xFFFFFFFF, 0xF07878FF, 0xAADC8CFF, 0xA0B4DCFF, 0xDCDC82FF, 0xB4C8E6FF, 0xC8A0DCFF, 0xFFFFFFFF, 0xDCAA78FF, }; if (i_colorNo > 8) { return 0xFFFFFFFF; } if (g_MsgObject_HIO_c.mTextColorDebug) { return (g_MsgObject_HIO_c.mTextColorUpperR[i_colorNo] << 0x18) | (g_MsgObject_HIO_c.mTextColorUpperG[i_colorNo] << 0x10) | (g_MsgObject_HIO_c.mTextColorUpperB[i_colorNo] << 0x8) | 0xFF; } u32 color = colorTable[i_colorNo]; if (i_colorNo != 0) { return color; } switch (i_fukiKind) { case 13: return 0x82E6E6FF; case 8: return 0xFFFFFFFF; case 14: return 0x96DC64FF; default: return color; } } /* 802289A8-80228A54 2232E8 00AC+00 2/2 0/0 0/0 .text getFontGCColorTable__FUcUc */ static u32 getFontGCColorTable(u8 i_colorNo, u8 i_fukiKind) { static const u32 colorTable[9] = { 0xFFFFFFFF, 0xF07878FF, 0xAADC8CFF, 0xA0B4DCFF, 0xDCDC82FF, 0xB4C8E6FF, 0xC8A0DCFF, 0xFFFFFFFF, 0xDCAA78FF, }; if (i_colorNo > 8) { return 0xFFFFFFFF; } if (g_MsgObject_HIO_c.mTextColorDebug) { return (g_MsgObject_HIO_c.mTextColorLowerR[i_colorNo] << 0x18) | (g_MsgObject_HIO_c.mTextColorLowerG[i_colorNo] << 0x10) | (g_MsgObject_HIO_c.mTextColorLowerB[i_colorNo] << 0x8) | 0xFF; } u32 color = colorTable[i_colorNo]; if (i_colorNo != 0) { return color; } switch (i_fukiKind) { case 13: return 0x82E6E6FF; case 8: return 0xFFFFFFFF; case 14: return 0x96DC64FF; default: return color; } } /* 80228A54-80228ACC 223394 0078+00 3/2 0/0 0/0 .text getOutFontNumberType__Fi */ static u8 getOutFontNumberType(int param_0) { switch (param_0) { case 0: return 0x1F; case 1: return 0x20; case 2: return 0x21; case 3: return 0x22; case 4: return 0x23; case 5: return 0x24; case 6: return 0x25; case 7: return 0x26; case 8: return 0x27; case 9: return 0x28; default: return 0x1F; } } /* 80228ACC-80228B04 22340C 0038+00 3/3 0/0 0/0 .text getPohNum__Fv */ static u8 getPohNum() { u8 num = 0; if (dComIfGs_getPohSpiritNum() < 20) { num = 20 - dComIfGs_getPohSpiritNum(); } else if (dComIfGs_getPohSpiritNum() < 60) { num = 60 - dComIfGs_getPohSpiritNum(); } return num; } /* 80228B04-80228CB4 223444 01B0+00 0/0 1/1 0/0 .text __ct__19jmessage_tReferenceFv */ jmessage_tReference::jmessage_tReference() { mpStick = new STControl(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x2000); mpStick->setWaitParm(5, 2, 3, 2, 0.9f, 0.5f, 0, 0x800); mActorPos.set(0.0f, 0.0f, 0.0f); mpSelMsgPtr = NULL; mpFont = NULL; mFontSizeX = 0.0f; mFontSizeY = 0.0f; mRubySize = 0.0f; mLineSpace = 0.0f; mCharSpace = 0.0f; mRubyCharSpace = 0.0f; mSelFontSize = 0.0f; mSelRubySize = 0.0f; mSelTBoxWidth = 0.0f; mSelCharSpace = 0.0f; mSelCharSpace = 0.0f; mDistanceScale = 1.0f; mAddCharAllAlphaRate = 0.0f; mCharAllAlphaRate = 0.0f; mAddCharAlpha = 0.0f; mCharAlpha = 0.0f; mStartLineCount = 0; mEndLineCount = 0; mLineCount = 0; field_0x5d2 = 0; mPageNum = 0; mSendTimer = 0; mDemoFrame = 0; mCharCnt = 0; mNowLightCount = 0; mDrawLightCount = 0; resetCharCountBuffer(); mNowColorType = 0; mTopColorType = 0; mButtonTagStopFlag = 0; mPageEndCount = 0; mSelectNum = 0; mSelectType = 0; mSelectPos = 0; mSendFlag = 0; mStopFlag = 0; mpStatus = NULL; mpObjectPtr = NULL; mSelectRubyFlag = 0; mInputFigure = 0; mOutFontRupeeColor = 0; mNowWordCount = 0; mTopWordCount = 0; resetCharactor(); resetWord(); mSelectSetCancelFlag = 0; mBombNameUseFlag = 0; mRevoMessageID = 0; mBatchColorFlag = 0; mTopTagScale = 0; mNowTagScale = 0; } /* 80228CB4-80228D28 2235F4 0074+00 1/0 0/0 0/0 .text __dt__19jmessage_tReferenceFv */ jmessage_tReference::~jmessage_tReference() { delete mpStick; mpStick = NULL; } /* 80228D28-80228DE0 223668 00B8+00 1/1 0/0 0/0 .text calcDistance__19jmessage_tReferenceFv */ void jmessage_tReference::calcDistance() { if (mActorPos.x == 0.0f && mActorPos.y == 0.0f && mActorPos.z == 0.0f) { mDistanceScale = 1.0f; } else { fopAc_ac_c* player = dComIfGp_getPlayer(0); (mActorPos - player->attention_info.position).absXZ(); mDistanceScale = 1.0f; } } /* 80228DE0-80228E6C 223720 008C+00 5/5 0/0 0/0 .text getLineMax__19jmessage_tReferenceFv */ u8 jmessage_tReference::getLineMax() { int line_max; if (isKanban()) { line_max = 7; } else if (isBook()) { line_max = 9; } else if (isStaffRoll()) { line_max = 10; } else if (isSaveSeq()) { line_max = 6; } else { line_max = 4; } return line_max; } /* 80228E6C-80228EA0 2237AC 0034+00 2/2 0/0 0/0 .text isKanban__19jmessage_tReferenceFv */ bool jmessage_tReference::isKanban() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isKanbanMessage(); } /* 80228EA0-80228ED4 2237E0 0034+00 2/2 0/0 0/0 .text isPlaceName__19jmessage_tReferenceFv */ bool jmessage_tReference::isPlaceName() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isPlaceMessage(); } /* 80228ED4-80228F08 223814 0034+00 2/2 0/0 0/0 .text isBossName__19jmessage_tReferenceFv */ bool jmessage_tReference::isBossName() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isBossMessage(); } /* 80228F08-80228F3C 223848 0034+00 2/2 0/0 0/0 .text isSaveSeq__19jmessage_tReferenceFv */ bool jmessage_tReference::isSaveSeq() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isSaveMessage(); } /* 80228F3C-80228F70 22387C 0034+00 2/2 0/0 0/0 .text isBook__19jmessage_tReferenceFv */ bool jmessage_tReference::isBook() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isBookMessage(); } /* 80228F70-80228FA4 2238B0 0034+00 3/3 0/0 0/0 .text isStaffRoll__19jmessage_tReferenceFv */ bool jmessage_tReference::isStaffRoll() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isStaffMessage(); } /* 80228FA4-80228FD8 2238E4 0034+00 1/1 0/0 0/0 .text isHowl__19jmessage_tReferenceFv */ u8 jmessage_tReference::isHowl() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isHowlMessage(); } /* 80228FD8-8022900C 223918 0034+00 2/2 0/0 0/0 .text isMidona__19jmessage_tReferenceFv */ bool jmessage_tReference::isMidona() { if (getObjectPtr() == NULL) { return false; } return getObjectPtr()->isMidonaMessage(); } /* 8022900C-80229034 22394C 0028+00 1/1 0/0 0/0 .text resetReference__19jmessage_tReferenceFv */ void jmessage_tReference::resetReference() { mSendTimer = 0; mSendFlag = 0; mStartLineCount = 0; mEndLineCount = 0; mLineCount = 0; field_0x5d2 = 0; mSelectNum = 0; mSelectType = 0; } /* 80229034-80229168 223974 0134+00 0/0 1/1 0/0 .text pageSend__19jmessage_tReferenceFv */ void jmessage_tReference::pageSend() { field_0x5d2++; mLineCount = 0; mStartLineCount = mEndLineCount; mText[0] = 0; mTextS[0] = 0; mRuby[0] = 0; for (int i = 0; i < 3; i++) { mSelText[i][0] = 0; mSelRuby[i][0] = 0; } mSendFlag = 0; mSendTimer = 0; mSelectNum = 0; mSelectType = 0; mCharCnt = 0; if (mNowColorType != mTopColorType) { mTopColorType = mNowColorType; } mTopWordCount = mNowWordCount; mCharAlpha = 0.0f; if (getForm() == 8) { setAddCharAllAlphaRate(1.0f / (g_MsgObject_HIO_c.mBatchDisplayWeight_8 + 1.0f)); setCharAllAlphaRate(0.0f); } else if (getForm() == 9) { setAddCharAllAlphaRate(1.0f / (g_MsgObject_HIO_c.mBatchDisplayWeight_9 + 1.0f)); setCharAllAlphaRate(0.0f); } mTopTagScale = mNowTagScale; } /* 80229168-802294A8 223AA8 0340+00 0/0 2/2 0/0 .text selectMessage__19jmessage_tReferenceFv */ void jmessage_tReference::selectMessage() { if (mSelectNum != 0) { mpStick->checkTrigger(); if (mSelectType == 0) { if (mpStick->checkUpTrigger()) { if (mSelectNum == 2) { if (mSelectPos == 1) { mSelectPos = 0; Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else if (mSelectNum == 3 && mSelectPos != 0) { mSelectPos--; Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else if (mpStick->checkDownTrigger()) { if (mSelectNum == 2) { if (mSelectPos == 0) { mSelectPos = 1; Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else if (mSelectNum == 3 && mSelectPos < 2) { mSelectPos++; Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } } else if (mpStick->checkLeftTrigger()) { if (mSelectPos == 1) { mSelectPos = 0; getObjectPtr()->getSequenceProcessor()->calcStringLength(); Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } else if (mSelectPos == 2) { mSelectPos = 1; getObjectPtr()->getSequenceProcessor()->calcStringLength(); Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else if (mpStick->checkRightTrigger()) { if (mSelectPos == 0) { mSelectPos = 1; getObjectPtr()->getSequenceProcessor()->calcStringLength(); Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } else if (mSelectPos == 1 && mSelectNum == 3) { mSelectPos = 2; getObjectPtr()->getSequenceProcessor()->calcStringLength(); Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } } } /* 802294A8-80229730 223DE8 0288+00 0/0 1/1 0/0 .text inputNumber__19jmessage_tReferenceFv */ void jmessage_tReference::inputNumber() { mpStick->checkTrigger(); s16 input_val = getObjectPtr()->getInputValue(); s16 new_input_val = input_val; u8 max_figure = 0; if (dComIfGs_getRupee() >= 1000) { max_figure = 3; } else if (dComIfGs_getRupee() >= 100) { max_figure = 2; } else if (dComIfGs_getRupee() >= 10) { max_figure = 1; } if (mpStick->checkUpTrigger()) { switch (mInputFigure) { case 0: new_input_val = input_val + 1; break; case 1: new_input_val = input_val + 10; break; case 2: new_input_val = input_val + 100; break; case 3: new_input_val = input_val + 1000; break; } } else if (mpStick->checkDownTrigger()) { switch (mInputFigure) { case 0: new_input_val = input_val - 1; break; case 1: new_input_val = input_val - 10; break; case 2: new_input_val = input_val - 100; break; case 3: new_input_val = input_val - 1000; break; } } else if (mpStick->checkLeftTrigger()) { if (mInputFigure < max_figure) { mInputFigure++; Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else if (mpStick->checkRightTrigger()) { if (mInputFigure != 0) { mInputFigure--; Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } if (new_input_val < 0) { new_input_val = 0; } if (new_input_val > dComIfGs_getRupee()) { new_input_val = dComIfGs_getRupee(); } if (new_input_val != input_val) { Z2GetAudioMgr()->seStart(Z2SE_SY_TALK_CURSOR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } decideOutFontRupeeColor(new_input_val); getObjectPtr()->setInputValue(new_input_val); } /* 80229730-80229744 224070 0014+00 5/5 0/0 0/0 .text getWord__19jmessage_tReferenceFi */ char* jmessage_tReference::getWord(int i_no) { return mWord[i_no]; } /* 80229744-80229768 224084 0024+00 2/2 0/0 0/0 .text resetWord__19jmessage_tReferenceFv */ void jmessage_tReference::resetWord() { for (int i = 0; i < 10; i++) { mWord[i][0] = 0; } } /* 80229768-80229788 2240A8 0020+00 3/3 0/0 0/0 .text setCharactor__19jmessage_tReferenceFUs */ void jmessage_tReference::setCharactor(u16 param_0) { mCharactor.data[mCharactor.field_0x40c] = param_0; mCharactor.field_0x40c++; } /* 80229788-802297B0 2240C8 0028+00 3/3 0/0 0/0 .text addCharactor__19jmessage_tReferenceFUs */ void jmessage_tReference::addCharactor(u16 param_0) { if (param_0 == mCharactor.data[mCharactor.field_0x40e]) { mCharactor.field_0x40e++; } } /* 802297B0-802297E4 2240F0 0034+00 3/3 0/0 0/0 .text resetCharactor__19jmessage_tReferenceFv */ void jmessage_tReference::resetCharactor() { for (int i = 0; i < 0x200; i++) { mCharactor.data[i] = 0; } mCharactor.field_0x40c = 0; mCharactor.field_0x40e = 0; mCharactor.mCountBackUp = 0; } /* 802297E4-80229810 224124 002C+00 0/0 1/1 0/0 .text * shiftCharCountBuffer__19jmessage_tReferenceFv */ void jmessage_tReference::shiftCharCountBuffer() { for (int i = 30; i > 0; i--) { mCharCountBuffer[i] = mCharCountBuffer[i - 1]; } mCharCountBuffer[0] = getNowLightCount(); } /* 80229810-80229848 224150 0038+00 1/1 5/5 0/0 .text * resetCharCountBuffer__19jmessage_tReferenceFv */ void jmessage_tReference::resetCharCountBuffer() { for (int i = 0; i < 31; i++) { mCharCountBuffer[i] = 0; } mLightBatchFlag = false; mBatchFlag = false; resetNowLightCount(); resetDrawLightCount(); } /* 80229848-8022986C 224188 0024+00 1/1 0/0 0/0 .text * allsetCharCountBuffer__19jmessage_tReferenceFv */ void jmessage_tReference::allsetCharCountBuffer() { for (int i = 0; i < 31; i++) { mCharCountBuffer[i] = getNowLightCount(); } } /* 8022986C-802298DC 2241AC 0070+00 2/2 0/0 0/0 .text isCharSend__19jmessage_tReferenceFv */ bool jmessage_tReference::isCharSend() { s16 delay_frame; s16 var_r5; if (getFukiKind() == 8) { delay_frame = g_MsgObject_HIO_c.mHaloDelayFrameSpirit; var_r5 = delay_frame; } else { delay_frame = g_MsgObject_HIO_c.mHaloDelayFrame; var_r5 = delay_frame; } if (var_r5 < 0) { var_r5 *= -1; } if (delay_frame < 0 && getDrawLightCount() >= getCharCountBuffer(var_r5)) { return false; } return true; } /* 802298DC-8022994C 22421C 0070+00 1/1 0/0 0/0 .text isLightSend__19jmessage_tReferenceFv */ bool jmessage_tReference::isLightSend() { s16 delay_frame; s16 var_r5; if (getFukiKind() == 8) { delay_frame = g_MsgObject_HIO_c.mHaloDelayFrameSpirit; var_r5 = delay_frame; } else { delay_frame = g_MsgObject_HIO_c.mHaloDelayFrame; var_r5 = delay_frame; } if (var_r5 < 0) { var_r5 *= -1; } if (delay_frame > 0 && getDrawLightCount() >= getCharCountBuffer(var_r5)) { return false; } return true; } /* 8022994C-802299AC 22428C 0060+00 0/0 1/1 0/0 .text isLightEnd__19jmessage_tReferenceFv */ bool jmessage_tReference::isLightEnd() { s16 delay_frame; if (getFukiKind() == 8) { delay_frame = g_MsgObject_HIO_c.mHaloDelayFrameSpirit; } else { delay_frame = g_MsgObject_HIO_c.mHaloDelayFrame; } if (delay_frame < 0) { delay_frame *= -1; } if (getCharCountBuffer(delay_frame) == getCharCountBuffer(0)) { return true; } return false; } /* 802299AC-802299EC 2242EC 0040+00 2/2 0/0 0/0 .text * decideOutFontRupeeColor__19jmessage_tReferenceFi */ void jmessage_tReference::decideOutFontRupeeColor(int i_inputVal) { s16 payment = getObjectPtr()->getNowTotalPayment(); s16 price = getObjectPtr()->getNowTotalPrice(); int diff = price - payment; if (diff > i_inputVal) { mOutFontRupeeColor = 1; } else if (diff == i_inputVal) { mOutFontRupeeColor = 0; } else { mOutFontRupeeColor = 2; } } /* 802299EC-80229A28 22432C 003C+00 0/0 1/1 0/0 .text __ct__17jmessage_tControlFv */ jmessage_tControl::jmessage_tControl() {} /* 80229A28-80229AC4 224368 009C+00 1/1 0/0 0/0 .text * __ct__26jmessage_tMeasureProcessorFPC19jmessage_tReference */ jmessage_tMeasureProcessor::jmessage_tMeasureProcessor(jmessage_tReference const* param_0) : TRenderingProcessor(param_0) { jmessage_tReference* reference_p = (jmessage_tReference*)getReference(); reference_p->resetCharactor(); field_0x38 = 1.0f; mTotalLineCnt = 0; field_0x3e = 0; field_0x40 = 0; field_0x48 = 0; field_0x44 = 0; mSelectType = 0; field_0x46 = 0; field_0x47 = 0; field_0x49 = 0; mPageLineMax = reference_p->getLineMax(); field_0x4b = 0; field_0x4c = 0; field_0x4d = 0; } /* 80229AC4-80229CB4 224404 01F0+00 1/0 0/0 0/0 .text * do_begin__26jmessage_tMeasureProcessorFPCvPCc */ void jmessage_tMeasureProcessor::do_begin(void const* param_0, char const* param_1) { jmessage_tReference* reference_p = (jmessage_tReference*)getReference(); reference_p->resetCharactor(); reference_p->setRevoMessageID(0); field_0x38 = 1.0f; field_0x4c = *((u8*)param_0 + 8); field_0x42 = *((u8*)param_0 + 0xE); for (int i = 0; i < 40; i++) { reference_p->setLineLength(i, 0.0f, 0.0f); reference_p->setPageLine(i, 0); reference_p->setPageLineMax(i, 0); reference_p->setPageType(i, 0); reference_p->setLineArrange(i, *((u8*)param_0 + 0xD)); reference_p->setLineScale(i, 100); if (reference_p->isPlaceName() || reference_p->isStaffRoll() || reference_p->isBossName() || reference_p->getFukiKind() == 9) { reference_p->setLineArrange(i, 1); } else { if (*((u16*)param_0 + 0x2) == 0x2A5) { reference_p->setLineArrange(i, 1); } if (*((u8*)param_0 + 0xD) == 0) { reference_p->setLineArrange(i, 1); } } } for (int i = 0; i < 3; i++) { reference_p->setSelLength(i, 0.0f); reference_p->offSelectRubyFlag(i); } reference_p->setPageEndCount(0); mTotalLineCnt = 0; field_0x3e = 0; field_0x40 = 0; field_0x48 = 0; field_0x44 = 0; mSelectType = 0; field_0x46 = 0; field_0x47 = 0; field_0x49 = 0; mPageLineMax = reference_p->getLineMax(); reference_p->resetWord(); field_0x4b = 0; dMsgObject_c* object_p = reference_p->getObjectPtr(); object_p->offAutoMessageFlag(); if (!reference_p->isSelectSetCancelFlag()) { object_p->resetSelectBomBag(); } if (reference_p->getDistanceScale() != 1.0f) { do_scale(field_0x38); } } /* 80229CB4-80229E3C 2245F4 0188+00 1/0 0/0 0/0 .text do_end__26jmessage_tMeasureProcessorFv */ void jmessage_tMeasureProcessor::do_end() { if (field_0x49 == 0) { field_0x3e++; } jmessage_tReference* ref = (jmessage_tReference*)getReference(); if (field_0x46 == 0) { if (field_0x49 > 1) { ref->setPageLine(field_0x40, field_0x3e - (field_0x49 - 1)); ref->setPageLineMax(field_0x40, field_0x3e - (field_0x49 - 1)); } else { ref->setPageLine(field_0x40, field_0x3e); ref->setPageLineMax(field_0x40, field_0x3e); } } ref->setPageEndCount(field_0x40); do_pageType(field_0x3e); Z2GetSpeechMgr2()->setString(ref->getCharSoundInfo().data, ref->getCharSoundInfo().field_0x40c, field_0x4c, field_0x42); } /* 80229E3C-8022A268 22477C 042C+00 1/0 0/0 0/0 .text do_character__26jmessage_tMeasureProcessorFi */ void jmessage_tMeasureProcessor::do_character(int param_0) { jmessage_tReference* ref = (jmessage_tReference*)getReference(); JUTFont* font = ref->getFont(); if (field_0x44 == 0) { if (font->isLeadByte_ShiftJIS(param_0)) { if (!isOutfontKanjiCode(param_0)) { u16 var_r25 = change1ByteTo2Bytes(param_0); ref->setCharactor(changeKataToHira(var_r25)); } } else if (param_0 < 0x8800 && !isOutfontKanjiCode(param_0)) { ref->setCharactor(changeKataToHira(param_0)); } } if (param_0 == 10) { mTotalLineCnt++; field_0x3e++; if (field_0x44 != 0) { ref->setLineArrange(mTotalLineCnt, 1); field_0x44--; } field_0x48 = 0; if (field_0x49 != 0) { field_0x49++; } else { field_0x49 = 1; } if (mSelectType == 0 && field_0x3e >= mPageLineMax) { ref->setPageLine(field_0x40, mPageLineMax - (field_0x49 - 1)); ref->setPageLineMax(field_0x40, field_0x3e); do_pageType(mPageLineMax - (field_0x49 - 1)); if (field_0x46 == 0) { field_0x40++; } field_0x3e = 0; mPageLineMax = ref->getLineMax(); field_0x49 = 0; if (field_0x46 == 0 && field_0x38 > 1.0f && field_0x48 == 0) { field_0x48 = 1; mPageLineMax--; JUT_ASSERT(0x665, mPageLineMax > 0); ref->setPageType(field_0x40, 2); } } if (mTotalLineCnt < ((4)*10)) { JUT_ASSERT(0x672, mTotalLineCnt < ((4)*10)); } } else { if (field_0x49 != 0) { field_0x49 = 0; } ref->addLineLength(mTotalLineCnt, field_0x38 * font->getWidth(param_0) / (f32)font->getCellWidth(), 1.0f); if (field_0x46 != 0) { f32 var_f31 = ref->getSelFontSize() / (f32)font->getCellWidth(); ref->addSelLength(field_0x46 - 1, (var_f31 * (field_0x38 * font->getWidth(param_0))) + ref->getSelCharSpace()); } if (field_0x38 > 1.0f) { if (field_0x3e == 1 && ref->getPageType(field_0x40) == 2) { ref->setPageType(field_0x40, 4); ref->setLineScale(mTotalLineCnt, ref->getLineScale(0)); } else if (field_0x3e == 2 && ref->getPageType(field_0x40) == 4) { ref->setPageType(field_0x40, 5); ref->setLineScale(mTotalLineCnt, ref->getLineScale(0)); } } } } static void dummyString() { DEAD_STRING("'"); DEAD_STRING("s"); } /* 8022A268-8022B0B0 224BA8 0E48+00 5/0 0/0 0/0 .text do_tag__26jmessage_tMeasureProcessorFUlPCvUl */ bool jmessage_tMeasureProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_size) { jmessage_tReference* reference_p = (jmessage_tReference*)getReference(); switch (i_tag & 0xFF0000) { case 0x10000: case 0x20000: return true; case 0xFF0000: switch (i_tag) { case 0xFF0000: return true; case 0xFF0001: u16 scale = *(u16*)i_data; reference_p->setLineScale(mTotalLineCnt, scale); do_scale(scale / 100.0f); return true; case 0xFF0002: case 0xFFFF02: do_rubyset(i_data, i_size); if (field_0x46 != 0) { if (mSelectType == 2) { if (!reference_p->isSelectRubyFlag(field_0x46 - 1)) { reference_p->onSelectRubyFlag(field_0x46 - 1); } } else if (mSelectType == 3) { if (!reference_p->isSelectRubyFlag(field_0x46 - 1)) { reference_p->onSelectRubyFlag(field_0x46 - 1); } } } return true; } case 0: switch (i_tag) { case 1: reference_p->setCharAllAlphaRate(1.0f); return true; case 2: return true; case 0x3e: char msg_num1[4]; sprintf(msg_num1, "%d", dComIfGp_getMessageCountNumber() / 100); push_word(msg_num1); return true; case 0x3f: char msg_num2[4]; sprintf(msg_num2, "%d", dComIfGp_getMessageCountNumber() % 100); push_word(msg_num2); return true; case 3: case 4: if (*(u16*)i_data != 0) { reference_p->mpObjectPtr->onAutoMessageFlag(); } return true; case 0x28: reference_p->setDemoFrame(*(u32*)i_data); return true; case 0: if (field_0x49 != 0) { field_0x49 = 0; } char player_name[100]; strcpy(player_name, dComIfGs_getPlayerName()); push_word(player_name); return true; case 0x22: if (field_0x49 != 0) { field_0x49 = 0; } char horse_name[100]; strcpy(horse_name, dComIfGs_getHorseName()); push_word(horse_name); return true; case 0x35: if (field_0x49 != 0) { field_0x49 = 0; } stack_pushCurrent(dMsgObject_getWord()); return true; case 0x29: if (field_0x49 != 0) { field_0x49 = 0; } stack_pushCurrent(reference_p->getObjectPtr()->getSmellName()); return true; case 0x2b: if (field_0x49 != 0) { field_0x49 = 0; } stack_pushCurrent(reference_p->getObjectPtr()->getPortalName()); return true; case 0x2d: if (field_0x49 != 0) { field_0x49 = 0; } dMsgObject_c* object_p = reference_p->getObjectPtr(); if (!reference_p->isSelectSetCancelFlag()) { reference_p->onBombNameUseFlag(); } stack_pushCurrent(object_p->getBombName()); return true; case 0x3b: if (field_0x49 != 0) { field_0x49 = 0; } stack_pushCurrent(reference_p->getObjectPtr()->getInsectName()); return true; case 0x3c: if (field_0x49 != 0) { field_0x49 = 0; } stack_pushCurrent(reference_p->getObjectPtr()->getLetterName()); return true; case 8: if (field_0x46 == 0) { if (field_0x3e > 0) { reference_p->setPageLine(field_0x40, field_0x3e); reference_p->setPageLineMax(field_0x40, field_0x3e); do_pageType(field_0x3e); field_0x3e = 0; mPageLineMax = reference_p->getLineMax(); field_0x49 = 0; } mSelectType = 2; field_0x44 = 1; field_0x46 = 1; } if (*(u8*)i_data == 1) { reference_p->setSelectPos(field_0x47); } field_0x47++; field_0x46++; reference_p->setLineArrange(mTotalLineCnt, 1); return true; case 9: if (field_0x46 == 0) { if (field_0x3e > 0) { reference_p->setPageLine(field_0x40, field_0x3e); reference_p->setPageLineMax(field_0x40, field_0x3e); do_pageType(field_0x3e); field_0x3e = 0; mPageLineMax = reference_p->getLineMax(); field_0x49 = 0; } mSelectType = 3; field_0x44 = 2; } if (*(u8*)i_data == 1) { reference_p->setSelectPos(field_0x47); } field_0x47++; field_0x46++; reference_p->setLineArrange(mTotalLineCnt, 1); return true; case 0x1f: case 0x34: reference_p->setSelectPos(field_0x47); case 0x1e: case 0x33: field_0x47++; reference_p->setLineArrange(mTotalLineCnt, 0); do_space(0); return true; case 0x20: mSelectType = 1; field_0x38 = 1.0f; do_character(10); stack_pushCurrent(reference_p->getSelMsgPtr()); return true; case 0x21: do_name1(); return true; case 10: case 0xb: case 0xc: case 0xd: case 0xe: case 0xf: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x23: case 0x24: case 0x27: case 0x2a: case 0x2c: case 0x2e: case 0x2f: case 0x39: case 0x3a: do_space(i_tag); return true; case 0x30: do_space(i_tag); if (!reference_p->isSelectSetCancelFlag()) { reference_p->getObjectPtr()->addSelectBomBag(*(u8*)i_data - 1); } return true; case 0x25: for (int i = 0; i < 4; i++) { do_space(0); } return true; case 0x26: return true; case 0x31: char bomb_num_text[40]; u8 sel_bomb_num = reference_p->getObjectPtr()->getSelectBombNum(); dMsgUnit_setTag(7, sel_bomb_num, bomb_num_text); push_word(bomb_num_text); return true; case 0x32: char bomb_price_text[40]; s16 sel_bomb_price = reference_p->getObjectPtr()->getSelectBombPrice(); dMsgUnit_setTag(1, sel_bomb_price, bomb_price_text); push_word(bomb_price_text); return true; case 0x37: u8 bomb_type = fpcNm_ITEM_NORMAL_BOMB; const u8 spA = *(u8*)i_data; if (spA == 1) { bomb_type = fpcNm_ITEM_WATER_BOMB; } else if (spA == 2) { bomb_type = fpcNm_ITEM_POKE_BOMB; } char bomb_max_text[40]; u8 bomb_max = dComIfGs_getBombMax(bomb_type); dMsgUnit_setTag(7, bomb_max, bomb_max_text); push_word(bomb_max_text); return true; case 0x38: char arrow_max_text[40]; u8 arrow_max = dComIfGs_getArrowMax(); dMsgUnit_setTag(0, arrow_max, arrow_max_text); push_word(arrow_max_text); return true; } return true; case 0x40000: switch (i_tag & 0xFF00FFFF) { case 0: push_word(changeCodeToChar(0x24)); return true; case 1: push_word(changeCodeToChar(0x5C)); return true; case 2: push_word(changeCodeToChar(0x40)); return true; case 3: push_word(changeCodeToChar(0x81F2)); return true; case 4: push_word(changeCodeToChar(0x81F3)); return true; case 5: push_word(changeCodeToChar(0x81E3)); return true; case 6: push_word(changeCodeToChar(0x876C)); return true; case 7: push_word(changeCodeToChar(0x8766)); return true; case 8: push_word(changeCodeToChar(0x8765)); return true; case 9: push_word(changeCodeToChar(0x8767)); return true; case 10: push_word(changeCodeToChar(0x8768)); return true; case 11: push_word(changeCodeToChar(0x8769)); return true; case 12: push_word(changeCodeToChar(0x876A)); return true; case 13: push_word(changeCodeToChar(0x876B)); return true; } return false; case 0x50000: char buffer_0[40]; switch (i_tag & 0xFF00FFFF) { case 0: const u8 sp9 = *(u8*)i_data; if (sp9 == 0) { int msg_time_ms = dMeter2Info_getMsgTimeMs(); dMsgUnit_setTag(4, msg_time_ms, buffer_0); } else if (sp9 == 2) { int race_time = dComIfGs_getRaceGameTime(); dMsgUnit_setTag(4, race_time, buffer_0); } else { int time_ms = dMeter2Info_getTimeMs(); dMsgUnit_setTag(4, time_ms, buffer_0); } break; case 1: u32 msg_num_ = dComIfGp_getMessageCountNumber(); dMsgUnit_setTag(0, msg_num_, buffer_0); break; case 2: u32 msg_num = dComIfGp_getMessageCountNumber(); dMsgUnit_setTag(1, msg_num, buffer_0); break; case 9: s16 fund_raise_val = *(u32*)i_data; reference_p->getObjectPtr()->setFundRaisingValue(fund_raise_val); int fund_raising = fund_raise_val - dMsgObject_getFundRaising(); dMsgUnit_setTag(10, fund_raising, buffer_0); break; case 10: u32 letter_num = dMeter2Info_getNewLetterNum(); dMsgUnit_setTag(11, letter_num, buffer_0); break; case 11: u32 poh_num = getPohNum(); dMsgUnit_setTag(12, poh_num, buffer_0); break; case 12: int tmp; if (*(u8*)i_data == 0) { tmp = dComIfGp_getMessageCountNumber(); } else { tmp = dComIfGs_getBalloonScore(); } dMsgUnit_setTag(13, tmp, buffer_0); break; case 3: u32 insect_num; if (*(u8*)i_data == 0) { insect_num = dComIfGs_checkGetInsectNum(); } else { insect_num = 24 - dComIfGs_checkGetInsectNum(); } dMsgUnit_setTag(2, insect_num, buffer_0); break; case 4: dMsgUnit_setTag(3, 0, buffer_0); break; case 5: dMsgUnit_setTag(0x10000, dComIfGp_getNeedLightDropNum(), buffer_0); break; case 6: dMsgUnit_setTag(6, 20 - dComIfGs_getEventReg(0xFF1F), buffer_0); break; case 8: dMsgUnit_setTag(9, (u32)dComIfGp_getMessageCountNumber(), buffer_0); break; case 13: dMsgUnit_setTag(14, (u32)dComIfGp_getMessageCountNumber(), buffer_0); break; case 14: dMsgUnit_setTag(0x10001, (u32)dComIfGp_getMessageCountNumber(), buffer_0); break; case 7: dMsgUnit_setTag(8, dMeter2Info_getNowCount(), buffer_0); break; default: return false; } push_word(buffer_0); return true; case 0x60000: char buffer1[40]; switch (i_tag & 0xFF00FFFF) { case 0: push_word(buffer1); return true; case 1: push_word(buffer1); return true; case 2: push_word(changeCodeToChar(0xB2)); return true; case 3: push_word(changeCodeToChar(0xB3)); return true; case 4: push_word(changeCodeToChar(0xB1)); return true; case 5: push_word(changeCodeToChar(0x89)); return true; case 6: push_word(changeCodeToChar(0xB9)); return true; case 7: push_word(changeCodeToChar(0xBC)); return true; case 8: push_word(changeCodeToChar(0xBD)); return true; case 9: push_word(changeCodeToChar(0xBE)); return true; case 10: case 11: do_space(i_tag); return true; } case 0x30000: switch (i_tag & 0xFF00FFFF) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: do_space(i_tag); return true; case 0: reference_p->setRevoMessageID(*(u32*)i_data); return true; } } return false; } /* 8022B0B0-8022B18C 2259F0 00DC+00 2/2 0/0 0/0 .text do_scale__26jmessage_tMeasureProcessorFf */ void jmessage_tMeasureProcessor::do_scale(f32 param_0) { jmessage_tReference* ref = (jmessage_tReference*)getReference(); field_0x38 = param_0 * ref->getDistanceScale(); if (field_0x38 > 1.0f && field_0x48 == 0) { field_0x48 = 1; mPageLineMax--; JUT_ASSERT(0x930, mPageLineMax > 0); if (field_0x3e == 0) { ref->setPageType(field_0x40, 2); } else if (field_0x3e == 2 && mPageLineMax == 3) { if (ref->getPageType(field_0x40) == 4) { ref->setPageType(field_0x40, 5); } else { ref->setPageType(field_0x40, 8); } } else { ref->setPageType(field_0x40, 3); if (field_0x3e == 1 && ref->getPageType(field_0x40) == 2) { ref->setPageType(field_0x40, 4); } } } } /* 8022B18C-8022B3EC 225ACC 0260+00 2/1 0/0 0/0 .text do_space__26jmessage_tMeasureProcessorFUl */ void jmessage_tMeasureProcessor::do_space(u32 i_tag) { jmessage_tReference* ref = (jmessage_tReference*)getReference(); f32 var_f31 = field_0x38; if (field_0x44 == 0) { u16 var_r30 = 0xFFFF; switch (i_tag & 0xFF0000) { case 0: switch (i_tag) { case 10: var_r30 = 0xFFE0; break; case 11: var_r30 = 0xFFE1; break; case 12: var_r30 = 0xFFE2; break; case 13: var_r30 = 0xFFE3; break; case 14: var_r30 = 0xFFE4; break; case 15: var_r30 = 0xFFE5; break; case 16: var_r30 = 0xFFE6; break; case 17: var_r30 = 0xFFE7; break; case 18: var_r30 = 0xFFE8; break; case 19: var_r30 = 0xFFE9; break; case 20: var_r30 = 0xFFEA; break; case 21: var_r30 = 0xFFEB; break; case 22: var_r30 = 0xFFEC; break; case 23: var_r30 = 0xFFED; break; case 24: var_r30 = 0xFFEE; break; case 25: var_r30 = 0xFFF0; break; case 26: var_r30 = 0xFFF1; break; case 27: var_r30 = 0xFFF2; break; case 28: var_r30 = 0xFFF3; break; case 29: var_r30 = 0xFFF4; break; case 57: var_r30 = 0xFFF5; break; case 58: var_r30 = 0xFFF6; break; } ref->setCharactor(var_r30); break; case 0x30000: switch (i_tag & 0xFF00FFFF) { case 3: case 4: case 5: ref->setCharactor(0xFFFF); break; case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: ref->setCharactor(0xFFFF); break; case 16: case 17: case 18: case 19: case 20: case 6: case 7: case 1: case 2: ref->setCharactor(0xFFFF); } break; case 0x60000: switch (i_tag) { case 10: case 11: ref->setCharactor(0xFFFF); break; } break; } } if (field_0x49 != 0) { field_0x49 = 0; } ref->addLineLength(mTotalLineCnt, var_f31, 1.0f); if (field_0x46 != 0) { ref->addSelLength(field_0x46 - 1, var_f31); } } /* 8022B3EC-8022B454 225D2C 0068+00 3/3 0/0 0/0 .text do_pageType__26jmessage_tMeasureProcessorFi */ void jmessage_tMeasureProcessor::do_pageType(int param_0) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); if (param_0 == 1) { if (pRef->getPageType(field_0x40) == 2) { pRef->setPageType(field_0x40, 1); } } else if (param_0 == 3) { if (pRef->getPageType(field_0x40) == 2) { pRef->setPageType(field_0x40, 6); } else if (pRef->getPageType(field_0x40) == 3) { pRef->setPageType(field_0x40, 7); } } } /* 8022B454-8022B458 225D94 0004+00 1/1 0/0 0/0 .text do_name1__26jmessage_tMeasureProcessorFv */ void jmessage_tMeasureProcessor::do_name1() {} /* 8022B458-8022B4E0 225D98 0088+00 1/1 0/0 0/0 .text * do_rubyset__26jmessage_tMeasureProcessorFPCvUl */ // NONMATCHING - issue with or void jmessage_tMeasureProcessor::do_rubyset(void const* param_0, u32 param_1) { if (field_0x44 == 0) { u8 var_r28 = param_1 - 1; u8* var_r30 = (u8*)param_0; int var_r29 = 0; var_r30++; jmessage_tReference* ref = (jmessage_tReference*)getReference(); while (var_r29 < var_r28) { u8 sp10[3]; sp10[0] = var_r30[var_r29++]; sp10[1] = var_r30[var_r29++]; sp10[2] = 0; int var_r26 = (((s8)sp10[0] & 0xff) << 8) | ((s8)sp10[1] & 0xff); ref->setCharactor(changeKataToHira(var_r26)); } } } /* 8022B4E0-8022B558 225E20 0078+00 1/1 0/0 0/0 .text push_word__26jmessage_tMeasureProcessorFPc */ void jmessage_tMeasureProcessor::push_word(char* param_0) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); strcpy(pRef->getWord(field_0x4b), param_0); stack_pushCurrent(pRef->getWord(field_0x4b)); field_0x4b++; } /* 8022B558-8022B5F4 225E98 009C+00 0/0 1/1 0/0 .text * __ct__27jmessage_tSequenceProcessorFPC19jmessage_tReferenceP17jmessage_tControl */ // NONMATCHING jmessage_tSequenceProcessor::jmessage_tSequenceProcessor(jmessage_tReference const* param_0, jmessage_tControl* param_1) : JMessage::TSequenceProcessor(param_0, param_1), mMeasureProcessor(param_0) { field_0xa8 = 1; field_0xa4 = field_0xa8; field_0xa6 = 0; field_0xad = 0; mMouthCheck = 0; field_0xb1 = 0; field_0xae = 0; mForceForm = 0xff; field_0xb2 = 0; field_0xaa = 0; field_0xb5 = 0; field_0xac = 0; field_0xb3 = 0; field_0xb4 = 0; } /* 8022B654-8022B658 225F94 0004+00 1/0 0/0 0/0 .text do_reset__27jmessage_tSequenceProcessorFv */ void jmessage_tSequenceProcessor::do_reset() {} /* 8022B658-8022BA3C 225F98 03E4+00 1/0 0/0 0/0 .text * do_begin__27jmessage_tSequenceProcessorFPCvPCc */ void jmessage_tSequenceProcessor::do_begin(void const* param_1, char const* param_2) { field_0x9c = param_1; field_0xa0 = param_2; if (((u8*)param_1)[9] == 8) { field_0xa8 = g_MsgObject_HIO_c.mDisplaySpeedSpirit; } else { field_0xa8 = g_MsgObject_HIO_c.mDisplaySpeed; } field_0xa4 = field_0xa8; field_0xa6 = 0; field_0xad = 0; mMouthCheck = 0; field_0xb1 = 0; field_0xb2 = 0; field_0xaa = 0; field_0xac = 0; field_0xb4 = ((u8*)param_1)[8]; field_0xb3 = ((u8*)param_1)[14]; jmessage_tReference* pRef = (jmessage_tReference*)getReference(); pRef->resetCharCnt(); pRef->setNowColorType(0); pRef->setTopColorType(0); pRef->setNowWordCount(0); pRef->setTopWordCount(0); pRef->setBatchColorFlag(0); pRef->setTopTagScale(0); pRef->setNowTagScale(0); pRef->calcDistance(); dComIfGp_setMesgAnimeAttrInfo(((u8*)param_1)[16]); dComIfGp_setMesgFaceAnimeAttrInfo(((u8*)param_1)[17]); if (dComIfGp_isHeapLockFlag() == 2) { pRef->setFukiPosType(1); } else { if (dComIfGp_isHeapLockFlag() == 3) { pRef->setFukiPosType(0); } else { pRef->setFukiPosType(((u8*)param_1)[11]); } } pRef->setFukiKind(((u8*)param_1)[9]); if (dMsgObject_getMsgOutputType() != 0xff) { pRef->setForm(dMsgObject_getMsgOutputType()); } else { pRef->setForm(((u8*)param_1)[10]); } pRef->setArrange(((u8*)param_1)[13]); pRef->setForm(((u8*)param_1)[13]); pRef->setMsgID(((u16*)param_1)[2]); if (((u16*)param_1)[3] != 0) { dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[((u16*)param_1)[3]]); } pRef->getObjectPtr()->talkStartInit(); mMeasureProcessor.process_messageEntryText(this, param_1, param_2); if (pRef->isBombNameUseFlag()) { pRef->offBombNameUseFlag(); calcStringLength(); } f32 tboxWidth = pRef->getSelLength(0); if (tboxWidth < pRef->getSelLength(1)) { tboxWidth = pRef->getSelLength(1); } if (tboxWidth < pRef->getSelLength(2)) { tboxWidth = pRef->getSelLength(2); } tboxWidth += 10.0f; if (tboxWidth > pRef->getSelTBoxWidth()) { pRef->setSelTBoxWidth(tboxWidth); } if (dMsgObject_getMsgOutputType() != 0xff) { field_0xae = dMsgObject_getMsgOutputType(); } else { field_0xae = ((u8*)param_1)[10]; } if (mForceForm != 0xff) { field_0xae = mForceForm; } pRef->setAddCharAlpha(255.0f); pRef->setAddCharAllAlphaRate(1.0f); pRef->setCharAllAlphaRate(1.0f); if (field_0xae == 3) { pRef->setAddCharAllAlphaRate(1.0f / (1.0f + g_MsgObject_HIO_c.mBatchDisplayWeight_3)); pRef->setCharAllAlphaRate(0.0f); } else if (field_0xae == 8) { pRef->setAddCharAllAlphaRate(1.0f / (1.0f + g_MsgObject_HIO_c.mBatchDisplayWeight_8)); pRef->setCharAllAlphaRate(0.0f); } else if (field_0xae == 9) { pRef->setAddCharAllAlphaRate(1.0f / (1.0f + g_MsgObject_HIO_c.mBatchDisplayWeight_9)); pRef->setCharAllAlphaRate(0.0f); } else if (field_0xae == 5) { field_0xa4 = g_MsgObject_HIO_c.mCharDisplayWeight_5; pRef->setAddCharAlpha(255.0f / (1.0f + field_0xa4)); } pRef->resetReference(); field_0xb5 = 0; } /* 8022BA3C-8022BB7C 22637C 0140+00 1/0 0/0 0/0 .text do_end__27jmessage_tSequenceProcessorFv */ void jmessage_tSequenceProcessor::do_end() { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); if (dMsgObject_getSelectWordFlag() != 0) { pRef->setSelectNum(dMsgObject_getSelectWordFlag()); pRef->setSelectType(0); pRef->setSelectPos(0); } mMouthCheck = 0; if (pRef->getSelectNum() == 2) { if (pRef->getSelectType() == 0) { pRef->setStopFlag(2); } else { pRef->setStopFlag(4); } } else { if (pRef->getSelectNum() == 3) { if (pRef->getSelectType() == 0) { if (!pRef->isMidona()) { pRef->setStopFlag(3); } } else { pRef->setStopFlag(5); } } else { if (pRef->getSendFlag() == 5) { pRef->setStopFlag(6); } else { pRef->setStopFlag(7); } } } if (dComIfGp_checkMesgBgm()) { dComIfGp_setMesgBgmOff(); } if (mForceForm != 0xff) { mForceForm = 0xff; } if (pRef->isLightBatchFlag()) { pRef->allsetCharCountBuffer(); } pRef->setNowLightCount(0xff); } /* 8022BB7C-8022BFE0 2264BC 0464+00 2/0 0/0 0/0 .text do_isReady__27jmessage_tSequenceProcessorFv */ bool jmessage_tSequenceProcessor::do_isReady() { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); #ifdef DEBUG if (pRef->getRevoMessageID() == 0) { #endif if (dComIfGp_checkMesgBgm()) { bool isItemMusicPlaying = true; if (mDoAud_checkPlayingSubBgmFlag() != Z2BGM_ITEM_GET && mDoAud_checkPlayingSubBgmFlag() != Z2BGM_ITEM_GET_MINI) { dComIfGp_setMesgBgmOff(); isItemMusicPlaying = false; } if (isItemMusicPlaying) { return 0; } } if (pRef->isButtonTagStopFlag()) { if (mDoCPd_c::getTrigA(0) != 0) { pRef->offButtonTagStopFlag(); pRef->onLightBatchFlag(); } return 0; } if (pRef->isKanban() || pRef->isPlaceName() || pRef->isStaffRoll() || pRef->isBossName() || pRef->isSaveSeq() || pRef->isHowl()) { if (pRef->getStatus() == 2 || pRef->getStatus() == 6 || pRef->getStatus() == 11 || pRef->getStatus() == 5) { if (pRef->getLineCount() < pRef->getNowPageLineMax() || pRef->getStatus() == 11) { field_0xae = 1; field_0xa4 = 0; pRef->onBatchFlag(); pRef->setCharCnt(0x200); field_0xa4 = field_0xa8; return 1; } if (field_0xaa == pRef->getPageEndCount()) { return 1; } pRef->setStopFlag(1); field_0xaa++; } } else if (pRef->isBook()) { if (pRef->getStatus() == 2 || pRef->getStatus() == 6) { if (pRef->getLineCount() < pRef->getNowPageLineMax()) { field_0xae = 1; field_0xa4 = 0; pRef->onBatchFlag(); pRef->setCharCnt(0x200); return 1; } if (pRef->getPageEndCount() == pRef->getPageNum()) { return 1; } pRef->setStopFlag(1); field_0xaa = field_0xaa + 1; } } else if ((pRef->getStatus() == 6 || pRef->getStatus() == 11 || (pRef->getStatus() == 8 || pRef->getStatus() == 9) && pRef->isMidona()) || (pRef->getStatus() == 2 && pRef->isMidona())) { if (pRef->getLineCount() < pRef->getNowPageLineMax()) { switch (field_0xae) { case 0: case 5: case 6: if (mDoCPd_c::getTrigA(0) != 0 || field_0xb2 != 0) { field_0xa4 = 0; pRef->onBatchFlag(); pRef->setCharCnt(0x200); } break; case 1: case 3: case 8: case 9: field_0xa4 = 0; pRef->onBatchFlag(); pRef->setCharCnt(0x200); break; case 2: if (field_0xb2 != 0) { field_0xa4 = 0; } break; } if (field_0xa4 > 0) { field_0xa4--; return 0; } field_0xa6++; if (field_0xa6 >= 2) { field_0xa4 = field_0xa8; field_0xa6 = 0; } if (field_0xb1 != 0) { field_0xb1 = 0; } else if (mMouthCheck == 0) { mMouthCheck = 1; } if (field_0xae == 5) { field_0xa4 = g_MsgObject_HIO_c.mCharDisplayWeight_5; } return 1; } if (pRef->getPageEndCount() == pRef->getPageNum()) { return 1; } pRef->setStopFlag(1); mMouthCheck = 0; field_0xaa++; } #ifdef DEBUG } #endif return 0; } /* 8022BFE0-8022C1A0 226920 01C0+00 1/0 0/0 0/0 .text * do_character__27jmessage_tSequenceProcessorFi */ void jmessage_tSequenceProcessor::do_character(int c) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); if (field_0xac == 0) { if (JUTFont::isLeadByte_ShiftJIS(c)) { if (!isOutfontKanjiCode(c)) { pRef->addCharactor(changeKataToHira(change1ByteTo2Bytes(c))); } } else if (c < 0x8800 && !isOutfontKanjiCode(c)) { pRef->addCharactor(changeKataToHira(c)); } pRef->addNowLightCount(); } if (field_0xb3 != 0) { cXyz actorPos = pRef->getActorPos(); messageSePlay(field_0xb4, field_0xb3, &actorPos); field_0xb3 = 0; } switch(c) { case '!': mMouthCheck = 0; field_0xb1 = 1; break; case 10: pRef->addLineCount(); pRef->addEndLineCount(); break; default: if ((0x8140 <= c && c <= 0x81fc) || (0x839f <= c && c <= 0x879c)) { mMouthCheck = 0; field_0xb1 = 1; } break; } } /* 8022C1A0-8022C8FC 226AE0 075C+00 2/0 0/0 0/0 .text * do_tag__27jmessage_tSequenceProcessorFUlPCvUl */ bool jmessage_tSequenceProcessor::do_tag(u32 i_tag, void const* i_data, u32 i_size) { jmessage_tReference* reference_p = (jmessage_tReference*)getReference(); switch (i_tag & 0xFF0000) { case 0x10000: { cXyz pos = reference_p->getActorPos(); messageSePlay(field_0xb4, i_tag & 0xFF, &pos); return true; } case 0x20000: dComIfGp_setMesgCameraTagInfo(i_tag & 0xFF); return true; case 0xFF0000: switch (i_tag) { case 0xFF0000: reference_p->setNowColorType(*(u8*)i_data); return true; case 0xFF0001: reference_p->setNowTagScale(*(u16*)i_data); return true; case 0xFF0002: case 0xFFFF02: do_rubyset(i_data, i_size); return true; } case 0: switch (i_tag) { case 0: case 0x22: push_word(); return true; case 0x35: JMessage::TSequenceProcessor::stack_pushCurrent(dMsgObject_getWord()); return true; case 0x29: JMessage::TSequenceProcessor::stack_pushCurrent( reference_p->getObjectPtr()->getSmellName()); return true; case 0x2b: JMessage::TSequenceProcessor::stack_pushCurrent( reference_p->getObjectPtr()->getPortalName()); return true; case 0x2d: JMessage::TSequenceProcessor::stack_pushCurrent( reference_p->getObjectPtr()->getBombName()); return true; case 0x3b: JMessage::TSequenceProcessor::stack_pushCurrent( reference_p->getObjectPtr()->getInsectName()); return true; case 0x3c: JMessage::TSequenceProcessor::stack_pushCurrent( reference_p->getObjectPtr()->getLetterName()); return true; case 0x3d: return true; case 0x3e: case 0x3f: push_word(); return true; case 1: field_0xb2 = 1; reference_p->setBatchColorFlag(1); return true; case 2: field_0xb2 = 0; return true; case 3: case 4: reference_p->setSendTimer(*(u16*)i_data); if (reference_p->getSendTimer() == 0) { reference_p->setSendFlag(3); } else { reference_p->setSendFlag(1); } return true; case 5: reference_p->setSendTimer(*(u16*)i_data); reference_p->setSendFlag(2); return true; case 0x36: dMeter2Info_setMsgKeyWaitTimer(*(u16*)i_data); reference_p->setSendTimer(*(u16*)i_data); reference_p->setSendFlag(6); return true; case 0x28: reference_p->setDemoFrame(*(u32*)i_data); reference_p->setSendFlag(4); return true; case 6: field_0xa8 = *(u16*)i_data; field_0xa4 = field_0xa8; return true; case 7: field_0xa4 = *(u16*)i_data; mMouthCheck = 0; return true; case 8: if (reference_p->getSelectNum() == 0) { reference_p->setSelectNum(2); reference_p->setSelectType(0); field_0xb2 = 1; } if (*(u8*)i_data == 1) { reference_p->setSelectPos(field_0xad); } field_0xad++; field_0xac = 1; return true; case 9: if (reference_p->getSelectNum() == 0) { reference_p->setSelectNum(3); reference_p->setSelectType(0); field_0xb2 = 1; } if (*(u8*)i_data == 1) { reference_p->setSelectPos(field_0xad); } field_0xad++; field_0xac = 1; return true; case 0x1e: if (reference_p->getSelectNum() != 2 || reference_p->getSelectType() != 1) { reference_p->setSelectNum(2); reference_p->setSelectType(1); } field_0xb2 = 1; return true; case 0x1f: if (reference_p->getSelectNum() != 2 || reference_p->getSelectType() != 1) { reference_p->setSelectNum(2); reference_p->setSelectType(1); reference_p->setSelectPos(0); } else { reference_p->setSelectPos(1); } field_0xb2 = 1; return true; case 0x33: if (reference_p->getSelectNum() != 3 || reference_p->getSelectType() != 1) { reference_p->setSelectNum(3); reference_p->setSelectType(1); } field_0xad++; field_0xb2 = 1; return true; case 0x34: if (reference_p->getSelectNum() != 3 || reference_p->getSelectType() != 1) { reference_p->setSelectNum(3); reference_p->setSelectType(1); } reference_p->setSelectPos(field_0xad); field_0xb2 = 1; return true; case 0x20: do_character(10); JMessage::TSequenceProcessor::stack_pushCurrent(reference_p->getSelMsgPtr()); return true; case 0x21: do_name1(); return true; case 10: case 0xb: case 0xc: case 0xd: case 0xe: case 0xf: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x23: case 0x24: case 0x27: case 0x2a: case 0x2c: case 0x2e: case 0x2f: case 0x30: case 0x39: case 0x3a: do_space(i_tag); return true; case 0x25: reference_p->decideOutFontRupeeColor(0); dMsgObject_c* object_p = reference_p->getObjectPtr(); object_p->setInputValue(0); object_p->onInputFlag(); reference_p->resetInputFigure(); reference_p->setSendFlag(5); if (*(u32*)i_data == 1) { dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[80]); } return true; case 0x26: reference_p->onButtonTagStopFlag(); return true; case 0x31: char buffer1[40]; u8 sel_bomb_num = reference_p->getObjectPtr()->getSelectBombNum(); dMsgUnit_setTag(7, sel_bomb_num, buffer1); strcpy((char*)reference_p->getWord(field_0xb5), buffer1); push_word(); return true; case 0x32: char buffer2[40]; s16 sel_bomb_price = reference_p->getObjectPtr()->getSelectBombPrice(); dMsgUnit_setTag(1, sel_bomb_price, buffer2); strcpy((char*)reference_p->getWord(field_0xb5), buffer2); push_word(); return true; case 0x37: case 0x38: push_word(); return true; } case 0x40000: switch (i_tag & 0xFF00FFFF) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: push_word(); return true; } case 0x50000: switch (i_tag & 0xFF00FFFF) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: push_word(); return true; } case 0x60000: switch (i_tag & 0xFF00FFFF) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: push_word(); return true; case 10: case 11: do_space(i_tag); return true; } case 0x30000: switch (i_tag & 0xFF00FFFF) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: do_space(i_tag); return true; case 0: return true; } } return false; } /* 8022C8FC-8022C904 22723C 0008+00 1/0 0/0 0/0 .text * do_jump_isReady__27jmessage_tSequenceProcessorFv */ bool jmessage_tSequenceProcessor::do_jump_isReady() { return true; } /* 8022C904-8022C908 227244 0004+00 1/1 0/0 0/0 .text do_name1__27jmessage_tSequenceProcessorFv */ void jmessage_tSequenceProcessor::do_name1() { /* empty function */ } /* 8022C908-8022CA24 227248 011C+00 2/1 0/0 0/0 .text do_space__27jmessage_tSequenceProcessorFUl */ void jmessage_tSequenceProcessor::do_space(u32 param_1) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); pRef->addNowLightCount(); if (field_0xac == 0) { u16 uVar1 = 0xffff; switch (param_1) { case 10: uVar1 = 0xffe0; break; case 0xb: uVar1 = 0xffe1; break; case 0xc: uVar1 = 0xffe2; break; case 0xd: uVar1 = 0xffe3; break; case 0xe: uVar1 = 0xffe4; break; case 0xf: uVar1 = 0xffe5; break; case 0x10: uVar1 = 0xffe6; break; case 0x11: uVar1 = 0xffe7; break; case 0x12: uVar1 = 0xffe8; break; case 0x13: uVar1 = 0xffe9; break; case 0x14: uVar1 = 0xffea; break; case 0x15: uVar1 = 0xffeb; break; case 0x16: uVar1 = 0xffec; break; case 0x17: uVar1 = 0xffed; break; case 0x18: uVar1 = 0xffee; break; case 0x19: uVar1 = 0xfff0; break; case 0x1a: uVar1 = 0xfff1; break; case 0x1b: uVar1 = 0xfff2; break; case 0x1c: uVar1 = 0xfff3; break; case 0x1d: uVar1 = 0xfff4; break; case 0x39: uVar1 = 0xfff5; break; case 0x3a: uVar1 = 0xfff6; } pRef->addCharactor(uVar1); } } /* 8022CA24-8022CAAC 227364 0088+00 1/1 0/0 0/0 .text * do_rubyset__27jmessage_tSequenceProcessorFPCvUl */ // NONMATCHING - or logic void jmessage_tSequenceProcessor::do_rubyset(void const* param_0, u32 param_1) { if (field_0xac == 0) { u8 size = param_1 - 1; u8* r30 = (u8*)param_0; int i = 0; r30++; jmessage_tReference* pRef = (jmessage_tReference*)JMessage::TSequenceProcessor::getReference(); while (i < size) { u8 x[3]; x[0] = r30[i++]; x[1] = r30[i++]; x[2] = 0; int kata = (((s8)x[0] & 0xff) << 8) | ((s8)x[1] & 0xff); pRef->addCharactor(changeKataToHira(kata)); } } } /* 8022CAAC-8022CB10 2273EC 0064+00 1/1 0/0 0/0 .text push_word__27jmessage_tSequenceProcessorFv */ void jmessage_tSequenceProcessor::push_word() { jmessage_tReference* pRef = (jmessage_tReference*)JMessage::TSequenceProcessor::getReference(); JMessage::TSequenceProcessor::stack_pushCurrent(pRef->getWord(field_0xb5)); field_0xb5++; pRef->setNowWordCount(field_0xb5); } /* 8022CB10-8022CBE4 227450 00D4+00 2/2 0/0 0/0 .text * messageSePlay__27jmessage_tSequenceProcessorFUcUcP4cXyz */ void jmessage_tSequenceProcessor::messageSePlay(u8 param_1, u8 param_2, cXyz* param_3) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); dMsgObject_c* pObject = pRef->getObjectPtr(); if (param_3 != NULL && pObject->isNoDemoFlag()) { if (dComIfGp_roomControl_getStayNo() != 0) { s8 reverb = dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()); OS_REPORT("message se play1===>%d\n", param_2); Z2GetSpeechMgr2()->playOneShotVoice(param_1, param_2, param_3, reverb); } else { OS_REPORT("message se play2===>%d\n", param_2); Z2GetSpeechMgr2()->playOneShotVoice(param_1, param_2, param_3, 0); } } else { if (dComIfGp_roomControl_getStayNo() != 0) { s8 reverb = dComIfGp_getReverb(dComIfGp_roomControl_getStayNo()); OS_REPORT("message se play3===>%d\n", param_2); Z2GetSpeechMgr2()->playOneShotVoice(param_1, param_2, NULL, reverb); } else { OS_REPORT("message se play4===>%d\n", param_2); Z2GetSpeechMgr2()->playOneShotVoice(param_1, param_2, NULL, 0); } } } /* 8022CBE4-8022CBE8 227524 0004+00 1/0 0/0 0/0 .text * do_jump__27jmessage_tSequenceProcessorFPCvPCc */ void jmessage_tSequenceProcessor::do_jump(void const* param_0, char const* param_1) {} /* 8022CBE8-8022CCB0 227528 00C8+00 2/2 0/0 0/0 .text * calcStringLength__27jmessage_tSequenceProcessorFv */ void jmessage_tSequenceProcessor::calcStringLength() { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); pRef->onSelectSetCancelFlag(); mMeasureProcessor.process_messageEntryText(this, field_0x9c, field_0xa0); pRef->offSelectSetCancelFlag(); } /* 8022CCB0-8022CDC8 2275F0 0118+00 0/0 1/1 0/0 .text * __ct__28jmessage_tRenderingProcessorFPC19jmessage_tReference */ jmessage_tRenderingProcessor::jmessage_tRenderingProcessor(jmessage_tReference const* param_0) : JMessage::TRenderingProcessor(param_0) { mpOutFont = 0; mCharInfoPtr = 0; mpCharInfoCnt = 0; field_0x44 = 0.0f; field_0x48 = field_0x4c = 0.0f; mTextInitPosX = mTextInitPosY = 0.0f; mTextInitScaleX = mTextInitScaleY = 1.0f; for (int i = 0; i < 3; i++) { mSelTextInitPosX[i] = mSelTextInitPosY[i] = 0.0f; } field_0x11c = 0; field_0x128 = 0.0f; field_0x12c = 0.0f; field_0x130 = 0.0f; field_0x134 = 0.0f; field_0x14c = 0; field_0x140 = 0; field_0x142 = 0; field_0x144 = 0; field_0x146 = 0; field_0x148 = 0; field_0x14a = 0; field_0x13c = 0; field_0x13e = 0; field_0x184[2] = 0; field_0x184[1] = 0; field_0x184[0] = 0; field_0x14d = 0; field_0x14e = 0; mCCColor = 0xffffffff; mGCColor = 0xffffffff; field_0x14f = 0; mColorNo = 0; field_0x151 = 0; field_0x138 = 0.0f; for (int i = 0; i < 40; i++) { field_0x7c[i] = 0.0f; } } /* 8022CDC8-8022CDCC 227708 0004+00 1/0 0/0 0/0 .text do_reset__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::do_reset() {} /* ############################################################################################## */ /* 80399610-80399610 025C70 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80399617 = ""; #pragma pop /* 8022CDCC-8022CFD8 22770C 020C+00 1/0 0/0 0/0 .text * do_begin__28jmessage_tRenderingProcessorFPCvPCc */ void jmessage_tRenderingProcessor::do_begin(void const* param_0, char const* param_1) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); field_0x128 = 0.0f; field_0x12c = 0.0f; field_0x130 = 0.0f; field_0x134 = 0.0f; field_0x14c = 0; field_0x142 = 0; field_0x144 = 0; field_0x146 = 0; field_0x148 = 0; field_0x14a = 0; field_0x13c = 0; field_0x13e = 0; field_0x138 = 0.0f; field_0x184[2] = 0; field_0x184[1] = 0; field_0x184[0] = 0; if (mCharInfoPtr != 0) { mpCharInfoCnt = (s16*)((u8*)mCharInfoPtr + 0x1068); *mpCharInfoCnt = 0; } field_0x14d = 0; field_0x140 = 0; field_0x44 = 1.0f; field_0x14e = 0; mCCColor = 0xffffffff; mGCColor = 0xffffffff; field_0x14f = pRef->getTopWordCount(); field_0x187 = 0; field_0x48 = mTextInitPosX; field_0x4c = mTextInitPosY; field_0x151 = 0; mpOutFont->initialize(); for (int i = 0; i < 0x28; i++) { field_0x7c[i] = 0.0f; } field_0x11c = 0; strcpy(pRef->getTextPtr(), ""); strcpy(pRef->getTextSPtr(), ""); strcpy(pRef->getRubyPtr(), ""); for (int i = 0; i < 3; i++) { strcpy(pRef->getSelTextPtr(i), ""); strcpy(pRef->getSelRubyPtr(i), ""); } if (1.0f != pRef->getDistanceScale()) { do_scale(field_0x44); } do_color(pRef->getTopColorType()); pRef->resetDrawLightCount(); do_widthcenter(); do_heightcenter(); field_0x13c = pRef->getTopTagScale(); if (field_0x13c != 0) { do_scale(field_0x13c / 100.0f); } } /* 8022CFD8-8022D0A0 227918 00C8+00 1/0 0/0 0/0 .text do_end__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::do_end() { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); if (dMsgObject_getSelectWordFlag() != 0) { for (int i = 0; i < dMsgObject_getSelectWordFlag(); i++) { char acStack_e0[200]; strcpy(acStack_e0, dMsgObject_getSelectWord(i)); if (pRef->getSelectNum() == 2) { strcat(pRef->getSelTextPtr(i + 1), acStack_e0); } else { if (pRef->getSelectNum() == 3) { strcat(pRef->getSelTextPtr(i), acStack_e0); } } } } u8 batchColorFlag = pRef->getBatchColorFlag(); if (batchColorFlag != 0) { pRef->setBatchColorFlag(batchColorFlag - 1); } } /* 8022D0A0-8022D74C 2279E0 06AC+00 1/0 0/0 0/0 .text * do_character__28jmessage_tRenderingProcessorFi */ void jmessage_tRenderingProcessor::do_character(int param_1) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); JUTFont* pFont = pRef->getFont(); char local_d4[3]; local_d4[2] = 0; if ((param_1 & 0xff00) != 0) { local_d4[0] = ((param_1 & 0xff00) >> 8); local_d4[1] = param_1 & 0xff; } else { local_d4[0] = param_1 & 0xff; local_d4[1] = 0; } if (param_1 == 10) { field_0x142++; if (field_0x14e != 0) { field_0x48 = mSelTextInitPosX[field_0x14e - 1]; } else { field_0x48 = mTextInitPosX; } field_0x4c = field_0x4c + pRef->getLineSpace(); if (field_0x140 != 0 && pRef->getNowPageType() != 4 && pRef->getNowPageType() != 5) { if (field_0x44 > 1.0f) { field_0x44 = 1.0f; } field_0x140 = 0; } do_strcat((char*)local_d4, true, true, false); field_0x12c = 0.0f; if (field_0x14e != 0) { do_rubystrcat((char*)local_d4, pRef->getSelRubyPtr(field_0x14e - 1), pRef->getSelRubyCharSpace(), 0.0f); } else { do_rubystrcat((char*)local_d4, pRef->getRubyPtr(), pRef->getRubyCharSpace(), 0.0f); pRef->addDrawLightCount(); } do_widthcenter(); do_heightcenter(); } else { f32 fVar1; if (field_0x187 == 0) { fVar1 = pRef->getFontSizeX() / pFont->getCellWidth(); if (1.0f != field_0x44) { s16 iVar9 = 0.5f + field_0x44 * pRef->getFontSizeX(); fVar1 = (f32)iVar9 / (f32)pFont->getCellWidth(); } field_0x7c[field_0x142] = fVar1 * pFont->getOffset(param_1); field_0x48 += field_0x7c[field_0x142]; field_0x187 = 1; } if (field_0x14e != 0) { fVar1 = pRef->getSelFontSize() / pFont->getCellWidth(); field_0x48 += (fVar1 * (field_0x44 * pFont->getWidth(param_1)) + pRef->getSelCharSpace()); } else { pRef->addDrawLightCount(); fVar1 = pRef->getFontSizeX() / pFont->getCellWidth(); if (checkCharInfoCharactor(param_1) && mCharInfoPtr != NULL) { f32 cellWidth = pFont->getCellWidth(); f32 dVar14 = pFont->getWidth() / cellWidth; f32 dVar13 = fVar1 * (field_0x44 * pFont->getWidth(param_1)); f32 dVar17 = dVar14 * (field_0x44 * pRef->getFontSizeY()); f32 fVar1 = 1.0f; if (param_1 == 0x8145) { fVar1 = 0.3f; } f32 fVar5 = mTextInitPosY + mTextInitScaleY * (field_0x4c - mTextInitPosY); f32 fVar6 = mTextInitPosX + mTextInitScaleX * (field_0x48 - mTextInitPosX); getCharInfo(0.5f + (fVar6 + (0.5f * dVar13)), field_0x138 + (fVar5 + 0.5f * dVar17), field_0x44 * fVar1, field_0x44 * fVar1, 1.0f); } f32 dVar12 = pRef->getCharSpace(); fVar1 = pRef->getFontSizeX() / pFont->getCellWidth(); if (1.0f != field_0x44) { s16 iVar9 = 0.5f + field_0x44 * pRef->getFontSizeX(); fVar1 = (f32)iVar9 / (f32)pFont->getCellWidth(); } field_0x48 += dVar12 + (fVar1 * pFont->getWidth(param_1)); } if (field_0x14c != 0) { --field_0x14c; if (field_0x14c == 0) { if (field_0x14e != 0) { f32 dVar13 = (field_0x48 - mSelTextInitPosX[field_0x14e - 1] - pRef->getSelCharSpace()); do_rubystrcat(field_0x152, pRef->getSelRubyPtr(field_0x14e - 1), pRef->getSelRubyCharSpace(), dVar13); } else { f32 dVar13 = (field_0x48 - mTextInitPosX) - pRef->getCharSpace(); do_rubystrcat(field_0x152, pRef->getRubyPtr(), pRef->getRubyCharSpace(), dVar13); } } } do_strcat((char*)local_d4, true, true, false); } } /* 8022D74C-8022E12C 22808C 09E0+00 3/0 0/0 0/0 .text * do_tag__28jmessage_tRenderingProcessorFUlPCvUl */ bool jmessage_tRenderingProcessor::do_tag(u32 param_1, void const* param_2, u32 param_3) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); switch(param_1 & 0xff0000) { case 0x10000: case 0x20000: return 1; case 0xff0000: switch (param_1) { case 0xff0000: do_color(*(u8*)param_2 & 0xff); return 1; case 0xff0001: field_0x13c = *(u16*)param_2 & 0xffff; do_scale(field_0x13c / 100.0f); return 1; case 0xff0002: case 0xffff02: do_rubyset(param_2, param_3); return 1; } case 0: switch (param_1) { case 0: case 0x22: push_word(); return 1; case 0x35: stack_pushCurrent(dMsgObject_getWord()); field_0x151 = dMsgObject_getSelectWordFlag(); return 1; case 0x29: stack_pushCurrent(pRef->getObjectPtr()->getSmellName()); return 1; case 0x2b: stack_pushCurrent(pRef->getObjectPtr()->getPortalName()); return 1; case 0x2d: stack_pushCurrent(pRef->getObjectPtr()->getBombName()); return 1; case 0x3b: stack_pushCurrent(pRef->getObjectPtr()->getInsectName()); return 1; case 0x3c: stack_pushCurrent(pRef->getObjectPtr()->getLetterName()); return 1; case 0x3d: do_linedown(*(u16*)param_2); return 1; case 0x3e: case 0x3f: push_word(); return 1; case 8: if (field_0x14e == 0) { field_0x14e = 1; } case 9: field_0x14e++; field_0x11c = 0; field_0x48 = mSelTextInitPosX[field_0x14e - 1]; do_selwidthcenter(field_0x14e - 1); return 1; case 0x1e: case 0x1f: do_arrow2(); return 1; case 0x33: case 0x34: do_arrow2(); return 1; case 0x20: do_character(10); stack_pushCurrent(pRef->getSelMsgPtr()); return 1; case 0x21: do_name1(); return 1; case 10: do_outfont(0, 0); return 1; case 0xb: do_outfont(1, 0); return 1; case 0xc: do_outfont(2, 0); return 1; case 0xd: do_outfont(3, 0); return 1; case 0xe: do_outfont(4, 0); return 1; case 0xf: do_outfont(5, 0); return 1; case 0x10: do_outfont(6, 0); return 1; case 0x11: do_outfont(7, 0); return 1; case 0x12: do_outfont(8, 0); return 1; case 0x13: do_outfont(9, 0); return 1; case 0x14: do_outfont(10, 0); return 1; case 0x15: do_outfont(11, 0); return 1; case 0x16: do_outfont(12, 0); return 1; case 0x17: do_outfont(13, 0); return 1; case 0x18: do_outfont(14, 0); return 1; case 0x19: do_outfont(15, 0); return 1; case 0x1a: do_outfont(16, 0); return 1; case 0x1b: do_outfont(17, 0); return 1; case 0x1c: do_outfont(18, 0); return 1; case 0x1d: do_outfont(19, 0); return 1; case 0x23: do_outfont(20, 0); return 1; case 0x24: do_outfont(21, 0); return 1; case 0x25: { do_outfont(30, 0); dMsgObject_c* pMsgObject = pRef->mpObjectPtr; do_numset(pMsgObject->getInputValue()); return 1; } case 0x26: return 1; case 0x27: do_outfont(23, 0); return 1; case 0x2a: do_outfont(24, 0); return 1; case 0x2c: do_outfont(25, 0); return 1; case 0x2e: { dMsgObject_c* pMsgObject = pRef->getObjectPtr(); if (pMsgObject->getItemEquipButton() == 0) { do_outfont(5, 0); } else { do_outfont(6, 0); } return 1; } case 0x2f: if (pRef->getObjectPtr()->getItemEquipButton() == 0) { do_outfont(6, 0); } else { do_outfont(5, 0); } return 1; case 0x30: do_outfont(41, 0); return 1; case 0x39: do_outfont(27, 0); return 1; case 0x3a: do_outfont(28, 0); return 1; case 0x31: { char acStack_50[40]; u8 bombNum = pRef->getObjectPtr()->getSelectBombNum(); dMsgUnit_setTag(7, bombNum, acStack_50); strcpy(pRef->getWord(field_0x14f), acStack_50); push_word(); return 1; } case 0x32: { char acStack_78[40]; s16 bombPrice = pRef->getObjectPtr()->getSelectBombPrice(); dMsgUnit_setTag(1, bombPrice, acStack_78); strcpy(pRef->getWord(field_0x14f), acStack_78); push_word(); return 1; } case 0x37: case 0x38: push_word(); return 1; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 0x28: case 0x36: return 1; } case 0x40000: switch (param_1 & 0xff00ffff) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: push_word(); return 1; } case 0x50000: switch (param_1 & 0xff00ffff) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: push_word(); return 1; } case 0x60000: switch (param_1 & 0xff00ffff) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: push_word(); return 1; case 10: do_outfont('*', 0); return 1; case 11: do_outfont('+', 0); return 1; } case 0x30000: switch (param_1 & 0xff00ffff) { case 1: do_outfont(0, 0); return 1; case 2: do_outfont('3', 0); return 1; case 3: do_outfont('4', 0); return 1; case 4: do_outfont('5', 0); return 1; case 5: do_outfont('6', 0); return 1; case 6: do_outfont('?', 0); return 1; case 7: do_outfont('@', 0); return 1; case 8: do_outfont('2', 0); return 1; case 9: do_outfont('1', 0); return 1; case 10: do_outfont('A', 0); return 1; case 0xb: do_outfont('B', 0); return 1; case 0xc: do_outfont('C', 0); return 1; case 0xd: do_outfont('D', 0); return 1; case 0xe: if (dComIfGs_getOptPointer() == 0) { do_outfont(9, 0); } else { do_outfont(',', 0); } return 1; case 0xf: do_outfont('E', 0); return 1; case 0x10: do_outfont('-', 0); return 1; case 0x11: do_outfont(',', 0); return 1; case 0x12: do_outfont('>', 0); return 1; case 0x13: do_outfont(2, 0); return 1; case 0x14: do_outfont(7, 0); return 1; case 0: return 1; default: break; } break; } return 0; } /* 8022E12C-8022E17C 228A6C 0050+00 0/0 2/2 0/0 .text * resetRendering__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::resetRendering() { if (mCharInfoPtr == NULL) return; for (int i = 0; i < 150; i++) { mCharInfoPtr[i].field_0x14 = 0.0f; mCharInfoPtr[i].field_0x19 = 0; } *mpCharInfoCnt = 0; } /* 8022E17C-8022E260 228ABC 00E4+00 2/2 0/0 0/0 .text * do_widthcenter__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::do_widthcenter() { field_0x187 = 0; jmessage_tReference* pRef = (jmessage_tReference*)getReference(); s16 sVar3 = field_0x142 + pRef->getStartLineCount(); if (pRef->getLineArrange(sVar3) == 1 || pRef->getLineArrange(sVar3) == 2) { return; } f32 fVar6 = 0.5f + (pRef->getTBoxWidth() - getLineLength(field_0x142)) / 2; if (fVar6 >= 1.0f) { char acStack_48[16]; snprintf(acStack_48, 0xf, "\x1B" "CR[%d]", (int)fVar6); do_strcat(acStack_48, false, true, true); field_0x48 += + fVar6; } } /* 8022E260-8022E318 228BA0 00B8+00 1/1 0/0 0/0 .text * do_selwidthcenter__28jmessage_tRenderingProcessorFi */ void jmessage_tRenderingProcessor::do_selwidthcenter(int param_1) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); f32 fVar5 = 0.5f + (pRef->getSelTBoxWidth() - pRef->getSelLength(param_1)) / 2; if (fVar5 >= 1.0f) { char acStack_44[16]; snprintf(acStack_44, 0xf, "\x1B" "CR[%d]", (int)fVar5); do_strcat(acStack_44, false, true, false); field_0x48 += + fVar5; } } /* 8022E318-8022E7CC 228C58 04B4+00 3/2 0/0 0/0 .text * do_heightcenter__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::do_heightcenter() { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); field_0x138 = 0.0f; f32 dVar13; if (field_0x142 == 0) { f32 lineSpace = pRef->getLineSpace(); f32 fontSizeY = pRef->getFontSizeY(); f32 tboxHeight = pRef->getTBoxHeight(); f32 dVar15 = pRef->getLineMax() - 1; dVar15 = lineSpace * dVar15; dVar15 = fontSizeY + dVar15; dVar13 = (tboxHeight - dVar15) / 2; } else { dVar13 = 0.0f; } switch (pRef->getNowPageType()) { case 0: if (field_0x142 == 0) { int nowPageLine = pRef->getNowPageLine(); if (pRef->getLineMax() != (s16)nowPageLine) { f32 lineSpace = pRef->getLineSpace(); f32 dVar14 = 0.5f * (pRef->getLineMax() - nowPageLine); dVar13 += lineSpace * dVar14; } } break; case 1: { if (field_0x142 == 0) { int nowPageLine = pRef->getNowPageLine(); if (nowPageLine == 1) { f32 lineSpace = pRef->getLineSpace(); f32 dVar14 = 0.5f * (pRef->getLineMax() - nowPageLine); field_0x138 = (lineSpace * dVar14); dVar13 += field_0x138; } } break; } case 2: if (field_0x142 == 0) { field_0x138 = pRef->getLineSpace(); dVar13 += field_0x138; } else { field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; } break; case 3: pRef->getNowPageLine(); field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; break; case 4: { if (field_0x142 == 0) { int nowPageLine = pRef->getNowPageLine(); f32 lineSpace = pRef->getLineSpace(); f32 dVar14 = 0.5f * (pRef->getLineMax() - nowPageLine); field_0x138 = lineSpace * dVar14; dVar13 += field_0x138; } if (field_0x142 == 1) { field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; } f32 dVar14 = (pRef->getLineScale(field_0x142) / 100.0f) * pRef->getFontSizeY(); f32 dVar15 = ((pRef->getLineSpace() - dVar14) / 2); field_0x138 += dVar15; dVar13 += dVar15; break; } case 5: { if (field_0x142 >= 1) { field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; } f32 dVar14 = (pRef->getLineScale(field_0x142) / 100.0f) * pRef->getFontSizeY(); f32 dVar15 = (pRef->getLineSpace() - dVar14) / 2; field_0x138 += dVar15; dVar13 += dVar15; break; } case 6: if (field_0x142 <= 1) { field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; } break; case 7: if (field_0x142 == 1 || field_0x142 == 2) { field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; } break; case 8: if (field_0x142 == 2) { field_0x138 = 0.5f * pRef->getLineSpace(); dVar13 += field_0x138; } } if (field_0x142 == 0) { field_0x138 = 0.0f; } if (0.0f != dVar13) { field_0x4c += dVar13; char acStack_80[16]; snprintf(acStack_80, 0xf, "\x1B" "CD[%d]", (int)dVar13); do_strcat(acStack_80, false, true, true); if (field_0x14e != 0) { do_rubystrcat(acStack_80, pRef->getSelRubyPtr(field_0x14e - 1), pRef->getSelRubyCharSpace(), 0.0f); } else { do_rubystrcat(acStack_80, pRef->getRubyPtr(), pRef->getRubyCharSpace(), 0.0f); } } } /* 8022E7CC-8022E860 22910C 0094+00 2/2 0/0 0/0 .text do_color__28jmessage_tRenderingProcessorFUc */ void jmessage_tRenderingProcessor::do_color(u8 i_colorNo) { jmessage_tReference* reference_p = (jmessage_tReference*)getReference(); mColorNo = i_colorNo; mCCColor = getFontCCColorTable(i_colorNo, reference_p->getFukiKind()); mGCColor = getFontGCColorTable(i_colorNo, reference_p->getFukiKind()); char buffer[40]; sprintf(buffer, "\x1B" "CC[%08x]" "\x1B" "GC[%08x]", mCCColor, mGCColor); do_strcat(buffer, false, false, false); } /* 8022E860-8022E960 2291A0 0100+00 2/2 0/0 0/0 .text do_scale__28jmessage_tRenderingProcessorFf */ void jmessage_tRenderingProcessor::do_scale(f32 param_1) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); f32 dVar10 = (param_1 * pRef->getDistanceScale()); int iVar1 = 0.5f + (dVar10 * pRef->getFontSizeX()); int iVar2 = 0.5f + (dVar10 * pRef->getFontSizeY()); int uVar6 = pRef->getNowPageType() - 4 == 0; int sVar7 = iVar2; if (field_0x44 != dVar10) { int iVar2 = 0.5f + (field_0x44 * pRef->getFontSizeY()); s16 sVar5 = ((s16)sVar7 - (s16)iVar2) / 2; field_0x44 = dVar10; field_0x140 += sVar5; do_transY(sVar5, true); field_0x13e = sVar5; } char acStack_70[32]; sprintf(acStack_70, "\x1B" "FX[%d]" "\x1B" "FY[%d]", (s16)iVar1, (s16)sVar7); do_strcat(acStack_70, false, true, false); } /* 8022E960-8022E9C0 2292A0 0060+00 1/1 0/0 0/0 .text * do_linedown__28jmessage_tRenderingProcessorFs */ void jmessage_tRenderingProcessor::do_linedown(s16 param_0) { char buffer[16]; sprintf(buffer, "\x1B" "CD[%d]", param_0); do_strcat(buffer, false, true, false); } /* 8022E9C0-8022EAE4 229300 0124+00 1/1 0/0 0/0 .text do_transY__28jmessage_tRenderingProcessorFsb */ void jmessage_tRenderingProcessor::do_transY(s16 param_1, bool param_2) { if (param_1 != 0) { char acStack_38[16]; char acStack_48[16]; if (param_1 < 0) { sprintf(acStack_38, "\x1B" "CU[%d]", -param_1); sprintf(acStack_48, "\x1B" "CD[%d]", -param_1); } else { sprintf(acStack_38, "\x1B" "CD[%d]", param_1); sprintf(acStack_48, "\x1B" "CU[%d]", param_1); } field_0x4c -= param_1; do_strcat(acStack_38, false, true, true); jmessage_tReference* pRef = (jmessage_tReference*)getReference(); do_rubystrcat(acStack_48, pRef->getRubyPtr(), pRef->getRubyCharSpace(), 0.0f); } } /* 8022EAE4-8022ED10 229424 022C+00 2/2 0/0 0/0 .text * do_outfont__28jmessage_tRenderingProcessorFUcUl */ void jmessage_tRenderingProcessor::do_outfont(u8 param_1, u32 param_2) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); JUTFont* font = pRef->getFont(); s32 cellWidth = font->getCellWidth(); s32 width = font->getWidth(); int r28 = 1; f32 dVar14 = (24.0f * field_0x44 * mTextInitScaleX); f32 dVar13 = (24.0f * field_0x44 * mTextInitScaleY); f32 dVar12 = (mTextInitPosX + mTextInitScaleX * (field_0x48 - mTextInitPosX)); f32 dVar11 = (mTextInitPosY + mTextInitScaleY * (field_0x4c - mTextInitPosY)); u32 color; if (param_2 == 0) { color = mCCColor; } else { color = param_2; } if (param_1 == 30) { mpOutFont->setRupeeColor(pRef->getOutFontRupeeColor()); } mpOutFont->drawFont(NULL, param_1, dVar12 - field_0x7c[field_0x142], dVar11, dVar14, dVar13, color, 0xff); pRef->addDrawLightCount(); if (mCharInfoPtr != NULL) { getCharInfo(0.5f + (dVar12 + (0.5f * dVar14)), field_0x138 + (dVar11 + (0.5f * dVar13)), field_0x44, field_0x44, 1.0f); } f32 fVar7 = 0.5f + ((field_0x44 * (dVar14 * r28)) + pRef->getCharSpace()); field_0x48 += (int)fVar7; char acStack_b8[16]; snprintf(acStack_b8, sizeof(acStack_b8) - 1, "\x1B" "CR[%d]", (int)fVar7); do_strcat(acStack_b8, false, true, false); } /* 8022ED10-8022EECC 229650 01BC+00 1/1 0/0 0/0 .text do_arrow2__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::do_arrow2() { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); JUTFont* font = pRef->getFont(); f32 cellWidth = font->getCellWidth(); f32 width = font->getWidth(); f32 dVar11 = width / cellWidth; if (field_0x14d == pRef->getSelectPos()) { mpOutFont->drawFont(NULL, 0x1d, (mTextInitPosX + mTextInitScaleX * (field_0x48 - mTextInitPosX)) - field_0x7c[field_0x142], field_0x4c, (dVar11 * (field_0x44 * pRef->getFontSizeX())), dVar11 * (field_0x44 * pRef->getFontSizeY()), mCCColor, 0xff); } f32 dVar13 = 0.5f + ((field_0x44 * pRef->getFontSizeX()) + pRef->getCharSpace()); field_0x48 += (int)dVar13; char acStack_58[16]; snprintf(acStack_58, sizeof(acStack_58) - 1, "\x1B" "CR[%d]", (int)dVar13); do_strcat(acStack_58, false, true, false); field_0x14d++; } /* 8022EECC-8022EF00 22980C 0034+00 1/1 0/0 0/0 .text * getLineLength__28jmessage_tRenderingProcessorFi */ f32 jmessage_tRenderingProcessor::getLineLength(int lineNo) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); s16 lineCount = pRef->getStartLineCount(); return pRef->getStrLength(lineNo + lineCount) * pRef->getFontSizeX() + pRef->getSpaceLength(lineNo + lineCount) * pRef->getCharSpace(); } /* 8022EF00-8022F148 229840 0248+00 10/10 0/0 0/0 .text * do_strcat__28jmessage_tRenderingProcessorFPcbbb */ void jmessage_tRenderingProcessor::do_strcat(char* param_1, bool param_2, bool param_3, bool param_4) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); if (pRef->isCharSend() || !param_2) { field_0x11c += strlen(param_1); if (field_0x14e != 0) { if (field_0x11c < 0x32) { strcat(pRef->getSelTextPtr(field_0x14e - 1), param_1); } else { JUT_WARN(5316, "%s", "TextBox Alloc Byte Over!!"); } } else if (field_0x11c < 0x200) { if (param_2) { field_0x146++; if (pRef->getBatchColorFlag() != 0) { pRef->setCharCnt(field_0x146); } else if (field_0x146 > pRef->getCharCnt() || (field_0x146 == pRef->getCharCnt() && pRef->getCharAlpha() < 255.0f)) { if (field_0x146 > pRef->getCharCnt()) { pRef->setCharAlpha(0.0f); pRef->setCharCnt(field_0x146); } if (pRef->getCharAlpha() < 255.0f) { pRef->addCharAlpha(); if (field_0x148 != 0) { char* pcVar4 = pRef->getTextPtr(); pcVar4[field_0x148] = 0; strcat(pcVar4, field_0x184); } if (field_0x14a != 0) { char* pcVar4 = pRef->getTextSPtr(); pcVar4[field_0x14a] = 0; strcat(pcVar4, field_0x184); } int dVar8 = pRef->getCharAlpha(); u32 uVar1 = mCCColor; int dVar9 = pRef->getCharAlpha(); char acStack_58[36]; sprintf( acStack_58, "\x1b" "CC[%08x]" "\x1b" "GC[%08x]", (uVar1 & 0xffffff00) | (dVar8 & 0xff), (mGCColor & 0xffffff00) | (dVar9 & 0xff)); if (field_0x11c + (int)strlen(acStack_58) < 0x200) { field_0x148 = strlen(pRef->getTextPtr()); field_0x14a = strlen(pRef->getTextSPtr()); strcpy(field_0x184, param_1); strcat(pRef->getTextPtr(), acStack_58); strcat(pRef->getTextSPtr(), acStack_58); } else { JUT_WARN(5362, "%s", "TextBox Alloc Byte Over!!"); } } } } else if (param_4) { field_0x148 = 0; field_0x14a = 0; } strcat(pRef->getTextPtr(), param_1); if (param_3) { strcat(pRef->getTextSPtr(), param_1); } } else { JUT_WARN(5380, "%s", "TextBox Alloc Byte Over!!"); } } } /* 8022F148-8022F384 229A88 023C+00 1/1 0/0 0/0 .text * do_rubyset__28jmessage_tRenderingProcessorFPCvUl */ // NONMATCHING - buffer initialization void jmessage_tRenderingProcessor::do_rubyset(void const* param_0, u32 param_1) { jmessage_tReference* pRef = (jmessage_tReference*) getReference(); JUTFont* pFont = pRef->getFont(); u8 mRubyCnt = param_1 - 1; u8* r28 = (u8*)param_0; int iVar7 = 0; JUT_ASSERT(5405, mRubyCnt < (50)); field_0x14c = *(u8*)param_0 & 0xff; r28++; field_0x152[0] = 0; field_0x128 = 0.0f; for (; iVar7 < mRubyCnt; ) { u8 buffer[3]; buffer[0] = r28[iVar7++]; buffer[1] = r28[iVar7++]; buffer[2] = 0; strcat(field_0x152, (const char*)buffer); int uVar6 = ((char)buffer[0] & 0xffU) << 8 | (char)buffer[1] & 0xffU; if (field_0x14e != 0) { field_0x128 += (pRef->getSelRubyCharSpace() + pFont->getWidth(uVar6) * (pRef->getSelRubySize() / pFont->getCellWidth())); } else { field_0x128 += (pRef->getRubyCharSpace() + pFont->getWidth(uVar6) * (pRef->getRubySize() / pFont->getCellWidth())); } } if (field_0x14e != 0) { field_0x128 -= pRef->getSelRubyCharSpace(); field_0x130 = field_0x48 - mSelTextInitPosX[field_0x14e - 1]; } else { field_0x128 -= pRef->getRubyCharSpace(); field_0x130 = field_0x48 - mTextInitPosX; } } /* ############################################################################################## */ /* 80399610-80399610 025C70 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80399652 = "" "\x1B" "CL[%d]"; #pragma pop /* 8022F384-8022F53C 229CC4 01B8+00 3/3 0/0 0/0 .text * do_rubystrcat__28jmessage_tRenderingProcessorFPcPcff */ void jmessage_tRenderingProcessor::do_rubystrcat(char* param_1, char* param_2, f32 param_3, f32 param_4) { jmessage_tReference* pRef = (jmessage_tReference*) getReference(); if (pRef->isCharSend()) { if (0.0f != param_4) { field_0x134 = param_4; f32 fVar5 = (0.5f * (field_0x130 + field_0x134) - 0.5f * field_0x128) - field_0x12c; if (fVar5 >= 1.0f) { char buffer[16]; snprintf(buffer, sizeof(buffer) - 1, "\x1B" "CR[%d]", (int)fVar5); strcat(param_2, buffer); field_0x12c += (int)fVar5; } else if (fVar5 <= -1.0f) { char buffer[16]; snprintf(buffer, sizeof(buffer) - 1, "\x1B" "CL[%d]", (int)-fVar5); strcat(param_2, buffer); field_0x12c += (int)fVar5; } field_0x12c += field_0x128 + param_3; } strcat(param_2, param_1); } } /* 8022F53C-8022F540 229E7C 0004+00 1/1 0/0 0/0 .text do_name1__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::do_name1() {} /* 8022F540-8022F734 229E80 01F4+00 1/1 0/0 0/0 .text do_numset__28jmessage_tRenderingProcessorFs */ void jmessage_tRenderingProcessor::do_numset(s16 param_0) { if (9999 < param_0) { param_0 = 9999; } if (param_0 < 0) { param_0 = 0; } jmessage_tReference* pRef = (jmessage_tReference*) getReference(); if (pRef->getInputFigure() == 3) { do_outfont(getOutFontNumberType(param_0 / 1000), 0xff0000ff); } else { do_outfont(getOutFontNumberType(param_0 / 1000), 0); } if (pRef->getInputFigure() == 2) { do_outfont(getOutFontNumberType(param_0 % 1000 / 100), 0xff0000ff); } else { do_outfont(getOutFontNumberType(param_0 % 1000 / 100), 0); } if (pRef->getInputFigure() == 1) { do_outfont(getOutFontNumberType(param_0 % 100 / 10), 0xff0000ff); } else { do_outfont(getOutFontNumberType(param_0 % 100 / 10), 0); } if (pRef->getInputFigure() == 0) { do_outfont(getOutFontNumberType(param_0 % 10), 0xff0000ff); } else { do_outfont(getOutFontNumberType(param_0 % 10), 0); } } /* 8022F734-8022F784 22A074 0050+00 1/1 0/0 0/0 .text push_word__28jmessage_tRenderingProcessorFv */ void jmessage_tRenderingProcessor::push_word() { jmessage_tReference* tRef = (jmessage_tReference*)getReference(); stack_pushCurrent(tRef->getWord(field_0x14f)); field_0x14f++; } /* 8022F784-8022F8C0 22A0C4 013C+00 2/2 0/0 0/0 .text * getCharInfo__28jmessage_tRenderingProcessorFfffff */ void jmessage_tRenderingProcessor::getCharInfo(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); if ( pRef->isLightSend()) { JUT_ASSERT(5608, *mpCharInfoCnt <= 0x95); mCharInfoPtr[*mpCharInfoCnt].field_0x00 = param_1; mCharInfoPtr[*mpCharInfoCnt].field_0x04 = param_2; mCharInfoPtr[*mpCharInfoCnt].field_0x08 = param_3; mCharInfoPtr[*mpCharInfoCnt].field_0x0c = param_4; mCharInfoPtr[*mpCharInfoCnt].field_0x10 = param_5; mCharInfoPtr[*mpCharInfoCnt].mColorNo = mColorNo; if (!pRef->isBatchFlag() && mCharInfoPtr[*mpCharInfoCnt].field_0x19 == 0) { mCharInfoPtr[*mpCharInfoCnt].field_0x19 = 1; } (*mpCharInfoCnt)++; } } /* 8022F8C0-8022F94C 22A200 008C+00 0/0 1/1 0/0 .text __ct__26jmessage_string_tReferenceFv */ jmessage_string_tReference::jmessage_string_tReference() { mPanePtr = NULL; mRubyPanePtr = NULL; mpFont = mDoExt_getMesgFont(); for (int i = 0; i < 12; i++) { mLineLength[i] = 0.0f; mOutfontLength[i] = 0.0f; } resetCharactor(); } /* 8022F9AC-8022FA2C 22A2EC 0080+00 0/0 3/3 0/0 .text * init__26jmessage_string_tReferenceFP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */ void jmessage_string_tReference::init(J2DTextBox* panePtr, J2DTextBox* runyPanePtr, JUTFont* font, COutFont_c* outFontPtr, u8 flags) { mPanePtr = panePtr; mRubyPanePtr = runyPanePtr; mOutFontPtr = outFontPtr; mLineCount = 0; mLineMax = 12; mNowPage = 0; mFlags = flags; if (font != NULL) { mpFont = font; } for (int i = 0; i < 12; i++) { mLineLength[i] = 0.0f; mOutfontLength[i] = 0.0f; } if (mOutFontPtr != NULL) { mOutFontPtr->initialize(); } } /* 8022FA2C-8022FA30 22A36C 0004+00 3/3 0/0 0/0 .text * setCharactor__26jmessage_string_tReferenceFUs */ void jmessage_string_tReference::setCharactor(u16 param_0) {} /* 8022FA30-8022FA34 22A370 0004+00 3/3 0/0 0/0 .text * addCharactor__26jmessage_string_tReferenceFUs */ void jmessage_string_tReference::addCharactor(u16 param_0) {} /* 8022FA34-8022FA38 22A374 0004+00 3/3 0/0 0/0 .text * resetCharactor__26jmessage_string_tReferenceFv */ void jmessage_string_tReference::resetCharactor() {} /* 8022FA38-8022FA6C 22A378 0034+00 2/2 1/1 0/0 .text * getLineLength__26jmessage_string_tReferenceFi */ f32 jmessage_string_tReference::getLineLength(int lineNo) { if (lineNo < 0) { return 0.0f; } if (lineNo < mLineMax) { return mLineLength[lineNo]; } return 0.0f; } /* 8022FA6C-8022FA98 22A3AC 002C+00 2/2 0/0 0/0 .text * addLineLength__26jmessage_string_tReferenceFif */ void jmessage_string_tReference::addLineLength(int lineNo, f32 length) { if (lineNo >= 0 && lineNo < mLineMax) { mLineLength[lineNo] += length; } } /* 8022FA98-8022FACC 22A3D8 0034+00 1/1 0/0 0/0 .text * getOutfontLength__26jmessage_string_tReferenceFi */ f32 jmessage_string_tReference::getOutfontLength(int param_0) { if (param_0 < 0) return 0.0f; if (param_0 < mLineMax) { return mOutfontLength[param_0]; } return 0.0f; } /* 8022FACC-8022FAF0 22A40C 0024+00 1/1 0/0 0/0 .text * setOutfontLength__26jmessage_string_tReferenceFif */ void jmessage_string_tReference::setOutfontLength(int param_0, f32 param_1) { if (param_0 < 0) return; if (param_0 >= mLineMax) return; mOutfontLength[param_0] = param_1; } /* 8022FAF0-8022FB24 22A430 0034+00 2/2 0/0 0/0 .text * clearOutfontLength__26jmessage_string_tReferenceFi */ void jmessage_string_tReference::clearOutfontLength(int param_0) { if (param_0 < 0) return; if (param_0 >= mLineMax) return; if (mOutfontLength[param_0]) { mOutfontLength[param_0] = 0.0f; } } /* 8022FB24-8022FB5C 22A464 0038+00 4/4 0/0 0/0 .text * getLineCountNowPage__26jmessage_string_tReferenceFv */ s16 jmessage_string_tReference::getLineCountNowPage() { s16 rv = -1; s32 iVar4 = getNowPage() * getLineMax(); s32 uVar1 = iVar4 + getLineMax(); if (mLineCount >= iVar4 && mLineCount < uVar1) { rv = mLineCount - iVar4; } return rv; } /* 8022FB5C-8022FB98 22A49C 003C+00 0/0 1/1 0/0 .text __ct__24jmessage_string_tControlFv */ jmessage_string_tControl::jmessage_string_tControl() {} /* 8022FB98-8022FBE4 22A4D8 004C+00 1/1 0/0 0/0 .text * __ct__33jmessage_string_tMeasureProcessorFPC26jmessage_string_tReference */ jmessage_string_tMeasureProcessor::jmessage_string_tMeasureProcessor( jmessage_string_tReference const* param_0) : JMessage::TRenderingProcessor(param_0) { mpReference = (jmessage_string_tReference*)getReference(); mpReference->resetCharactor(); } /* 8022FBE4-8022FC14 22A524 0030+00 1/0 0/0 0/0 .text * do_begin__33jmessage_string_tMeasureProcessorFPCvPCc */ void jmessage_string_tMeasureProcessor::do_begin(void const* param_0, char const* param_1) { mpReference->setLineCount(0); mpReference->resetCharactor(); } /* 8022FC14-8022FC28 22A554 0014+00 1/0 0/0 0/0 .text * do_end__33jmessage_string_tMeasureProcessorFv */ void jmessage_string_tMeasureProcessor::do_end() { mpReference->addLineCount(); } /* 8022FC28-8022FDF0 22A568 01C8+00 1/0 0/0 0/0 .text * do_character__33jmessage_string_tMeasureProcessorFi */ void jmessage_string_tMeasureProcessor::do_character(int param_0) { JUTFont* pFont = mpReference->getFont(); if (JUTFont::isLeadByte_ShiftJIS(param_0)) { if (!isOutfontKanjiCode(param_0)) { mpReference->setCharactor(changeKataToHira(change1ByteTo2Bytes(param_0))); } } else if (param_0 < 0x8800 && !isOutfontKanjiCode(param_0)) { mpReference->setCharactor(changeKataToHira(param_0)); } float charSpace; J2DTextBox::TFontSize fontSize; if (mpReference->getPanePtr() != NULL) { charSpace = mpReference->getPanePtr()->getCharSpace(); mpReference->getPanePtr()->getFontSize(fontSize); } else { charSpace = 0.0f; fontSize.mSizeX = 20.0f; fontSize.mSizeY = 20.0f; } if (param_0 == 10) { mpReference->addLineCount(); } else { f32 finalLength = charSpace + fontSize.mSizeX * ((f32)pFont->getWidth(param_0) / pFont->getCellWidth()); mpReference->addLineLength(mpReference->getLineCountNowPage(), finalLength); mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); } } /* 8022FDF0-8023098C 22A730 0B9C+00 5/0 0/0 0/0 .text * do_tag__33jmessage_string_tMeasureProcessorFUlPCvUl */ bool jmessage_string_tMeasureProcessor::do_tag(u32 param_1, void const* param_2, u32 param_3) { f32 dVar13; J2DTextBox::TFontSize local_130; if (mpReference->getPanePtr() != NULL) { dVar13 = ((J2DTextBox*)mpReference->getPanePtr())->getCharSpace(); ((J2DTextBox*)mpReference->getPanePtr())->getFontSize(local_130); } else { dVar13 = 0.0f; local_130.mSizeX = local_130.mSizeY = 20.0f; } jmessage_tReference* pRef = (jmessage_tReference*)getReference(); switch(param_1 & 0xff0000) { case 0xff0000: switch(param_1) { case 0xff0002: case 0xffff02: do_rubyset(param_2, param_3); break; } break; case 0: switch (param_1) { case 0: stack_pushCurrent(dComIfGs_getPlayerName()); break; case 0x22: stack_pushCurrent(dComIfGs_getHorseName()); break; case 0x35: stack_pushCurrent(dMsgObject_getWord()); break; case 0x29: stack_pushCurrent(dMsgObject_getMsgObjectClass()->getSmellName()); break; case 0x2b: stack_pushCurrent(dMsgObject_getMsgObjectClass()->getPortalName()); break; case 0x2d: stack_pushCurrent(dMsgObject_getMsgObjectClass()->getBombName()); break; case 0x3b: stack_pushCurrent(dMsgObject_getMsgObjectClass()->getInsectName()); break; case 0x3c: stack_pushCurrent(dMsgObject_getMsgObjectClass()->getLetterName()); break; case 0x3e: { char acStack_168[4]; sprintf(acStack_168, "%d", dComIfGp_getMessageCountNumber() / 100); stack_pushCurrent(acStack_168); break; } case 0x3f: { char acStack_16c[4]; sprintf(acStack_16c, "%d", dComIfGp_getMessageCountNumber() % 100); stack_pushCurrent(acStack_16c); break; } case 10: case 0xb: case 0xc: case 0xd: case 0xe: case 0xf: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x23: case 0x24: case 0x27: case 0x2a: case 0x2c: case 0x2e: case 0x2f: case 0x30: case 0x39: case 0x3a: { mpReference->setCharactor(0xffff); f32 dVar14 = local_130.mSizeX + dVar13; mpReference->addLineLength(mpReference->getLineCountNowPage(), dVar14); mpReference->setOutfontLength(mpReference->getLineCountNowPage(), dVar14); break; } case 0x25: int i = 0; local_130.mSizeX += dVar13; for (; i < 4; i++) { mpReference->addLineLength(mpReference->getLineCountNowPage(), local_130.mSizeX); mpReference->setOutfontLength(mpReference->getLineCountNowPage(), local_130.mSizeX); } break; case 0x31: { char bombNumStr[40]; u8 bombNum = dMsgObject_getMsgObjectClass()->getSelectBombNum(); dMsgUnit_setTag(7, bombNum, bombNumStr); stack_pushCurrent(bombNumStr); mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; } case 0x32: char bombPriceStr[40]; s16 bombPrice = dMsgObject_getMsgObjectClass()->getSelectBombPrice(); dMsgUnit_setTag(1, bombPrice, bombPriceStr); stack_pushCurrent(bombPriceStr); mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; case 0x37: u8 bombType = fpcNm_ITEM_NORMAL_BOMB; if ((*(u8*)param_2 ) == 1) { bombType = fpcNm_ITEM_WATER_BOMB; } else if ((*(s8*)param_2 & 0xffU) == 2) { bombType = fpcNm_ITEM_POKE_BOMB; } char bombMax[40]; dMsgUnit_setTag(7, dComIfGs_getBombMax(bombType), bombMax); stack_pushCurrent(bombMax); mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; case 0x38: char arrowMax[40]; dMsgUnit_setTag(0, dComIfGs_getArrowMax(), arrowMax); stack_pushCurrent(arrowMax); mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; } break; case 0x40000: switch (param_1 & 0xff00ffff) { case 0: stack_pushCurrent(changeCodeToChar(0x24)); break; case 1: stack_pushCurrent(changeCodeToChar(0x5c)); break; case 2: stack_pushCurrent(changeCodeToChar(0x40)); break; case 3: stack_pushCurrent(changeCodeToChar(0x81f2)); break; case 4: stack_pushCurrent(changeCodeToChar(0x81f3)); break; case 5: stack_pushCurrent(changeCodeToChar(0x81e3)); break; case 6: stack_pushCurrent(changeCodeToChar(0x876c)); break; case 7: stack_pushCurrent(changeCodeToChar(0x8766)); break; case 8: stack_pushCurrent(changeCodeToChar(0x8765)); break; case 9: stack_pushCurrent(changeCodeToChar(0x8767)); break; case 10: stack_pushCurrent(changeCodeToChar(0x8768)); break; case 0xb: stack_pushCurrent(changeCodeToChar(0x8769)); break; case 0xc: stack_pushCurrent(changeCodeToChar(0x876a)); break; case 0xd: stack_pushCurrent(changeCodeToChar(0x876b)); break; } mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; case 0x50000: { char acStack_100[40]; switch (param_1 & 0xff00ffff) { case 0: if (*(u8*)param_2 == 0) { dMsgUnit_setTag(4, dMeter2Info_getMsgTimeMs(), acStack_100); } else if ((*(s8*)param_2 & 0xffU) == 2) { dMsgUnit_setTag(4, dComIfGs_getRaceGameTime(), acStack_100); } else { dMsgUnit_setTag(4, dMeter2Info_getTimeMs(), acStack_100); } break; case 1: dMsgUnit_setTag(0, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_100); break; case 2: dMsgUnit_setTag(1, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_100); break; case 9: { s16 uVar9 = *(int*)param_2; dMsgObject_getMsgObjectClass()->setFundRaisingValue(uVar9); dMsgUnit_setTag(10, uVar9 - dMsgObject_getFundRaising(), acStack_100); break; } case 10: dMsgUnit_setTag(0xb, dMeter2Info_getNewLetterNum(), acStack_100); break; case 0xb: dMsgUnit_setTag(0xc, getPohNum(), acStack_100); break; case 0xc: { int local_15c; if (*(u8*)param_2 == 0) { local_15c = dComIfGp_getMessageCountNumber(); } else { local_15c = dComIfGs_getBalloonScore(); } dMsgUnit_setTag(0xd, local_15c, acStack_100); break; } case 3: { int insectNum; if (*(u8*)param_2 == 0) { insectNum = dComIfGs_checkGetInsectNum(); } else { insectNum = 0x18 - dComIfGs_checkGetInsectNum(); } dMsgUnit_setTag(2, insectNum, acStack_100); break; } case 4: dMsgUnit_setTag(3, 0, acStack_100); break; case 5: dMsgUnit_setTag(0x10000, dComIfGp_getNeedLightDropNum(), acStack_100); break; case 6: dMsgUnit_setTag(6, 0x14 - dComIfGs_getEventReg(0xff1f), acStack_100); break; case 8: dMsgUnit_setTag(9, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_100); break; case 0xd: dMsgUnit_setTag(0xe, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_100); break; case 0xe: dMsgUnit_setTag(0x10001, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_100); break; case 7: dMsgUnit_setTag(8, g_meter2_info.mNowCount, acStack_100); break; default: return false; } stack_pushCurrent(acStack_100); mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; } case 0x60000: { char acStack_128[40]; switch (param_1 & 0xff00ffff) { case 0: // @bug acStack_128 is uninitialized stack_pushCurrent(acStack_128); break; case 1: stack_pushCurrent(acStack_128); break; case 2: stack_pushCurrent(changeCodeToChar(0xb2)); break; case 3: stack_pushCurrent(changeCodeToChar(0xb3)); break; case 4: stack_pushCurrent(changeCodeToChar(0xb1)); break; case 5: stack_pushCurrent(changeCodeToChar(0x89)); break; case 6: stack_pushCurrent(changeCodeToChar(0xb9)); break; case 7: stack_pushCurrent(changeCodeToChar(0xbc)); break; case 8: stack_pushCurrent(changeCodeToChar(0xbd)); break; case 9: stack_pushCurrent(changeCodeToChar(0xbe)); break; case 10: case 0xb: local_130.mSizeX += dVar13; mpReference->addLineLength(mpReference->getLineCountNowPage(), local_130.mSizeX); mpReference->setOutfontLength(mpReference->getLineCountNowPage(), local_130.mSizeX); } mpReference->clearOutfontLength(mpReference->getLineCountNowPage()); break; case 0x30000: switch(param_1 & 0xff00ffff) { case 1: case 2: case 6: case 7: case 16: case 17: case 18: case 19: case 20: mpReference->setCharactor(0xffff); local_130.mSizeX += dVar13; mpReference->addLineLength(mpReference->getLineCountNowPage(), local_130.mSizeX); mpReference->setOutfontLength(mpReference->getLineCountNowPage(), local_130.mSizeX); break; case 3: case 4: case 5: mpReference->setCharactor(0xffff); local_130.mSizeX += dVar13; mpReference->addLineLength(mpReference->getLineCountNowPage(), local_130.mSizeX); mpReference->setOutfontLength(mpReference->getLineCountNowPage(), local_130.mSizeX); break; case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: mpReference->setCharactor(0xffff); local_130.mSizeX += dVar13; mpReference->addLineLength(mpReference->getLineCountNowPage(), local_130.mSizeX); mpReference->setOutfontLength(mpReference->getLineCountNowPage(), local_130.mSizeX); break; case 0: break; } break; } } return true; } /* 8023098C-80230A08 22B2CC 007C+00 1/1 0/0 0/0 .text * do_rubyset__33jmessage_string_tMeasureProcessorFPCvUl */ void jmessage_string_tMeasureProcessor::do_rubyset(void const* param_1, u32 param_2) { u8 len = param_2 - 1; u8* pStr = (u8*)param_1; int i = 0; pStr++; while (i < len) { u8 arr[3]; arr[0] = pStr[i++]; arr[1] = pStr[i++]; arr[2] = 0; int kata = (((char)arr[0] & 0xff) << 8) | ((char)arr[1] & 0xff); mpReference->setCharactor(changeKataToHira(kata)); } } /* 80230A08-80230A5C 22B348 0054+00 0/0 1/1 0/0 .text * __ct__34jmessage_string_tSequenceProcessorFPC26jmessage_string_tReferenceP24jmessage_string_tControl */ jmessage_string_tSequenceProcessor::jmessage_string_tSequenceProcessor( jmessage_string_tReference const* param_0, jmessage_string_tControl* param_1) : JMessage::TSequenceProcessor(param_0, param_1), mMeasureProcessor(param_0) { } /* 80230ABC-80230AC0 22B3FC 0004+00 1/0 0/0 0/0 .text * do_reset__34jmessage_string_tSequenceProcessorFv */ void jmessage_string_tSequenceProcessor::do_reset() {} /* 80230AC0-80230B7C 22B400 00BC+00 1/0 0/0 0/0 .text * do_begin__34jmessage_string_tSequenceProcessorFPCvPCc */ void jmessage_string_tSequenceProcessor::do_begin(void const* param_0, char const* param_1) { mpSeqReference = (jmessage_string_tReference*)JMessage::TSequenceProcessor::getReference(); mMeasureProcessor.process_messageEntryText(this, param_0, param_1); } /* 80230B7C-80230B80 22B4BC 0004+00 1/0 0/0 0/0 .text * do_end__34jmessage_string_tSequenceProcessorFv */ void jmessage_string_tSequenceProcessor::do_end() {} /* 80230B80-80230B88 22B4C0 0008+00 1/0 0/0 0/0 .text * do_isReady__34jmessage_string_tSequenceProcessorFv */ bool jmessage_string_tSequenceProcessor::do_isReady() { return true; } /* 80230B88-80230B8C 22B4C8 0004+00 1/0 0/0 0/0 .text * do_character__34jmessage_string_tSequenceProcessorFi */ void jmessage_string_tSequenceProcessor::do_character(int param_0) {} /* 80230B8C-80230BBC 22B4CC 0030+00 1/0 0/0 0/0 .text * do_tag__34jmessage_string_tSequenceProcessorFUlPCvUl */ bool jmessage_string_tSequenceProcessor::do_tag(u32 param_0, void const* param_1, u32 param_2) { switch (param_0 & 0xff0000) { case 0: switch(param_0) { case 0x36: dMeter2Info_setMsgKeyWaitTimer(*(u16*)param_1); break; } break; } return true; } /* 80230BBC-80230BC4 22B4FC 0008+00 1/0 0/0 0/0 .text * do_jump_isReady__34jmessage_string_tSequenceProcessorFv */ bool jmessage_string_tSequenceProcessor::do_jump_isReady() { return true; } /* 80230BC4-80230BC8 22B504 0004+00 1/0 0/0 0/0 .text * do_jump__34jmessage_string_tSequenceProcessorFPCvPCc */ void jmessage_string_tSequenceProcessor::do_jump(void const* param_0, char const* param_1) {} /* 80230BC8-80230C20 22B508 0058+00 0/0 1/1 0/0 .text * __ct__35jmessage_string_tRenderingProcessorFPC26jmessage_string_tReference */ jmessage_string_tRenderingProcessor::jmessage_string_tRenderingProcessor( jmessage_string_tReference const* param_0) : JMessage::TRenderingProcessor(param_0) { mpReference = (jmessage_string_tReference*)getReference(); do_reset(); } /* 80230C20-80230C5C 22B560 003C+00 5/5 0/0 0/0 .text * getLineCountNowPage__35jmessage_string_tRenderingProcessorFv */ s16 jmessage_string_tRenderingProcessor::getLineCountNowPage() { s16 rv = -1; s32 iVar4 = mpReference->getNowPage() * mpReference->getLineMax(); s32 uVar1 = iVar4 + mpReference->getLineMax(); if (field_0x552 >= iVar4 && field_0x552 < uVar1) { rv = field_0x552 - iVar4; } return rv; } /* 80230C5C-80230CA0 22B59C 0044+00 1/0 0/0 0/0 .text * do_reset__35jmessage_string_tRenderingProcessorFv */ void jmessage_string_tRenderingProcessor::do_reset() { field_0x44 = 0.0f; field_0x3c = 0.0f; field_0x40 = 0.0f; field_0x48 = 0.0f; field_0x4c = 0.0f; field_0x50 = 0.0f; field_0x54[0] = 0; field_0x254[0] = 0; field_0x454[0] = 0; field_0x54e = 0; field_0x550 = 0; field_0x554 = 0; field_0x552 = 0; field_0x486[0] = 0; } /* 80230CA0-80230CE8 22B5E0 0048+00 1/0 0/0 0/0 .text * do_begin__35jmessage_string_tRenderingProcessorFPCvPCc */ void jmessage_string_tRenderingProcessor::do_begin(void const* param_0, char const* param_1) { do_reset(); do_widthcenter(); do_heightcenter(); } /* 80230CE8-80230D48 22B628 0060+00 1/0 0/0 0/0 .text * do_end__35jmessage_string_tRenderingProcessorFv */ void jmessage_string_tRenderingProcessor::do_end() { J2DTextBox* pane = mpReference->getPanePtr(); if (pane != NULL) { strcpy(pane->getStringPtr(), field_0x54); } J2DTextBox* rubyPane = mpReference->getRubyPanePtr(); if (rubyPane != NULL) { strcpy(rubyPane->getStringPtr(), field_0x254); } } /* 80230D48-80231110 22B688 03C8+00 1/0 0/0 0/0 .text * do_character__35jmessage_string_tRenderingProcessorFi */ void jmessage_string_tRenderingProcessor::do_character(int param_1) { JUTFont* pFont = mpReference->getFont(); if (JUTFont::isLeadByte_ShiftJIS(param_1)) { if (!isOutfontKanjiCode(param_1)) { u16 kata = change1ByteTo2Bytes(param_1); mpReference->addCharactor(changeKataToHira(kata)); } } else { if (param_1 < 0x8800 && !isOutfontKanjiCode(param_1)) { mpReference->addCharactor(changeKataToHira(param_1)); } } f32 dVar12; J2DTextBox::TFontSize fontSize; if (mpReference->getPanePtr() != NULL) { dVar12 = ((J2DTextBox*)mpReference->getPanePtr())->getCharSpace(); ((J2DTextBox*)mpReference->getPanePtr())->getFontSize(fontSize); } else { dVar12 = 0.0f; fontSize.mSizeX = fontSize.mSizeY = 20.0f; } char local_a6[3]; local_a6[0] = local_a6[1] = local_a6[2] = 0; if ((param_1 & 0xff00U) != 0) { local_a6[0] = ((int)(param_1 & 0xff00U) >> 8); local_a6[1] = param_1 & 0xff; } else { local_a6[0] = param_1 & 0xff; local_a6[1] = 0; } if (param_1 == 10) { do_strcat(local_a6); do_rubystrcat(local_a6); field_0x552++; field_0x48 = 0.0f; field_0x4c = 0.0f; if (mpReference->getPanePtr() != NULL) { field_0x50 += ((J2DTextBox*)mpReference->getPanePtr())->getLineSpace(); } do_widthcenter(); } else { f32 fVar2; f32 fVar1 = dVar12 + fontSize.mSizeX * (pFont->getWidth(param_1) / (f32)pFont->getCellWidth()); field_0x4c += fVar1; if (field_0x554 != 0) { field_0x40 += fVar1; field_0x554--; if (field_0x554 == 0) { field_0x40 -= dVar12; fVar2 = (field_0x3c + 0.5f * (field_0x40 - field_0x44)); f32 fVar3 = fVar2 - field_0x48; char acStack_98[16]; if (fVar3 >= 1.0f) { snprintf(acStack_98, sizeof(acStack_98) - 1, "\x1B" "CR[%d]", (int)fVar3); do_rubystrcat(acStack_98); } else { if (fVar3 <= -1.0f) { snprintf(acStack_98, sizeof(acStack_98) - 1, "\x1B" "CL[%d]", (int)-fVar3); do_rubystrcat(acStack_98); } else { fVar3 = 0.0f; } } if (mpReference->getRubyPanePtr() != NULL) { field_0x48 += ((J2DTextBox*)mpReference->getRubyPanePtr())->getCharSpace() + ((int)fVar3 + field_0x44); } else { field_0x48 += (int)fVar3 + field_0x44; } do_rubystrcat(field_0x454); } } do_strcat(local_a6); } } /* 80231110-80231D70 22BA50 0C60+00 6/0 0/0 0/0 .text * do_tag__35jmessage_string_tRenderingProcessorFUlPCvUl */ bool jmessage_string_tRenderingProcessor::do_tag(u32 param_1, void const* param_2, u32 param_3) { jmessage_tReference* pRef = (jmessage_tReference*)getReference(); switch(param_1 & 0xff0000) { case 0xff0000: switch(param_1) { case 0xff0000: do_color(*(u8*)param_2 & 0xff); break; case 0xff0001: do_scale(*(u16*)param_2 / 100.0f); break; case 0xff0002: case 0xffff02: do_rubyset(param_2, param_3); break; } break; case 0: switch (param_1) { case 0: push_word(dComIfGs_getPlayerName()); break; case 0x22: push_word(dComIfGs_getHorseName()); break; case 0x35: push_word(dMsgObject_getWord()); break; case 0x29: push_word(dMsgObject_getMsgObjectClass()->getSmellName()); break; case 0x2b: push_word(dMsgObject_getMsgObjectClass()->getPortalName()); break; case 0x2d: push_word(dMsgObject_getMsgObjectClass()->getBombName()); break; case 0x3b: push_word(dMsgObject_getMsgObjectClass()->getInsectName()); break; case 0x3c: push_word(dMsgObject_getMsgObjectClass()->getLetterName()); break; case 0x3d: do_linedown(*(u16*)param_2); break; case 0x3e: char acStack_148[4]; sprintf(acStack_148, "%d", dComIfGp_getMessageCountNumber() / 100); push_word(acStack_148); break; case 0x3f: char acStack_14c[4]; sprintf(acStack_14c, "%d", dComIfGp_getMessageCountNumber() % 100); push_word(acStack_14c); break; case 10: do_outfont(0); break; case 0xb: do_outfont(1); break; case 0xc: do_outfont(2); break; case 0xd: do_outfont(3); break; case 0xe: do_outfont(4); break; case 0xf: do_outfont(5); break; case 0x10: do_outfont(6); break; case 0x11: do_outfont(7); break; case 0x12: do_outfont(8); break; case 0x13: do_outfont(9); break; case 0x14: do_outfont(10); break; case 0x15: do_outfont(11); break; case 0x16: do_outfont(12); break; case 0x17: do_outfont(13); break; case 0x18: do_outfont(14); break; case 0x19: do_outfont(15); break; case 0x1a: do_outfont(16); break; case 0x1b: do_outfont(17); break; case 0x1c: do_outfont(18); break; case 0x1d: do_outfont(19); break; case 0x23: do_outfont(20); break; case 0x24: do_outfont(21); break; case 0x25: do_outfont(30); do_numset(dMsgObject_getMsgObjectClass()->getInputValue()); break; case 0x27: do_outfont(23); break; case 0x2a: do_outfont(24); break; case 0x2c: do_outfont(25); break; case 0x2e: if (dMsgObject_getItemEquipButton() == 0) { do_outfont(5); } else { do_outfont(6); } break; case 0x2f: if (dMsgObject_getItemEquipButton() == 0) { do_outfont(6); } else { do_outfont(5); } break; case 0x30: do_outfont(41); break; case 0x39: do_outfont(27); break; case 0x3a: do_outfont(28); break; case 0x31: { char acStack_48[40]; u8 uVar7 = dMsgObject_getMsgObjectClass()->getSelectBombNum(); dMsgUnit_setTag(7, uVar7, acStack_48); push_word(acStack_48); break; } case 0x32: { char acStack_70[40]; s16 local_140 = dMsgObject_getMsgObjectClass()->getSelectBombPrice(); dMsgUnit_setTag(1, local_140, acStack_70); push_word(acStack_70); break; } case 0x37: u8 bombType = fpcNm_ITEM_NORMAL_BOMB; if ((*(u8*)param_2 ) == 1) { bombType = fpcNm_ITEM_WATER_BOMB; } else if ((*(s8*)param_2 & 0xffU) == 2) { bombType = fpcNm_ITEM_POKE_BOMB; } char bombMax[40]; dMsgUnit_setTag(7, dComIfGs_getBombMax(bombType), bombMax); push_word(bombMax); break; case 0x38: { char acStack_c0[40]; dMsgUnit_setTag(0, dComIfGs_getArrowMax(), acStack_c0); push_word(acStack_c0); break; } } break; case 0x40000: switch (param_1 & 0xff00ffff) { case 0: push_word(changeCodeToChar(0x24)); break; case 1: push_word(changeCodeToChar(0x5c)); break; case 2: push_word(changeCodeToChar(0x40)); break; case 3: push_word(changeCodeToChar(0x81f2)); break; case 4: push_word(changeCodeToChar(0x81f3)); break; case 5: push_word(changeCodeToChar(0x81e3)); break; case 6: push_word(changeCodeToChar(0x876c)); break; case 7: push_word(changeCodeToChar(0x8766)); break; case 8: push_word(changeCodeToChar(0x8765)); break; case 9: push_word(changeCodeToChar(0x8767)); break; case 10: push_word(changeCodeToChar(0x8768)); break; case 0xb: push_word(changeCodeToChar(0x8769)); break; case 0xc: push_word(changeCodeToChar(0x876a)); break; case 0xd: push_word(changeCodeToChar(0x876b)); break; } break; case 0x50000: { char acStack_e8[40]; switch (param_1 & 0xff00ffff) { case 0: if (*(u8*)param_2 == 0) { dMsgUnit_setTag(4, dMeter2Info_getMsgTimeMs(), acStack_e8); } else if ((*(s8*)param_2 & 0xffU) == 2) { dMsgUnit_setTag(4, dComIfGs_getRaceGameTime(), acStack_e8); } else { dMsgUnit_setTag(4, dMeter2Info_getTimeMs(), acStack_e8); } break; case 1: dMsgUnit_setTag(0, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_e8); break; case 2: dMsgUnit_setTag(1, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_e8); break; case 9: { s16 uVar9 = *(int*)param_2; dMsgObject_getMsgObjectClass()->setFundRaisingValue(uVar9); dMsgUnit_setTag(10, uVar9 - dMsgObject_getFundRaising(), acStack_e8); break; } case 10: dMsgUnit_setTag(0xb, dMeter2Info_getNewLetterNum(), acStack_e8); break; case 0xb: dMsgUnit_setTag(0xc, getPohNum(), acStack_e8); break; case 0xc:{ int local_15c; if (*(u8*)param_2 == 0) { local_15c = dComIfGp_getMessageCountNumber(); } else { local_15c = dComIfGs_getBalloonScore(); } dMsgUnit_setTag(0xd, local_15c, acStack_e8); break; } case 3: { int insectNum; if (*(u8*)param_2 == 0) { insectNum = dComIfGs_checkGetInsectNum(); } else { insectNum = 0x18 - dComIfGs_checkGetInsectNum(); } dMsgUnit_setTag(2, insectNum, acStack_e8); break; } case 4: dMsgUnit_setTag(3, 0, acStack_e8); break; case 5: dMsgUnit_setTag(0x10000, dComIfGp_getNeedLightDropNum(), acStack_e8); break; case 6: dMsgUnit_setTag(6, 0x14 - dComIfGs_getEventReg(0xff1f), acStack_e8); break; case 8: dMsgUnit_setTag(9, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_e8); break; case 0xd: dMsgUnit_setTag(0xe, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_e8); break; case 0xe: dMsgUnit_setTag(0x10001, g_dComIfG_gameInfo.play.mItemInfo.mMessageCountNum, acStack_e8); break; case 7: dMsgUnit_setTag(8, g_meter2_info.mNowCount, acStack_e8); break; default: return 0; } push_word(acStack_e8); break; } case 0x60000: { char acStack_110[40]; switch (param_1 & 0xff00ffff) { case 0: // @bug acStack_110 is uninitialized push_word(acStack_110); break; case 1: push_word(acStack_110); break; case 2: push_word(changeCodeToChar(0xb2)); break; case 3: push_word(changeCodeToChar(0xb3)); break; case 4: push_word(changeCodeToChar(0xb1)); break; case 5: push_word(changeCodeToChar(0x89)); break; case 6: push_word(changeCodeToChar(0xb9)); break; case 7: push_word(changeCodeToChar(0xbc)); break; case 8: push_word(changeCodeToChar(0xbd)); break; case 9: push_word(changeCodeToChar(0xbe)); break; case 10: do_outfont(42); break; case 0xb: do_outfont(43); } break; } case 0x30000: switch (param_1 & 0xff00ffff) { case 1: do_outfont(0); break; case 2: do_outfont(51); break; case 3: do_outfont(52); break; case 4: do_outfont(53); break; case 5: do_outfont(54); break; case 6: do_outfont(63); break; case 7: do_outfont(64); break; case 8: do_outfont(50); break; case 9: do_outfont(49); break; case 10: do_outfont(65); break; case 0xb: do_outfont(66); break; case 0xc: do_outfont(67); break; case 0xd: do_outfont(68); break; case 0xe: if (dComIfGs_getOptPointer() == 0) { do_outfont(9); } else { do_outfont(44); } break; case 0xf: do_outfont(69); break; case 0x10: do_outfont(45); break; case 0x11: do_outfont(44); break; case 0x12: do_outfont(62); break; case 0x13: do_outfont(2); break; case 0x14: do_outfont(7); break; } break; } return 1; } /* 80231D70-80231EF0 22C6B0 0180+00 2/2 0/0 0/0 .text * do_widthcenter__35jmessage_string_tRenderingProcessorFv */ void jmessage_string_tRenderingProcessor::do_widthcenter() { J2DPane* pane; f32 scale; f32 width; f32 lineLength; f32 dVar9; char acStack_68[16]; int outFontLen; if (getLineCountNowPage() >= 0 && mpReference->getPanePtr() != NULL) { if (mpReference->isFlag(1) == 0) { if (mpReference->getPanePtr()->getHBinding() != HBIND_CENTER) { return; } } pane = mpReference->getPanePtr(); scale = 1.0f; scale = mDoGph_gInf_c::getScale(); #if VERSION == VERSION_SHIELD_DEBUG for (; pane != NULL; pane = pane->getParentPane()) { if (pane->getUserInfo() == 'n_43') { scale = 1.0f; break; } } #endif width = scale * mpReference->getPanePtr()->getWidth(); lineLength = mpReference->getLineLength(getLineCountNowPage()); dVar9 = (0.5f + (width - lineLength) / 2); if (mpReference->getPanePtr()->getHBinding() == HBIND_CENTER) { snprintf(acStack_68, sizeof(acStack_68) - 1, "\x1B" "CL[%d]", (int)mpReference->getOutfontLength(getLineCountNowPage())); do_strcat(acStack_68); } if (dVar9 >= 1.0f) { field_0x4c += (int)dVar9; if (mpReference->getPanePtr()->getHBinding() != HBIND_CENTER) { snprintf(acStack_68, sizeof(acStack_68) - 1, "\x1B" "CR[%d]", (int)dVar9); do_strcat(acStack_68); } } } } /* 80231EF0-80232044 22C830 0154+00 1/1 0/0 0/0 .text * do_heightcenter__35jmessage_string_tRenderingProcessorFv */ void jmessage_string_tRenderingProcessor::do_heightcenter() { f32 height; J2DTextBox::TFontSize fontSize; f32 lineSpace; f32 dVar11; f32 dVar9; char buffer[16]; if (mpReference->getLineCountNowPage() >= 0 && mpReference->getPanePtr() != NULL) { if (mpReference->isFlag(2) == 0) { if (mpReference->getPanePtr()->getHBinding() != HBIND_CENTER) return; } height = mpReference->getPanePtr()->getHeight(); mpReference->getPanePtr()->getFontSize(fontSize); lineSpace = mpReference->getPanePtr()->getLineSpace(); dVar11 = ((lineSpace * mpReference->getLineCountNowPage()) - (lineSpace - fontSize.mSizeY)); dVar9 = 0.5f + (height - dVar11) / 2; if (dVar9 >= 1.0f) { field_0x50 += dVar9; if (mpReference->getPanePtr()->getHBinding() != HBIND_CENTER) { snprintf(buffer, sizeof(buffer) - 1, "\x1B" "CD[%d]", (int)dVar9); do_strcat(buffer); do_rubystrcat(buffer); } } } } /* 80232044-802320B0 22C984 006C+00 7/7 0/0 0/0 .text * do_strcat__35jmessage_string_tRenderingProcessorFPc */ void jmessage_string_tRenderingProcessor::do_strcat(char* param_0) { if (getLineCountNowPage() >= 0) { field_0x54e += strlen(param_0); if (field_0x54e < 512) { strcat(field_0x54, param_0); } } } /* 802320B0-80232260 22C9F0 01B0+00 1/1 0/0 0/0 .text * do_rubyset__35jmessage_string_tRenderingProcessorFPCvUl */ void jmessage_string_tRenderingProcessor::do_rubyset(void const* param_0, u32 param_1) { if (getLineCountNowPage() >= 0) { if (mpReference->getRubyPanePtr() != NULL) { JUTFont* pFont = mpReference->getFont(); f32 charSpace = mpReference->getRubyPanePtr()->getCharSpace(); J2DTextBox::TFontSize fontSize; mpReference->getRubyPanePtr()->getFontSize(fontSize); u8 m_rubycount = param_1 - 1; u8* pArr = (u8*)param_0; int i = 0; JUT_ASSERT(7565, m_rubycount < (50)); field_0x554 = *(u8*)param_0 & 0xff; pArr++; field_0x454[0] = 0; field_0x44 = 0.0f; while (i < (int)m_rubycount) { u8 local_64[3]; local_64[0] = pArr[i++]; local_64[1] = pArr[i++]; local_64[2] = 0; strcat(field_0x454, (const char*)local_64); int uVar10 = (((char)local_64[0] & 0xff) << 8) | ((char)local_64[1] & 0xff); field_0x44 += charSpace + fontSize.mSizeX * ((f32)pFont->getWidth(uVar10) / pFont->getCellWidth()); mpReference->addCharactor(changeKataToHira(uVar10)); } field_0x44 -= charSpace; field_0x3c = field_0x4c; field_0x40 = 0.0f; } } } /* 80232260-802322CC 22CBA0 006C+00 2/2 0/0 0/0 .text * do_rubystrcat__35jmessage_string_tRenderingProcessorFPc */ void jmessage_string_tRenderingProcessor::do_rubystrcat(char* param_0) { if (getLineCountNowPage() >= 0) { field_0x550 += strlen(param_0); if (field_0x550 < 512) { strcat(field_0x254, param_0); } } } /* 802322CC-8023256C 22CC0C 02A0+00 2/2 0/0 0/0 .text * do_outfont__35jmessage_string_tRenderingProcessorFUc */ void jmessage_string_tRenderingProcessor::do_outfont(u8 param_1) { if (mpReference->getPanePtr() != NULL) { f32 dVar11 = mpReference->getPanePtr()->getCharSpace(); f32 dVar13 = 0.0f; int r28 = 1; J2DTextBox::TFontSize local_60; mpReference->getPanePtr()->getFontSize(local_60); if (mpReference->getOutFontPtr() != NULL) { J2DPane* pane = mpReference->getPanePtr(); f32 paneBounds0 = pane->getBounds().i.x; f32 paneBounds1 = pane->getBounds().i.y; f32 scales[2]; scales[0] = mpReference->getPanePtr()->getScaleX(); scales[1] = mpReference->getPanePtr()->getScaleX(); for (pane = pane->getParentPane(); pane != NULL; pane = pane->getParentPane()) { paneBounds0 += pane->getBounds().i.x; paneBounds1 += pane->getBounds().i.y; } f32 stack_2c = local_60.mSizeX; f32 stack_28 = local_60.mSizeY; f32 local_8c = 0.0f; f32 local_90 = 0.0f; if (mpReference->isFlag(4)) { f32 dVar14 = mpReference->getPanePtr()->getWidth(); f32 dVar12 = mpReference->getLineLength(getLineCountNowPage()); local_8c = 0.5f + (dVar14 - dVar12) / 2; } if (mpReference->isFlag( #if VERSION == VERSION_SHIELD_DEBUG 8 #else 8 #endif )) { f32 dVar14 = mpReference->getPanePtr()->getHeight(); J2DTextBox::TFontSize TStack_68; mpReference->getPanePtr()->getFontSize(TStack_68); f32 dVar12 = mpReference->getPanePtr()->getLineSpace(); f32 stack_c = (dVar12 * mpReference->getLineCountNowPage() - (dVar12 - TStack_68.mSizeY)); local_90 = 0.5f + (dVar14 - stack_c) / 2; } mpReference->getOutFontPtr()->drawFont( mpReference->getPanePtr(), param_1, field_0x4c + local_8c, field_0x50 + local_90, local_60.mSizeX, local_60.mSizeY, 0xffffffff, 0xff); dVar13 = (0.5f + (dVar11 + local_60.mSizeX * r28)); } field_0x4c += (int) dVar13; char buffer[16]; snprintf(buffer, sizeof(buffer) - 1, "\x1B" "CR[%d]", (int)dVar13); do_strcat(buffer); mpReference->addCharactor(0xffff); } } /* 8023256C-80232600 22CEAC 0094+00 1/1 0/0 0/0 .text * do_color__35jmessage_string_tRenderingProcessorFUc */ void jmessage_string_tRenderingProcessor::do_color(u8 param_0) { u32 ccColor; u32 gcColor; if (param_0 == 0) { ccColor = ((jmessage_string_tReference*)getReference())->getCCColor(); gcColor = ((jmessage_string_tReference*)getReference())->getGCColor(); } else { ccColor = getFontCCColorTable(param_0, 0); gcColor = getFontGCColorTable(param_0, 0); } char buffer[32]; sprintf(buffer, "\x1b" "CC[%08x]" "\x1b" "GC[%08x]", ccColor, gcColor); do_strcat(buffer); } /* 80232600-80232690 22CF40 0090+00 1/1 0/0 0/0 .text * do_scale__35jmessage_string_tRenderingProcessorFf */ void jmessage_string_tRenderingProcessor::do_scale(f32 param_0) { J2DTextBox::TFontSize fontSize; mpReference->getPanePtr()->getFontSize(fontSize); s16 local_60 = 0.5f + fontSize.mSizeX * param_0; s16 local_58 = 0.5f + fontSize.mSizeY * param_0; char buffer[32]; sprintf(buffer, "\x1b" "FX[%d]" "\x1b" "FY[%d]", local_60, local_58); do_strcat(buffer); } /* 80232690-802326E4 22CFD0 0054+00 1/1 0/0 0/0 .text * do_linedown__35jmessage_string_tRenderingProcessorFs */ void jmessage_string_tRenderingProcessor::do_linedown(s16 param_0) { char buffer[16]; sprintf(buffer, "\x1B" "CD[%d]", param_0); do_strcat(buffer); } /* 802326E4-802327BC 22D024 00D8+00 1/1 0/0 0/0 .text * do_numset__35jmessage_string_tRenderingProcessorFs */ void jmessage_string_tRenderingProcessor::do_numset(s16 param_0) { if (9999 < param_0) { param_0 = 9999; } if (param_0 < 0) { param_0 = 0; } do_outfont(getOutFontNumberType(param_0 / 1000)); do_outfont(getOutFontNumberType(param_0 % 1000 / 100)); do_outfont(getOutFontNumberType(param_0 % 100 / 10)); do_outfont(getOutFontNumberType(param_0 % 10)); } /* 802327BC-802327F8 22D0FC 003C+00 1/1 0/0 0/0 .text * push_word__35jmessage_string_tRenderingProcessorFPCc */ void jmessage_string_tRenderingProcessor::push_word(char const* param_0) { strcpy(field_0x486, param_0); stack_pushCurrent(field_0x486); }