I keep getting distracted by side quests

This commit is contained in:
robojumper
2025-04-03 23:24:12 +02:00
parent 832f6a6744
commit 18d7897d76
19 changed files with 889 additions and 184 deletions
+11
View File
@@ -261,6 +261,9 @@ d/d_textunk.cpp:
.sdata2 start:0x805797F8 end:0x80579848
.bss start:0x805A6F70 end:0x805A7730
d/d_textwindow_unk.cpp:
.text start:0x800B20E0 end:0x800B34F0
d/d_tag_processor.cpp:
.text start:0x800B34F0 end:0x800B9274
.ctors start:0x804DB6D4 end:0x804DB6D8
@@ -749,6 +752,14 @@ d/tg/d_t_weather.cpp:
.text start:0x801A65D0 end:0x801AF7D8
.ctors start:0x804DB804 end:0x804DB808
d/d_message.cpp:
.text start:0x801AF7E0 end:0x801B329C
.ctors start:0x804DB808 end:0x804DB80C
.data start:0x8052C858 end:0x8052DF40
.sdata start:0x80573248 end:0x80573290
.sbss start:0x80575740 end:0x80575760
.bss start:0x805B29E0 end:0x805B36E0
d/d_stage.cpp:
.text start:0x801B32A0 end:0x801B5BC8
.ctors start:0x804DB80C end:0x804DB810
+162 -162
View File
@@ -6743,9 +6743,9 @@ fn_80114440 = .text:0x80114440; // type:function size:0x248
fn_80114690 = .text:0x80114690; // type:function size:0x25C
fn_801148F0 = .text:0x801148F0; // type:function size:0x24
fn_80114920 = .text:0x80114920; // type:function size:0x40
LytMsgWindow__init = .text:0x80114960; // type:function size:0x228
fn_80114B90 = .text:0x80114B90; // type:function size:0x10
fn_80114BA0 = .text:0x80114BA0; // type:function size:0xB8
build__15dLytMsgWindow_cFv = .text:0x80114960; // type:function size:0x228
changeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80114B90; // type:function size:0x10
remove__15dLytMsgWindow_cFv = .text:0x80114BA0; // type:function size:0xB8
LytMsgWindow__stateInvisibleEnter = .text:0x80114C60; // type:function size:0x4
LytMsgWindow__stateInvisibleUpdate = .text:0x80114C70; // type:function size:0x6A8
fn_80115320 = .text:0x80115320; // type:function size:0x58
@@ -6873,7 +6873,7 @@ fn_801192A0 = .text:0x801192A0; // type:function size:0x58
fn_80119300 = .text:0x80119300; // type:function size:0x6C
fn_80119370 = .text:0x80119370; // type:function size:0xA0
fn_80119410 = .text:0x80119410; // type:function size:0xA4
fn_801194C0 = .text:0x801194C0; // type:function size:0x40C
removeAllWindowSubtypes__15dLytMsgWindow_cFv = .text:0x801194C0; // type:function size:0x40C
LytMsgWindowTalk__dtor = .text:0x801198D0; // type:function size:0x198
fn_80119A70 = .text:0x80119A70; // type:function size:0x198
LytMsgWindowSword__dtor = .text:0x80119C10; // type:function size:0x198
@@ -7040,9 +7040,9 @@ initializeState__32sFStateID_c<17dLytAutoExplain_c>CFR17dLytAutoExplain_c = .tex
finalizeState__32sFStateID_c<17dLytAutoCaption_c>CFR17dLytAutoCaption_c = .text:0x8011B8F0; // type:function size:0x30
executeState__32sFStateID_c<17dLytAutoCaption_c>CFR17dLytAutoCaption_c = .text:0x8011B920; // type:function size:0x30
initializeState__32sFStateID_c<17dLytAutoCaption_c>CFR17dLytAutoCaption_c = .text:0x8011B950; // type:function size:0x30
LytMsgWindow__initStates = .text:0x8011B980; // type:function size:0xE58
LytMsgWindow__dtor = .text:0x8011C7E0; // type:function size:0x58
fn_8011C840 = .text:0x8011C840; // type:function size:0x88
__sinit_\d_lyt_msg_window_cpp = .text:0x8011B980; // type:function size:0xE58
__dt__30sFStateID_c<15dLytMsgWindow_c>Fv = .text:0x8011C7E0; // type:function size:0x58
isSameName__30sFStateID_c<15dLytMsgWindow_c>CFPCc = .text:0x8011C840; // type:function size:0x88
__ct__15SelectBtnHelperFv = .text:0x8011C8D0; // type:function size:0x60
__dt__15SelectBtnHelperFv = .text:0x8011C930; // type:function size:0x40
fn_8011C970 = .text:0x8011C970; // type:function size:0x6C
@@ -10907,14 +10907,14 @@ fn_801B1F10 = .text:0x801B1F10; // type:function size:0x38
ActorEventFlowManager__clear = .text:0x801B1F50; // type:function size:0x2C
fn_801B1F80 = .text:0x801B1F80; // type:function size:0xD8
fn_801B2060 = .text:0x801B2060; // type:function size:0x98
fn_801B2100 = .text:0x801B2100; // type:function size:0x30
msbAlloc = .text:0x801B2130; // type:function size:0x2C
msbFree = .text:0x801B2160; // type:function size:0x24
GlobalMessageRelatedContext__ctor = .text:0x801B2190; // type:function size:0x48
fn_801B21E0 = .text:0x801B21E0; // type:function size:0x268
fn_801B2450 = .text:0x801B2450; // type:function size:0xBC
fn_801B2510 = .text:0x801B2510; // type:function size:0x7C
fn_801B2590 = .text:0x801B2590; // type:function size:0x8
dMessage_c_classInit__Fv = .text:0x801B2100; // type:function size:0x30
msbAlloc__FUl = .text:0x801B2130; // type:function size:0x2C
msbFree__FPv = .text:0x801B2160; // type:function size:0x24
__ct__10dMessage_cFv = .text:0x801B2190; // type:function size:0x48
create__10dMessage_cFv = .text:0x801B21E0; // type:function size:0x268
doDelete__10dMessage_cFv = .text:0x801B2450; // type:function size:0xBC
execute__10dMessage_cFv = .text:0x801B2510; // type:function size:0x7C
draw__10dMessage_cFv = .text:0x801B2590; // type:function size:0x8
getTextMessageByLabel = .text:0x801B25A0; // type:function size:0x24
fn_801B25D0 = .text:0x801B25D0; // type:function size:0x2C
fn_801B2600 = .text:0x801B2600; // type:function size:0xC
@@ -10922,10 +10922,10 @@ fn_801B2610 = .text:0x801B2610; // type:function size:0x180
fn_801B2790 = .text:0x801B2790; // type:function size:0x98
fn_801B2830 = .text:0x801B2830; // type:function size:0xC
fn_801B2840 = .text:0x801B2840; // type:function size:0x38
getMsbtNameInArc = .text:0x801B2880; // type:function size:0x88
getMsbfNameInArc = .text:0x801B2910; // type:function size:0x88
getMajorNumberForMsbt = .text:0x801B29A0; // type:function size:0x24
fn_801B29D0 = .text:0x801B29D0; // type:function size:0x24
getMsbtFileName__10dMessage_cFl = .text:0x801B2880; // type:function size:0x88
getMsbfFileName__10dMessage_cFl = .text:0x801B2910; // type:function size:0x88
getMsbtNumberByIndex__10dMessage_cFl = .text:0x801B29A0; // type:function size:0x24
getMsbfNumberByIndex__10dMessage_cFl = .text:0x801B29D0; // type:function size:0x24
fn_801B2A00 = .text:0x801B2A00; // type:function size:0x14
fn_801B2A20 = .text:0x801B2A20; // type:function size:0x4C
fn_801B2A70 = .text:0x801B2A70; // type:function size:0xC
@@ -10939,18 +10939,18 @@ fn_801B2BE0 = .text:0x801B2BE0; // type:function size:0x40
fn_801B2C20 = .text:0x801B2C20; // type:function size:0x30
fn_801B2C50 = .text:0x801B2C50; // type:function size:0xC0
fn_801B2D10 = .text:0x801B2D10; // type:function size:0x4C
fn_801B2D60 = .text:0x801B2D60; // type:function size:0x44
getUsedLanguageString = .text:0x801B2DB0; // type:function size:0x1B0
getEventFlowFileNameByIndex = .text:0x801B2F60; // type:function size:0x4
reset__10dMessage_cFv = .text:0x801B2D60; // type:function size:0x44
getLanguageIdentifier__10dMessage_cFv = .text:0x801B2DB0; // type:function size:0x1B0
getArcNameByIndex__10dMessage_cFlb = .text:0x801B2F60; // type:function size:0x4
getEventFlowFileNameByIndex2 = .text:0x801B2F70; // type:function size:0x14
getDataFromMsbArc = .text:0x801B2F90; // type:function size:0x70
setZevFromMsbArc = .text:0x801B3000; // type:function size:0x68
getDataFromMsbArc__10dMessage_cFlPCcb = .text:0x801B2F90; // type:function size:0x70
setZevFromMsbArc__10dMessage_cFv = .text:0x801B3000; // type:function size:0x68
fn_801B3070 = .text:0x801B3070; // type:function size:0x104
fn_801B3180 = .text:0x801B3180; // type:function size:0x24
fn_801B31B0 = .text:0x801B31B0; // type:function size:0x24
fn_801B31E0 = .text:0x801B31E0; // type:function size:0x34
fn_801B3220 = .text:0x801B3220; // type:function size:0x64
initCurrentLangString = .text:0x801B3290; // type:function size:0xC
getArcIndexForFile__10dMessage_cFPCc = .text:0x801B31E0; // type:function size:0x34
__dt__10dMessage_cFv = .text:0x801B3220; // type:function size:0x64
__sinit_\d_message_cpp = .text:0x801B3290; // type:function size:0xC scope:local
dStage_c_classInit__Fv = .text:0x801B32A0; // type:function size:0x30
__ct__8dStage_cFv = .text:0x801B32D0; // type:function size:0xF0
__dt__18sFPhase<8dStage_c>Fv = .text:0x801B33C0; // type:function size:0x58
@@ -33984,170 +33984,170 @@ jumptable_8052CAC8 = .data:0x8052CAC8; // type:object size:0x28 scope:local
lbl_8052CAF0 = .data:0x8052CAF0; // type:object size:0x114
jumptable_8052CC04 = .data:0x8052CC04; // type:object size:0x20 scope:local
g_profile_MESSAGE = .data:0x8052CC24; // type:object size:0xC
lbl_8052CC30 = .data:0x8052CC30; // type:object size:0x10
lbl_8052CC30 = .data:0x8052CC30; // type:object size:0xE data:string
lbl_8052CC40 = .data:0x8052CC40; // type:object size:0x10 data:string
lbl_8052CC50 = .data:0x8052CC50; // type:object size:0x10 data:string
lbl_8052CC60 = .data:0x8052CC60; // type:object size:0x18
lbl_8052CC60 = .data:0x8052CC60; // type:object size:0x11 data:string
lbl_8052CC78 = .data:0x8052CC78; // type:object size:0x10 data:string
lbl_8052CC88 = .data:0x8052CC88; // type:object size:0x14
lbl_8052CC9C = .data:0x8052CC9C; // type:object size:0x18
lbl_8052CCB4 = .data:0x8052CCB4; // type:object size:0x18
lbl_8052CCCC = .data:0x8052CCCC; // type:object size:0x18
lbl_8052CCE4 = .data:0x8052CCE4; // type:object size:0x18
lbl_8052CCFC = .data:0x8052CCFC; // type:object size:0x18
lbl_8052CD14 = .data:0x8052CD14; // type:object size:0x18
lbl_8052CD2C = .data:0x8052CD2C; // type:object size:0x18
lbl_8052CD44 = .data:0x8052CD44; // type:object size:0x18
lbl_8052CD5C = .data:0x8052CD5C; // type:object size:0x18
lbl_8052CD74 = .data:0x8052CD74; // type:object size:0x18
lbl_8052CD8C = .data:0x8052CD8C; // type:object size:0x14
lbl_8052CDA0 = .data:0x8052CDA0; // type:object size:0x10
lbl_8052CDB0 = .data:0x8052CDB0; // type:object size:0xC
lbl_8052CDBC = .data:0x8052CDBC; // type:object size:0x10
lbl_8052CDCC = .data:0x8052CDCC; // type:object size:0x10
lbl_8052CDDC = .data:0x8052CDDC; // type:object size:0x10
lbl_8052CC88 = .data:0x8052CC88; // type:object size:0x12 data:string
lbl_8052CC9C = .data:0x8052CC9C; // type:object size:0x16 data:string
lbl_8052CCB4 = .data:0x8052CCB4; // type:object size:0x17 data:string
lbl_8052CCCC = .data:0x8052CCCC; // type:object size:0x17 data:string
lbl_8052CCE4 = .data:0x8052CCE4; // type:object size:0x17 data:string
lbl_8052CCFC = .data:0x8052CCFC; // type:object size:0x17 data:string
lbl_8052CD14 = .data:0x8052CD14; // type:object size:0x17 data:string
lbl_8052CD2C = .data:0x8052CD2C; // type:object size:0x17 data:string
lbl_8052CD44 = .data:0x8052CD44; // type:object size:0x17 data:string
lbl_8052CD5C = .data:0x8052CD5C; // type:object size:0x17 data:string
lbl_8052CD74 = .data:0x8052CD74; // type:object size:0x17 data:string
lbl_8052CD8C = .data:0x8052CD8C; // type:object size:0x11 data:string
lbl_8052CDA0 = .data:0x8052CDA0; // type:object size:0xE data:string
lbl_8052CDB0 = .data:0x8052CDB0; // type:object size:0xA data:string
lbl_8052CDBC = .data:0x8052CDBC; // type:object size:0xE data:string
lbl_8052CDCC = .data:0x8052CDCC; // type:object size:0xE data:string
lbl_8052CDDC = .data:0x8052CDDC; // type:object size:0xF data:string
lbl_8052CDEC = .data:0x8052CDEC; // type:object size:0x14 data:string
lbl_8052CE00 = .data:0x8052CE00; // type:object size:0x10
lbl_8052CE10 = .data:0x8052CE10; // type:object size:0x10
lbl_8052CE20 = .data:0x8052CE20; // type:object size:0x18
lbl_8052CE00 = .data:0x8052CE00; // type:object size:0xF data:string
lbl_8052CE10 = .data:0x8052CE10; // type:object size:0xF data:string
lbl_8052CE20 = .data:0x8052CE20; // type:object size:0x13 data:string
lbl_8052CE38 = .data:0x8052CE38; // type:object size:0x10 data:string
lbl_8052CE48 = .data:0x8052CE48; // type:object size:0x14
lbl_8052CE5C = .data:0x8052CE5C; // type:object size:0x14
lbl_8052CE48 = .data:0x8052CE48; // type:object size:0x12 data:string
lbl_8052CE5C = .data:0x8052CE5C; // type:object size:0x13 data:string
lbl_8052CE70 = .data:0x8052CE70; // type:object size:0x14 data:string
lbl_8052CE84 = .data:0x8052CE84; // type:object size:0x18
lbl_8052CE9C = .data:0x8052CE9C; // type:object size:0x14
lbl_8052CEB0 = .data:0x8052CEB0; // type:object size:0x18
lbl_8052CE84 = .data:0x8052CE84; // type:object size:0x17 data:string
lbl_8052CE9C = .data:0x8052CE9C; // type:object size:0x11 data:string
lbl_8052CEB0 = .data:0x8052CEB0; // type:object size:0x16 data:string
lbl_8052CEC8 = .data:0x8052CEC8; // type:object size:0x10 data:string
lbl_8052CED8 = .data:0x8052CED8; // type:object size:0x10
lbl_8052CED8 = .data:0x8052CED8; // type:object size:0xF data:string
lbl_8052CEE8 = .data:0x8052CEE8; // type:object size:0x14 data:string
lbl_8052CEFC = .data:0x8052CEFC; // type:object size:0x14
lbl_8052CF10 = .data:0x8052CF10; // type:object size:0x10
lbl_8052CF20 = .data:0x8052CF20; // type:object size:0x14
lbl_8052CF34 = .data:0x8052CF34; // type:object size:0x10
lbl_8052CF44 = .data:0x8052CF44; // type:object size:0x14
lbl_8052CF58 = .data:0x8052CF58; // type:object size:0x10
lbl_8052CF68 = .data:0x8052CF68; // type:object size:0x10
lbl_8052CF78 = .data:0x8052CF78; // type:object size:0x10
lbl_8052CEFC = .data:0x8052CEFC; // type:object size:0x11 data:string
lbl_8052CF10 = .data:0x8052CF10; // type:object size:0xF data:string
lbl_8052CF20 = .data:0x8052CF20; // type:object size:0x11 data:string
lbl_8052CF34 = .data:0x8052CF34; // type:object size:0xF data:string
lbl_8052CF44 = .data:0x8052CF44; // type:object size:0x12 data:string
lbl_8052CF58 = .data:0x8052CF58; // type:object size:0xF data:string
lbl_8052CF68 = .data:0x8052CF68; // type:object size:0xF data:string
lbl_8052CF78 = .data:0x8052CF78; // type:object size:0xF data:string
lbl_8052CF88 = .data:0x8052CF88; // type:object size:0xC data:string
lbl_8052CF94 = .data:0x8052CF94; // type:object size:0x10
lbl_8052CFA4 = .data:0x8052CFA4; // type:object size:0x10
lbl_8052CFB4 = .data:0x8052CFB4; // type:object size:0x14
lbl_8052CF94 = .data:0x8052CF94; // type:object size:0xF data:string
lbl_8052CFA4 = .data:0x8052CFA4; // type:object size:0xE data:string
lbl_8052CFB4 = .data:0x8052CFB4; // type:object size:0xE data:string
lbl_8052CFC8 = .data:0x8052CFC8; // type:object size:0x10 data:string
lbl_8052CFD8 = .data:0x8052CFD8; // type:object size:0x14
lbl_8052CFEC = .data:0x8052CFEC; // type:object size:0x14
lbl_8052D000 = .data:0x8052D000; // type:object size:0x14
lbl_8052D014 = .data:0x8052D014; // type:object size:0x14
lbl_8052D028 = .data:0x8052D028; // type:object size:0x18
lbl_8052D040 = .data:0x8052D040; // type:object size:0x14
lbl_8052D054 = .data:0x8052D054; // type:object size:0x10
lbl_8052D064 = .data:0x8052D064; // type:object size:0x14
lbl_8052CFD8 = .data:0x8052CFD8; // type:object size:0x12 data:string
lbl_8052CFEC = .data:0x8052CFEC; // type:object size:0x12 data:string
lbl_8052D000 = .data:0x8052D000; // type:object size:0x12 data:string
lbl_8052D014 = .data:0x8052D014; // type:object size:0x12 data:string
lbl_8052D028 = .data:0x8052D028; // type:object size:0x15 data:string
lbl_8052D040 = .data:0x8052D040; // type:object size:0x11 data:string
lbl_8052D054 = .data:0x8052D054; // type:object size:0xE data:string
lbl_8052D064 = .data:0x8052D064; // type:object size:0x12 data:string
lbl_8052D078 = .data:0x8052D078; // type:object size:0x14 data:string
lbl_8052D08C = .data:0x8052D08C; // type:object size:0x14
lbl_8052D08C = .data:0x8052D08C; // type:object size:0x11 data:string
lbl_8052D0A0 = .data:0x8052D0A0; // type:object size:0x14 data:string
lbl_8052D0B4 = .data:0x8052D0B4; // type:object size:0x14 data:string
lbl_8052D0C8 = .data:0x8052D0C8; // type:object size:0x14 data:string
lbl_8052D0DC = .data:0x8052D0DC; // type:object size:0x18
lbl_8052D0F4 = .data:0x8052D0F4; // type:object size:0x14
lbl_8052D108 = .data:0x8052D108; // type:object size:0x10
lbl_8052D0DC = .data:0x8052D0DC; // type:object size:0x17 data:string
lbl_8052D0F4 = .data:0x8052D0F4; // type:object size:0x11 data:string
lbl_8052D108 = .data:0x8052D108; // type:object size:0xE data:string
lbl_8052D118 = .data:0x8052D118; // type:object size:0x10 data:string
lbl_8052D128 = .data:0x8052D128; // type:object size:0x14
lbl_8052D13C = .data:0x8052D13C; // type:object size:0x14
lbl_8052D150 = .data:0x8052D150; // type:object size:0x14
lbl_8052D164 = .data:0x8052D164; // type:object size:0x14
lbl_8052D178 = .data:0x8052D178; // type:object size:0x18
lbl_8052D190 = .data:0x8052D190; // type:object size:0x18
lbl_8052D1A8 = .data:0x8052D1A8; // type:object size:0x18
lbl_8052D1C0 = .data:0x8052D1C0; // type:object size:0x18
lbl_8052D128 = .data:0x8052D128; // type:object size:0x12 data:string
lbl_8052D13C = .data:0x8052D13C; // type:object size:0x12 data:string
lbl_8052D150 = .data:0x8052D150; // type:object size:0x12 data:string
lbl_8052D164 = .data:0x8052D164; // type:object size:0x12 data:string
lbl_8052D178 = .data:0x8052D178; // type:object size:0x17 data:string
lbl_8052D190 = .data:0x8052D190; // type:object size:0x15 data:string
lbl_8052D1A8 = .data:0x8052D1A8; // type:object size:0x15 data:string
lbl_8052D1C0 = .data:0x8052D1C0; // type:object size:0x11 data:string
lbl_8052D1D8 = .data:0x8052D1D8; // type:object size:0x18 data:string
lbl_8052D1F0 = .data:0x8052D1F0; // type:object size:0x10
lbl_8052D200 = .data:0x8052D200; // type:object size:0x18
lbl_8052D218 = .data:0x8052D218; // type:object size:0x10
lbl_8052D228 = .data:0x8052D228; // type:object size:0x1C
lbl_8052D244 = .data:0x8052D244; // type:object size:0x10
lbl_8052D254 = .data:0x8052D254; // type:object size:0x14
lbl_8052D268 = .data:0x8052D268; // type:object size:0x10
MSBT_FILENAMES = .data:0x8052D278; // type:object size:0x148
lbl_8052D3C0 = .data:0x8052D3C0; // type:object size:0x10
lbl_8052D1F0 = .data:0x8052D1F0; // type:object size:0xE data:string
lbl_8052D200 = .data:0x8052D200; // type:object size:0x15 data:string
lbl_8052D218 = .data:0x8052D218; // type:object size:0xE data:string
lbl_8052D228 = .data:0x8052D228; // type:object size:0x19 data:string
lbl_8052D244 = .data:0x8052D244; // type:object size:0xF data:string
lbl_8052D254 = .data:0x8052D254; // type:object size:0x11 data:string
lbl_8052D268 = .data:0x8052D268; // type:object size:0xE data:string
sMsbtFileNames = .data:0x8052D278; // type:object size:0x148
lbl_8052D3C0 = .data:0x8052D3C0; // type:object size:0xE data:string
lbl_8052D3D0 = .data:0x8052D3D0; // type:object size:0x10 data:string
lbl_8052D3E0 = .data:0x8052D3E0; // type:object size:0x10 data:string
lbl_8052D3F0 = .data:0x8052D3F0; // type:object size:0x18
lbl_8052D3F0 = .data:0x8052D3F0; // type:object size:0x11 data:string
lbl_8052D408 = .data:0x8052D408; // type:object size:0x10 data:string
lbl_8052D418 = .data:0x8052D418; // type:object size:0x14
lbl_8052D42C = .data:0x8052D42C; // type:object size:0x18
lbl_8052D444 = .data:0x8052D444; // type:object size:0x18
lbl_8052D45C = .data:0x8052D45C; // type:object size:0x18
lbl_8052D474 = .data:0x8052D474; // type:object size:0x18
lbl_8052D48C = .data:0x8052D48C; // type:object size:0x18
lbl_8052D4A4 = .data:0x8052D4A4; // type:object size:0x18
lbl_8052D4BC = .data:0x8052D4BC; // type:object size:0x18
lbl_8052D4D4 = .data:0x8052D4D4; // type:object size:0x18
lbl_8052D4EC = .data:0x8052D4EC; // type:object size:0x18
lbl_8052D504 = .data:0x8052D504; // type:object size:0x18
lbl_8052D51C = .data:0x8052D51C; // type:object size:0x10
lbl_8052D52C = .data:0x8052D52C; // type:object size:0x10
lbl_8052D53C = .data:0x8052D53C; // type:object size:0x10
lbl_8052D54C = .data:0x8052D54C; // type:object size:0x10
lbl_8052D418 = .data:0x8052D418; // type:object size:0x12 data:string
lbl_8052D42C = .data:0x8052D42C; // type:object size:0x16 data:string
lbl_8052D444 = .data:0x8052D444; // type:object size:0x17 data:string
lbl_8052D45C = .data:0x8052D45C; // type:object size:0x17 data:string
lbl_8052D474 = .data:0x8052D474; // type:object size:0x17 data:string
lbl_8052D48C = .data:0x8052D48C; // type:object size:0x17 data:string
lbl_8052D4A4 = .data:0x8052D4A4; // type:object size:0x17 data:string
lbl_8052D4BC = .data:0x8052D4BC; // type:object size:0x17 data:string
lbl_8052D4D4 = .data:0x8052D4D4; // type:object size:0x17 data:string
lbl_8052D4EC = .data:0x8052D4EC; // type:object size:0x17 data:string
lbl_8052D504 = .data:0x8052D504; // type:object size:0x17 data:string
lbl_8052D51C = .data:0x8052D51C; // type:object size:0xE data:string
lbl_8052D52C = .data:0x8052D52C; // type:object size:0xE data:string
lbl_8052D53C = .data:0x8052D53C; // type:object size:0xE data:string
lbl_8052D54C = .data:0x8052D54C; // type:object size:0xF data:string
lbl_8052D55C = .data:0x8052D55C; // type:object size:0x14 data:string
lbl_8052D570 = .data:0x8052D570; // type:object size:0x10
lbl_8052D580 = .data:0x8052D580; // type:object size:0x10
lbl_8052D590 = .data:0x8052D590; // type:object size:0x18
lbl_8052D570 = .data:0x8052D570; // type:object size:0xF data:string
lbl_8052D580 = .data:0x8052D580; // type:object size:0xF data:string
lbl_8052D590 = .data:0x8052D590; // type:object size:0x13 data:string
lbl_8052D5A8 = .data:0x8052D5A8; // type:object size:0x10 data:string
lbl_8052D5B8 = .data:0x8052D5B8; // type:object size:0x14
lbl_8052D5CC = .data:0x8052D5CC; // type:object size:0x14
lbl_8052D5B8 = .data:0x8052D5B8; // type:object size:0x12 data:string
lbl_8052D5CC = .data:0x8052D5CC; // type:object size:0x13 data:string
lbl_8052D5E0 = .data:0x8052D5E0; // type:object size:0x14 data:string
lbl_8052D5F4 = .data:0x8052D5F4; // type:object size:0x18
lbl_8052D60C = .data:0x8052D60C; // type:object size:0x14
lbl_8052D620 = .data:0x8052D620; // type:object size:0x18
lbl_8052D5F4 = .data:0x8052D5F4; // type:object size:0x17 data:string
lbl_8052D60C = .data:0x8052D60C; // type:object size:0x11 data:string
lbl_8052D620 = .data:0x8052D620; // type:object size:0x16 data:string
lbl_8052D638 = .data:0x8052D638; // type:object size:0x10 data:string
lbl_8052D648 = .data:0x8052D648; // type:object size:0x10
lbl_8052D648 = .data:0x8052D648; // type:object size:0xF data:string
lbl_8052D658 = .data:0x8052D658; // type:object size:0x14 data:string
lbl_8052D66C = .data:0x8052D66C; // type:object size:0x14
lbl_8052D680 = .data:0x8052D680; // type:object size:0x10
lbl_8052D690 = .data:0x8052D690; // type:object size:0x14
lbl_8052D6A4 = .data:0x8052D6A4; // type:object size:0x10
lbl_8052D6B4 = .data:0x8052D6B4; // type:object size:0x14
lbl_8052D6C8 = .data:0x8052D6C8; // type:object size:0x10
lbl_8052D6D8 = .data:0x8052D6D8; // type:object size:0x10
lbl_8052D6E8 = .data:0x8052D6E8; // type:object size:0x10
lbl_8052D66C = .data:0x8052D66C; // type:object size:0x11 data:string
lbl_8052D680 = .data:0x8052D680; // type:object size:0xF data:string
lbl_8052D690 = .data:0x8052D690; // type:object size:0x11 data:string
lbl_8052D6A4 = .data:0x8052D6A4; // type:object size:0xF data:string
lbl_8052D6B4 = .data:0x8052D6B4; // type:object size:0x12 data:string
lbl_8052D6C8 = .data:0x8052D6C8; // type:object size:0xF data:string
lbl_8052D6D8 = .data:0x8052D6D8; // type:object size:0xF data:string
lbl_8052D6E8 = .data:0x8052D6E8; // type:object size:0xF data:string
lbl_8052D6F8 = .data:0x8052D6F8; // type:object size:0xC data:string
lbl_8052D704 = .data:0x8052D704; // type:object size:0x10
lbl_8052D714 = .data:0x8052D714; // type:object size:0x10
lbl_8052D724 = .data:0x8052D724; // type:object size:0x14
lbl_8052D704 = .data:0x8052D704; // type:object size:0xF data:string
lbl_8052D714 = .data:0x8052D714; // type:object size:0xE data:string
lbl_8052D724 = .data:0x8052D724; // type:object size:0xE data:string
lbl_8052D738 = .data:0x8052D738; // type:object size:0x10 data:string
lbl_8052D748 = .data:0x8052D748; // type:object size:0x14
lbl_8052D75C = .data:0x8052D75C; // type:object size:0x14
lbl_8052D770 = .data:0x8052D770; // type:object size:0x14
lbl_8052D784 = .data:0x8052D784; // type:object size:0x14
lbl_8052D798 = .data:0x8052D798; // type:object size:0x18
lbl_8052D7B0 = .data:0x8052D7B0; // type:object size:0x14
lbl_8052D7C4 = .data:0x8052D7C4; // type:object size:0x10
lbl_8052D7D4 = .data:0x8052D7D4; // type:object size:0x14
lbl_8052D748 = .data:0x8052D748; // type:object size:0x12 data:string
lbl_8052D75C = .data:0x8052D75C; // type:object size:0x12 data:string
lbl_8052D770 = .data:0x8052D770; // type:object size:0x12 data:string
lbl_8052D784 = .data:0x8052D784; // type:object size:0x12 data:string
lbl_8052D798 = .data:0x8052D798; // type:object size:0x15 data:string
lbl_8052D7B0 = .data:0x8052D7B0; // type:object size:0x11 data:string
lbl_8052D7C4 = .data:0x8052D7C4; // type:object size:0xE data:string
lbl_8052D7D4 = .data:0x8052D7D4; // type:object size:0x12 data:string
lbl_8052D7E8 = .data:0x8052D7E8; // type:object size:0x14 data:string
lbl_8052D7FC = .data:0x8052D7FC; // type:object size:0x14
lbl_8052D7FC = .data:0x8052D7FC; // type:object size:0x11 data:string
lbl_8052D810 = .data:0x8052D810; // type:object size:0x14 data:string
lbl_8052D824 = .data:0x8052D824; // type:object size:0x14 data:string
lbl_8052D838 = .data:0x8052D838; // type:object size:0x14 data:string
lbl_8052D84C = .data:0x8052D84C; // type:object size:0x18
lbl_8052D864 = .data:0x8052D864; // type:object size:0x14
lbl_8052D878 = .data:0x8052D878; // type:object size:0x10
lbl_8052D84C = .data:0x8052D84C; // type:object size:0x17 data:string
lbl_8052D864 = .data:0x8052D864; // type:object size:0x11 data:string
lbl_8052D878 = .data:0x8052D878; // type:object size:0xE data:string
lbl_8052D888 = .data:0x8052D888; // type:object size:0x10 data:string
lbl_8052D898 = .data:0x8052D898; // type:object size:0x14
lbl_8052D8AC = .data:0x8052D8AC; // type:object size:0x14
lbl_8052D8C0 = .data:0x8052D8C0; // type:object size:0x14
lbl_8052D8D4 = .data:0x8052D8D4; // type:object size:0x14
lbl_8052D8E8 = .data:0x8052D8E8; // type:object size:0x18
lbl_8052D900 = .data:0x8052D900; // type:object size:0x18
lbl_8052D918 = .data:0x8052D918; // type:object size:0x18
lbl_8052D930 = .data:0x8052D930; // type:object size:0x18
lbl_8052D898 = .data:0x8052D898; // type:object size:0x12 data:string
lbl_8052D8AC = .data:0x8052D8AC; // type:object size:0x12 data:string
lbl_8052D8C0 = .data:0x8052D8C0; // type:object size:0x12 data:string
lbl_8052D8D4 = .data:0x8052D8D4; // type:object size:0x12 data:string
lbl_8052D8E8 = .data:0x8052D8E8; // type:object size:0x17 data:string
lbl_8052D900 = .data:0x8052D900; // type:object size:0x15 data:string
lbl_8052D918 = .data:0x8052D918; // type:object size:0x15 data:string
lbl_8052D930 = .data:0x8052D930; // type:object size:0x11 data:string
lbl_8052D948 = .data:0x8052D948; // type:object size:0x18 data:string
lbl_8052D960 = .data:0x8052D960; // type:object size:0x10
lbl_8052D970 = .data:0x8052D970; // type:object size:0x18
lbl_8052D988 = .data:0x8052D988; // type:object size:0x10
lbl_8052D998 = .data:0x8052D998; // type:object size:0x1C
lbl_8052D9B4 = .data:0x8052D9B4; // type:object size:0x10
lbl_8052D9C4 = .data:0x8052D9C4; // type:object size:0x14
lbl_8052D9D8 = .data:0x8052D9D8; // type:object size:0x10
lbl_8052D9E8 = .data:0x8052D9E8; // type:object size:0x140
lbl_8052D960 = .data:0x8052D960; // type:object size:0xE data:string
lbl_8052D970 = .data:0x8052D970; // type:object size:0x15 data:string
lbl_8052D988 = .data:0x8052D988; // type:object size:0xE data:string
lbl_8052D998 = .data:0x8052D998; // type:object size:0x19 data:string
lbl_8052D9B4 = .data:0x8052D9B4; // type:object size:0xF data:string
lbl_8052D9C4 = .data:0x8052D9C4; // type:object size:0x11 data:string
lbl_8052D9D8 = .data:0x8052D9D8; // type:object size:0xE data:string
sMsbfFileNames = .data:0x8052D9E8; // type:object size:0x140
lbl_8052DB28 = .data:0x8052DB28; // type:object size:0x1C
lbl_8052DB44 = .data:0x8052DB44; // type:object size:0x1C
lbl_8052DB60 = .data:0x8052DB60; // type:object size:0x1C
@@ -34178,7 +34178,7 @@ lbl_8052DE34 = .data:0x8052DE34; // type:object size:0xC
lbl_8052DE40 = .data:0x8052DE40; // type:object size:0x10
EVENT_FLOW_FILENAMES = .data:0x8052DE50; // type:object size:0x18
lbl_8052DE68 = .data:0x8052DE68; // type:object size:0x10
GlobalMessageRelatedContext__vtable = .data:0x8052DE78; // type:object size:0x4C
__vt__10dMessage_c = .data:0x8052DE78; // type:object size:0x4C
ActorEventFlowManager__vtable = .data:0x8052DEC4; // type:object size:0x78
g_profile_STAGE = .data:0x8052DF40; // type:object size:0xC
sCallbacks__8dStage_c = .data:0x8052DF4C; // type:object size:0x24
@@ -40228,8 +40228,8 @@ lbl_80575730 = .sbss:0x80575730; // type:object size:0x2 data:2byte
lbl_80575734 = .sbss:0x80575734; // type:object size:0x4 data:float
lbl_80575738 = .sbss:0x80575738; // type:object size:0x2 data:2byte
lbl_8057573C = .sbss:0x8057573C; // type:object size:0x4 data:float
GLOBAL_MESSAGE_RELATED_CONTEXT = .sbss:0x80575740; // type:object size:0x4 data:4byte
GLOBAL_TEXT_MANAGER = .sbss:0x80575744; // type:object size:0x4 data:4byte
sInstance__10dMessage_c = .sbss:0x80575740; // type:object size:0x4 data:4byte
sTagProcessor__10dMessage_c = .sbss:0x80575744; // type:object size:0x4 data:4byte
lbl_80575748 = .sbss:0x80575748; // type:object size:0x1 data:byte
lbl_80575749 = .sbss:0x80575749; // type:object size:0x7 data:byte
CURRENT_LANGUAGE_STRING = .sbss:0x80575750; // type:object size:0x8 data:byte
+1
View File
@@ -436,6 +436,7 @@ config.libs = [
Object(NonMatching, "d/a/d_a_insect.cpp"),
Object(NonMatching, "d/d_stage_mgr.cpp"),
Object(NonMatching, "d/d_last.cpp"),
Object(NonMatching, "d/d_message.cpp"),
Object(NonMatching, "d/d_stage.cpp"),
Object(Matching, "d/d_room.cpp"),
Object(NonMatching, "d/d_cs_base.cpp"),
+60
View File
@@ -0,0 +1,60 @@
#ifndef D_MESSAGE_H
#define D_MESSAGE_H
#include "common.h"
#include "d/d_base.h"
#include "d/d_tag_processor.h"
#include "libms/flowfile.h"
#include "sized_string.h"
class dMessage_c : public dBase_c {
public:
dMessage_c();
virtual ~dMessage_c() {
sInstance = nullptr;
}
int create() override;
int doDelete() override;
int execute() override;
int draw() override;
static const char *getLanguageIdentifier();
static dMessage_c *getInstance() {
return sInstance;
}
static dTagProcessor_c *getGlobalTagProcessor() {
return sTagProcessor;
}
void reset();
private:
static s32 getArcIndexForFile(const char *fileName);
static const char *getArcNameByIndex(s32 idx, bool);
static void setZevFromMsbArc();
static const char *getMsbtFileName(s32 index);
static s32 getMsbtNumberByIndex(s32 index);
static const char *getMsbfFileName(s32 index);
static s32 getMsbfNumberByIndex(s32 index);
static void *getDataFromMsbArc(s32 number, const char *fileName, bool);
static dMessage_c *sInstance;
static dTagProcessor_c *sTagProcessor;
/* 0x068 */ MsbtInfo *mpMsgs[82];
/* 0x1B0 */ MsbfInfo *mpFlows[80];
/* 0x2F0 */ SizedString<8> mLanguage;
/* 0x2F8 */ s32 mCurrentTextFileNumber;
/* 0x2FC */ s32 field_0x2FC;
/* 0x334 */ u32 mMinigameResultPoints;
/* 0x338 */ u32 mMinigameTime;
/* 0x344 */ s32 field_0x344;
};
#endif
+4
View File
@@ -109,6 +109,10 @@ public:
return 0.0f;
}
static UnkTextThing *getInstance() {
return sInstance;
}
private:
static UnkTextThing *sInstance;
+20
View File
@@ -0,0 +1,20 @@
#ifndef D_TEXTWINDOW_UNK_H
#define D_TEXTWINDOW_UNK_H
#include "d/d_tag_processor.h"
// Size 0x1554
class TextWindowUnk {
public:
TextWindowUnk(dTagProcessor_c *tagProcessor);
virtual ~TextWindowUnk() {}
private:
/* 0x0004 */ dTagProcessor_c *mpTagProcessor;
/* 0x0008 */ wchar_t mRawTextBuffer[1023];
/* 0x0806 */ wchar_t mProcessedTextBuffer[1023];
/* 0x1004 */ wchar_t mUnkBuffer[679]; // ???
/* 0x1550 */ void* field_0x1559;
};
#endif
+111
View File
@@ -0,0 +1,111 @@
#ifndef D_LYT_MSG_WINDOW_H
#define D_LYT_MSG_WINDOW_H
#include "d/d_tag_processor.h"
#include "d/d_textwindow_unk.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_auto_caption.h"
#include "d/lyt/d_lyt_auto_explain.h"
#include "d/lyt/msg_window/d_lyt_msg_window_common.h"
#include "d/lyt/msg_window/d_lyt_msg_window_select_btn.h"
#include "d/lyt/msg_window/d_lyt_msg_window_stone.h"
#include "d/lyt/msg_window/d_lyt_msg_window_wood.h"
#include "s/s_State.hpp"
#include "sized_string.h"
class dLytMsgWindow_c {
public:
dLytMsgWindow_c() : mStateMgr(*this) {}
virtual ~dLytMsgWindow_c() {}
bool build();
bool remove();
private:
void removeAllWindowSubtypes();
static dLytMsgWindow_c *sInstance;
STATE_FUNC_DECLARE(dLytMsgWindow_c, Invisible);
STATE_FUNC_DECLARE(dLytMsgWindow_c, In);
STATE_FUNC_DECLARE(dLytMsgWindow_c, OutputText);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyChangePage0);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyChangePage1);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMsgEnd0);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMsgEnd1);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMsgEnd2);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeySelectQuestion);
STATE_FUNC_DECLARE(dLytMsgWindow_c, MapOpen);
STATE_FUNC_DECLARE(dLytMsgWindow_c, WaitKeyMapClose);
STATE_FUNC_DECLARE(dLytMsgWindow_c, MapClose);
STATE_FUNC_DECLARE(dLytMsgWindow_c, Out);
STATE_FUNC_DECLARE(dLytMsgWindow_c, ExplainIn);
STATE_FUNC_DECLARE(dLytMsgWindow_c, ExplainVisible);
STATE_FUNC_DECLARE(dLytMsgWindow_c, ExplainOut);
STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoIn);
STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoVisible);
STATE_FUNC_DECLARE(dLytMsgWindow_c, DemoOut);
/* 0x004 */ UI_STATE_MGR_DECLARE(dLytMsgWindow_c);
/* 0x040 */ d2d::ResAccIf_c mResAcc1;
/* 0x3B0 */ d2d::ResAccIf_c mResAcc2;
/* 0x720 */ TextWindowUnk *mpMsgWindowUnk;
/* 0x724 */ dTagProcessor_c *mpTagProcessor;
/* 0x728 */ dLytMsgWindowSubtype *mpCurrentSubtype;
/* 0x72C */ dLytMsgWindowSubtype *mpWindowTalk;
/* 0x730 */ dLytMsgWindowSubtype *mpWindowLink;
/* 0x734 */ dLytMsgWindowSubtype *mpWindowSword;
/* 0x738 */ dLytMsgWindowWood_c *mpWindowWood;
/* 0x73C */ dLytMsgWindowStone_c *mpWindowStone;
/* 0x740 */ dLytMsgWindowSubtype *mpWindowGet;
/* 0x744 */ dLytMsgWindowSubtype *mpWindowDemo;
/* 0x748 */ dLytAutoExplain_c *mpAutoExplain;
/* 0x74C */ dLytAutoCaption_c *mpAutoCaption;
/* 0x774 */ s32 field_0x774;
/* 0x778 */ s32 field_0x778;
/* 0x77C */ s32 field_0x77C;
/* 0x780 */ s32 field_0x780;
/* 0x784 */ s32 field_0x784;
/* 0x788 */ u16 mEntryPointToTrigger;
/* 0x78A */ u16 mAlsoEntryPointToTrigger;
/* 0x78C */ SizedString<0x40> mName;
/* 0x80C */ u8 field_0x80C;
/* 0x80D */ u8 field_0x80D;
/* 0x80E */ u8 field_0x80E;
/* 0x80F */ u8 mShowAutoMessage;
/* 0x810 */ u8 field_0x810;
/* 0x811 */ u8 field_0x811;
/* 0x812 */ u8 field_0x812;
/* 0x813 */ u8 field_0x813;
/* 0x814 */ u8 field_0x814;
/* 0x815 */ u8 field_0x815;
/* 0x816 */ u8 field_0x816;
/* 0x817 */ u8 field_0x817;
/* 0x818 */ u8 field_0x818;
/* 0x819 */ u8 field_0x819;
/* 0x81A */ u8 field_0x81A;
/* 0x81B */ u8 field_0x81B;
/* 0x81C */ u8 field_0x81C;
/* 0x81D */ u8 field_0x81D;
/* 0x81E */ u8 field_0x81E;
/* 0x820 */ u16 field_0x820;
/* 0x824 */ void *field_0x824;
/* 0x828 */ s32 field_0x828;
/* 0x82C */ u32 mTextOptionSelection;
/* 0x830 */ u32 mSpecialFiMenuValue;
/* 0x834 */ dLytMsgWindowSelectBtn_c mSelectBtn;
/* 0x1220 */ u8 field_0x1220;
};
#endif
+4
View File
@@ -8,6 +8,10 @@
// Note: Ported from https://github.com/NSMBW-Community/NSMBW-Decomp/tree/master/include/dol/sLib
// See include/s/README.txt for changes made
// Handy search and replace regex to generate functions based on define macros
// STATE_DEFINE\(([A-Za-z_0-9]+), ([A-Za-z_0-9]+)\);
// void $1::initializeState_$2() {}\nvoid $1::executeState_$2() {}\nvoid $1::finalizeState_$2() {}\n
#define STATE_FUNC_DECLARE(class, name) \
void initializeState_##name(); \
void executeState_##name(); \
+8
View File
@@ -0,0 +1,8 @@
#ifndef GLOBAL_FI_CONTEXT_H
#define GLOBAL_FI_CONTEXT_H
extern "C" void *GLOBAL_FI_CONTEXT;
extern "C" void fn_8016C9F0(void*);
extern "C" void createGlobalFiContext();
#endif
@@ -25,6 +25,8 @@ char *strcpy(char *dst, const char *src);
int sscanf(const char *buffer, const char *format, ...);
size_t strlen(const char *str);
int atoi(const char *str);
#ifdef __cplusplus
}
#endif
+2 -2
View File
@@ -5,6 +5,7 @@
#include "d/d_dylink.h"
#include "d/d_font_manager.h"
#include "d/d_heap.h"
#include "d/d_message.h"
#include "d/d_scene.h"
#include "d/d_sys.h"
#include "d/lyt/d_lyt_battery.h"
@@ -42,7 +43,6 @@ sFPhaseBase::sFPhaseState dScBoot_c::executeLoadPhase() {
extern "C" u8 getUsedLanguageNTSCNum();
extern "C" const char *getEventFlowFileNameByIndex(int, int);
extern "C" const char *getUsedLanguageString();
extern "C" u8 fn_80054F30();
extern "C" nw4r::ut::ResFont *lbl_805750D8;
@@ -54,7 +54,7 @@ sFPhaseBase::sFPhaseState dScBoot_c::cb1() {
for (int i = 0; i < 6; i++) {
SizedString<128> str;
str.sprintf("%s/%s", getUsedLanguageString(), getEventFlowFileNameByIndex(i, 1));
str.sprintf("%s/%s", dMessage_c::getLanguageIdentifier(), getEventFlowFileNameByIndex(i, 1));
OarcManager::GetInstance()->loadObjectArcFromDisk(str, mHeap::g_archiveHeap);
}
OarcManager::GetInstance()->loadObjectArcFromDisk("System", mHeap::g_archiveHeap);
+2 -3
View File
@@ -1,6 +1,7 @@
#include "d/d_font_manager.h"
#include "d/d_heap.h"
#include "d/d_message.h"
#include "sized_string.h"
@@ -48,14 +49,12 @@ void dFontMng_c::setFontFile(int idx, void *fileData) {
l_dFontMng_obj[idx].mpFileData = fileData;
}
extern "C" const char *getUsedLanguageString();
const char *dFontMng_c::getFontPath(u8 idx) {
static SizedString<128> TEMP_FONT_NAME;
if (idx == 2) {
TEMP_FONT_NAME.sprintf("/Font/%s", systemFonts[idx]);
} else {
TEMP_FONT_NAME.sprintf("/US/Font/%s/%s", getUsedLanguageString(), systemFonts[idx]);
TEMP_FONT_NAME.sprintf("/US/Font/%s/%s", dMessage_c::getLanguageIdentifier(), systemFonts[idx]);
}
return TEMP_FONT_NAME;
}
+304
View File
@@ -0,0 +1,304 @@
#include "d/d_message.h"
#include "common.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "f/f_base.h"
#include "f/f_profile.h"
#include "f/f_profile_name.h"
#include "libms/libms.h"
#include "libms/msgfile.h"
#include "sized_string.h"
#include "toBeSorted/global_fi_context.h"
SPECIAL_BASE_PROFILE(MESSAGE, dMessage_c, fProfile::MESSAGE, 0x2A8, 0);
static const char *sMsbtFileNames[82] = {
"000-Test.msbt",
"001-Action.msbt",
"002-System.msbt",
"003-ItemGet.msbt",
"004-Object.msbt",
"005-Tutorial.msbt",
"006-KenseiNormal.msbt",
"006-1KenseiNormal.msbt",
"006-2KenseiNormal.msbt",
"006-3KenseiNormal.msbt",
"006-4KenseiNormal.msbt",
"006-5KenseiNormal.msbt",
"006-6KenseiNormal.msbt",
"006-7KenseiNormal.msbt",
"006-8KenseiNormal.msbt",
"006-9KenseiNormal.msbt",
"007-MapText.msbt",
"008-Hint.msbt",
"word.msbt",
"100-Town.msbt",
"101-Shop.msbt",
"102-Zelda.msbt",
"103-DaiShinkan.msbt",
"104-Rival.msbt",
"105-Terry.msbt",
"106-DrugStore.msbt",
"107-Kanban.msbt",
"108-ShinkanA.msbt",
"109-TakeGoron.msbt",
"110-DivingGame.msbt",
"111-FortuneTeller.msbt",
"112-Trustee.msbt",
"113-RemodelStore.msbt",
"114-Friend.msbt",
"115-Town2.msbt",
"116-InsectGame.msbt",
"117-Pumpkin.msbt",
"118-Town3.msbt",
"119-Captain.msbt",
"120-Nushi.msbt",
"121-AkumaKun.msbt",
"122-Town4.msbt",
"123-Town5.msbt",
"124-Town6.msbt",
"125-D3.msbt",
"150-Siren.msbt",
"198-Test.msbt",
"199-Demo.msbt",
"200-Forest.msbt",
"201-ForestD1.msbt",
"202-ForestD2.msbt",
"203-ForestF2.msbt",
"204-ForestF3.msbt",
"250-ForestSiren.msbt",
"251-Salvage.msbt",
"299-Demo.msbt",
"300-Mountain.msbt",
"301-MountainD1.msbt",
"302-Anahori.msbt",
"303-MountainF2.msbt",
"304-MountainD2.msbt",
"305-MountainF3.msbt",
"350-MountainSiren.msbt",
"351-Salvage.msbt",
"399-Demo.msbt",
"400-Desert.msbt",
"401-DesertD2.msbt",
"402-DesertF2.msbt",
"403-DesertD1.msbt",
"404-DesertF3.msbt",
"405-DesertD2Clear.msbt",
"406-TrolleyRace.msbt",
"450-DesertSiren.msbt",
"451-Salvage.msbt",
"460-RairyuMinigame.msbt",
"499-Demo.msbt",
"500-CenterField.msbt",
"501-Inpa.msbt",
"502-CenterFieldBack.msbt",
"503-Goron.msbt",
"510-Salvage.msbt",
"599-Demo.msbt",
};
static char *sMsbfFileNames[80] = {
"000-Test.msbf",
"001-Action.msbf",
"002-System.msbf",
"003-ItemGet.msbf",
"004-Object.msbf",
"005-Tutorial.msbf",
"006-KenseiNormal.msbf",
"006-1KenseiNormal.msbf",
"006-2KenseiNormal.msbf",
"006-3KenseiNormal.msbf",
"006-4KenseiNormal.msbf",
"006-5KenseiNormal.msbf",
"006-6KenseiNormal.msbf",
"006-7KenseiNormal.msbf",
"006-8KenseiNormal.msbf",
"006-9KenseiNormal.msbf",
"008-Hint.msbf",
"100-Town.msbf",
"101-Shop.msbf",
"102-Zelda.msbf",
"103-DaiShinkan.msbf",
"104-Rival.msbf",
"105-Terry.msbf",
"106-DrugStore.msbf",
"107-Kanban.msbf",
"108-ShinkanA.msbf",
"109-TakeGoron.msbf",
"110-DivingGame.msbf",
"111-FortuneTeller.msbf",
"112-Trustee.msbf",
"113-RemodelStore.msbf",
"114-Friend.msbf",
"115-Town2.msbf",
"116-InsectGame.msbf",
"117-Pumpkin.msbf",
"118-Town3.msbf",
"119-Captain.msbf",
"120-Nushi.msbf",
"121-AkumaKun.msbf",
"122-Town4.msbf",
"123-Town5.msbf",
"124-Town6.msbf",
"125-D3.msbf",
"150-Siren.msbf",
"198-Test.msbf",
"199-Demo.msbf",
"200-Forest.msbf",
"201-ForestD1.msbf",
"202-ForestD2.msbf",
"203-ForestF2.msbf",
"204-ForestF3.msbf",
"250-ForestSiren.msbf",
"251-Salvage.msbf",
"299-Demo.msbf",
"300-Mountain.msbf",
"301-MountainD1.msbf",
"302-Anahori.msbf",
"303-MountainF2.msbf",
"304-MountainD2.msbf",
"305-MountainF3.msbf",
"350-MountainSiren.msbf",
"351-Salvage.msbf",
"399-Demo.msbf",
"400-Desert.msbf",
"401-DesertD2.msbf",
"402-DesertF2.msbf",
"403-DesertD1.msbf",
"404-DesertF3.msbf",
"405-DesertD2Clear.msbf",
"406-TrolleyRace.msbf",
"450-DesertSiren.msbf",
"451-Salvage.msbf",
"460-RairyuMinigame.msbf",
"499-Demo.msbf",
"500-CenterField.msbf",
"501-Inpa.msbf",
"502-CenterFieldBack.msbf",
"503-Goron.msbf",
"510-Salvage.msbf",
"599-Demo.msbf",
};
static void *msbAlloc(size_t size) {}
static void msbFree(void *ptr) {}
dMessage_c::dMessage_c() {
sInstance = this;
}
int dMessage_c::create() {
mLanguage = getLanguageIdentifier();
mCurrentTextFileNumber = -1;
field_0x2FC = 0;
field_0x344 = 0;
LMS_SetMemFuncs(msbAlloc, msbFree);
setZevFromMsbArc();
for (s32 i = 0; i < 82; i++) {
SizedString<0x40> fileName = getMsbtFileName(i);
s32 num = getMsbtNumberByIndex(i);
void *data = getDataFromMsbArc(num, fileName, true);
if (data == nullptr) {
mpMsgs[i] = nullptr;
} else {
mpMsgs[i] = LMS_InitMessage(data);
}
}
for (s32 i = 0; i < 80; i++) {
SizedString<0x40> fileName = getMsbfFileName(i);
s32 num = getMsbfNumberByIndex(i);
void *data = getDataFromMsbArc(num, fileName, true);
if (data == nullptr) {
mpFlows[i] = nullptr;
} else {
mpFlows[i] = LMS_InitFlow(data);
}
}
sTagProcessor = new dTagProcessor_c();
createGlobalFiContext();
reset();
return SUCCEEDED;
}
int dMessage_c::doDelete() {
UnkTextThing::getInstance()->destroy();
if (sTagProcessor != nullptr) {
delete sTagProcessor;
sTagProcessor = nullptr;
}
for (int i = 0; i < 82; i++) {
if (mpMsgs[i] != nullptr) {
LMS_CloseMessage(mpMsgs[i]);
}
}
for (int i = 0; i < 80; i++) {
if (mpFlows[i] != nullptr) {
LMS_CloseFlow(mpFlows[i]);
}
}
return SUCCEEDED;
}
int dMessage_c::execute() {
return SUCCEEDED;
}
int dMessage_c::draw() {
return SUCCEEDED;
}
const char *dMessage_c::getMsbtFileName(s32 idx) {
static SizedString<128> sPath;
s32 arcIdx = getArcIndexForFile(sMsbtFileNames[idx]);
const char *arcName = getArcNameByIndex(arcIdx, true);
sPath.sprintf("%s/%s", arcName, sMsbtFileNames[idx]);
return sPath;
}
const char *dMessage_c::getMsbfFileName(s32 idx) {
static SizedString<128> sPath;
s32 arcIdx = getArcIndexForFile(sMsbfFileNames[idx]);
const char *arcName = getArcNameByIndex(arcIdx, true);
sPath.sprintf("%s/%s", arcName, sMsbfFileNames[idx]);
return sPath;
}
s32 dMessage_c::getMsbtNumberByIndex(s32 index) {
return atoi(getMsbtFileName(index));
}
s32 dMessage_c::getMsbfNumberByIndex(s32 index) {
return atoi(getMsbfFileName(index));
}
extern "C" u8 fn_80054F30();
static SizedString<8> sCurrentLanguage;
const char *dMessage_c::getLanguageIdentifier() {
u8 lang = fn_80054F30();
if (lang == 3) {
sCurrentLanguage = "fr_US";
} else if (lang == 4) {
sCurrentLanguage = "es_US";
} else {
sCurrentLanguage = "en_US";
}
return sCurrentLanguage;
}
s32 dMessage_c::getArcIndexForFile(const char *fileName) {
char buf[2];
buf[0] = fileName[0];
buf[1] = '\0';
return atoi(buf);
}
+2 -2
View File
@@ -2,6 +2,7 @@
#include "common.h"
#include "d/d_heap.h"
#include "d/d_message.h"
#include "d/d_sc_game.h"
#include "d/d_sys.h"
#include "f/f_base.h"
@@ -67,7 +68,6 @@ extern "C" u32 TITLE_SCREEN_CHANGE;
extern "C" void fn_80059450();
extern "C" void fn_80058C90(s32);
extern "C" void fn_80015E40();
extern "C" const char *getUsedLanguageString();
static const char *const sFileSelect = "FileSelect";
static const char *const sSkb = "SoftwareKeyboard";
@@ -98,7 +98,7 @@ int dScTitle_c::create() {
LayoutArcManager::GetInstance()->loadLayoutArcFromDisk(sSkb, nullptr);
mDvd_toMainRam_normal_c::create2(&mpSkbArc, "/SKB/sofkeybd.arc", 0, dHeap::work2Heap.heap);
SizedString<128> fntPath;
fntPath.sprintf("/US/Font/%s/%s", getUsedLanguageString(), "normal_02.brfnt");
fntPath.sprintf("/US/Font/%s/%s", dMessage_c::getLanguageIdentifier(), "normal_02.brfnt");
mDvd_toMainRam_normal_c::create2(&mpSkbFont, fntPath, 0, dHeap::work2Heap.heap);
fn_8035E310(BGM_MGR);
}
+3 -5
View File
@@ -1,6 +1,7 @@
#include "d/lyt/d2d.h"
#include "d/d_font_manager.h"
#include "d/d_message.h"
#include "d/d_textunk.h"
#include "d/lyt/d_textbox.h"
#include "d/lyt/d_window.h"
@@ -278,9 +279,6 @@ LytBase_c::~LytBase_c() {
}
}
extern "C" const char *getUsedLanguageString();
extern "C" nw4r::ut::TagProcessorBase<wchar_t> *GLOBAL_TEXT_MANAGER;
bool LytBase_c::build(const char *name, m2d::ResAccIf_c *acc) {
if (mLayout.GetRootPane() != nullptr) {
return true;
@@ -332,7 +330,7 @@ bool LytBase_c::build(const char *name, m2d::ResAccIf_c *acc) {
}
SizedString<0x80> localizedName;
localizedName.sprintf("%s_%s", getUsedLanguageString(), fileName);
localizedName.sprintf("%s_%s", dMessage_c::getLanguageIdentifier(), fileName);
void *data = acc->getAccessor()->GetResource(0, localizedName, nullptr);
if (data == nullptr) {
@@ -343,7 +341,7 @@ bool LytBase_c::build(const char *name, m2d::ResAccIf_c *acc) {
bool ok = mLayout.Build(resource, acc->getAccessor());
if (ok) {
mLayout.SetTagProcessor(GLOBAL_TEXT_MANAGER);
mLayout.SetTagProcessor(dMessage_c::getGlobalTagProcessor());
calc();
setPropertiesRecursive(mLayout.GetRootPane(), -9999.0f, -9999.0f, -9999.0f, -9999.0f, -9999.0f);
}
+3 -4
View File
@@ -2,6 +2,7 @@
#include "common.h"
#include "d/d_font_manager.h"
#include "d/d_message.h"
#include "d/d_tag_processor.h"
#include "d/d_textunk.h"
#include "libms/msgfile.h"
@@ -255,12 +256,10 @@ void dTextBox_c::setTextWithGlobalTextProcessor(const wchar_t *str, void *unk, .
va_end(l);
}
extern "C" dTagProcessor_c *GLOBAL_TEXT_MANAGER;
void dTextBox_c::setTextWithGlobalTextProcessorV(const wchar_t *str, void *unk, va_list list) {
SetFontSize(mMyTextScale);
mHasTextWriter = true;
mpMyTagProcessor = GLOBAL_TEXT_MANAGER;
mpMyTagProcessor = dMessage_c::getGlobalTagProcessor();
u32 outLen = 0;
mWindowSubtype = mpMyTagProcessor->getMsgWindowSubtype();
mpMyTagProcessor->setField_0xEE1(field_0x1F6);
@@ -326,7 +325,7 @@ void dTextBox_c::setMessageWithGlobalTextProcessorAndMsbtInfo(
mHasTextWriter = true;
field_0x1FA = 1;
u32 outLen = 0;
mpMyTagProcessor = GLOBAL_TEXT_MANAGER;
mpMyTagProcessor = dMessage_c::getGlobalTagProcessor();
mpMyTagProcessor->setMsgWindowSubtype(0x22);
mWindowSubtype = mpMyTagProcessor->getMsgWindowSubtype();
mpMyTagProcessor->setField_0xEE1(field_0x1F6);
+2 -3
View File
@@ -1,5 +1,6 @@
// clang-format off
#include "common.h"
#include "d/d_message.h"
#include "d/d_sc_game.h"
#include "d/d_sc_title.h"
#include "d/d_stage_mgr.h"
@@ -285,8 +286,6 @@ dLytMeter_c::dLytMeter_c() {}
extern "C" void fn_800D97E0(int i);
extern "C" void fn_800D9800(int i);
extern "C" void fn_801B2D10(void *);
extern "C" void *GLOBAL_MESSAGE_RELATED_CONTEXT;
static const d2d::LytBrlanMapping meterBrlanMap[] = {
{ "basicPosition_00_in.brlan", "G_remoConBtn_00"},
@@ -632,7 +631,7 @@ bool dLytMeterContainer_c::build() {
fn_800D97E0(0xb);
fn_800D9800(1);
fn_801B2D10(GLOBAL_MESSAGE_RELATED_CONTEXT);
dMessage_c::getInstance()->reset();
return true;
}
+188
View File
@@ -0,0 +1,188 @@
#include "d/lyt/msg_window/d_lyt_msg_window.h"
#include "common.h"
#include "d/d_tag_processor.h"
#include "d/d_textwindow_unk.h"
#include "s/s_State.hpp"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/global_fi_context.h"
STATE_DEFINE(dLytMsgWindow_c, Invisible);
STATE_DEFINE(dLytMsgWindow_c, In);
STATE_DEFINE(dLytMsgWindow_c, OutputText);
STATE_DEFINE(dLytMsgWindow_c, WaitKeyChangePage0);
STATE_DEFINE(dLytMsgWindow_c, WaitKeyChangePage1);
STATE_DEFINE(dLytMsgWindow_c, WaitKeyMsgEnd0);
STATE_DEFINE(dLytMsgWindow_c, WaitKeyMsgEnd1);
STATE_DEFINE(dLytMsgWindow_c, WaitKeyMsgEnd2);
STATE_DEFINE(dLytMsgWindow_c, WaitKeySelectQuestion);
STATE_DEFINE(dLytMsgWindow_c, MapOpen);
STATE_DEFINE(dLytMsgWindow_c, WaitKeyMapClose);
STATE_DEFINE(dLytMsgWindow_c, MapClose);
STATE_DEFINE(dLytMsgWindow_c, Out);
STATE_DEFINE(dLytMsgWindow_c, ExplainIn);
STATE_DEFINE(dLytMsgWindow_c, ExplainVisible);
STATE_DEFINE(dLytMsgWindow_c, ExplainOut);
STATE_DEFINE(dLytMsgWindow_c, DemoIn);
STATE_DEFINE(dLytMsgWindow_c, DemoVisible);
STATE_DEFINE(dLytMsgWindow_c, DemoOut);
bool dLytMsgWindow_c::build() {
mResAcc1.attach(LayoutArcManager::GetInstance()->getLoadedData("DoButton"), "");
mResAcc2.attach(LayoutArcManager::GetInstance()->getLoadedData("System2D"), "");
mSelectBtn.build(&mResAcc2);
mpTagProcessor = new dTagProcessor_c();
mpMsgWindowUnk = new TextWindowUnk(mpTagProcessor);
if (GLOBAL_FI_CONTEXT != nullptr) {
fn_8016C9F0(GLOBAL_FI_CONTEXT);
}
mpWindowTalk = nullptr;
mpWindowLink = nullptr;
mpWindowSword = nullptr;
mpWindowWood = nullptr;
mpWindowStone = nullptr;
mpWindowGet = nullptr;
mpWindowDemo = nullptr;
mpAutoExplain = nullptr;
mpAutoCaption = nullptr;
mpCurrentSubtype = nullptr;
mTextOptionSelection = 0;
mSpecialFiMenuValue = 7;
field_0x1220 = 0;
field_0x80C = 0;
field_0x80D = 0;
field_0x80E = 0;
mShowAutoMessage = 0;
field_0x810 = 0;
field_0x774 = 0;
field_0x778 = 0;
field_0x77C = 0;
field_0x780 = 0;
field_0x784 = -1;
mAlsoEntryPointToTrigger = 0xFFFF;
mEntryPointToTrigger = 0xFFFF;
mName = "";
field_0x811 = 0;
field_0x812 = 0;
field_0x813 = 0;
field_0x814 = 0;
field_0x815 = 0;
field_0x816 = 0;
field_0x817 = 0;
field_0x818 = 0;
field_0x819 = 0;
field_0x81B = 0;
field_0x81A = 0;
field_0x81C = 0;
field_0x81D = 0;
field_0x824 = nullptr;
field_0x820 = 0;
field_0x81E = 0;
field_0x828 = 0;
mStateMgr.changeState(StateID_Invisible);
return true;
}
bool dLytMsgWindow_c::remove() {
delete mpMsgWindowUnk;
mpMsgWindowUnk = nullptr;
delete mpTagProcessor;
mpTagProcessor = nullptr;
mSelectBtn.remove();
removeAllWindowSubtypes();
field_0x824 = 0;
mResAcc1.detach();
mResAcc2.detach();
return true;
}
void dLytMsgWindow_c::initializeState_Invisible() {}
void dLytMsgWindow_c::executeState_Invisible() {}
void dLytMsgWindow_c::finalizeState_Invisible() {}
void dLytMsgWindow_c::initializeState_In() {}
void dLytMsgWindow_c::executeState_In() {}
void dLytMsgWindow_c::finalizeState_In() {}
void dLytMsgWindow_c::initializeState_OutputText() {}
void dLytMsgWindow_c::executeState_OutputText() {}
void dLytMsgWindow_c::finalizeState_OutputText() {}
void dLytMsgWindow_c::initializeState_WaitKeyChangePage0() {}
void dLytMsgWindow_c::executeState_WaitKeyChangePage0() {}
void dLytMsgWindow_c::finalizeState_WaitKeyChangePage0() {}
void dLytMsgWindow_c::initializeState_WaitKeyChangePage1() {}
void dLytMsgWindow_c::executeState_WaitKeyChangePage1() {}
void dLytMsgWindow_c::finalizeState_WaitKeyChangePage1() {}
void dLytMsgWindow_c::initializeState_WaitKeyMsgEnd0() {}
void dLytMsgWindow_c::executeState_WaitKeyMsgEnd0() {}
void dLytMsgWindow_c::finalizeState_WaitKeyMsgEnd0() {}
void dLytMsgWindow_c::initializeState_WaitKeyMsgEnd1() {}
void dLytMsgWindow_c::executeState_WaitKeyMsgEnd1() {}
void dLytMsgWindow_c::finalizeState_WaitKeyMsgEnd1() {}
void dLytMsgWindow_c::initializeState_WaitKeyMsgEnd2() {}
void dLytMsgWindow_c::executeState_WaitKeyMsgEnd2() {}
void dLytMsgWindow_c::finalizeState_WaitKeyMsgEnd2() {}
void dLytMsgWindow_c::initializeState_WaitKeySelectQuestion() {}
void dLytMsgWindow_c::executeState_WaitKeySelectQuestion() {}
void dLytMsgWindow_c::finalizeState_WaitKeySelectQuestion() {}
void dLytMsgWindow_c::initializeState_MapOpen() {}
void dLytMsgWindow_c::executeState_MapOpen() {}
void dLytMsgWindow_c::finalizeState_MapOpen() {}
void dLytMsgWindow_c::initializeState_WaitKeyMapClose() {}
void dLytMsgWindow_c::executeState_WaitKeyMapClose() {}
void dLytMsgWindow_c::finalizeState_WaitKeyMapClose() {}
void dLytMsgWindow_c::initializeState_MapClose() {}
void dLytMsgWindow_c::executeState_MapClose() {}
void dLytMsgWindow_c::finalizeState_MapClose() {}
void dLytMsgWindow_c::initializeState_Out() {}
void dLytMsgWindow_c::executeState_Out() {}
void dLytMsgWindow_c::finalizeState_Out() {}
void dLytMsgWindow_c::initializeState_ExplainIn() {}
void dLytMsgWindow_c::executeState_ExplainIn() {}
void dLytMsgWindow_c::finalizeState_ExplainIn() {}
void dLytMsgWindow_c::initializeState_ExplainVisible() {}
void dLytMsgWindow_c::executeState_ExplainVisible() {}
void dLytMsgWindow_c::finalizeState_ExplainVisible() {}
void dLytMsgWindow_c::initializeState_ExplainOut() {}
void dLytMsgWindow_c::executeState_ExplainOut() {}
void dLytMsgWindow_c::finalizeState_ExplainOut() {}
void dLytMsgWindow_c::initializeState_DemoIn() {}
void dLytMsgWindow_c::executeState_DemoIn() {}
void dLytMsgWindow_c::finalizeState_DemoIn() {}
void dLytMsgWindow_c::initializeState_DemoVisible() {}
void dLytMsgWindow_c::executeState_DemoVisible() {}
void dLytMsgWindow_c::finalizeState_DemoVisible() {}
void dLytMsgWindow_c::initializeState_DemoOut() {}
void dLytMsgWindow_c::executeState_DemoOut() {}
void dLytMsgWindow_c::finalizeState_DemoOut() {}
@@ -39,9 +39,6 @@ SelectBtnHelper::SelectBtnHelper() {
}
SelectBtnHelper::~SelectBtnHelper() {}
// STATE_DEFINE\(([A-Za-z_0-9]+), ([A-Za-z_0-9]+)\);
// void $1::initializeState_$2() {}\nvoid $1::executeState_$2() {}\nvoid $1::finalizeState_$2() {}\n
void dLytMsgWindowSelectBtnParts_c::initializeState_Wait() {}
void dLytMsgWindowSelectBtnParts_c::executeState_Wait() {
if (field_0x48 != 0) {