mirror of
https://github.com/zeldaret/tp
synced 2026-06-06 03:38:41 -04:00
211e5f13c7
* d_a_canoe done * fix debug
5339 lines
171 KiB
C++
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);
|
|
}
|