Some dLytAreaCaption_c (#63)

This commit is contained in:
robojumper
2024-10-16 03:57:41 +02:00
committed by GitHub
parent bf79fa17fb
commit ec4d28cd25
13 changed files with 423 additions and 81 deletions
+12
View File
@@ -192,6 +192,10 @@ d/lyt/d_window.cpp:
.data start:0x80510820 end:0x805108B0
.sdata2 start:0x805797F0 end:0x805797F8
d/d_text_writer.cpp:
.text start:0x800B35C0 end:0x800B9274
.ctors start:0x804DB6D4 end:0x804DB6D8
toBeSorted/time_area_mgr.cpp:
.text start:0x800B9280 end:0x800BB2A0
@@ -287,6 +291,10 @@ d/lyt/meter/d_lyt_meter_rupy.cpp:
.text start:0x801003F0 end:0x801026A8
.ctors start:0x804DB714 end:0x804DB718
d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp:
.text start:0x801026B0 end:0x80105548
.ctors start:0x804DB718 end:0x804DB71C
d/lyt/meter/d_lyt_meter_heart.cpp:
.text start:0x8010AEC0 end:0x8010BD48
@@ -381,6 +389,10 @@ d/lyt/d_lyt_battery.cpp:
d/lyt/d_lyt_area_caption.cpp:
.text start:0x8014AD20 end:0x8014C6B8
.ctors start:0x804DB778 end:0x804DB77C
.rodata start:0x804E7FA0 end:0x804E7FE0
.data start:0x80522B00 end:0x80522E80
.sdata start:0x80572878 end:0x80572880
.bss start:0x805B0A70 end:0x805B0B30
d/lyt/d_lyt_wipe.cpp:
.text start:0x8014C6C0 end:0x8014E008
+65 -65
View File
@@ -3774,9 +3774,9 @@ LytMeter0x24__13dLytMeterBaseCFv = .text:0x800AC4F0; // type:function size:0x8
LytMeter0x28__13dLytMeterBaseFb = .text:0x800AC500; // type:function size:0x8
init__Q23d2d14AnmGroupBase_cFPCcPQ23m2d10ResAccIf_cPQ23d2d8Layout_cPCc = .text:0x800AC510; // type:function size:0x9C
init__Q23d2d14AnmGroupBase_cFPQ34nw4r3lyt13AnimTransformPCcPQ23m2d10ResAccIf_cPQ34nw4r3lyt5Group = .text:0x800AC5B0; // type:function size:0x114
fn_800AC6D0__Q23d2d14AnmGroupBase_cFb = .text:0x800AC6D0; // type:function size:0xF8
fn_800AC7D0__Q23d2d14AnmGroupBase_cFv = .text:0x800AC7D0; // type:function size:0x88
fn_800AC860__Q23d2d14AnmGroupBase_cFv = .text:0x800AC860; // type:function size:0x8
setDirection__Q23d2d14AnmGroupBase_cFb = .text:0x800AC6D0; // type:function size:0xF8
unbind__Q23d2d14AnmGroupBase_cFv = .text:0x800AC7D0; // type:function size:0x88
afterUnbind__Q23d2d14AnmGroupBase_cFv = .text:0x800AC860; // type:function size:0x8
setAnimEnable__Q23d2d14AnmGroupBase_cFb = .text:0x800AC870; // type:function size:0x8C
setAnmFrame__Q23d2d14AnmGroupBase_cFf = .text:0x800AC900; // type:function size:0xC
syncAnmFrame__Q23d2d14AnmGroupBase_cFv = .text:0x800AC910; // type:function size:0xC
@@ -5466,7 +5466,7 @@ fn_800E02C0 = .text:0x800E02C0; // type:function size:0x1E0
fn_800E04A0 = .text:0x800E04A0; // type:function size:0x58
fn_800E0500 = .text:0x800E0500; // type:function size:0x370
fn_800E0870 = .text:0x800E0870; // type:function size:0x1E4
fn_800E0A60 = .text:0x800E0A60; // type:function size:0xA0
fn_800E0A60__10dTextBox_cFPCce = .text:0x800E0A60; // type:function size:0xA0
fn_800E0B00 = .text:0x800E0B00; // type:function size:0x8
fn_800E0B10 = .text:0x800E0B10; // type:function size:0x8
fn_800E0B20 = .text:0x800E0B20; // type:function size:0x8
@@ -8248,64 +8248,64 @@ initializeState__28sFStateID_c<13dLytBattery_c>CFR13dLytBattery_c = .text:0x8014
__sinit_\d_lyt_battery_cpp = .text:0x8014A830; // type:function size:0x3F4 scope:local
__dt__28sFStateID_c<13dLytBattery_c>Fv = .text:0x8014AC30; // type:function size:0x58
isSameName__28sFStateID_c<13dLytBattery_c>CFPCc = .text:0x8014AC90; // type:function size:0x88
fn_8014AD20 = .text:0x8014AD20; // type:function size:0x218
fn_8014AF40 = .text:0x8014AF40; // type:function size:0x10
fn_8014AF50 = .text:0x8014AF50; // type:function size:0x7C
fn_8014AFD0 = .text:0x8014AFD0; // type:function size:0xE8
fn_8014B0C0 = .text:0x8014B0C0; // type:function size:0x10
getState3 = .text:0x8014B0D0; // type:function size:0x10
fn_8014B0E0 = .text:0x8014B0E0; // type:function size:0x28
doSomethingIfInCaptionPartsWaitState = .text:0x8014B110; // type:function size:0xA8
fn_8014B1C0 = .text:0x8014B1C0; // type:function size:0x60
LytAreaCaptionParts__stateWaitEnter = .text:0x8014B220; // type:function size:0x4
LytAreaCaptionParts__stateWaitUpdate = .text:0x8014B230; // type:function size:0x208
LytAreaCaptionParts__stateWaitLeave = .text:0x8014B440; // type:function size:0x4
LytAreaCaptionParts__stateStartEnter = .text:0x8014B450; // type:function size:0x4C
LytAreaCaptionParts__stateStartUpdate = .text:0x8014B4A0; // type:function size:0x160
LytAreaCaptionParts__stateStartLeave = .text:0x8014B600; // type:function size:0x4
LytAreaCaptionParts__stateOutEnter = .text:0x8014B610; // type:function size:0x4
LytAreaCaptionParts__stateOutUpdate = .text:0x8014B620; // type:function size:0x98
LytAreaCaptionParts__stateOutLeave = .text:0x8014B6C0; // type:function size:0x4
init__22dLytAreaCaptionParts_cFi = .text:0x8014AD20; // type:function size:0x218
changeState__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8014AF40; // type:function size:0x10
remove__22dLytAreaCaptionParts_cFv = .text:0x8014AF50; // type:function size:0x7C
update__22dLytAreaCaptionParts_cFv = .text:0x8014AFD0; // type:function size:0xE8
executeState__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014B0C0; // type:function size:0x10
getStateID__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014B0D0; // type:function size:0x10
draw__22dLytAreaCaptionParts_cFv = .text:0x8014B0E0; // type:function size:0x28
setTextIfWaiting__22dLytAreaCaptionParts_cFPCc = .text:0x8014B110; // type:function size:0xA8
check__22dLytAreaCaptionParts_cFv = .text:0x8014B1C0; // type:function size:0x60
initializeState_Wait__22dLytAreaCaptionParts_cFv = .text:0x8014B220; // type:function size:0x4
executeState_Wait__22dLytAreaCaptionParts_cFv = .text:0x8014B230; // type:function size:0x208
finalizeState_Wait__22dLytAreaCaptionParts_cFv = .text:0x8014B440; // type:function size:0x4
initializeState_Start__22dLytAreaCaptionParts_cFv = .text:0x8014B450; // type:function size:0x4C
executeState_Start__22dLytAreaCaptionParts_cFv = .text:0x8014B4A0; // type:function size:0x160
finalizeState_Start__22dLytAreaCaptionParts_cFv = .text:0x8014B600; // type:function size:0x4
initializeState_Out__22dLytAreaCaptionParts_cFv = .text:0x8014B610; // type:function size:0x4
executeState_Out__22dLytAreaCaptionParts_cFv = .text:0x8014B620; // type:function size:0x98
finalizeState_Out__22dLytAreaCaptionParts_cFv = .text:0x8014B6C0; // type:function size:0x4
fn_8014B6D0 = .text:0x8014B6D0; // type:function size:0x1CC
fn_8014B8A0 = .text:0x8014B8A0; // type:function size:0x74
LytAreaCaptionParts__ctor = .text:0x8014B920; // type:function size:0x10C
fn_8014BA30 = .text:0x8014BA30; // type:function size:0x58
fn_8014BA90 = .text:0x8014BA90; // type:function size:0x6C
fn_8014BB00 = .text:0x8014BB00; // type:function size:0xA0
fn_8014BBA0 = .text:0x8014BBA0; // type:function size:0xA4
fn_8014BC50 = .text:0x8014BC50; // type:function size:0x100
fn_8014BD50 = .text:0x8014BD50; // type:function size:0x74
fn_8014BDD0 = .text:0x8014BDD0; // type:function size:0x30
fn_8014BE00 = .text:0x8014BE00; // type:function size:0x30
fn_8014BE30 = .text:0x8014BE30; // type:function size:0x1C
TgTelop__updateOnce = .text:0x8014BE50; // type:function size:0x1C
fn_8014BE70 = .text:0x8014BE70; // type:function size:0x14
LytAreaCaptionParts__mapCaptionsThingy = .text:0x8014BE90; // type:function size:0x14
fn_8014BEB0 = .text:0x8014BEB0; // type:function size:0x1C
fn_8014BED0 = .text:0x8014BED0; // type:function size:0x70
fn_8014BF40 = .text:0x8014BF40; // type:function size:0x50
fn_8014BF90 = .text:0x8014BF90; // type:function size:0x50
fn_8014BFE0 = .text:0x8014BFE0; // type:function size:0x68
fn_8014C050 = .text:0x8014C050; // type:function size:0x64
fn_8014C0C0 = .text:0x8014C0C0; // type:function size:0x78
fn_8014C140 = .text:0x8014C140; // type:function size:0x4C
fn_8014C190 = .text:0x8014C190; // type:function size:0x60
fn_8014C1F0 = .text:0x8014C1F0; // type:function size:0xC
fn_8014C200 = .text:0x8014C200; // type:function size:0x1C
fn_8014C220 = .text:0x8014C220; // type:function size:0x1C
fn_8014C240 = .text:0x8014C240; // type:function size:0x1C
fn_8014C260 = .text:0x8014C260; // type:function size:0x10
fn_8014C270 = .text:0x8014C270; // type:function size:0x10
fn_8014C280 = .text:0x8014C280; // type:function size:0x10
fn_8014C290 = .text:0x8014C290; // type:function size:0x10
fn_8014C2A0 = .text:0x8014C2A0; // type:function size:0x10
fn_8014C2B0 = .text:0x8014C2B0; // type:function size:0x10
fn_8014C2C0 = .text:0x8014C2C0; // type:function size:0x30
fn_8014C2F0 = .text:0x8014C2F0; // type:function size:0x30
fn_8014C320 = .text:0x8014C320; // type:function size:0x30
LytAreaCaptionParts__initStates = .text:0x8014C350; // type:function size:0x27C
LytAreaCaptionParts__dtor = .text:0x8014C5D0; // type:function size:0x58
fn_8014C630 = .text:0x8014C630; // type:function size:0x88
create__17dLytAreaCaption_cFv = .text:0x8014B8A0; // type:function size:0x74
__ct__22dLytAreaCaptionParts_cFv = .text:0x8014B920; // type:function size:0x10C
__dt__35sFState_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014BA30; // type:function size:0x58
__dt__38sFStateFct_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014BA90; // type:function size:0x6C
__dt__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014BB00; // type:function size:0xA0
__dt__61sFStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c>Fv = .text:0x8014BBA0; // type:function size:0xA4
__dt__22dLytAreaCaptionParts_cFv = .text:0x8014BC50; // type:function size:0x100
remove__17dLytAreaCaption_cFv = .text:0x8014BD50; // type:function size:0x74
update__17dLytAreaCaption_cFv = .text:0x8014BDD0; // type:function size:0x30
draw__17dLytAreaCaption_cFv = .text:0x8014BE00; // type:function size:0x30
setTextIfWaiting__17dLytAreaCaption_cFPCc = .text:0x8014BE30; // type:function size:0x1C
setArea__17dLytAreaCaption_cFi = .text:0x8014BE50; // type:function size:0x1C
check__17dLytAreaCaption_cFv = .text:0x8014BE70; // type:function size:0x14
set0xAAC__17dLytAreaCaption_cFUc = .text:0x8014BE90; // type:function size:0x14
get0xAAC__17dLytAreaCaption_cFv = .text:0x8014BEB0; // type:function size:0x1C
init__17dLytAreaCaption_cFv = .text:0x8014BED0; // type:function size:0x70
deinit__17dLytAreaCaption_cFv = .text:0x8014BF40; // type:function size:0x50
doUpdate__17dLytAreaCaption_cFv = .text:0x8014BF90; // type:function size:0x50
doDraw__17dLytAreaCaption_cFv = .text:0x8014BFE0; // type:function size:0x68
doSetTextIfWaiting__17dLytAreaCaption_cFPCc = .text:0x8014C050; // type:function size:0x64
doSetArea__17dLytAreaCaption_cFi = .text:0x8014C0C0; // type:function size:0x78
doCheck__17dLytAreaCaption_cFv = .text:0x8014C140; // type:function size:0x4C
build__38sFStateFct_c<22dLytAreaCaptionParts_c>FRC12sStateIDIf_c = .text:0x8014C190; // type:function size:0x60
dispose__38sFStateFct_c<22dLytAreaCaptionParts_c>FRP10sStateIf_c = .text:0x8014C1F0; // type:function size:0xC
initialize__35sFState_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014C200; // type:function size:0x1C
execute__35sFState_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014C220; // type:function size:0x1C
finalize__35sFState_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014C240; // type:function size:0x1C
initializeState__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014C260; // type:function size:0x10
finalizeState__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014C270; // type:function size:0x10
refreshState__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x8014C280; // type:function size:0x10
getState__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014C290; // type:function size:0x10
getNewStateID__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014C2A0; // type:function size:0x10
getOldStateID__91sStateMgr_c<22dLytAreaCaptionParts_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x8014C2B0; // type:function size:0x10
finalizeState__37sFStateID_c<22dLytAreaCaptionParts_c>CFR22dLytAreaCaptionParts_c = .text:0x8014C2C0; // type:function size:0x30
executeState__37sFStateID_c<22dLytAreaCaptionParts_c>CFR22dLytAreaCaptionParts_c = .text:0x8014C2F0; // type:function size:0x30
initializeState__37sFStateID_c<22dLytAreaCaptionParts_c>CFR22dLytAreaCaptionParts_c = .text:0x8014C320; // type:function size:0x30
__sinit_\d_lyt_area_caption_cpp = .text:0x8014C350; // type:function size:0x27C scope:local
__dt__37sFStateID_c<22dLytAreaCaptionParts_c>Fv = .text:0x8014C5D0; // type:function size:0x58
isSameName__37sFStateID_c<22dLytAreaCaptionParts_c>CFPCc = .text:0x8014C630; // type:function size:0x88
fn_8014C6C0 = .text:0x8014C6C0; // type:function size:0x4
fn_8014C6D0 = .text:0x8014C6D0; // type:function size:0xC
fn_8014C6E0 = .text:0x8014C6E0; // type:function size:0x4
@@ -39975,7 +39975,7 @@ lbl_805754A8 = .sbss:0x805754A8; // type:object size:0x1 data:byte
lbl_805754AC = .sbss:0x805754AC; // type:object size:0x1 data:byte
lbl_805754B0 = .sbss:0x805754B0; // type:object size:0x8 data:4byte
sInstance__13dLytBattery_c = .sbss:0x805754B8; // type:object size:0x8 data:4byte
lbl_805754C0 = .sbss:0x805754C0; // type:object size:0x8 data:4byte
sInstance__17dLytAreaCaption_c = .sbss:0x805754C0; // type:object size:0x8 data:4byte
LytWipe = .sbss:0x805754C8; // type:object size:0x8 data:4byte
LYT_HELP_PTR = .sbss:0x805754D0; // type:object size:0x8 data:4byte
lbl_805754D8 = .sbss:0x805754D8; // type:object size:0x8 data:4byte
@@ -48679,9 +48679,9 @@ StateID_On__13dLytBattery_c = .bss:0x805B09C0; // type:object size:0x30 data:4by
StateID_None__13dLytBattery_c = .bss:0x805B0A00; // type:object size:0x30 data:4byte
StateID_Out__13dLytBattery_c = .bss:0x805B0A40; // type:object size:0x30 data:4byte
lbl_805B0A70 = .bss:0x805B0A70; // type:object size:0x10
LytAreaCaptionParts__STATE_WAIT = .bss:0x805B0A80; // type:object size:0x40 data:4byte
LytAreaCaptionParts__STATE_START = .bss:0x805B0AC0; // type:object size:0x40 data:4byte
LytAreaCaptionParts__STATE_OUT = .bss:0x805B0B00; // type:object size:0x30 data:4byte
StateID_Wait__22dLytAreaCaptionParts_c = .bss:0x805B0A80; // type:object size:0x30 data:4byte
StateID_Start__22dLytAreaCaptionParts_c = .bss:0x805B0AC0; // type:object size:0x30 data:4byte
StateID_Out__22dLytAreaCaptionParts_c = .bss:0x805B0B00; // type:object size:0x30 data:4byte
lbl_805B0B30 = .bss:0x805B0B30; // type:object size:0x10
LytWipe__LytWipeMain__STATE_MODE_NONE = .bss:0x805B0B40; // type:object size:0x40 data:4byte
LytWipe__LytWipeMain__STATE_MODE_IN = .bss:0x805B0B80; // type:object size:0x40 data:4byte
+1
View File
@@ -377,6 +377,7 @@ config.libs = [
Object(NonMatching, "d/lyt/meter/d_lyt_meter_rupy.cpp"),
Object(NonMatching, "d/lyt/d_lyt_do_button.cpp"),
Object(Matching, "d/lyt/d_lyt_battery.cpp"),
Object(NonMatching, "d/lyt/d_lyt_area_caption.cpp"),
Object(NonMatching, "d/lyt/d_lyt_pause_disp_00.cpp"),
Object(Matching, "d/lyt/d_lyt_fader.cpp"),
Object(Matching, "d/lyt/d_screen_fader.cpp"),
+4 -4
View File
@@ -118,9 +118,9 @@ struct AnmGroupBase_c {
bool init(const char *fileName, m2d::ResAccIf_c *acc, d2d::Layout_c *layout, const char *animName);
bool init(nw4r::lyt::AnimTransform *transform, const char *fileName, m2d::ResAccIf_c *acc, nw4r::lyt::Group *group);
bool fn_800AC6D0(bool);
bool fn_800AC7D0();
bool fn_800AC860();
bool setDirection(bool backwards);
bool unbind();
bool afterUnbind();
void setAnimEnable(bool);
void setAnmFrame(f32);
void syncAnmFrame();
@@ -128,7 +128,7 @@ struct AnmGroupBase_c {
void setBackward();
inline void setFrameAndControlThings(f32 frame) {
fn_800AC6D0(false);
setDirection(false);
setAnimEnable(true);
mpFrameCtrl->setFrame(frame);
syncAnmFrame();
+73
View File
@@ -0,0 +1,73 @@
#ifndef D_LYT_AREA_CAPTION_H
#define D_LYT_AREA_CAPTION_H
#include <d/lyt/d2d.h>
#include <d/lyt/d_lyt_sub.h>
#include <s/s_State.hpp>
#include <s/s_StateMgr.hpp>
class dLytAreaCaptionParts_c {
public:
dLytAreaCaptionParts_c() : mStateMgr(*this, sStateID::null) {}
~dLytAreaCaptionParts_c() {}
bool init(int first);
void check();
bool update();
bool remove();
bool draw();
void setTextIfWaiting(const char *text);
STATE_FUNC_DECLARE(dLytAreaCaptionParts_c, Wait);
STATE_FUNC_DECLARE(dLytAreaCaptionParts_c, Start);
STATE_FUNC_DECLARE(dLytAreaCaptionParts_c, Out);
private:
/* 0x000 */ UI_STATE_MGR_DECLARE(dLytAreaCaptionParts_c);
/* 0x040 */ d2d::ResAccIf_c mResAcc;
/* 0x0EB */ dLytSub mLyt;
/* 0x110 */ d2d::AnmGroup_c mAnmGroups[4];
/* 0x540 */ dTextBox_c *mTextBoxes[3];
/* 0x54C */ u8 field_0x54C;
/* 0x54D */ u8 field_0x54D;
/* 0x54E */ u8 mFirst;
/* 0x54F */ bool mAnmCtrlInUse[4];
};
class dLytAreaCaption_c {
public:
static dLytAreaCaption_c *sInstance;
static bool create();
static bool remove();
static bool update();
static bool draw();
static void setTextIfWaiting(const char *);
static void setArea(int id);
static void check();
static void set0xAAC(u8 arg);
static u8 get0xAAC();
private:
dLytAreaCaption_c() {
sInstance = this;
}
~dLytAreaCaption_c() {
sInstance = nullptr;
}
bool init();
bool deinit();
bool doUpdate();
bool doDraw();
void doSetTextIfWaiting(const char *);
void doSetArea(int id);
void doCheck();
dLytAreaCaptionParts_c mParts[2];
s32 mPartToDraw;
u8 field_0xAAC;
};
#endif
+1 -1
View File
@@ -8,7 +8,7 @@ public:
dLytSub() {}
virtual bool build(const char *name, m2d::ResAccIf_c *acc) override {
mpName = name;
d2d::LytBase_c::build(name, acc);
return d2d::LytBase_c::build(name, acc);
}
const char *getName() const {
+4
View File
@@ -37,6 +37,10 @@ public:
}
}
void fn_800E0A60(const char *area, ...) {
// TODO
}
static f32 GetTranslateX1_();
// @bug: This does not implement UT's RTTI, so casts to dTextBox_c will
+4
View File
@@ -141,6 +141,10 @@ public:
/* vt 0x08 */ virtual ~Base_c();
/* vt 0x0C */ virtual void draw();
void setPriority(u8 p) {
mPriority = p;
}
/* 0x0C */ u8 mPriority;
void addToDrawList();
+3 -3
View File
@@ -821,7 +821,7 @@ bool AnmGroupBase_c::init(nw4r::lyt::AnimTransform *transform, const char *name,
return true;
}
bool AnmGroupBase_c::fn_800AC6D0(bool b) {
bool AnmGroupBase_c::setDirection(bool b) {
nw4r::lyt::AnimTransform *anmTransform = mpAnmTransform;
if (anmTransform == nullptr) {
return false;
@@ -849,7 +849,7 @@ bool AnmGroupBase_c::fn_800AC6D0(bool b) {
return true;
}
bool AnmGroupBase_c::fn_800AC7D0() {
bool AnmGroupBase_c::unbind() {
nw4r::lyt::AnimTransform *anmTransform = mpAnmTransform;
if (anmTransform == nullptr) {
return false;
@@ -865,7 +865,7 @@ bool AnmGroupBase_c::fn_800AC7D0() {
return true;
}
bool AnmGroupBase_c::fn_800AC860() {
bool AnmGroupBase_c::afterUnbind() {
return true;
}
+248
View File
@@ -0,0 +1,248 @@
#include <d/lyt/d_lyt_area_caption.h>
#include <d/lyt/d_textbox.h>
#include <toBeSorted/arc_managers/layout_arc_manager.h>
STATE_DEFINE(dLytAreaCaptionParts_c, Wait);
STATE_DEFINE(dLytAreaCaptionParts_c, Start);
STATE_DEFINE(dLytAreaCaptionParts_c, Out);
static const d2d::LytBrlanMapping brlanMap1[] = {
{ "areaCaption_00_start.brlan", "G__start_00"},
{ "areaCaption_00_type.brlan", "G_type_00"},
{"areaCaption_00_textLine.brlan", "G_textLine_00"},
{ "", ""},
};
static const d2d::LytBrlanMapping brlanMap2[] = {
{ "areaCaption_01_start.brlan", "G__start_00"},
{ "areaCaption_01_type.brlan", "G_type_00"},
{"areaCaption_01_textLine.brlan", "G_textLine_00"},
{ "areaCaption_01_out.brlan", "G_inOut_00"},
};
static const char *captionBoxes[] = {
"T_caption_00",
"T_captionS_00",
"T_captionS_01",
};
bool dLytAreaCaptionParts_c::init(int first) {
void *data = LayoutArcManager::sInstance->getLoadedData("DoButton");
mResAcc.attach(data, "");
mLyt.setResAcc(&mResAcc);
mFirst = first;
if (mFirst != 0) {
mLyt.build("areaCaption_00.brlyt", nullptr);
for (int i = 0; i < 4; i++) {
if (brlanMap1[i].mFile[0] == '\0') {
mAnmCtrlInUse[i] = false;
} else {
mAnmGroups[i].init(brlanMap1[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap1[i].mName);
mAnmGroups[i].setDirection(false);
mAnmGroups[i].setAnimEnable(false);
mAnmCtrlInUse[i] = true;
}
}
} else {
mLyt.build("areaCaption_01.brlyt", nullptr);
mLyt.setPriority(0x8A);
for (int i = 0; i < 4; i++) {
if (brlanMap2[i].mFile[0] == '\0') {
mAnmCtrlInUse[i] = false;
} else {
mAnmGroups[i].init(brlanMap2[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap2[i].mName);
mAnmGroups[i].setDirection(false);
mAnmGroups[i].setAnimEnable(false);
mAnmCtrlInUse[i] = true;
}
}
}
for (int i = 0; i < 3; i++) {
mTextBoxes[i] = mLyt.getTextBox(captionBoxes[i]);
}
field_0x54C = 0;
field_0x54D = 0;
mStateMgr.changeState(StateID_Wait);
mLyt.calc();
return true;
}
bool dLytAreaCaptionParts_c::remove() {
for (int i = 0; i < 4; i++) {
if (mAnmCtrlInUse[i]) {
mAnmGroups[i].unbind();
mAnmGroups[i].afterUnbind();
}
}
mResAcc.detach();
return true;
}
bool dLytAreaCaptionParts_c::update() {
mStateMgr.executeState();
if (*mStateMgr.getStateID() != StateID_Wait) {
for (int i = 0; i < 4; i++) {
if (mAnmCtrlInUse[i] && mAnmGroups[i].isFlag2()) {
mAnmGroups[i].play();
}
}
mLyt.calc();
}
return true;
}
bool dLytAreaCaptionParts_c::draw() {
mLyt.addToDrawList();
return true;
}
void dLytAreaCaptionParts_c::setTextIfWaiting(const char *text) {
if (*mStateMgr.getStateID() == StateID_Wait) {
mTextBoxes[0]->fn_800E0A60(text, nullptr);
mTextBoxes[1]->fn_800E0A60(text, nullptr);
mTextBoxes[2]->fn_800E0A60(text, nullptr);
field_0x54C = 1;
}
}
void dLytAreaCaptionParts_c::check() {
if (*mStateMgr.getStateID() == StateID_Start) {
field_0x54D = 1;
}
}
void dLytAreaCaptionParts_c::initializeState_Wait() {}
void dLytAreaCaptionParts_c::executeState_Wait() {
mTextBoxes[0]->fn_800E0A60("N_inOut_00", nullptr);
}
void dLytAreaCaptionParts_c::finalizeState_Wait() {}
void dLytAreaCaptionParts_c::initializeState_Start() {}
void dLytAreaCaptionParts_c::executeState_Start() {}
void dLytAreaCaptionParts_c::finalizeState_Start() {}
void dLytAreaCaptionParts_c::initializeState_Out() {}
void dLytAreaCaptionParts_c::executeState_Out() {}
void dLytAreaCaptionParts_c::finalizeState_Out() {}
bool dLytAreaCaption_c::create() {
new dLytAreaCaption_c();
if (dLytAreaCaption_c::sInstance == nullptr) {
return false;
}
sInstance->init();
return true;
}
bool dLytAreaCaption_c::remove() {
if (sInstance != nullptr) {
sInstance->deinit();
delete sInstance;
sInstance = nullptr;
}
return true;
}
bool dLytAreaCaption_c::update() {
if (sInstance != nullptr) {
sInstance->doUpdate();
}
return true;
}
bool dLytAreaCaption_c::draw() {
if (sInstance != nullptr) {
sInstance->doDraw();
}
return true;
}
void dLytAreaCaption_c::setTextIfWaiting(const char *text) {
if (sInstance != nullptr) {
sInstance->doSetTextIfWaiting(text);
}
}
void dLytAreaCaption_c::setArea(int id) {
if (sInstance != nullptr) {
sInstance->doSetArea(id);
}
}
void dLytAreaCaption_c::check() {
if (sInstance != nullptr) {
sInstance->doCheck();
}
}
void dLytAreaCaption_c::set0xAAC(u8 arg) {
if (sInstance != nullptr) {
sInstance->field_0xAAC = arg;
}
}
u8 dLytAreaCaption_c::get0xAAC() {
if (sInstance != nullptr) {
return sInstance->field_0xAAC;
}
return 0;
}
bool dLytAreaCaption_c::init() {
int first = 1;
for (int i = 0; i < 2; i++) {
mParts[i].init(first);
first = 0;
}
mPartToDraw = 0;
field_0xAAC = 0;
return true;
}
bool dLytAreaCaption_c::deinit() {
for (int i = 0; i < 2; i++) {
mParts[i].remove();
}
return true;
}
bool dLytAreaCaption_c::doUpdate() {
for (int i = 0; i < 2; i++) {
mParts[i].update();
}
return true;
}
bool dLytAreaCaption_c::doDraw() {
for (int i = 0; i < 2; i++) {
if (i == mPartToDraw) {
mParts[i].draw();
}
}
return true;
}
void dLytAreaCaption_c::doSetTextIfWaiting(const char *text) {
mPartToDraw = 0;
for (int i = 0; i < 2; i++) {
mParts[i].setTextIfWaiting(text);
}
}
void dLytAreaCaption_c::doSetArea(int id) {
mPartToDraw = 1;
SizedString<16> str;
str.sprintf("MAP_%02d", id);
for (int i = 0; i < 2; i++) {
mParts[i].setTextIfWaiting(str);
}
}
void dLytAreaCaption_c::doCheck() {
for (int i = 0; i < 2; i++) {
mParts[i].check();
}
}
+1 -1
View File
@@ -45,7 +45,7 @@ bool dLytBattery_c::init() {
for (int i = 0; i < 4; i++) {
mAnmGroups[i].init(brlanMap[i].mFile, &mResAcc, mLyt.getLayout(), brlanMap[i].mName);
mAnmGroups[i].fn_800AC6D0(false);
mAnmGroups[i].setDirection(false);
mAnmGroups[i].setAnimEnable(false);
}
+2 -2
View File
@@ -44,7 +44,7 @@ bool dLytCommonArrow_c::fn_80168490() {
d2d::dLytStructDList::sInstance->removeFromList2(&field_0x680);
mLytBase.unbindAnims();
for (int i = 0; i < 9; i++) {
field_0x440[i].fn_800AC860();
field_0x440[i].afterUnbind();
}
return true;
}
@@ -112,7 +112,7 @@ void dLytCommonArrow_c::fn_80168790(s32 idx, f32 frame) {
}
void dLytCommonArrow_c::fn_80168800(s32 idx) {
field_0x440[idx].fn_800AC7D0();
field_0x440[idx].unbind();
}
void dLytCommonArrow_c::fn_80168810(d2d::AnmGroup_c *ctrl) {
+5 -5
View File
@@ -14,7 +14,7 @@ dLytFader_c::~dLytFader_c() {
if (field_0x4DD == true) {
for (int i = 0; i < 3; i++) {
mLytStructAs[i].fn_800AC860();
mLytStructAs[i].afterUnbind();
}
mResAcc.detach();
}
@@ -25,7 +25,7 @@ void dLytFader_c::setStatus(EStatus status) {
mStatus = FADED_OUT;
mLytBase.unbindAnims();
d2d::AnmGroup_c *s = &mLytStructAs[0];
s->fn_800AC6D0(false);
s->setDirection(false);
s->setToEnd();
s->setAnimEnable(true);
s->play();
@@ -36,7 +36,7 @@ void dLytFader_c::setStatus(EStatus status) {
mStatus = FADED_IN;
mLytBase.unbindAnims();
d2d::AnmGroup_c *s = &mLytStructAs[0];
s->fn_800AC6D0(false);
s->setDirection(false);
s->setToStart();
s->setAnimEnable(true);
mLytBase.calc();
@@ -112,7 +112,7 @@ void dLytFader_c::fn_801758F0() {
fn_80175BC0(0);
mLytBase.unbindAnims();
d2d::AnmGroup_c *s = &mLytStructAs[0];
s->fn_800AC6D0(false);
s->setDirection(false);
s->setFrame(0.0f);
s->setRate(20.0f / (mFrame - 1));
mLytBase.getLayout()->GetRootPane()->SetVisible(true);
@@ -132,7 +132,7 @@ void dLytFader_c::fn_80175A50() {
fn_80175BC0(1);
mLytBase.unbindAnims();
d2d::AnmGroup_c *s = &mLytStructAs[1];
s->fn_800AC6D0(false);
s->setDirection(false);
s->setFrame(0.0f);
s->setRate(20.0f / (mFrame - 1));
mLytBase.getLayout()->GetRootPane()->SetVisible(true);