Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config/RSBE01_02/rels/sora_adv_menu_result/symbols.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
fn_34_0 = .text:0x00000000; // type:function size:0xD8
create__15muAdvResultTaskFPC20muAdvResultTaskParam = .text:0x00000000; // type:function size:0xD8
fn_34_D8 = .text:0x000000D8; // type:function size:0x1E8
fn_34_2C0 = .text:0x000002C0; // type:function size:0x180
fn_34_440 = .text:0x00000440; // type:function size:0x2F4
Expand Down
4 changes: 4 additions & 0 deletions config/RSBE01_02/rels/sora_scene/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ mo_scene/sora_scene/sc_adv_diff.cpp:
.rodata start:0x000008C0 end:0x000008D0
.data start:0x00005E48 end:0x00005F50

mo_scene/sora_scene/sc_adv_result.cpp:
.text start:0x0001FDEC end:0x0002006C
.data start:0x00006488 end:0x000064E8

mo_scene/mo_scene.cpp:
.text start:0x0003D4B8 end:0x0003D588
.data start:0x00009C30 end:0x00009C3D
Expand Down
20 changes: 10 additions & 10 deletions config/RSBE01_02/rels/sora_scene/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -402,11 +402,11 @@ fn_1_1EDE0 = .text:0x0001EDE0; // type:function size:0xC
fn_1_1EDEC = .text:0x0001EDEC; // type:function size:0x2AC
fn_1_1F098 = .text:0x0001F098; // type:function size:0xBB4
fn_1_1FC4C = .text:0x0001FC4C; // type:function size:0x1A0
fn_1_1FDEC = .text:0x0001FDEC; // type:function size:0xA8
fn_1_1FE94 = .text:0x0001FE94; // type:function size:0x10
fn_1_1FEA4 = .text:0x0001FEA4; // type:function size:0xEC
fn_1_1FF90 = .text:0x0001FF90; // type:function size:0x4C
fn_1_1FFDC = .text:0x0001FFDC; // type:function size:0x90
create__11scAdvResultFv = .text:0x0001FDEC; // type:function size:0xA8
setModule__11scAdvResultFv = .text:0x0001FE94; // type:function size:0x10
start__11scAdvResultFv = .text:0x0001FEA4; // type:function size:0xEC
process__11scAdvResultFv = .text:0x0001FF90; // type:function size:0x4C
exit__11scAdvResultFv = .text:0x0001FFDC; // type:function size:0x90
fn_1_2006C = .text:0x0002006C; // type:function size:0x58
fn_1_200C4 = .text:0x000200C4; // type:function size:0x2C
fn_1_200F0 = .text:0x000200F0; // type:function size:0x3FC
Expand Down Expand Up @@ -1278,12 +1278,12 @@ lbl_1_data_4D20 = .data:0x00004D20; // type:object size:0x18
lbl_1_data_4D38 = .data:0x00004D38; // type:object size:0x10 data:string
lbl_1_data_4D48 = .data:0x00004D48; // type:object size:0x10
lbl_1_data_4D58 = .data:0x00004D58; // type:object size:0x8
lbl_1_data_4D60 = .data:0x00004D60; // type:object size:0x34
__vt__13adList<Ul,42> = .data:0x00004D60; // type:object size:0x34
lbl_1_data_4D94 = .data:0x00004D94; // type:object size:0x1A data:string
lbl_1_data_4DB0 = .data:0x00004DB0; // type:object size:0x10
lbl_1_data_4DC0 = .data:0x00004DC0; // type:object size:0x8
__RTTI__13adList<Ul,42> = .data:0x00004DC0; // type:object size:0x8
lbl_1_data_4DC8 = .data:0x00004DC8; // type:object size:0x1F data:string
lbl_1_data_4DE8 = .data:0x00004DE8; // type:object size:0x8
__RTTI__19adListInterface<Ul> = .data:0x00004DE8; // type:object size:0x8
lbl_1_data_4DF0 = .data:0x00004DF0; // type:object size:0xA4
lbl_1_data_4E94 = .data:0x00004E94; // type:object size:0xC0
lbl_1_data_4F54 = .data:0x00004F54; // type:object size:0x1C
Expand Down Expand Up @@ -1401,10 +1401,10 @@ lbl_1_data_6424 = .data:0x00006424; // type:object size:0xC
lbl_1_data_6430 = .data:0x00006430; // type:object size:0x58
lbl_1_data_6488 = .data:0x00006488; // type:object size:0xC data:string
lbl_1_data_6494 = .data:0x00006494; // type:object size:0x19 data:string
lbl_1_data_64B0 = .data:0x000064B0; // type:object size:0x18
__vt__11scAdvResult = .data:0x000064B0; // type:object size:0x18
lbl_1_data_64C8 = .data:0x000064C8; // type:object size:0xC data:string
lbl_1_data_64D4 = .data:0x000064D4; // type:object size:0xC
lbl_1_data_64E0 = .data:0x000064E0; // type:object size:0x8
__RTTI__11scAdvResult = .data:0x000064E0; // type:object size:0x8
lbl_1_data_64E8 = .data:0x000064E8; // type:object size:0xC data:string
jumptable_1_data_64F4 = .data:0x000064F4; // type:object size:0x34 scope:local
lbl_1_data_6528 = .data:0x00006528; // type:object size:0x1B data:string
Expand Down
1 change: 1 addition & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -983,6 +983,7 @@ def MatchingFor(*versions):
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/sora_scene/sc_adv_diff.cpp"),
Object(Matching, "mo_scene/sora_scene/sc_adv_result.cpp"),
Object(Matching, "mo_scene/mo_scene.cpp"),
],
},
Expand Down
3 changes: 0 additions & 3 deletions src/mo_scene/sora_scene/sc_adv_diff.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@ void scAdvDiff::setModule() {
setLoadModule("sora_adv_menu_difficulty.rel", false);
}

#pragma push
#pragma section ".rodata" ".rodata"
__declspec(section ".rodata") static muAdvDifficultyTaskParam g_TaskParam = { 2, 0, 1 };
#pragma pop

void scAdvDiff::start() {
muAdvDifficultyTaskParam param = g_TaskParam;
Expand Down
68 changes: 68 additions & 0 deletions src/mo_scene/sora_scene/sc_adv_result.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#include <gf/gf_application.h>
#include <gf/gf_scene.h>
#include <gf/gf_task.h>
#include <gm/gm_global.h>
#include <mu/adv/mu_adv_result.h>
#include <sc/sc_adv_result.h>
#include <sr/sr_common.h>
#include <types.h>

scAdvResult* scAdvResult::create() {
return new (Heaps::GlobalMode) scAdvResult("scAdvResult");
}

void scAdvResult::setModule() {
setLoadModule("sora_adv_menu_result.rel", false);
}

struct UnkParam {
union {
bool asBool;
u32 asInt;
} unk0;
u32 unk4;
};

void scAdvResult::start() {
UnkParam stack18;
UnkParam stack10;
UnkParam stack8;
if (g_GameGlobal->m_advData) {
stack10.unk0.asInt = g_GameGlobal->m_advData->m_record.unk4928;
stack10.unk4 = g_GameGlobal->m_advData->m_record.unk492C;
} else {
stack18.unk0.asBool = false;
stack18.unk4 = -1;
stack10 = stack18;
}
stack8 = stack10;
m_mainPlayerPort = stack8.unk4;
muAdvResultTaskParam param = { m_mainPlayerPort, m_earnedCoinsForClear,
m_scoreInCurrentStage, m_totalScore, &unk20, &unk34, &unk48 };
m_task = muAdvResultTask::create(&param);
if (gfSceneManager::getInstance()->m_memoryLayout) {
m_task->unk5A4 = true;
}
g_gfApplication->unkD0.endKeepScreen();
}

s32 scAdvResult::process() {
if (m_task && m_task->unk40) {
gfSceneManager* mgr = gfSceneManager::getInstance();
mgr->unk1 = 0;
mgr->processStep = 2;
}
return 0;
}

s32 scAdvResult::exit() {
unk20.remove();
unk34.remove();
unk48.remove();
if (m_task) {
m_task->exit();
m_task = nullptr;
}
g_gfApplication->unkD0.startKeepScreen();
return 0;
}
Loading