Files
tp/src/d/d_msg_class.cpp
T
TakaRikka 211e5f13c7 canoe done (#2417)
* d_a_canoe done

* fix debug
2025-05-03 10:33:31 +03:00

5339 lines
171 KiB
C++

//
// 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);
}