diff --git a/config/RSBE01_02/rels/sora_menu_main/symbols.txt b/config/RSBE01_02/rels/sora_menu_main/symbols.txt index bf4cca0..1c3b6ad 100644 --- a/config/RSBE01_02/rels/sora_menu_main/symbols.txt +++ b/config/RSBE01_02/rels/sora_menu_main/symbols.txt @@ -114,7 +114,7 @@ fn_2_ECF4 = .text:0x0000ECF4; // type:function size:0x78 fn_2_ED6C = .text:0x0000ED6C; // type:function size:0x74 fn_2_EDE0 = .text:0x0000EDE0; // type:function size:0xAC fn_2_EE8C = .text:0x0000EE8C; // type:function size:0x30 -fn_2_EEBC = .text:0x0000EEBC; // type:function size:0x5E4 +__ct__14tySealListTaskFv = .text:0x0000EEBC; // type:function size:0x5E4 fn_2_F4A0 = .text:0x0000F4A0; // type:function size:0x678 fn_2_FB18 = .text:0x0000FB18; // type:function size:0x1C8 fn_2_FCE0 = .text:0x0000FCE0; // type:function size:0x444 diff --git a/config/RSBE01_02/rels/sora_scene/splits.txt b/config/RSBE01_02/rels/sora_scene/splits.txt index 2366886..92e1c8d 100644 --- a/config/RSBE01_02/rels/sora_scene/splits.txt +++ b/config/RSBE01_02/rels/sora_scene/splits.txt @@ -23,6 +23,10 @@ mo_scene/sora_scene/sc_staffroll.cpp: .text start:0x000061A4 end:0x0000624C .data start:0x00001400 end:0x00001448 +mo_scene/sora_scene/sc_seal_list.cpp: + .text start:0x00007070 end:0x00007230 + .data start:0x000017F0 end:0x000018D8 + mo_scene/sora_scene/sc_net_time_result.cpp: .text start:0x0000C824 end:0x0000C9C4 .data start:0x000040D0 end:0x00004140 diff --git a/config/RSBE01_02/rels/sora_scene/symbols.txt b/config/RSBE01_02/rels/sora_scene/symbols.txt index 9a75e9f..ad9d913 100644 --- a/config/RSBE01_02/rels/sora_scene/symbols.txt +++ b/config/RSBE01_02/rels/sora_scene/symbols.txt @@ -98,11 +98,11 @@ fn_1_6FC4 = .text:0x00006FC4; // type:function size:0xC fn_1_6FD0 = .text:0x00006FD0; // type:function size:0xC fn_1_6FDC = .text:0x00006FDC; // type:function size:0x7C fn_1_7058 = .text:0x00007058; // type:function size:0x18 -fn_1_7070 = .text:0x00007070; // type:function size:0x48 -fn_1_70B8 = .text:0x000070B8; // type:function size:0x68 -fn_1_7120 = .text:0x00007120; // type:function size:0x44 -fn_1_7164 = .text:0x00007164; // type:function size:0x48 -fn_1_71AC = .text:0x000071AC; // type:function size:0x84 +create__10scSealListFv = .text:0x00007070; // type:function size:0x48 +start__10scSealListFv = .text:0x000070B8; // type:function size:0x68 +process__10scSealListFv = .text:0x00007120; // type:function size:0x44 +exit__10scSealListFv = .text:0x00007164; // type:function size:0x48 +setModule__10scSealListFv = .text:0x000071AC; // type:function size:0x84 fn_1_7230 = .text:0x00007230; // type:function size:0x60 fn_1_7290 = .text:0x00007290; // type:function size:0x4 fn_1_7294 = .text:0x00007294; // type:function size:0xBC @@ -1028,11 +1028,12 @@ lbl_1_data_1794 = .data:0x00001794; // type:object size:0xC lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x8 lbl_1_data_17A8 = .data:0x000017A8; // type:object size:0x13 data:string lbl_1_data_17C0 = .data:0x000017C0; // type:object size:0x30 -lbl_1_data_17F0 = .data:0x000017F0; // type:object size:0x88 -lbl_1_data_1878 = .data:0x00001878; // type:object size:0x18 -lbl_1_data_1890 = .data:0x00001890; // type:object size:0xB data:string -lbl_1_data_189C = .data:0x0000189C; // type:object size:0xC -lbl_1_data_18A8 = .data:0x000018A8; // type:object size:0x30 +lbl_1_data_17F0 = .data:0x000017F0; // type:object size:0x88 scope:local +__vt__10scSealList = .data:0x00001878; // type:object size:0x18 +lbl_1_data_1890 = .data:0x00001890; // type:object size:0xB scope:local data:string +lbl_1_data_189C = .data:0x0000189C; // type:object size:0xC scope:local +__RTTI__10scSealList = .data:0x000018A8; // type:object size:0x8 +lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x28 lbl_1_data_18D8 = .data:0x000018D8; // type:object size:0xB data:string lbl_1_data_18E8 = .data:0x000018E8; // type:object size:0x18 lbl_1_data_1900 = .data:0x00001900; // type:object size:0xB data:string diff --git a/configure.py b/configure.py index 1915aa0..45ca5c1 100755 --- a/configure.py +++ b/configure.py @@ -978,6 +978,7 @@ def MatchingFor(*versions): Object(Matching, "mo_scene/sora_scene/sc_demo.cpp"), Object(Matching, "mo_scene/sora_scene/sc_tutorial.cpp"), Object(Matching, "mo_scene/sora_scene/sc_staffroll.cpp"), + Object(Matching, "mo_scene/sora_scene/sc_seal_list.cpp"), Object(Matching, "mo_scene/sora_scene/sc_net_time_result.cpp"), Object(Matching, "mo_scene/sora_scene/sc_adv_selchar.cpp"), Object(Matching, "mo_scene/mo_scene.cpp"), diff --git a/include/lib/BrawlHeaders b/include/lib/BrawlHeaders index e88ff61..723d730 160000 --- a/include/lib/BrawlHeaders +++ b/include/lib/BrawlHeaders @@ -1 +1 @@ -Subproject commit e88ff61b2f334a79468ba69d6adc74b0da5532f6 +Subproject commit 723d7301e4149c30841345df3c03d4b53487f453 diff --git a/src/mo_scene/sora_scene/sc_seal_list.cpp b/src/mo_scene/sora_scene/sc_seal_list.cpp new file mode 100644 index 0000000..9672934 --- /dev/null +++ b/src/mo_scene/sora_scene/sc_seal_list.cpp @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include + +scSealList* scSealList::create() { + return new (Heaps::GlobalMode) scSealList("scSealList"); +} + +void scSealList::start() { + tySealListTask* task = new (Heaps::MenuInstance) tySealListTask; + task->init(); + m_task = task; +} + +s32 scSealList::process() { + if (m_task->unk44 == 11) { + gfSceneManager* mgr = gfSceneManager::getInstance(); + mgr->unk1 = 0; + mgr->processStep = 2; + } + return 0; +} + +s32 scSealList::exit() { + if (m_task) { + m_task->exit(); + m_task = nullptr; + } + return 0; +} + +void scSealList::setModule() { + setLoadModule("sora_menu_name.rel", false); + setLoadModule("sora_menu_rule.rel", false); + setLoadModule("sora_menu_sel_char_access.rel", false); + setLoadModule("sora_menu_sel_stage.rel", false); + setLoadModule("sora_menu_main.rel", false); +}