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
4 changes: 4 additions & 0 deletions config/RSBE01_02/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ sora/gf/gf_archive_file.cpp:
sora/gf/gf_archive_db.cpp:
.text start:0x8001643C end:0x80016688

sora/gf/gf_archive_manager.cpp:
.text start:0x80016688 end:0x800167C4
.sbss start:0x8059FFA0 end:0x8059FFA4

sora/gf/gf_camera_controller.cpp:
.text start:0x8001A3A4 end:0x8001A3AC
.data start:0x80420B88 end:0x80420BA0
Expand Down
16 changes: 8 additions & 8 deletions config/RSBE01_02/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2241,7 +2241,7 @@ fn_800151FC = .text:0x800151FC; // type:function size:0x334
fn_80015530 = .text:0x80015530; // type:function size:0x30C
fn_8001583C = .text:0x8001583C; // type:function size:0x50
fn_8001588C = .text:0x8001588C; // type:function size:0x4C
fn_800158D8 = .text:0x800158D8; // type:function size:0x4D4
update__9gfArchiveFv = .text:0x800158D8; // type:function size:0x4D4
fn_80015DAC = .text:0x80015DAC; // type:function size:0x8
fn_80015DB4 = .text:0x80015DB4; // type:function size:0x28
getData__9gfArchiveF11ARCNodeTypeiUs = .text:0x80015DDC; // type:function size:0x38
Expand All @@ -2254,10 +2254,10 @@ create__17gfArchiveDatabaseFUlQ25Heaps8HeapType = .text:0x8001643C; // type:func
__dt__17gfArchiveDatabaseFv = .text:0x800164D4; // type:function size:0xFC
add__17gfArchiveDatabaseFP9gfArchiveb = .text:0x800165D0; // type:function size:0x94
get__17gfArchiveDatabaseCFl = .text:0x80016664; // type:function size:0x24
fn_80016688 = .text:0x80016688; // type:function size:0x68
fn_800166F0 = .text:0x800166F0; // type:function size:0x90
fn_80016780 = .text:0x80016780; // type:function size:0x30
fn_800167B0 = .text:0x800167B0; // type:function size:0x14
create__16gfArchiveManagerFv = .text:0x80016688; // type:function size:0x68
update__16gfArchiveManagerFv = .text:0x800166F0; // type:function size:0x90
pushback__16gfArchiveManagerFP9gfArchive = .text:0x80016780; // type:function size:0x30
remove__16gfArchiveManagerFP9gfArchive = .text:0x800167B0; // type:function size:0x14
__ct__13gfApplicationFv = .text:0x800167C4; // type:function size:0xE4
__dt__13gfApplicationFv = .text:0x800168A8; // type:function size:0x58
fn_80016900 = .text:0x80016900; // type:function size:0x28
Expand Down Expand Up @@ -6531,8 +6531,8 @@ fn_8015C1EC = .text:0x8015C1EC; // type:function size:0x4C
fn_8015C238 = .text:0x8015C238; // type:function size:0x84
fn_8015C2BC = .text:0x8015C2BC; // type:function size:0x48
fn_8015C304 = .text:0x8015C304; // type:function size:0x44
fn_8015C348 = .text:0x8015C348; // type:function size:0x2C
fn_8015C374 = .text:0x8015C374; // type:function size:0x30
Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode = .text:0x8015C348; // type:function size:0x2C
Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode = .text:0x8015C374; // type:function size:0x30
fn_8015C3A4 = .text:0x8015C3A4; // type:function size:0x74
fn_8015C418 = .text:0x8015C418; // type:function size:0x78
fn_8015C490 = .text:0x8015C490; // type:function size:0x1C
Expand Down Expand Up @@ -30614,7 +30614,7 @@ lbl_8059FF88 = .sbss:0x8059FF88; // type:object size:0x4 data:4byte
lbl_8059FF8C = .sbss:0x8059FF8C; // type:object size:0x1 data:byte
lbl_8059FF90 = .sbss:0x8059FF90; // type:object size:0x8 data:4byte
lbl_8059FF98 = .sbss:0x8059FF98; // type:object size:0x8 data:byte
lbl_8059FFA0 = .sbss:0x8059FFA0; // type:object size:0x8 data:4byte
g_gfArchiveManager = .sbss:0x8059FFA0; // type:object size:0x4 data:4byte
lbl_8059FFA8 = .sbss:0x8059FFA8; // type:object size:0x4
g_gfApplication = .sbss:0x8059FFAC; // type:object size:0x4 data:4byte
lbl_8059FFB0 = .sbss:0x8059FFB0; // type:object size:0x8 data:4byte
Expand Down
1 change: 1 addition & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ def MatchingFor(*versions):
Object(Matching, "sora/gf/gf_archive_load_thread.cpp"),
Object(Matching, "sora/gf/gf_archive_file.cpp"),
Object(Matching, "sora/gf/gf_archive_db.cpp"),
Object(Matching, "sora/gf/gf_archive_manager.cpp"),
Object(Matching, "sora/gf/gf_camera_controller.cpp"),
Object(Matching, "sora/gf/gf_callback.cpp"),
Object(Matching, "sora/gf/gf_decomp.cpp"),
Expand Down
33 changes: 33 additions & 0 deletions src/sora/gf/gf_archive_manager.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include <gf/gf_archive_manager.h>
#include <nw4r/ut/ut_LinkList.h>
#include <sr/sr_common.h>

gfArchiveManager* g_gfArchiveManager;

void gfArchiveManager::create() {
g_gfArchiveManager = new (Heaps::SystemFW) gfArchiveManager;
}

void gfArchiveManager::update() {
nw4r::ut::LinkList<gfArchive, 0>::Iterator it;
for (it = m_archives.GetBeginIter(); it != m_archives.GetEndIter(); ++it) {
if (!it->unk9)
it->update();
}

// Note: unclear why this loop is repeated; possibly connected to the
// unused extra list
for (it = m_archives.GetBeginIter(); it != m_archives.GetEndIter(); ++it) {
if (!it->unk9)
it->update();
}
}

void gfArchiveManager::pushback(gfArchive* arc) {
m_archives.PushBack(arc);
}

void gfArchiveManager::remove(gfArchive* arc) {
if (!m_archives.IsEmpty())
m_archives.Erase(arc);
}
Loading