mirror of
https://github.com/zeldaret/ss
synced 2026-05-30 08:56:34 -04:00
Merge branch 'main' into pr/17
This commit is contained in:
@@ -6,6 +6,10 @@ mw_comment_version: 8
|
||||
quick_analysis: true
|
||||
force_active: [
|
||||
"searchBaseByID__10fManager_cF9fBaseID_e",
|
||||
"ProcessLinefeed__Q34nw4r2ut19TagProcessorBase<c>FPQ34nw4r2ut15PrintContext<c>",
|
||||
"ProcessTab__Q34nw4r2ut19TagProcessorBase<c>FPQ34nw4r2ut15PrintContext<c>",
|
||||
"ProcessLinefeed__Q34nw4r2ut19TagProcessorBase<w>FPQ34nw4r2ut15PrintContext<w>",
|
||||
"ProcessTab__Q34nw4r2ut19TagProcessorBase<w>FPQ34nw4r2ut15PrintContext<w>",
|
||||
]
|
||||
# modules:
|
||||
# - object: orig/SOUE01/rels/d_a_asura_bulletNP.rel
|
||||
|
||||
@@ -19,6 +19,10 @@ toBeSorted/save_file.cpp:
|
||||
toBeSorted/file_manager.cpp:
|
||||
.text start:0x80009D30 end:0x80011730
|
||||
.ctors start:0x804DB648 end:0x804DB64C
|
||||
.data start:0x80500400 end:0x80500410
|
||||
.sdata start:0x80571848 end:0x80571850
|
||||
.sbss start:0x80574FF8 end:0x80575000
|
||||
.bss start:0x80580070 end:0x80580080
|
||||
|
||||
toBeSorted/save_manager.cpp:
|
||||
.text start:0x80011730 end:0x80015310
|
||||
@@ -124,11 +128,61 @@ toBeSorted/unk_flag_stuff.cpp:
|
||||
toBeSorted/bitwise_flag_helper.cpp:
|
||||
.text start:0x800BF200 end:0x800BF264
|
||||
|
||||
toBeSorted/dungeonflag_manager.cpp:
|
||||
.text start:0x800BF8D0 end:0x800BFB9C
|
||||
.bss start:0x805A9C58 end:0x805A9C68
|
||||
|
||||
toBeSorted/skipflag_manager.cpp:
|
||||
.text start:0x800BFBA0 end:0x800BFE00
|
||||
.sbss start:0x80575408 end:0x8057540C
|
||||
.bss start:0x805A9C68 end:0x805A9C88
|
||||
|
||||
toBeSorted/counters/counter.cpp:
|
||||
.text start:0x8016CC40 end:0x8016CD94
|
||||
|
||||
toBeSorted/counters/rupee_counter.cpp:
|
||||
.text start:0x8016DE10 end:0x8016DF98
|
||||
.ctors start:0x804DB7BC end:0x804DB7C0
|
||||
.rodata start:0x804E91B0 end:0x804E91D0
|
||||
.data start:0x80527FF0 end:0x80528010
|
||||
.sbss start:0x80575610 end:0x80575618
|
||||
|
||||
toBeSorted/counters/arrow_counter.cpp:
|
||||
.text start:0x8016DFA0 end:0x8016E018
|
||||
.ctors start:0x804DB7C0 end:0x804DB7C4
|
||||
.data start:0x80528010 end:0x80528030
|
||||
.sbss start:0x80575618 end:0x80575620
|
||||
|
||||
toBeSorted/counters/bomb_counter.cpp:
|
||||
.text start:0x8016E020 end:0x8016E098
|
||||
.ctors start:0x804DB7C4 end:0x804DB7C8
|
||||
.data start:0x80528030 end:0x80528050
|
||||
.sbss start:0x80575620 end:0x80575628
|
||||
|
||||
toBeSorted/counters/tear_counter.cpp:
|
||||
.text start:0x8016E0A0 end:0x8016E118
|
||||
.ctors start:0x804DB7C8 end:0x804DB7CC
|
||||
.data start:0x80528050 end:0x80528070
|
||||
.sbss start:0x80575628 end:0x80575630
|
||||
|
||||
toBeSorted/counters/slingshot_seed_counter.cpp:
|
||||
.text start:0x8016E120 end:0x8016E198
|
||||
.ctors start:0x804DB7CC end:0x804DB7D0
|
||||
.data start:0x80528070 end:0x80528090
|
||||
.sbss start:0x80575630 end:0x80575638
|
||||
|
||||
toBeSorted/counters/key_piece_counter.cpp:
|
||||
.text start:0x8016E1A0 end:0x8016E218
|
||||
.ctors start:0x804DB7D0 end:0x804DB7D4
|
||||
.data start:0x80528090 end:0x805280B0
|
||||
.sbss start:0x80575638 end:0x80575640
|
||||
|
||||
toBeSorted/counters/extra_wallet_counter.cpp:
|
||||
.text start:0x8016E220 end:0x8016E298
|
||||
.ctors start:0x804DB7D4 end:0x804DB7D8
|
||||
.data start:0x805280B0 end:0x805280D0
|
||||
.sbss start:0x80575640 end:0x80575648
|
||||
|
||||
c/c_list.cpp:
|
||||
.text start:0x802E08C0 end:0x802E0A10
|
||||
|
||||
@@ -172,6 +226,62 @@ rvl/CX/cx.c:
|
||||
nw4r/ut/ut_list.cpp:
|
||||
.text start:0x8042A530 end:0x8042A850
|
||||
|
||||
nw4r/ut/ut_LinkList.cpp:
|
||||
.text start:0x8042A850 end:0x8042A9E0
|
||||
|
||||
nw4r/ut/ut_binaryFileFormat.cpp:
|
||||
.text start:0x8042A9E0 end:0x8042AA54
|
||||
|
||||
nw4r/ut/ut_CharStrmReader.cpp:
|
||||
.text start:0x8042AA60 end:0x8042AB80
|
||||
|
||||
nw4r/ut/ut_TagProcessorBase.cpp:
|
||||
.text start:0x8042AB80 end:0x8042B4D4
|
||||
.data start:0x8056BD50 end:0x8056BD78
|
||||
.sdata2 start:0x8057EB68 end:0x8057EB70
|
||||
|
||||
nw4r/ut/ut_IOStream.cpp:
|
||||
.text start:0x8042B4E0 end:0x8042B55C
|
||||
.ctors start:0x804DB938 end:0x804DB93C
|
||||
.sbss start:0x80576590 end:0x80576598
|
||||
|
||||
nw4r/ut/ut_FileStream.cpp:
|
||||
.text start:0x8042B560 end:0x8042B6EC
|
||||
.ctors start:0x804DB93C end:0x804DB940
|
||||
.sbss start:0x80576598 end:0x805765A0
|
||||
|
||||
nw4r/ut/ut_DvdFileStream.cpp:
|
||||
.text start:0x8042B6F0 end:0x8042BDAC
|
||||
.ctors start:0x804DB940 end:0x804DB944
|
||||
|
||||
nw4r/ut/ut_DvdLockedFileStream.cpp:
|
||||
.text start:0x8042BDB0 end:0x8042C1DC
|
||||
.ctors start:0x804DB944 end:0x804DB948
|
||||
|
||||
nw4r/ut/ut_NandFileStream.cpp:
|
||||
.text start:0x8042C1E0 end:0x8042CA4C
|
||||
.ctors start:0x804DB948 end:0x804DB94C
|
||||
|
||||
nw4r/ut/ut_LockedCache.cpp:
|
||||
.text start:0x8042CA50 end:0x8042CC28
|
||||
.ctors start:0x804DB94C end:0x804DB950
|
||||
|
||||
nw4r/ut/ut_Font.cpp:
|
||||
.text start:0x8042CC30 end:0x8042CD20
|
||||
|
||||
nw4r/ut/ut_ResFontBase.cpp:
|
||||
.text start:0x8042CD20 end:0x8042D4B8
|
||||
|
||||
nw4r/ut/ut_ResFont.cpp:
|
||||
.text start:0x8042D4C0 end:0x8042D7CC
|
||||
|
||||
nw4r/ut/ut_CharWriter.cpp:
|
||||
.text start:0x8042D7D0 end:0x8042EF1C
|
||||
|
||||
nw4r/ut/ut_TextWriterBase.cpp:
|
||||
.text start:0x8042EF20 end:0x80434294
|
||||
.ctors start:0x804DB950 end:0x804DB954
|
||||
|
||||
nw4r/db/db_directPrint.cpp:
|
||||
.text start:0x804342A0 end:0x80434E9C
|
||||
.rodata start:0x804F5D28 end:0x804F5FDC
|
||||
|
||||
+298
-298
@@ -155,7 +155,7 @@ fn_800071D0 = .text:0x800071D0; // type:function size:0x8C
|
||||
fn_80007260 = .text:0x80007260; // type:function size:0xE4
|
||||
OSPanic = .text:0x80007350; // type:function size:0xDC scope:weak
|
||||
fn_80007430 = .text:0x80007430; // type:function size:0x24
|
||||
fn_80007460 = .text:0x80007460; // type:function size:0x40
|
||||
__dt__7mVec3_cFv = .text:0x80007460; // type:function size:0x40 scope:weak
|
||||
fn_800074A0 = .text:0x800074A0; // type:function size:0xC8
|
||||
fn_80007570 = .text:0x80007570; // type:function size:0x58
|
||||
fn_800075D0 = .text:0x800075D0; // type:function size:0x8C
|
||||
@@ -227,29 +227,29 @@ fn_80009770 = .text:0x80009770; // type:function size:0x74
|
||||
fn_800097F0 = .text:0x800097F0; // type:function size:0x17C
|
||||
fn_80009970 = .text:0x80009970; // type:function size:0x34
|
||||
getStoryFlags0__8SaveFileFv = .text:0x800099B0; // type:function size:0x8
|
||||
getStoryFlags1__8SaveFileFv = .text:0x800099C0; // type:function size:0x8
|
||||
getStoryFlags1__8SaveFileCFv = .text:0x800099C0; // type:function size:0x8
|
||||
getItemFlags0__8SaveFileFv = .text:0x800099D0; // type:function size:0x8
|
||||
getItemFlags1__8SaveFileFv = .text:0x800099E0; // type:function size:0x8
|
||||
getItemFlags1__8SaveFileCFv = .text:0x800099E0; // type:function size:0x8
|
||||
getDungeonFlags0__8SaveFileFv = .text:0x800099F0; // type:function size:0x8
|
||||
getDungeonFlags1__8SaveFileFv = .text:0x80009A00; // type:function size:0x8
|
||||
getDungeonFlags1__8SaveFileCFv = .text:0x80009A00; // type:function size:0x8
|
||||
getSceneFlags0__8SaveFileFv = .text:0x80009A10; // type:function size:0x8
|
||||
getSceneFlags1__8SaveFileFv = .text:0x80009A20; // type:function size:0x8
|
||||
getSceneFlags1__8SaveFileCFv = .text:0x80009A20; // type:function size:0x8
|
||||
getTboxFlags0__8SaveFileFv = .text:0x80009A30; // type:function size:0x8
|
||||
getTboxFlags1__8SaveFileFv = .text:0x80009A40; // type:function size:0x8
|
||||
getTboxFlags1__8SaveFileCFv = .text:0x80009A40; // type:function size:0x8
|
||||
getTempFlags0__8SaveFileFv = .text:0x80009A50; // type:function size:0x8
|
||||
getTempFlags1__8SaveFileFv = .text:0x80009A60; // type:function size:0x8
|
||||
getTempFlags1__8SaveFileCFv = .text:0x80009A60; // type:function size:0x8
|
||||
getZoneFlags0__8SaveFileFv = .text:0x80009A70; // type:function size:0x8
|
||||
getZoneFlags1__8SaveFileFv = .text:0x80009A80; // type:function size:0x8
|
||||
getUnkFlags0__8SaveFileFv = .text:0x80009A90; // type:function size:0x8
|
||||
getUnkFlags1__8SaveFileFv = .text:0x80009AA0; // type:function size:0x8
|
||||
getZoneFlags1__8SaveFileCFv = .text:0x80009A80; // type:function size:0x8
|
||||
getEnemyFlags0__8SaveFileFv = .text:0x80009A90; // type:function size:0x8
|
||||
getEnemyFlags1__8SaveFileCFv = .text:0x80009AA0; // type:function size:0x8
|
||||
getPlayerName__8SaveFileFv = .text:0x80009AB0; // type:function size:0x8
|
||||
setAreaT1__8SaveFileFPc = .text:0x80009AC0; // type:function size:0x11C
|
||||
getAreaT1__8SaveFileFv = .text:0x80009BE0; // type:function size:0x8
|
||||
setAreaT2__8SaveFileFPc = .text:0x80009BF0; // type:function size:0x11C
|
||||
getAreaT2__8SaveFileFv = .text:0x80009D10; // type:function size:0x8
|
||||
getAreaT3__8SaveFileFv = .text:0x80009D20; // type:function size:0x8
|
||||
fn_80009D30 = .text:0x80009D30; // type:function size:0x10
|
||||
fn_80009D40 = .text:0x80009D40; // type:function size:0x40
|
||||
__ct__8UnkClassFv = .text:0x80009D30; // type:function size:0x10
|
||||
__dt__8UnkClassFv = .text:0x80009D40; // type:function size:0x40
|
||||
fn_80009D80 = .text:0x80009D80; // type:function size:0x4
|
||||
fn_80009D90 = .text:0x80009D90; // type:function size:0x4
|
||||
fn_80009DA0 = .text:0x80009DA0; // type:function size:0xC
|
||||
@@ -265,7 +265,7 @@ getFileCurrentHealth__11FileManagerFi = .text:0x8000A2A0; // type:function size:
|
||||
getFileHealthCapacity__11FileManagerFi = .text:0x8000A2C0; // type:function size:0x14
|
||||
fn_8000A2E0__11FileManagerFv = .text:0x8000A2E0; // type:function size:0x50
|
||||
getStoryFlagsMut__11FileManagerFv = .text:0x8000A330; // type:function size:0x24
|
||||
getStoryFlagsConst__11FileManagerFv = .text:0x8000A360; // type:function size:0x44
|
||||
getStoryFlagsConst__11FileManagerCFv = .text:0x8000A360; // type:function size:0x44
|
||||
getItemFlagsMut__11FileManagerFv = .text:0x8000A3B0; // type:function size:0x24
|
||||
getItemFlagsConst__11FileManagerFv = .text:0x8000A3E0; // type:function size:0x44
|
||||
getDungeonFlagsMut__11FileManagerFv = .text:0x8000A430; // type:function size:0x24
|
||||
@@ -410,7 +410,7 @@ saveFileAToSelectedFile__11FileManagerFv = .text:0x8000EF80; // type:function si
|
||||
saveFileAToFile__11FileManagerFi = .text:0x8000EF90; // type:function size:0x794
|
||||
copyCurrentToFileB__11FileManagerFv = .text:0x8000F730; // type:function size:0x6B4
|
||||
copySelectedFileSkipData__11FileManagerFv = .text:0x8000FDF0; // type:function size:0xC
|
||||
copySkipData__11FileManagerFi = .text:0x8000FE00; // type:function size:0xA8
|
||||
copySkipData__11FileManagerFUc = .text:0x8000FE00; // type:function size:0xA8
|
||||
setInfo_FileB__11FileManagerFv = .text:0x8000FEB0; // type:function size:0xAC
|
||||
clearFileA__11FileManagerFv = .text:0x8000FF60; // type:function size:0x94
|
||||
initBlankSaveFiles__11FileManagerFv = .text:0x80010000; // type:function size:0x154
|
||||
@@ -424,19 +424,19 @@ getCurrentFile__11FileManagerFv = .text:0x80011210; // type:function size:0x40
|
||||
getSkipFlags2__11FileManagerFv = .text:0x80011250; // type:function size:0xC
|
||||
getFileA__11FileManagerFv = .text:0x80011260; // type:function size:0x8
|
||||
getFileB__11FileManagerFv = .text:0x80011270; // type:function size:0x8
|
||||
calcFileCRC__11FileManagerFPC8SaveFileUi = .text:0x80011280; // type:function size:0xC
|
||||
calcFileCRC__11FileManagerFPCvUi = .text:0x80011280; // type:function size:0xC
|
||||
updateEmptyFiles__11FileManagerFv = .text:0x80011290; // type:function size:0x34
|
||||
updateEmptyFileFlags__11FileManagerFv = .text:0x800112D0; // type:function size:0x9C
|
||||
isFileEmpty__11FileManagerFi = .text:0x80011370; // type:function size:0x20
|
||||
isFileUnk3__11FileManagerFi = .text:0x80011390; // type:function size:0x20
|
||||
isFileDirty__11FileManagerFi = .text:0x80011390; // type:function size:0x20
|
||||
get_0xA84C__11FileManagerFv = .text:0x800113B0; // type:function size:0xC
|
||||
checkRegionCode__11FileManagerFv = .text:0x800113C0; // type:function size:0x78
|
||||
checkFileCRC__11FileManagerFi = .text:0x80011440; // type:function size:0x50
|
||||
isFileInactive__11FileManagerFv = .text:0x80011490; // type:function size:0x6C
|
||||
checkFileCRC__11FileManagerFUc = .text:0x80011440; // type:function size:0x50
|
||||
isFileInactive__11FileManagerCFv = .text:0x80011490; // type:function size:0x6C
|
||||
setPlayerInfoFileA__11FileManagerFv = .text:0x80011500; // type:function size:0xE0
|
||||
setT3Info__11FileManagerFP7mVec3_cP7mAng3_c = .text:0x800115E0; // type:function size:0xD8
|
||||
getRegionVersion__11FileManagerFPc = .text:0x800116C0; // type:function size:0x28
|
||||
fn_800116F0 = .text:0x800116F0; // type:function size:0x3C
|
||||
__sinit_\file_manager_cpp = .text:0x800116F0; // type:function size:0x3C
|
||||
fn_80011730 = .text:0x80011730; // type:function size:0x2C
|
||||
fn_80011760 = .text:0x80011760; // type:function size:0x1D4
|
||||
fn_80011940 = .text:0x80011940; // type:function size:0x100
|
||||
@@ -4056,8 +4056,8 @@ fn_800BD510 = .text:0x800BD510; // type:function size:0xC
|
||||
fn_800BD520 = .text:0x800BD520; // type:function size:0x5C
|
||||
fn_800BD580 = .text:0x800BD580; // type:function size:0x5C
|
||||
fn_800BD5E0 = .text:0x800BD5E0; // type:function size:0xC
|
||||
fn_800BD5F0 = .text:0x800BD5F0; // type:function size:0x4
|
||||
fn_800BD600 = .text:0x800BD600; // type:function size:0x4
|
||||
onExit__Q23EGG6ThreadFv = .text:0x800BD5F0; // type:function size:0x4
|
||||
onEnter__Q23EGG6ThreadFv = .text:0x800BD600; // type:function size:0x4
|
||||
fn_800BD610 = .text:0x800BD610; // type:function size:0x34
|
||||
fn_800BD650 = .text:0x800BD650; // type:function size:0x8
|
||||
fn_800BD660 = .text:0x800BD660; // type:function size:0x5C
|
||||
@@ -4171,15 +4171,15 @@ fn_800BF820 = .text:0x800BF820; // type:function size:0x3C
|
||||
fn_800BF860 = .text:0x800BF860; // type:function size:0x10
|
||||
fn_800BF870 = .text:0x800BF870; // type:function size:0x4
|
||||
fn_800BF880 = .text:0x800BF880; // type:function size:0x4C
|
||||
fn_800BF8D0 = .text:0x800BF8D0; // type:function size:0x54
|
||||
fn_800BF930 = .text:0x800BF930; // type:function size:0xC
|
||||
fn_800BF940 = .text:0x800BF940; // type:function size:0x3C
|
||||
fn_800BF980 = .text:0x800BF980; // type:function size:0x54
|
||||
fn_800BF9E0 = .text:0x800BF9E0; // type:function size:0xC
|
||||
fn_800BF9F0 = .text:0x800BF9F0; // type:function size:0x6C
|
||||
fn_800BFA60 = .text:0x800BFA60; // type:function size:0x60
|
||||
fn_800BFAC0 = .text:0x800BFAC0; // type:function size:0x50
|
||||
fn_800BFB10 = .text:0x800BFB10; // type:function size:0x8C
|
||||
copyFromSave__18DungeonflagManagerFUs = .text:0x800BF8D0; // type:function size:0x54
|
||||
setCommitFlag__18DungeonflagManagerFUs = .text:0x800BF930; // type:function size:0xC
|
||||
__ct__18DungeonflagManagerFv = .text:0x800BF940; // type:function size:0x3C
|
||||
setupFlagStuff__18DungeonflagManagerFv = .text:0x800BF980; // type:function size:0x54
|
||||
copyFromSave__18DungeonflagManagerFs = .text:0x800BF9E0; // type:function size:0xC
|
||||
setToValue__18DungeonflagManagerFUsUi = .text:0x800BF9F0; // type:function size:0x6C
|
||||
setFlag__18DungeonflagManagerFUs = .text:0x800BFA60; // type:function size:0x60
|
||||
getDungeonFlag__18DungeonflagManagerFUs = .text:0x800BFAC0; // type:function size:0x50
|
||||
doCommit__18DungeonflagManagerFv = .text:0x800BFB10; // type:function size:0x8C
|
||||
copyFromSave__15SkipflagManagerFv = .text:0x800BFBA0; // type:function size:0x44
|
||||
setCommitFlag__15SkipflagManagerFUs = .text:0x800BFBF0; // type:function size:0xC
|
||||
__ct__15SkipflagManagerFv = .text:0x800BFC00; // type:function size:0x2C
|
||||
@@ -9354,10 +9354,10 @@ fn_8016CB40 = .text:0x8016CB40; // type:function size:0x1C
|
||||
fn_8016CB60 = .text:0x8016CB60; // type:function size:0x78
|
||||
fn_8016CBE0 = .text:0x8016CBE0; // type:function size:0x3C
|
||||
fn_8016CC20 = .text:0x8016CC20; // type:function size:0x14
|
||||
fn_8016CC40 = .text:0x8016CC40; // type:function size:0xF0
|
||||
fn_8016CD30 = .text:0x8016CD30; // type:function size:0x20
|
||||
fn_8016CD50 = .text:0x8016CD50; // type:function size:0x20
|
||||
fn_8016CD70 = .text:0x8016CD70; // type:function size:0x24
|
||||
checkedAdd__7CounterFi = .text:0x8016CC40; // type:function size:0xF0
|
||||
getCommittedValue__7CounterFv = .text:0x8016CD30; // type:function size:0x20
|
||||
getUncommittedValue__7CounterFv = .text:0x8016CD50; // type:function size:0x20
|
||||
setValue__7CounterFUs = .text:0x8016CD70; // type:function size:0x24
|
||||
fn_8016CDA0 = .text:0x8016CDA0; // type:function size:0x64
|
||||
fn_8016CE10 = .text:0x8016CE10; // type:function size:0x10
|
||||
fn_8016CE20 = .text:0x8016CE20; // type:function size:0x14
|
||||
@@ -9432,36 +9432,36 @@ fn_8016D990 = .text:0x8016D990; // type:function size:0x8
|
||||
fn_8016D9A0 = .text:0x8016D9A0; // type:function size:0x8
|
||||
fn_8016D9B0 = .text:0x8016D9B0; // type:function size:0x8
|
||||
fn_8016D9C0 = .text:0x8016D9C0; // type:function size:0x448
|
||||
fn_8016DE10 = .text:0x8016DE10; // type:function size:0xAC
|
||||
fn_8016DEC0 = .text:0x8016DEC0; // type:function size:0x2C
|
||||
fn_8016DEF0 = .text:0x8016DEF0; // type:function size:0x40
|
||||
fn_8016DF30 = .text:0x8016DF30; // type:function size:0x18
|
||||
fn_8016DF50 = .text:0x8016DF50; // type:function size:0x38
|
||||
fn_8016DF90 = .text:0x8016DF90; // type:function size:0x8
|
||||
fn_8016DFA0 = .text:0x8016DFA0; // type:function size:0x40
|
||||
fn_8016DFE0 = .text:0x8016DFE0; // type:function size:0x18
|
||||
fn_8016E000 = .text:0x8016E000; // type:function size:0x8
|
||||
fn_8016E010 = .text:0x8016E010; // type:function size:0x8
|
||||
fn_8016E020 = .text:0x8016E020; // type:function size:0x40
|
||||
fn_8016E060 = .text:0x8016E060; // type:function size:0x18
|
||||
fn_8016E080 = .text:0x8016E080; // type:function size:0x8
|
||||
fn_8016E090 = .text:0x8016E090; // type:function size:0x8
|
||||
fn_8016E0A0 = .text:0x8016E0A0; // type:function size:0x40
|
||||
fn_8016E0E0 = .text:0x8016E0E0; // type:function size:0x18
|
||||
fn_8016E100 = .text:0x8016E100; // type:function size:0x8
|
||||
fn_8016E110 = .text:0x8016E110; // type:function size:0x8
|
||||
fn_8016E120 = .text:0x8016E120; // type:function size:0x40
|
||||
fn_8016E160 = .text:0x8016E160; // type:function size:0x18
|
||||
fn_8016E180 = .text:0x8016E180; // type:function size:0x8
|
||||
fn_8016E190 = .text:0x8016E190; // type:function size:0x8
|
||||
fn_8016E1A0 = .text:0x8016E1A0; // type:function size:0x40
|
||||
fn_8016E1E0 = .text:0x8016E1E0; // type:function size:0x18
|
||||
fn_8016E200 = .text:0x8016E200; // type:function size:0x8
|
||||
fn_8016E210 = .text:0x8016E210; // type:function size:0x8
|
||||
fn_8016E220 = .text:0x8016E220; // type:function size:0x40
|
||||
fn_8016E260 = .text:0x8016E260; // type:function size:0x18
|
||||
fn_8016E280 = .text:0x8016E280; // type:function size:0x8
|
||||
fn_8016E290 = .text:0x8016E290; // type:function size:0x8
|
||||
getBaseCapacity__Fv = .text:0x8016DE10; // type:function size:0xAC
|
||||
getExtraWalletCapacity__Fv = .text:0x8016DEC0; // type:function size:0x2C
|
||||
__dt__12RupeeCounterFv = .text:0x8016DEF0; // type:function size:0x40
|
||||
__ct__12RupeeCounterFv = .text:0x8016DF30; // type:function size:0x18
|
||||
getMax__12RupeeCounterFv = .text:0x8016DF50; // type:function size:0x38
|
||||
__sinit_\rupee_counter_cpp = .text:0x8016DF90; // type:function size:0x8 scope:local
|
||||
__dt__12ArrowCounterFv = .text:0x8016DFA0; // type:function size:0x40
|
||||
__ct__12ArrowCounterFv = .text:0x8016DFE0; // type:function size:0x18
|
||||
getMax__12ArrowCounterFv = .text:0x8016E000; // type:function size:0x8
|
||||
__sinit_\arrow_counter_cpp = .text:0x8016E010; // type:function size:0x8 scope:local
|
||||
__dt__11BombCounterFv = .text:0x8016E020; // type:function size:0x40
|
||||
__ct__11BombCounterFv = .text:0x8016E060; // type:function size:0x18
|
||||
getMax__11BombCounterFv = .text:0x8016E080; // type:function size:0x8
|
||||
__sinit_\bomb_counter_cpp = .text:0x8016E090; // type:function size:0x8 scope:local
|
||||
__dt__11TearCounterFv = .text:0x8016E0A0; // type:function size:0x40
|
||||
__ct__11TearCounterFv = .text:0x8016E0E0; // type:function size:0x18
|
||||
getMax__11TearCounterFv = .text:0x8016E100; // type:function size:0x8
|
||||
__sinit_\tear_counter_cpp = .text:0x8016E110; // type:function size:0x8 scope:local
|
||||
__dt__20SlingshotSeedCounterFv = .text:0x8016E120; // type:function size:0x40
|
||||
__ct__20SlingshotSeedCounterFv = .text:0x8016E160; // type:function size:0x18
|
||||
getMax__20SlingshotSeedCounterFv = .text:0x8016E180; // type:function size:0x8
|
||||
__sinit_\slingshot_seed_counter_cpp = .text:0x8016E190; // type:function size:0x8 scope:local
|
||||
__dt__15KeyPieceCounterFv = .text:0x8016E1A0; // type:function size:0x40
|
||||
__ct__15KeyPieceCounterFv = .text:0x8016E1E0; // type:function size:0x18
|
||||
getMax__15KeyPieceCounterFv = .text:0x8016E200; // type:function size:0x8
|
||||
__sinit_\key_piece_counter_cpp = .text:0x8016E210; // type:function size:0x8 scope:local
|
||||
__dt__18ExtraWalletCounterFv = .text:0x8016E220; // type:function size:0x40
|
||||
__ct__18ExtraWalletCounterFv = .text:0x8016E260; // type:function size:0x18
|
||||
getMax__18ExtraWalletCounterFv = .text:0x8016E280; // type:function size:0x8
|
||||
__sinit_\extra_wallet_counter_cpp = .text:0x8016E290; // type:function size:0x8 scope:local
|
||||
fn_8016E2A0 = .text:0x8016E2A0; // type:function size:0x6C
|
||||
fn_8016E310 = .text:0x8016E310; // type:function size:0x194
|
||||
fn_8016E4B0 = .text:0x8016E4B0; // type:function size:0x1C
|
||||
@@ -22030,11 +22030,11 @@ fn_803AC300 = .text:0x803AC300; // type:function size:0x20
|
||||
__OSSystemCallVectorEnd = .text:0x803AC31C; // type:label scope:global
|
||||
__OSInitSystemCall = .text:0x803AC320; // type:function size:0x60 scope:global
|
||||
fn_803AC380 = .text:0x803AC380; // type:function size:0x4
|
||||
fn_803AC390 = .text:0x803AC390; // type:function size:0x70
|
||||
OSSetSwitchThreadCallback = .text:0x803AC390; // type:function size:0x70
|
||||
__OSThreadInit = .text:0x803AC400; // type:function size:0x284 scope:global
|
||||
OSInitThreadQueue = .text:0x803AC690; // type:function size:0x10 scope:global
|
||||
fn_803AC6A0 = .text:0x803AC6A0; // type:function size:0xC
|
||||
fn_803AC6B0 = .text:0x803AC6B0; // type:function size:0x2C
|
||||
OSGetCurrentThread = .text:0x803AC6A0; // type:function size:0xC
|
||||
OSIsThreadTerminated = .text:0x803AC6B0; // type:function size:0x2C
|
||||
OSDisableScheduler = .text:0x803AC6E0; // type:function size:0x3C scope:global
|
||||
OSEnableScheduler = .text:0x803AC720; // type:function size:0x3C scope:global
|
||||
fn_803AC760 = .text:0x803AC760; // type:function size:0x68
|
||||
@@ -22044,11 +22044,11 @@ fn_803AC9C0 = .text:0x803AC9C0; // type:function size:0x50
|
||||
SelectThread = .text:0x803ACA10; // type:function size:0x22C scope:local
|
||||
__OSReschedule = .text:0x803ACC40; // type:function size:0x18 scope:global
|
||||
fn_803ACC60 = .text:0x803ACC60; // type:function size:0x3C
|
||||
fn_803ACCA0 = .text:0x803ACCA0; // type:function size:0x26C
|
||||
OSCreateThread = .text:0x803ACCA0; // type:function size:0x26C
|
||||
fn_803ACF10 = .text:0x803ACF10; // type:function size:0xE4
|
||||
OSCancelThread = .text:0x803AD000; // type:function size:0x1D4 scope:global
|
||||
fn_803AD1E0 = .text:0x803AD1E0; // type:function size:0x144
|
||||
fn_803AD330 = .text:0x803AD330; // type:function size:0xA0
|
||||
OSDetachThread = .text:0x803AD330; // type:function size:0xA0
|
||||
fn_803AD3D0 = .text:0x803AD3D0; // type:function size:0x29C
|
||||
fn_803AD670 = .text:0x803AD670; // type:function size:0x18C
|
||||
OSSleepThread = .text:0x803AD800; // type:function size:0xF0 scope:global
|
||||
@@ -23934,210 +23934,210 @@ List_Remove__Q24nw4r2utFPQ34nw4r2ut4ListPv = .text:0x8042A750; // type:function
|
||||
List_GetNext__Q24nw4r2utFPCQ34nw4r2ut4ListPCv = .text:0x8042A7C0; // type:function size:0x20
|
||||
List_GetPrev__Q24nw4r2utFPCQ34nw4r2ut4ListPCv = .text:0x8042A7E0; // type:function size:0x1C
|
||||
List_GetNth__Q24nw4r2utFPCQ34nw4r2ut4ListUs = .text:0x8042A800; // type:function size:0x50
|
||||
fn_8042A850 = .text:0x8042A850; // type:function size:0x84
|
||||
fn_8042A8E0 = .text:0x8042A8E0; // type:function size:0x48
|
||||
fn_8042A930 = .text:0x8042A930; // type:function size:0x44
|
||||
fn_8042A980 = .text:0x8042A980; // type:function size:0x2C
|
||||
fn_8042A9B0 = .text:0x8042A9B0; // type:function size:0x30
|
||||
fn_8042A9E0 = .text:0x8042A9E0; // type:function size:0x74
|
||||
fn_8042AA60 = .text:0x8042AA60; // type:function size:0x78
|
||||
fn_8042AAE0 = .text:0x8042AAE0; // type:function size:0x1C
|
||||
fn_8042AB00 = .text:0x8042AB00; // type:function size:0x1C
|
||||
fn_8042AB20 = .text:0x8042AB20; // type:function size:0x60
|
||||
fn_8042AB80 = .text:0x8042AB80; // type:function size:0x10
|
||||
fn_8042AB90 = .text:0x8042AB90; // type:function size:0x40
|
||||
fn_8042ABD0 = .text:0x8042ABD0; // type:function size:0x12C
|
||||
fn_8042AD00 = .text:0x8042AD00; // type:function size:0x1E4
|
||||
fn_8042AEF0 = .text:0x8042AEF0; // type:function size:0x64
|
||||
fn_8042AF60 = .text:0x8042AF60; // type:function size:0xC4
|
||||
fn_8042B030 = .text:0x8042B030; // type:function size:0x10
|
||||
fn_8042B040 = .text:0x8042B040; // type:function size:0x40
|
||||
fn_8042B080 = .text:0x8042B080; // type:function size:0x12C
|
||||
fn_8042B1B0 = .text:0x8042B1B0; // type:function size:0x1E4
|
||||
fn_8042B3A0 = .text:0x8042B3A0; // type:function size:0x64
|
||||
fn_8042B410 = .text:0x8042B410; // type:function size:0xC4
|
||||
fn_8042B4E0 = .text:0x8042B4E0; // type:function size:0x8
|
||||
fn_8042B4F0 = .text:0x8042B4F0; // type:function size:0x8
|
||||
fn_8042B500 = .text:0x8042B500; // type:function size:0x8
|
||||
fn_8042B510 = .text:0x8042B510; // type:function size:0x8
|
||||
fn_8042B520 = .text:0x8042B520; // type:function size:0x8
|
||||
fn_8042B530 = .text:0x8042B530; // type:function size:0x8
|
||||
fn_8042B540 = .text:0x8042B540; // type:function size:0x8
|
||||
fn_8042B550 = .text:0x8042B550; // type:function size:0xC
|
||||
fn_8042B560 = .text:0x8042B560; // type:function size:0x4
|
||||
fn_8042B570 = .text:0x8042B570; // type:function size:0x8
|
||||
fn_8042B580 = .text:0x8042B580; // type:function size:0x64
|
||||
fn_8042B5F0 = .text:0x8042B5F0; // type:function size:0x50
|
||||
fn_8042B640 = .text:0x8042B640; // type:function size:0x88
|
||||
fn_8042B6D0 = .text:0x8042B6D0; // type:function size:0x8
|
||||
fn_8042B6E0 = .text:0x8042B6E0; // type:function size:0xC
|
||||
fn_8042B6F0 = .text:0x8042B6F0; // type:function size:0x2C
|
||||
fn_8042B720 = .text:0x8042B720; // type:function size:0x28
|
||||
fn_8042B750 = .text:0x8042B750; // type:function size:0xBC
|
||||
fn_8042B810 = .text:0x8042B810; // type:function size:0x130
|
||||
fn_8042B940 = .text:0x8042B940; // type:function size:0x78
|
||||
fn_8042B9C0 = .text:0x8042B9C0; // type:function size:0x50
|
||||
fn_8042BA10 = .text:0x8042BA10; // type:function size:0x88
|
||||
fn_8042BAA0 = .text:0x8042BAA0; // type:function size:0xF4
|
||||
fn_8042BBA0 = .text:0x8042BBA0; // type:function size:0x3C
|
||||
fn_8042BBE0 = .text:0x8042BBE0; // type:function size:0x80
|
||||
fn_8042BC60 = .text:0x8042BC60; // type:function size:0x8
|
||||
fn_8042BC70 = .text:0x8042BC70; // type:function size:0x8
|
||||
fn_8042BC80 = .text:0x8042BC80; // type:function size:0x5C
|
||||
fn_8042BCE0 = .text:0x8042BCE0; // type:function size:0x8
|
||||
fn_8042BCF0 = .text:0x8042BCF0; // type:function size:0x8
|
||||
fn_8042BD00 = .text:0x8042BD00; // type:function size:0x8
|
||||
fn_8042BD10 = .text:0x8042BD10; // type:function size:0x8
|
||||
fn_8042BD20 = .text:0x8042BD20; // type:function size:0x8
|
||||
fn_8042BD30 = .text:0x8042BD30; // type:function size:0x8
|
||||
fn_8042BD40 = .text:0x8042BD40; // type:function size:0x8
|
||||
fn_8042BD50 = .text:0x8042BD50; // type:function size:0x8
|
||||
fn_8042BD60 = .text:0x8042BD60; // type:function size:0x8
|
||||
fn_8042BD70 = .text:0x8042BD70; // type:function size:0x8
|
||||
fn_8042BD80 = .text:0x8042BD80; // type:function size:0x8
|
||||
fn_8042BD90 = .text:0x8042BD90; // type:function size:0x8
|
||||
fn_8042BDA0 = .text:0x8042BDA0; // type:function size:0xC
|
||||
fn_8042BDB0 = .text:0x8042BDB0; // type:function size:0x84
|
||||
fn_8042BE40 = .text:0x8042BE40; // type:function size:0x84
|
||||
fn_8042BED0 = .text:0x8042BED0; // type:function size:0x58
|
||||
fn_8042BF30 = .text:0x8042BF30; // type:function size:0x34
|
||||
fn_8042BF70 = .text:0x8042BF70; // type:function size:0xD4
|
||||
fn_8042C050 = .text:0x8042C050; // type:function size:0xD4
|
||||
fn_8042C130 = .text:0x8042C130; // type:function size:0x58
|
||||
fn_8042C190 = .text:0x8042C190; // type:function size:0x8
|
||||
fn_8042C1A0 = .text:0x8042C1A0; // type:function size:0x8
|
||||
fn_8042C1B0 = .text:0x8042C1B0; // type:function size:0x8
|
||||
fn_8042C1C0 = .text:0x8042C1C0; // type:function size:0x8
|
||||
fn_8042C1D0 = .text:0x8042C1D0; // type:function size:0xC
|
||||
fn_8042C1E0 = .text:0x8042C1E0; // type:function size:0x2C
|
||||
fn_8042C210 = .text:0x8042C210; // type:function size:0x70
|
||||
fn_8042C280 = .text:0x8042C280; // type:function size:0x70
|
||||
fn_8042C2F0 = .text:0x8042C2F0; // type:function size:0x78
|
||||
fn_8042C370 = .text:0x8042C370; // type:function size:0xE8
|
||||
fn_8042C460 = .text:0x8042C460; // type:function size:0x258
|
||||
fn_8042C6C0 = .text:0x8042C6C0; // type:function size:0x50
|
||||
fn_8042C710 = .text:0x8042C710; // type:function size:0x7C
|
||||
fn_8042C790 = .text:0x8042C790; // type:function size:0xA4
|
||||
fn_8042C840 = .text:0x8042C840; // type:function size:0x7C
|
||||
fn_8042C8C0 = .text:0x8042C8C0; // type:function size:0xA8
|
||||
fn_8042C970 = .text:0x8042C970; // type:function size:0x8
|
||||
fn_8042C980 = .text:0x8042C980; // type:function size:0x8
|
||||
fn_8042C990 = .text:0x8042C990; // type:function size:0x8
|
||||
fn_8042C9A0 = .text:0x8042C9A0; // type:function size:0x8
|
||||
fn_8042C9B0 = .text:0x8042C9B0; // type:function size:0x8
|
||||
fn_8042C9C0 = .text:0x8042C9C0; // type:function size:0x8
|
||||
fn_8042C9D0 = .text:0x8042C9D0; // type:function size:0x8
|
||||
fn_8042C9E0 = .text:0x8042C9E0; // type:function size:0x8
|
||||
fn_8042C9F0 = .text:0x8042C9F0; // type:function size:0x8
|
||||
fn_8042CA00 = .text:0x8042CA00; // type:function size:0x8
|
||||
fn_8042CA10 = .text:0x8042CA10; // type:function size:0x8
|
||||
fn_8042CA20 = .text:0x8042CA20; // type:function size:0x8
|
||||
fn_8042CA30 = .text:0x8042CA30; // type:function size:0x8
|
||||
fn_8042CA40 = .text:0x8042CA40; // type:function size:0xC
|
||||
fn_8042CA50 = .text:0x8042CA50; // type:function size:0x60
|
||||
fn_8042CAB0 = .text:0x8042CAB0; // type:function size:0x78
|
||||
fn_8042CB30 = .text:0x8042CB30; // type:function size:0x70
|
||||
fn_8042CBA0 = .text:0x8042CBA0; // type:function size:0x40
|
||||
fn_8042CBE0 = .text:0x8042CBE0; // type:function size:0x4
|
||||
fn_8042CBF0 = .text:0x8042CBF0; // type:function size:0x4
|
||||
fn_8042CC00 = .text:0x8042CC00; // type:function size:0x4
|
||||
fn_8042CC10 = .text:0x8042CC10; // type:function size:0x18
|
||||
fn_8042CC30 = .text:0x8042CC30; // type:function size:0xA4
|
||||
fn_8042CCE0 = .text:0x8042CCE0; // type:function size:0x40
|
||||
fn_8042CD20 = .text:0x8042CD20; // type:function size:0x54
|
||||
fn_8042CD80 = .text:0x8042CD80; // type:function size:0x40
|
||||
fn_8042CDC0 = .text:0x8042CDC0; // type:function size:0xC
|
||||
fn_8042CDD0 = .text:0x8042CDD0; // type:function size:0x18
|
||||
fn_8042CDF0 = .text:0x8042CDF0; // type:function size:0xC
|
||||
fn_8042CE00 = .text:0x8042CE00; // type:function size:0xC
|
||||
fn_8042CE10 = .text:0x8042CE10; // type:function size:0xC
|
||||
fn_8042CE20 = .text:0x8042CE20; // type:function size:0x14
|
||||
fn_8042CE40 = .text:0x8042CE40; // type:function size:0x14
|
||||
fn_8042CE60 = .text:0x8042CE60; // type:function size:0x10
|
||||
fn_8042CE70 = .text:0x8042CE70; // type:function size:0x10
|
||||
fn_8042CE80 = .text:0x8042CE80; // type:function size:0x10
|
||||
fn_8042CE90 = .text:0x8042CE90; // type:function size:0x8
|
||||
fn_8042CEA0 = .text:0x8042CEA0; // type:function size:0x10
|
||||
fn_8042CEB0 = .text:0x8042CEB0; // type:function size:0x10
|
||||
fn_8042CEC0 = .text:0x8042CEC0; // type:function size:0x18
|
||||
fn_8042CEE0 = .text:0x8042CEE0; // type:function size:0x20
|
||||
fn_8042CF00 = .text:0x8042CF00; // type:function size:0xBC
|
||||
fn_8042CFC0 = .text:0x8042CFC0; // type:function size:0xC
|
||||
fn_8042CFD0 = .text:0x8042CFD0; // type:function size:0x44
|
||||
fn_8042D020 = .text:0x8042D020; // type:function size:0x114
|
||||
fn_8042D140 = .text:0x8042D140; // type:function size:0xC4
|
||||
fn_8042D210 = .text:0x8042D210; // type:function size:0xBC
|
||||
fn_8042D2D0 = .text:0x8042D2D0; // type:function size:0xC
|
||||
fn_8042D2E0 = .text:0x8042D2E0; // type:function size:0xCC
|
||||
fn_8042D3B0 = .text:0x8042D3B0; // type:function size:0x108
|
||||
fn_8042D4C0 = .text:0x8042D4C0; // type:function size:0x3C
|
||||
fn_8042D500 = .text:0x8042D500; // type:function size:0x58
|
||||
fn_8042D560 = .text:0x8042D560; // type:function size:0x148
|
||||
fn_8042D6B0 = .text:0x8042D6B0; // type:function size:0x4
|
||||
fn_8042D6C0 = .text:0x8042D6C0; // type:function size:0x10C
|
||||
fn_8042D7D0 = .text:0x8042D7D0; // type:function size:0x380
|
||||
fn_8042DB50 = .text:0x8042DB50; // type:function size:0x40
|
||||
fn_8042DB90 = .text:0x8042DB90; // type:function size:0x930
|
||||
fn_8042E4C0 = .text:0x8042E4C0; // type:function size:0xC4
|
||||
fn_8042E590 = .text:0x8042E590; // type:function size:0x78
|
||||
fn_8042E610 = .text:0x8042E610; // type:function size:0x60
|
||||
fn_8042E670 = .text:0x8042E670; // type:function size:0x60
|
||||
fn_8042E6D0 = .text:0x8042E6D0; // type:function size:0x60
|
||||
fn_8042E730 = .text:0x8042E730; // type:function size:0x130
|
||||
fn_8042E860 = .text:0x8042E860; // type:function size:0x27C
|
||||
fn_8042EAE0 = .text:0x8042EAE0; // type:function size:0x150
|
||||
fn_8042EC30 = .text:0x8042EC30; // type:function size:0x2EC
|
||||
fn_8042EF20 = .text:0x8042EF20; // type:function size:0x5C
|
||||
fn_8042EF80 = .text:0x8042EF80; // type:function size:0x58
|
||||
fn_8042EFE0 = .text:0x8042EFE0; // type:function size:0x90
|
||||
fn_8042F070 = .text:0x8042F070; // type:function size:0x7C
|
||||
fn_8042F0F0 = .text:0x8042F0F0; // type:function size:0x204
|
||||
fn_8042F300 = .text:0x8042F300; // type:function size:0x204
|
||||
fn_8042F510 = .text:0x8042F510; // type:function size:0x1E0
|
||||
fn_8042F6F0 = .text:0x8042F6F0; // type:function size:0x180
|
||||
fn_8042F870 = .text:0x8042F870; // type:function size:0x144
|
||||
fn_8042F9C0 = .text:0x8042F9C0; // type:function size:0x144
|
||||
fn_8042FB10 = .text:0x8042FB10; // type:function size:0x118
|
||||
fn_8042FC30 = .text:0x8042FC30; // type:function size:0x21C
|
||||
fn_8042FE50 = .text:0x8042FE50; // type:function size:0x1B8
|
||||
fn_80430010 = .text:0x80430010; // type:function size:0x140
|
||||
fn_80430150 = .text:0x80430150; // type:function size:0x110
|
||||
fn_80430260 = .text:0x80430260; // type:function size:0xAC
|
||||
fn_80430310 = .text:0x80430310; // type:function size:0x8
|
||||
fn_80430320 = .text:0x80430320; // type:function size:0x4
|
||||
fn_80430330 = .text:0x80430330; // type:function size:0x154
|
||||
fn_80430490 = .text:0x80430490; // type:function size:0x5BC
|
||||
fn_80430A50 = .text:0x80430A50; // type:function size:0x8
|
||||
fn_80430A60 = .text:0x80430A60; // type:function size:0x110
|
||||
fn_80430B70 = .text:0x80430B70; // type:function size:0x804
|
||||
fn_80431380 = .text:0x80431380; // type:function size:0x4D8
|
||||
fn_80431860 = .text:0x80431860; // type:function size:0x18
|
||||
fn_80431880 = .text:0x80431880; // type:function size:0x5C
|
||||
fn_804318E0 = .text:0x804318E0; // type:function size:0x58
|
||||
fn_80431940 = .text:0x80431940; // type:function size:0x90
|
||||
fn_804319D0 = .text:0x804319D0; // type:function size:0x7C
|
||||
fn_80431A50 = .text:0x80431A50; // type:function size:0x204
|
||||
fn_80431C60 = .text:0x80431C60; // type:function size:0x204
|
||||
fn_80431E70 = .text:0x80431E70; // type:function size:0x1E0
|
||||
fn_80432050 = .text:0x80432050; // type:function size:0x180
|
||||
fn_804321D0 = .text:0x804321D0; // type:function size:0x144
|
||||
fn_80432320 = .text:0x80432320; // type:function size:0x144
|
||||
fn_80432470 = .text:0x80432470; // type:function size:0x118
|
||||
fn_80432590 = .text:0x80432590; // type:function size:0x21C
|
||||
fn_804327B0 = .text:0x804327B0; // type:function size:0x1B8
|
||||
fn_80432970 = .text:0x80432970; // type:function size:0x140
|
||||
fn_80432AB0 = .text:0x80432AB0; // type:function size:0x110
|
||||
fn_80432BC0 = .text:0x80432BC0; // type:function size:0xAC
|
||||
fn_80432C70 = .text:0x80432C70; // type:function size:0x8
|
||||
fn_80432C80 = .text:0x80432C80; // type:function size:0x4
|
||||
fn_80432C90 = .text:0x80432C90; // type:function size:0x154
|
||||
fn_80432DF0 = .text:0x80432DF0; // type:function size:0x5BC
|
||||
fn_804333B0 = .text:0x804333B0; // type:function size:0x8
|
||||
fn_804333C0 = .text:0x804333C0; // type:function size:0x120
|
||||
fn_804334E0 = .text:0x804334E0; // type:function size:0x828
|
||||
fn_80433D10 = .text:0x80433D10; // type:function size:0x4D8
|
||||
fn_804341F0 = .text:0x804341F0; // type:function size:0x18
|
||||
fn_80434210 = .text:0x80434210; // type:function size:0x84
|
||||
__dt__Q44nw4r2ut6detail12LinkListImplFv = .text:0x8042A850; // type:function size:0x84
|
||||
Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator = .text:0x8042A8E0; // type:function size:0x48
|
||||
Clear__Q44nw4r2ut6detail12LinkListImplFv = .text:0x8042A930; // type:function size:0x44
|
||||
Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode = .text:0x8042A980; // type:function size:0x2C
|
||||
Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode = .text:0x8042A9B0; // type:function size:0x30
|
||||
IsValidBinaryFile__Q24nw4r2utFPCQ34nw4r2ut16BinaryFileHeaderUlUsUs = .text:0x8042A9E0; // type:function size:0x74
|
||||
ReadNextCharUTF8__Q34nw4r2ut14CharStrmReaderFv = .text:0x8042AA60; // type:function size:0x78
|
||||
ReadNextCharUTF16__Q34nw4r2ut14CharStrmReaderFv = .text:0x8042AAE0; // type:function size:0x1C
|
||||
ReadNextCharCP1252__Q34nw4r2ut14CharStrmReaderFv = .text:0x8042AB00; // type:function size:0x1C
|
||||
ReadNextCharSJIS__Q34nw4r2ut14CharStrmReaderFv = .text:0x8042AB20; // type:function size:0x60
|
||||
__ct__Q34nw4r2ut19TagProcessorBase<c>Fv = .text:0x8042AB80; // type:function size:0x10
|
||||
__dt__Q34nw4r2ut19TagProcessorBase<c>Fv = .text:0x8042AB90; // type:function size:0x40
|
||||
Process__Q34nw4r2ut19TagProcessorBase<c>FUsPQ34nw4r2ut15PrintContext<c> = .text:0x8042ABD0; // type:function size:0x12C
|
||||
CalcRect__Q34nw4r2ut19TagProcessorBase<c>FPQ34nw4r2ut4RectUsPQ34nw4r2ut15PrintContext<c> = .text:0x8042AD00; // type:function size:0x1E4
|
||||
ProcessLinefeed__Q34nw4r2ut19TagProcessorBase<c>FPQ34nw4r2ut15PrintContext<c> = .text:0x8042AEF0; // type:function size:0x64
|
||||
ProcessTab__Q34nw4r2ut19TagProcessorBase<c>FPQ34nw4r2ut15PrintContext<c> = .text:0x8042AF60; // type:function size:0xC4
|
||||
__ct__Q34nw4r2ut19TagProcessorBase<w>Fv = .text:0x8042B030; // type:function size:0x10
|
||||
__dt__Q34nw4r2ut19TagProcessorBase<w>Fv = .text:0x8042B040; // type:function size:0x40
|
||||
Process__Q34nw4r2ut19TagProcessorBase<w>FUsPQ34nw4r2ut15PrintContext<w> = .text:0x8042B080; // type:function size:0x12C
|
||||
CalcRect__Q34nw4r2ut19TagProcessorBase<w>FPQ34nw4r2ut4RectUsPQ34nw4r2ut15PrintContext<w> = .text:0x8042B1B0; // type:function size:0x1E4
|
||||
ProcessLinefeed__Q34nw4r2ut19TagProcessorBase<w>FPQ34nw4r2ut15PrintContext<w> = .text:0x8042B3A0; // type:function size:0x64
|
||||
ProcessTab__Q34nw4r2ut19TagProcessorBase<w>FPQ34nw4r2ut15PrintContext<w> = .text:0x8042B410; // type:function size:0xC4
|
||||
ReadAsync__Q34nw4r2ut8IOStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042B4E0; // type:function size:0x8
|
||||
Write__Q34nw4r2ut8IOStreamFPCvUl = .text:0x8042B4F0; // type:function size:0x8
|
||||
WriteAsync__Q34nw4r2ut8IOStreamFPCvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042B500; // type:function size:0x8
|
||||
IsBusy__Q34nw4r2ut8IOStreamCFv = .text:0x8042B510; // type:function size:0x8
|
||||
GetBufferAlign__Q34nw4r2ut8IOStreamCFv = .text:0x8042B520; // type:function size:0x8 scope:weak
|
||||
GetSizeAlign__Q34nw4r2ut8IOStreamCFv = .text:0x8042B530; // type:function size:0x8 scope:weak
|
||||
GetOffsetAlign__Q34nw4r2ut8IOStreamCFv = .text:0x8042B540; // type:function size:0x8 scope:weak
|
||||
__sinit_\ut_IOStream_cpp = .text:0x8042B550; // type:function size:0xC scope:local
|
||||
Cancel__Q34nw4r2ut10FileStreamFv = .text:0x8042B560; // type:function size:0x4
|
||||
CancelAsync__Q34nw4r2ut10FileStreamFPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042B570; // type:function size:0x8
|
||||
Skip__Q44nw4r2ut10FileStream12FilePositionFl = .text:0x8042B580; // type:function size:0x64
|
||||
Append__Q44nw4r2ut10FileStream12FilePositionFl = .text:0x8042B5F0; // type:function size:0x50
|
||||
Seek__Q44nw4r2ut10FileStream12FilePositionFlUl = .text:0x8042B640; // type:function size:0x88
|
||||
GetRuntimeTypeInfo__Q34nw4r2ut10FileStreamCFv = .text:0x8042B6D0; // type:function size:0x8 scope:weak
|
||||
__sinit_\ut_FileStream_cpp = .text:0x8042B6E0; // type:function size:0xC scope:local
|
||||
DvdAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP11DVDFileInfo = .text:0x8042B6F0; // type:function size:0x2C
|
||||
DvdCBAsyncCallback___Q34nw4r2ut13DvdFileStreamFlP15DVDCommandBlock = .text:0x8042B720; // type:function size:0x28
|
||||
__ct__Q34nw4r2ut13DvdFileStreamFl = .text:0x8042B750; // type:function size:0xBC
|
||||
__ct__Q34nw4r2ut13DvdFileStreamFPC11DVDFileInfob = .text:0x8042B810; // type:function size:0x130
|
||||
__dt__Q34nw4r2ut13DvdFileStreamFv = .text:0x8042B940; // type:function size:0x78
|
||||
Close__Q34nw4r2ut13DvdFileStreamFv = .text:0x8042B9C0; // type:function size:0x50
|
||||
Read__Q34nw4r2ut13DvdFileStreamFPvUl = .text:0x8042BA10; // type:function size:0x88
|
||||
ReadAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042BAA0; // type:function size:0xF4
|
||||
Peek__Q34nw4r2ut13DvdFileStreamFPvUl = .text:0x8042BBA0; // type:function size:0x3C
|
||||
PeekAsync__Q34nw4r2ut13DvdFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042BBE0; // type:function size:0x80
|
||||
Seek__Q34nw4r2ut13DvdFileStreamFlUl = .text:0x8042BC60; // type:function size:0x8
|
||||
Cancel__Q34nw4r2ut13DvdFileStreamFv = .text:0x8042BC70; // type:function size:0x8
|
||||
CancelAsync__Q34nw4r2ut13DvdFileStreamFPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042BC80; // type:function size:0x5C
|
||||
GetBufferAlign__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BCE0; // type:function size:0x8
|
||||
GetSizeAlign__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BCF0; // type:function size:0x8
|
||||
GetOffsetAlign__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD00; // type:function size:0x8
|
||||
CanCancel__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD10; // type:function size:0x8
|
||||
CanWrite__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD20; // type:function size:0x8
|
||||
CanRead__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD30; // type:function size:0x8
|
||||
CanSeek__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD40; // type:function size:0x8
|
||||
CanAsync__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD50; // type:function size:0x8
|
||||
GetSize__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD60; // type:function size:0x8
|
||||
Tell__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD70; // type:function size:0x8
|
||||
IsBusy__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD80; // type:function size:0x8
|
||||
GetRuntimeTypeInfo__Q34nw4r2ut13DvdFileStreamCFv = .text:0x8042BD90; // type:function size:0x8
|
||||
__sinit_\ut_DvdFileStream_cpp = .text:0x8042BDA0; // type:function size:0xC
|
||||
__ct__Q34nw4r2ut19DvdLockedFileStreamFl = .text:0x8042BDB0; // type:function size:0x84
|
||||
__ct__Q34nw4r2ut19DvdLockedFileStreamFPC11DVDFileInfob = .text:0x8042BE40; // type:function size:0x84
|
||||
__dt__Q34nw4r2ut19DvdLockedFileStreamFv = .text:0x8042BED0; // type:function size:0x58
|
||||
Close__Q34nw4r2ut19DvdLockedFileStreamFv = .text:0x8042BF30; // type:function size:0x34
|
||||
Read__Q34nw4r2ut19DvdLockedFileStreamFPvUl = .text:0x8042BF70; // type:function size:0xD4
|
||||
Peek__Q34nw4r2ut19DvdLockedFileStreamFPvUl = .text:0x8042C050; // type:function size:0xD4
|
||||
Cancel__Q34nw4r2ut19DvdLockedFileStreamFv = .text:0x8042C130; // type:function size:0x58
|
||||
CanAsync__Q34nw4r2ut19DvdLockedFileStreamCFv = .text:0x8042C190; // type:function size:0x8
|
||||
PeekAsync__Q34nw4r2ut19DvdLockedFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042C1A0; // type:function size:0x8
|
||||
ReadAsync__Q34nw4r2ut19DvdLockedFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042C1B0; // type:function size:0x8
|
||||
GetRuntimeTypeInfo__Q34nw4r2ut19DvdLockedFileStreamCFv = .text:0x8042C1C0; // type:function size:0x8
|
||||
__sinit_\ut_DvdLockedFileStream_cpp = .text:0x8042C1D0; // type:function size:0xC
|
||||
NandAsyncCallback___Q34nw4r2ut14NandFileStreamFlP16NANDCommandBlock = .text:0x8042C1E0; // type:function size:0x2C
|
||||
__ct__Q34nw4r2ut14NandFileStreamFPCcUl = .text:0x8042C210; // type:function size:0x70
|
||||
__ct__Q34nw4r2ut14NandFileStreamFPC12NANDFileInfoUlb = .text:0x8042C280; // type:function size:0x70
|
||||
__dt__Q34nw4r2ut14NandFileStreamFv = .text:0x8042C2F0; // type:function size:0x78
|
||||
Open__Q34nw4r2ut14NandFileStreamFPCcUl = .text:0x8042C370; // type:function size:0xE8
|
||||
Open__Q34nw4r2ut14NandFileStreamFPC12NANDFileInfoUlb = .text:0x8042C460; // type:function size:0x258
|
||||
Close__Q34nw4r2ut14NandFileStreamFv = .text:0x8042C6C0; // type:function size:0x50
|
||||
Read__Q34nw4r2ut14NandFileStreamFPvUl = .text:0x8042C710; // type:function size:0x7C
|
||||
ReadAsync__Q34nw4r2ut14NandFileStreamFPvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042C790; // type:function size:0xA4
|
||||
Write__Q34nw4r2ut14NandFileStreamFPCvUl = .text:0x8042C840; // type:function size:0x7C
|
||||
WriteAsync__Q34nw4r2ut14NandFileStreamFPCvUlPFlPQ34nw4r2ut8IOStreamPv_vPv = .text:0x8042C8C0; // type:function size:0xA8
|
||||
Seek__Q34nw4r2ut14NandFileStreamFlUl = .text:0x8042C970; // type:function size:0x8
|
||||
GetBufferAlign__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C980; // type:function size:0x8
|
||||
GetSizeAlign__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C990; // type:function size:0x8
|
||||
GetOffsetAlign__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C9A0; // type:function size:0x8
|
||||
CanCancel__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C9B0; // type:function size:0x8
|
||||
CanWrite__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C9C0; // type:function size:0x8
|
||||
CanRead__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C9D0; // type:function size:0x8
|
||||
CanSeek__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C9E0; // type:function size:0x8
|
||||
CanAsync__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042C9F0; // type:function size:0x8
|
||||
GetSize__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042CA00; // type:function size:0x8
|
||||
Tell__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042CA10; // type:function size:0x8
|
||||
IsBusy__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042CA20; // type:function size:0x8
|
||||
GetRuntimeTypeInfo__Q34nw4r2ut14NandFileStreamCFv = .text:0x8042CA30; // type:function size:0x8
|
||||
__sinit_\ut_NandFileStream_cpp = .text:0x8042CA40; // type:function size:0xC
|
||||
Enable__Q34nw4r2ut2LCFv = .text:0x8042CA50; // type:function size:0x60
|
||||
Disable__Q34nw4r2ut2LCFv = .text:0x8042CAB0; // type:function size:0x78
|
||||
Lock__Q34nw4r2ut2LCFv = .text:0x8042CB30; // type:function size:0x70
|
||||
Unlock__Q34nw4r2ut2LCFv = .text:0x8042CBA0; // type:function size:0x40
|
||||
LoadBlocks__Q34nw4r2ut2LCFPvPvUl = .text:0x8042CBE0; // type:function size:0x4
|
||||
StoreBlocks__Q34nw4r2ut2LCFPvPvUl = .text:0x8042CBF0; // type:function size:0x4
|
||||
StoreData__Q34nw4r2ut2LCFPvPvUl = .text:0x8042CC00; // type:function size:0x4
|
||||
__sinit_\ut_LockedCache_cpp = .text:0x8042CC10; // type:function size:0x18
|
||||
InitReaderFunc__Q34nw4r2ut4FontFQ34nw4r2ut12FontEncoding = .text:0x8042CC30; // type:function size:0xA4
|
||||
__dt__Q34nw4r2ut4FontFv = .text:0x8042CCE0; // type:function size:0x40
|
||||
__ct__Q44nw4r2ut6detail11ResFontBaseFv = .text:0x8042CD20; // type:function size:0x54
|
||||
__dt__Q44nw4r2ut6detail11ResFontBaseFv = .text:0x8042CD80; // type:function size:0x40
|
||||
SetResourceBuffer__Q44nw4r2ut6detail11ResFontBaseFPvPQ34nw4r2ut15FontInformation = .text:0x8042CDC0; // type:function size:0xC
|
||||
RemoveResourceBuffer__Q44nw4r2ut6detail11ResFontBaseFv = .text:0x8042CDD0; // type:function size:0x18
|
||||
GetWidth__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CDF0; // type:function size:0xC
|
||||
GetHeight__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE00; // type:function size:0xC
|
||||
GetAscent__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE10; // type:function size:0xC
|
||||
GetDescent__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE20; // type:function size:0x14
|
||||
GetBaselinePos__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE40; // type:function size:0x14
|
||||
GetCellHeight__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE60; // type:function size:0x10
|
||||
GetCellWidth__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE70; // type:function size:0x10
|
||||
GetMaxCharWidth__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE80; // type:function size:0x10
|
||||
GetType__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CE90; // type:function size:0x8
|
||||
GetTextureFormat__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CEA0; // type:function size:0x10
|
||||
GetLineFeed__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CEB0; // type:function size:0x10
|
||||
GetDefaultCharWidths__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042CEC0; // type:function size:0x18
|
||||
SetDefaultCharWidths__Q44nw4r2ut6detail11ResFontBaseFRCQ34nw4r2ut10CharWidths = .text:0x8042CEE0; // type:function size:0x20
|
||||
SetAlternateChar__Q44nw4r2ut6detail11ResFontBaseFUs = .text:0x8042CF00; // type:function size:0xBC
|
||||
SetLineFeed__Q44nw4r2ut6detail11ResFontBaseFi = .text:0x8042CFC0; // type:function size:0xC
|
||||
GetCharWidth__Q44nw4r2ut6detail11ResFontBaseCFUs = .text:0x8042CFD0; // type:function size:0x44
|
||||
GetCharWidths__Q44nw4r2ut6detail11ResFontBaseCFUs = .text:0x8042D020; // type:function size:0x114
|
||||
GetGlyph__Q44nw4r2ut6detail11ResFontBaseCFPQ34nw4r2ut5GlyphUs = .text:0x8042D140; // type:function size:0xC4
|
||||
HasGlyph__Q44nw4r2ut6detail11ResFontBaseCFUs = .text:0x8042D210; // type:function size:0xBC
|
||||
GetEncoding__Q44nw4r2ut6detail11ResFontBaseCFv = .text:0x8042D2D0; // type:function size:0xC
|
||||
FindGlyphIndex__Q44nw4r2ut6detail11ResFontBaseCFPCQ34nw4r2ut11FontCodeMapUs = .text:0x8042D2E0; // type:function size:0xCC
|
||||
GetGlyphFromIndex__Q44nw4r2ut6detail11ResFontBaseCFPQ34nw4r2ut5GlyphUs = .text:0x8042D3B0; // type:function size:0x108
|
||||
__ct__Q34nw4r2ut7ResFontFv = .text:0x8042D4C0; // type:function size:0x3C
|
||||
__dt__Q34nw4r2ut7ResFontFv = .text:0x8042D500; // type:function size:0x58
|
||||
SetResource__Q34nw4r2ut7ResFontFPv = .text:0x8042D560; // type:function size:0x148
|
||||
RemoveResource__Q34nw4r2ut7ResFontFv = .text:0x8042D6B0; // type:function size:0x4
|
||||
Rebuild__Q34nw4r2ut7ResFontFPQ34nw4r2ut16BinaryFileHeader = .text:0x8042D6C0; // type:function size:0x10C
|
||||
__ct__Q34nw4r2ut10CharWriterFv = .text:0x8042D7D0; // type:function size:0x380
|
||||
__dt__Q34nw4r2ut10CharWriterFv = .text:0x8042DB50; // type:function size:0x40
|
||||
SetupGX__Q34nw4r2ut10CharWriterFv = .text:0x8042DB90; // type:function size:0x930
|
||||
SetFontSize__Q34nw4r2ut10CharWriterFff = .text:0x8042E4C0; // type:function size:0xC4
|
||||
SetFontSize__Q34nw4r2ut10CharWriterFf = .text:0x8042E590; // type:function size:0x78
|
||||
GetFontWidth__Q34nw4r2ut10CharWriterCFv = .text:0x8042E610; // type:function size:0x60
|
||||
GetFontHeight__Q34nw4r2ut10CharWriterCFv = .text:0x8042E670; // type:function size:0x60
|
||||
GetFontAscent__Q34nw4r2ut10CharWriterCFv = .text:0x8042E6D0; // type:function size:0x60
|
||||
Print__Q34nw4r2ut10CharWriterFUs = .text:0x8042E730; // type:function size:0x130
|
||||
PrintGlyph__Q34nw4r2ut10CharWriterFfffRCQ34nw4r2ut5Glyph = .text:0x8042E860; // type:function size:0x27C
|
||||
UpdateVertexColor__Q34nw4r2ut10CharWriterFv = .text:0x8042EAE0; // type:function size:0x150
|
||||
SetupGXWithColorMapping__Q34nw4r2ut10CharWriterFQ34nw4r2ut5ColorQ34nw4r2ut5Color = .text:0x8042EC30; // type:function size:0x2EC
|
||||
__ct__Q34nw4r2ut17TextWriterBase<c>Fv = .text:0x8042EF20; // type:function size:0x5C
|
||||
__dt__Q34nw4r2ut17TextWriterBase<c>Fv = .text:0x8042EF80; // type:function size:0x58
|
||||
SetLineHeight__Q34nw4r2ut17TextWriterBase<c>Ff = .text:0x8042EFE0; // type:function size:0x90
|
||||
GetLineHeight__Q34nw4r2ut17TextWriterBase<c>CFv = .text:0x8042F070; // type:function size:0x7C
|
||||
CalcFormatStringWidth__Q34nw4r2ut17TextWriterBase<c>CFPCce = .text:0x8042F0F0; // type:function size:0x204
|
||||
CalcFormatStringHeight__Q34nw4r2ut17TextWriterBase<c>CFPCce = .text:0x8042F300; // type:function size:0x204
|
||||
CalcFormatStringRect__Q34nw4r2ut17TextWriterBase<c>CFPQ34nw4r2ut4RectPCce = .text:0x8042F510; // type:function size:0x1E0
|
||||
CalcVStringRect__Q34nw4r2ut17TextWriterBase<c>CFPQ34nw4r2ut4RectPCcP16__va_list_struct = .text:0x8042F6F0; // type:function size:0x180
|
||||
CalcStringWidth__Q34nw4r2ut17TextWriterBase<c>CFPCci = .text:0x8042F870; // type:function size:0x144
|
||||
CalcStringHeight__Q34nw4r2ut17TextWriterBase<c>CFPCci = .text:0x8042F9C0; // type:function size:0x144
|
||||
CalcStringRect__Q34nw4r2ut17TextWriterBase<c>CFPQ34nw4r2ut4RectPCci = .text:0x8042FB10; // type:function size:0x118
|
||||
Printf__Q34nw4r2ut17TextWriterBase<c>FPCce = .text:0x8042FC30; // type:function size:0x21C
|
||||
VPrintf__Q34nw4r2ut17TextWriterBase<c>FPCcP16__va_list_struct = .text:0x8042FE50; // type:function size:0x1B8
|
||||
Print__Q34nw4r2ut17TextWriterBase<c>FPCci = .text:0x80430010; // type:function size:0x140
|
||||
PrintfMutable__Q34nw4r2ut17TextWriterBase<c>FPCce = .text:0x80430150; // type:function size:0x110
|
||||
VPrintfMutable__Q34nw4r2ut17TextWriterBase<c>FPCcP16__va_list_struct = .text:0x80430260; // type:function size:0xAC
|
||||
PrintMutable__Q34nw4r2ut17TextWriterBase<c>FPCci = .text:0x80430310; // type:function size:0x8
|
||||
VSNPrintf__Q34nw4r2ut17TextWriterBase<c>FPcUlPCcP16__va_list_struct = .text:0x80430320; // type:function size:0x4
|
||||
CalcLineWidth__Q34nw4r2ut17TextWriterBase<c>FPCci = .text:0x80430330; // type:function size:0x154
|
||||
CalcLineRectImpl__Q34nw4r2ut17TextWriterBase<c>FPQ34nw4r2ut4RectPPCci = .text:0x80430490; // type:function size:0x5BC
|
||||
GetCharSpace__Q34nw4r2ut17TextWriterBase<c>CFv = .text:0x80430A50; // type:function size:0x8
|
||||
CalcStringRectImpl__Q34nw4r2ut17TextWriterBase<c>FPQ34nw4r2ut4RectPCci = .text:0x80430A60; // type:function size:0x110
|
||||
PrintImpl__Q34nw4r2ut17TextWriterBase<c>FPCcib = .text:0x80430B70; // type:function size:0x804
|
||||
AdjustCursor__Q34nw4r2ut17TextWriterBase<c>FPfPfPCci = .text:0x80431380; // type:function size:0x4D8
|
||||
IsDrawFlagSet__Q34nw4r2ut17TextWriterBase<c>CFUlUl = .text:0x80431860; // type:function size:0x18
|
||||
__ct__Q34nw4r2ut17TextWriterBase<w>Fv = .text:0x80431880; // type:function size:0x5C
|
||||
__dt__Q34nw4r2ut17TextWriterBase<w>Fv = .text:0x804318E0; // type:function size:0x58
|
||||
SetLineHeight__Q34nw4r2ut17TextWriterBase<w>Ff = .text:0x80431940; // type:function size:0x90
|
||||
GetLineHeight__Q34nw4r2ut17TextWriterBase<w>CFv = .text:0x804319D0; // type:function size:0x7C
|
||||
CalcFormatStringWidth__Q34nw4r2ut17TextWriterBase<w>CFPCwe = .text:0x80431A50; // type:function size:0x204
|
||||
CalcFormatStringHeight__Q34nw4r2ut17TextWriterBase<w>CFPCwe = .text:0x80431C60; // type:function size:0x204
|
||||
CalcFormatStringRect__Q34nw4r2ut17TextWriterBase<w>CFPQ34nw4r2ut4RectPCwe = .text:0x80431E70; // type:function size:0x1E0
|
||||
CalcVStringRect__Q34nw4r2ut17TextWriterBase<w>CFPQ34nw4r2ut4RectPCwP16__va_list_struct = .text:0x80432050; // type:function size:0x180
|
||||
CalcStringWidth__Q34nw4r2ut17TextWriterBase<w>CFPCwi = .text:0x804321D0; // type:function size:0x144
|
||||
CalcStringHeight__Q34nw4r2ut17TextWriterBase<w>CFPCwi = .text:0x80432320; // type:function size:0x144
|
||||
CalcStringRect__Q34nw4r2ut17TextWriterBase<w>CFPQ34nw4r2ut4RectPCwi = .text:0x80432470; // type:function size:0x118
|
||||
Printf__Q34nw4r2ut17TextWriterBase<w>FPCwe = .text:0x80432590; // type:function size:0x21C
|
||||
VPrintf__Q34nw4r2ut17TextWriterBase<w>FPCwP16__va_list_struct = .text:0x804327B0; // type:function size:0x1B8
|
||||
Print__Q34nw4r2ut17TextWriterBase<w>FPCwi = .text:0x80432970; // type:function size:0x140
|
||||
PrintfMutable__Q34nw4r2ut17TextWriterBase<w>FPCwe = .text:0x80432AB0; // type:function size:0x110
|
||||
VPrintfMutable__Q34nw4r2ut17TextWriterBase<w>FPCwP16__va_list_struct = .text:0x80432BC0; // type:function size:0xAC
|
||||
PrintMutable__Q34nw4r2ut17TextWriterBase<w>FPCwi = .text:0x80432C70; // type:function size:0x8
|
||||
VSNPrintf__Q34nw4r2ut17TextWriterBase<w>FPwUlPCwP16__va_list_struct = .text:0x80432C80; // type:function size:0x4
|
||||
CalcLineWidth__Q34nw4r2ut17TextWriterBase<w>FPCwi = .text:0x80432C90; // type:function size:0x154
|
||||
CalcLineRectImpl__Q34nw4r2ut17TextWriterBase<w>FPQ34nw4r2ut4RectPPCwi = .text:0x80432DF0; // type:function size:0x5BC
|
||||
GetCharSpace__Q34nw4r2ut17TextWriterBase<w>CFv = .text:0x804333B0; // type:function size:0x8
|
||||
CalcStringRectImpl__Q34nw4r2ut17TextWriterBase<w>FPQ34nw4r2ut4RectPCwi = .text:0x804333C0; // type:function size:0x120
|
||||
PrintImpl__Q34nw4r2ut17TextWriterBase<w>FPCwib = .text:0x804334E0; // type:function size:0x828
|
||||
AdjustCursor__Q34nw4r2ut17TextWriterBase<w>FPfPfPCwi = .text:0x80433D10; // type:function size:0x4D8
|
||||
IsDrawFlagSet__Q34nw4r2ut17TextWriterBase<w>CFUlUl = .text:0x804341F0; // type:function size:0x18
|
||||
__sinit_\ut_TextWriterBase_cpp = .text:0x80434210; // type:function size:0x84
|
||||
DirectPrint_Init__Q24nw4r2dbFv = .text:0x804342A0; // type:function size:0xB4
|
||||
DirectPrint_IsActive__Q24nw4r2dbFv = .text:0x80434360; // type:function size:0x28
|
||||
DirectPrint_EraseXfb__Q24nw4r2dbFiiii = .text:0x80434390; // type:function size:0x190
|
||||
@@ -26205,11 +26205,11 @@ dumpAll__Q23EGG4HeapFv = .text:0x804958B0; // type:function size:0xEC
|
||||
becomeCurrentHeap__Q23EGG4HeapFv = .text:0x804959A0; // type:function size:0x58
|
||||
_becomeCurrentHeapWithoutLock__Q23EGG4HeapFv = .text:0x80495A00; // type:function size:0x3C
|
||||
initAllocator__Q23EGG4HeapFPQ23EGG9Allocatorl = .text:0x80495A40; // type:function size:0x14
|
||||
0x80495A60 = .text:0x80495A60; // type:function size:0x8
|
||||
0x80495A70 = .text:0x80495A70; // type:function size:0x10
|
||||
0x80495A80 = .text:0x80495A80; // type:function size:0x10
|
||||
0x80495A90 = .text:0x80495A90; // type:function size:0x8
|
||||
0x80495AA0 = .text:0x80495AA0; // type:function size:0x10
|
||||
__nw__FUlPv = .text:0x80495A60; // type:function size:0x8
|
||||
__nw__FUlPQ23EGG4HeapUi = .text:0x80495A70; // type:function size:0x10
|
||||
__nwa__FUl = .text:0x80495A80; // type:function size:0x10
|
||||
__nwa__FUlUi = .text:0x80495A90; // type:function size:0x8
|
||||
__nwa__FUlPQ23EGG4HeapUi = .text:0x80495AA0; // type:function size:0x10
|
||||
__ct__Q23EGG7ExpHeapFP12MEMiHeapHead = .text:0x80495AB0; // type:function size:0x3C
|
||||
__dt__Q23EGG7ExpHeapFv = .text:0x80495AF0; // type:function size:0x74
|
||||
create__Q23EGG7ExpHeapFPvUlUs = .text:0x80495B70; // type:function size:0xB8
|
||||
@@ -26253,7 +26253,7 @@ getSize__Q23EGG10AssertHeapFv = .text:0x80496810; // type:function size:0x8
|
||||
getHeapKind__Q23EGG10AssertHeapCFv = .text:0x80496820; // type:function size:0x8
|
||||
__ct__Q23EGG8DisposerFv = .text:0x80496830; // type:function size:0x54
|
||||
__dt__Q23EGG8DisposerFv = .text:0x80496890; // type:function size:0x74
|
||||
__ct__Q23EGG6ThreadFUliiPQ23EGG4Heap = .text:0x80496910; // type:function size:0xD0
|
||||
__ct__Q23EGG6ThreadFUiiiPQ23EGG4Heap = .text:0x80496910; // type:function size:0xD0
|
||||
__ct__Q23EGG6ThreadFP8OSThreadi = .text:0x804969E0; // type:function size:0x74
|
||||
__dt__Q23EGG6ThreadFv = .text:0x80496A60; // type:function size:0xBC
|
||||
findThread__Q23EGG6ThreadFP8OSThread = .text:0x80496B20; // type:function size:0x64
|
||||
@@ -26262,7 +26262,7 @@ setThreadCurrentHeap__Q23EGG6ThreadFPQ23EGG4Heap = .text:0x80496BD0; // type:fun
|
||||
switchThreadCallback__Q23EGG6ThreadFP8OSThreadP8OSThread = .text:0x80496C70; // type:function size:0xEC
|
||||
setCommonMesgQueue__Q23EGG6ThreadFiPQ23EGG4Heap = .text:0x80496D60; // type:function size:0x5C
|
||||
start__Q23EGG6ThreadFPv = .text:0x80496DC0; // type:function size:0x10
|
||||
run__Q23EGG6ThreadFPv = .text:0x80496DD0; // type:function size:0x8
|
||||
run__Q23EGG6ThreadFv = .text:0x80496DD0; // type:function size:0x8
|
||||
FUN_80496de0 = .text:0x80496DE0; // type:function size:0x44
|
||||
FUN_80496e30 = .text:0x80496E30; // type:function size:0xD8
|
||||
FUN_80496f10 = .text:0x80496F10; // type:function size:0x1CC
|
||||
@@ -28352,7 +28352,7 @@ lbl_804E8D18 = .rodata:0x804E8D18; // type:object size:0x10
|
||||
lbl_804E8D28 = .rodata:0x804E8D28; // type:object size:0x48 data:4byte
|
||||
lbl_804E8D70 = .rodata:0x804E8D70; // type:object size:0x40 data:4byte
|
||||
lbl_804E8DB0 = .rodata:0x804E8DB0; // type:object size:0x400
|
||||
lbl_804E91B0 = .rodata:0x804E91B0; // type:object size:0x20 data:4byte
|
||||
wallet_definitions = .rodata:0x804E91B0; // type:object size:0x20 scope:local data:4byte
|
||||
lbl_804E91D0 = .rodata:0x804E91D0; // type:object size:0xA8
|
||||
lbl_804E9278 = .rodata:0x804E9278; // type:object size:0xA0
|
||||
lbl_804E9318 = .rodata:0x804E9318; // type:object size:0xA8
|
||||
@@ -29842,7 +29842,7 @@ lbl_80500300 = .data:0x80500300; // type:object size:0x10
|
||||
lbl_80500310 = .data:0x80500310; // type:object size:0x28
|
||||
lbl_80500338 = .data:0x80500338; // type:object size:0x5C
|
||||
lbl_80500394 = .data:0x80500394; // type:object size:0x6C
|
||||
lbl_80500400 = .data:0x80500400; // type:object size:0x10
|
||||
__vt__8UnkClass = .data:0x80500400; // type:object size:0x10
|
||||
lbl_80500410 = .data:0x80500410; // type:object size:0xB0
|
||||
jumptable_805004C0 = .data:0x805004C0; // type:object size:0x58 scope:local
|
||||
jumptable_80500518 = .data:0x80500518; // type:object size:0x80 scope:local
|
||||
@@ -33327,13 +33327,13 @@ lbl_80527F70 = .data:0x80527F70; // type:object size:0x20
|
||||
lbl_80527F90 = .data:0x80527F90; // type:object size:0x20
|
||||
lbl_80527FB0 = .data:0x80527FB0; // type:object size:0x20
|
||||
lbl_80527FD0 = .data:0x80527FD0; // type:object size:0x20
|
||||
lbl_80527FF0 = .data:0x80527FF0; // type:object size:0x20
|
||||
lbl_80528010 = .data:0x80528010; // type:object size:0x20
|
||||
lbl_80528030 = .data:0x80528030; // type:object size:0x20
|
||||
lbl_80528050 = .data:0x80528050; // type:object size:0x20
|
||||
lbl_80528070 = .data:0x80528070; // type:object size:0x20
|
||||
lbl_80528090 = .data:0x80528090; // type:object size:0x20
|
||||
lbl_805280B0 = .data:0x805280B0; // type:object size:0x20
|
||||
__vt__12RupeeCounter = .data:0x80527FF0; // type:object size:0x20
|
||||
__vt__12ArrowCounter = .data:0x80528010; // type:object size:0x20
|
||||
__vt__11BombCounter = .data:0x80528030; // type:object size:0x20
|
||||
__vt__11TearCounter = .data:0x80528050; // type:object size:0x20
|
||||
__vt__20SlingshotSeedCounter = .data:0x80528070; // type:object size:0x20
|
||||
__vt__15KeyPieceCounter = .data:0x80528090; // type:object size:0x20
|
||||
__vt__18ExtraWalletCounter = .data:0x805280B0; // type:object size:0x20
|
||||
lbl_805280D0 = .data:0x805280D0; // type:object size:0xC
|
||||
lbl_805280DC = .data:0x805280DC; // type:object size:0xC
|
||||
lbl_805280E8 = .data:0x805280E8; // type:object size:0x10
|
||||
@@ -36943,8 +36943,8 @@ jumptable_8056BCB8 = .data:0x8056BCB8; // type:object size:0x20 scope:local
|
||||
jumptable_8056BCD8 = .data:0x8056BCD8; // type:object size:0x20 scope:local
|
||||
@1687 = .data:0x8056BCF8; // type:object size:0x21 scope:local data:string
|
||||
lbl_8056BD20 = .data:0x8056BD20; // type:object size:0x30
|
||||
lbl_8056BD50 = .data:0x8056BD50; // type:object size:0x14
|
||||
lbl_8056BD64 = .data:0x8056BD64; // type:object size:0x14
|
||||
__vt__Q34nw4r2ut19TagProcessorBase<w> = .data:0x8056BD50; // type:object size:0x14 scope:weak
|
||||
__vt__Q34nw4r2ut19TagProcessorBase<c> = .data:0x8056BD64; // type:object size:0x14 scope:weak
|
||||
lbl_8056BD78 = .data:0x8056BD78; // type:object size:0x68
|
||||
lbl_8056BDE0 = .data:0x8056BDE0; // type:object size:0x68
|
||||
lbl_8056BE48 = .data:0x8056BE48; // type:object size:0x60
|
||||
@@ -37103,7 +37103,7 @@ lbl_8056E9A0 = .data:0x8056E9A0; // type:object size:0x30
|
||||
lbl_8056E9D0 = .data:0x8056E9D0; // type:object size:0x30
|
||||
lbl_8056EA00 = .data:0x8056EA00; // type:object size:0x30
|
||||
lbl_8056EA30 = .data:0x8056EA30; // type:object size:0x10
|
||||
lbl_8056EA40 = .data:0x8056EA40; // type:object size:0x18
|
||||
__vt__Q23EGG6Thread = .data:0x8056EA40; // type:object size:0x18
|
||||
lbl_8056EA58 = .data:0x8056EA58; // type:object size:0x70
|
||||
__vt__Q23EGG7Display = .data:0x8056EAC8; // type:object size:0x20
|
||||
__vt__Q23EGG10ColorFader = .data:0x8056EAE8; // type:object size:0x24
|
||||
@@ -39635,7 +39635,7 @@ lbl_80574FE0 = .sbss:0x80574FE0; // type:object size:0x1 data:byte
|
||||
lbl_80574FE4 = .sbss:0x80574FE4; // type:object size:0x4 data:4byte
|
||||
lbl_80574FE8 = .sbss:0x80574FE8; // type:object size:0x4 data:4byte
|
||||
lbl_80574FEC = .sbss:0x80574FEC; // type:object size:0xC
|
||||
lbl_80574FF8 = .sbss:0x80574FF8; // type:object size:0x4
|
||||
sInstance__8UnkClass = .sbss:0x80574FF8; // type:object size:0x4
|
||||
sInstance__11FileManager = .sbss:0x80574FFC; // type:object size:0x4 data:4byte
|
||||
lbl_80575000 = .sbss:0x80575000; // type:object size:0x8 data:4byte
|
||||
lbl_80575008 = .sbss:0x80575008; // type:object size:0x8 data:4byte
|
||||
@@ -40808,8 +40808,8 @@ lbl_8057657C = .sbss:0x8057657C; // type:object size:0x4 data:4byte
|
||||
lbl_80576580 = .sbss:0x80576580; // type:object size:0x1 data:byte
|
||||
lbl_80576584 = .sbss:0x80576584; // type:object size:0x4 data:4byte
|
||||
lbl_80576588 = .sbss:0x80576588; // type:object size:0x8 data:4byte
|
||||
lbl_80576590 = .sbss:0x80576590; // type:object size:0x8 data:4byte
|
||||
lbl_80576598 = .sbss:0x80576598; // type:object size:0x8 data:4byte
|
||||
typeInfo__Q34nw4r2ut8IOStream = .sbss:0x80576590; // type:object size:0x4 data:4byte
|
||||
typeInfo__Q34nw4r2ut10FileStream = .sbss:0x80576598; // type:object size:0x4 data:4byte
|
||||
lbl_805765A0 = .sbss:0x805765A0; // type:object size:0x8 data:4byte
|
||||
lbl_805765A8 = .sbss:0x805765A8; // type:object size:0x8 data:4byte
|
||||
lbl_805765B0 = .sbss:0x805765B0; // type:object size:0x8
|
||||
@@ -40890,7 +40890,7 @@ sAllocCallbackArg__Q23EGG4Heap = .sbss:0x8057675C; // type:object size:0x4 data:
|
||||
sFreeCallbackArg__Q23EGG4Heap = .sbss:0x80576760; // type:object size:0x4 data:4byte
|
||||
lbl_80576764 = .sbss:0x80576764; // type:object size:0x4 data:4byte
|
||||
lbl_80576768 = .sbss:0x80576768; // type:object size:0x8 data:4byte
|
||||
lbl_80576770 = .sbss:0x80576770; // type:object size:0x8 data:4byte
|
||||
sOldSwitchThreadCallback__Q23EGG6Thread = .sbss:0x80576770; // type:object size:0x4 data:4byte
|
||||
lbl_80576778 = .sbss:0x80576778; // type:object size:0x8 data:4byte
|
||||
mConfigData__Q23EGG10BaseSystem = .sbss:0x80576780; // type:object size:0x4 data:4byte
|
||||
sTickPeriod__Q23EGG7Display = .sbss:0x80576788; // type:object size:0x4 data:4byte
|
||||
@@ -48240,7 +48240,7 @@ lbl_805A78E0 = .bss:0x805A78E0; // type:object size:0x1F8
|
||||
sEnemyDefeatFlags__18EnemyDefeatManager = .bss:0x805A7AD8; // type:object size:0x2000
|
||||
lbl_805A9AD8 = .bss:0x805A9AD8; // type:object size:0x100
|
||||
lbl_805A9BD8 = .bss:0x805A9BD8; // type:object size:0x80
|
||||
lbl_805A9C58 = .bss:0x805A9C58; // type:object size:0x10
|
||||
sDungeonFlags__18DungeonflagManager = .bss:0x805A9C58; // type:object size:0x10
|
||||
sSkipFlags__15SkipflagManager = .bss:0x805A9C68; // type:object size:0x20
|
||||
lbl_805A9C88 = .bss:0x805A9C88; // type:object size:0x10 data:4byte
|
||||
lbl_805A9C98 = .bss:0x805A9C98; // type:object size:0x208
|
||||
@@ -49347,7 +49347,7 @@ lbl_80673AC8 = .bss:0x80673AC8; // type:object size:0x10
|
||||
lbl_80673AD8 = .bss:0x80673AD8; // type:object size:0x10
|
||||
lbl_80673AE8 = .bss:0x80673AE8; // type:object size:0x10
|
||||
lbl_80673AF8 = .bss:0x80673AF8; // type:object size:0x18
|
||||
lbl_80673B10 = .bss:0x80673B10; // type:object size:0x10
|
||||
sThreadList__Q23EGG6Thread = .bss:0x80673B10; // type:object size:0xC
|
||||
clear_z_tobj__29@unnamed@eggAsyncDisplay_cpp@ = .bss:0x80673B20; // type:object size:0x20 scope:local
|
||||
lbl_80673B40 = .bss:0x80673B40; // type:object size:0x10C0 data:4byte
|
||||
ident__Q23EGG9Matrix34f = .bss:0x80674C00; // type:object size:0x30
|
||||
|
||||
+26
-1
@@ -201,6 +201,7 @@ cflags_egg = [
|
||||
cflags_nw4r = [
|
||||
*cflags_base,
|
||||
"-ipa file",
|
||||
"-fp_contract off",
|
||||
]
|
||||
|
||||
# REL flags
|
||||
@@ -275,6 +276,7 @@ config.libs = [
|
||||
Object(Matching, "toBeSorted/sceneflag_manager.cpp"),
|
||||
Object(NonMatching, "toBeSorted/flag_space.cpp"),
|
||||
Object(NonMatching, "toBeSorted/misc_flag_managers.cpp"),
|
||||
Object(Matching, "toBeSorted/dungeonflag_manager.cpp"),
|
||||
Object(Matching, "toBeSorted/skipflag_manager.cpp"),
|
||||
Object(Matching, "c/c_list.cpp"),
|
||||
Object(Matching, "c/c_tree.cpp"),
|
||||
@@ -285,6 +287,14 @@ config.libs = [
|
||||
Object(NonMatching, "d/a/d_a_base.cpp"),
|
||||
Object(NonMatching, "d/a/obj/d_a_obj_base.cpp"),
|
||||
Object(Matching, "toBeSorted/save_file.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/rupee_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/arrow_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/bomb_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/tear_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/slingshot_seed_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/key_piece_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/extra_wallet_counter.cpp"),
|
||||
Object(NonMatching, "toBeSorted/file_manager.cpp"),
|
||||
Object(NonMatching, "toBeSorted/save_manager.cpp"),
|
||||
Object(NonMatching, "f/f_base.cpp"),
|
||||
@@ -318,6 +328,21 @@ config.libs = [
|
||||
"ut",
|
||||
[
|
||||
Object(Matching, "nw4r/ut/ut_list.cpp"),
|
||||
Object(Matching, "nw4r/ut/ut_LinkList.cpp"),
|
||||
Object(Matching, "nw4r/ut/ut_binaryFileFormat.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_CharStrmReader.cpp"),
|
||||
Object(Matching, "nw4r/ut/ut_IOStream.cpp"),
|
||||
Object(Matching, "nw4r/ut/ut_TagProcessorBase.cpp"),
|
||||
Object(Matching, "nw4r/ut/ut_FileStream.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_DvdFileStream.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_DvdLockedFileStream.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_NandFileStream.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_LockedCache.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_Font.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_ResFontBase.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_ResFont.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_CharWriter.cpp"),
|
||||
Object(NonMatching, "nw4r/ut/ut_TextWriterBase.cpp"),
|
||||
],
|
||||
),
|
||||
# EGG
|
||||
@@ -334,7 +359,7 @@ config.libs = [
|
||||
Object(NonMatching, "egg/core/eggFrmHeap.cpp"),
|
||||
Object(NonMatching, "egg/core/eggAssertHeap.cpp"),
|
||||
Object(NonMatching, "egg/core/eggDisposer.cpp"),
|
||||
Object(NonMatching, "egg/core/eggThread.cpp"),
|
||||
Object(Matching, "egg/core/eggThread.cpp"),
|
||||
Object(NonMatching, "egg/core/eggUnk.cpp"),
|
||||
Object(NonMatching, "egg/core/eggSystem.cpp"),
|
||||
Object(Matching, "egg/core/eggDisplay.cpp"),
|
||||
|
||||
@@ -18,10 +18,10 @@ class Allocator;
|
||||
|
||||
struct HeapAllocArg {
|
||||
void *userArg; // 00
|
||||
u32 size; // 04
|
||||
int align; // 08
|
||||
Heap *heap; // 0C heap to allocate in
|
||||
int another; // 10
|
||||
u32 size; // 04
|
||||
int align; // 08
|
||||
Heap *heap; // 0C heap to allocate in
|
||||
int another; // 10
|
||||
|
||||
inline HeapAllocArg() : userArg(0), size(0), align(0), heap(nullptr) {}
|
||||
};
|
||||
@@ -158,9 +158,6 @@ public:
|
||||
/* 80495a70 */ void *operator new(size_t size, EGG::Heap *heap, u32 align);
|
||||
/* 80495a80 */ void *operator new(size_t size, EGG::Allocator *alloc);
|
||||
/* 80495a90 */ void *operator new[](size_t size, u32 align);
|
||||
/* 80495aa0 */ void *operator new[](size_t size, EGG::Heap *heap, int align);
|
||||
};
|
||||
|
||||
} // namespace EGG
|
||||
/* 80495aa0 */ void *operator new[](size_t size, EGG::Heap *heap, u32 align);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace EGG {
|
||||
class Thread {
|
||||
public: // vtable: 0x00 | 8056ea40
|
||||
/* 0x08 | 80496a60 */ virtual ~Thread();
|
||||
/* 0x0C | 80496dd0 */ virtual void *run();
|
||||
/* 0x10 | 800bd600 */ virtual void onEnter();
|
||||
/* 0x14 | 800bd5f0 */ virtual void onExit();
|
||||
/* 0x0C | 80496dd0 */ virtual void *run() { return nullptr; }
|
||||
/* 0x10 | 800bd600 */ virtual void onEnter() {}
|
||||
/* 0x14 | 800bd5f0 */ virtual void onExit() {}
|
||||
|
||||
public:
|
||||
/* 0x04 */ Heap *mContainingHeap;
|
||||
@@ -24,6 +24,8 @@ public:
|
||||
/* 0x34 */ void *mStackMemory;
|
||||
/* 0x38 */ u32 mStackSize;
|
||||
/* 0x3C */ Heap *mAllocatableHeap;
|
||||
// TODO from the usage in eggThread this really looks like
|
||||
// it's stashed thread that's restored when switching threads
|
||||
/* 0x40 */ Heap *mCurrentHeap;
|
||||
/* 0x44 */ nw4r::ut::Node mLink;
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ namespace mHeap {
|
||||
u32 unk);
|
||||
/* 802f1450 */ int getGameHeapNum();
|
||||
/* 802f1460 */ EGG::ExpHeap *createGameHeap(s32 heapNum, size_t size, EGG::Heap *parentHeap);
|
||||
/* 802f1510 */ EGG::Heap *createGameHeap1(s32 size, EGG::Heap *parentHeap);
|
||||
/* 802f1510 */ EGG::ExpHeap *createGameHeap1(s32 size, EGG::Heap *parentHeap);
|
||||
/* 802f1560 */ EGG::ExpHeap *createArchiveHeap(size_t size, EGG::Heap *parentHeap);
|
||||
/* 802f1590 */ EGG::ExpHeap *createCommandHeap(size_t size, EGG::Heap *parentHeap);
|
||||
/* 802f15c0 */ EGG::ExpHeap *createDylinkHeap(size_t size, EGG::Heap *parentHeap);
|
||||
|
||||
+2
-1
@@ -8,7 +8,8 @@
|
||||
class mVec3_c : public EGG::Vector3f {
|
||||
public:
|
||||
/// @brief Constructs an empty vector.
|
||||
mVec3_c() {}
|
||||
/* 80009ee0 */ mVec3_c() {}
|
||||
/* 80007460 */ ~mVec3_c() {}
|
||||
|
||||
/// @brief Constructs a vector from a float array.
|
||||
mVec3_c(const f32 *p) {
|
||||
|
||||
@@ -16,14 +16,20 @@ public:
|
||||
public:
|
||||
FilePosition() : mFileSize(0), mFileOffset(0) {}
|
||||
|
||||
u32 GetFileSize() const { return mFileSize; }
|
||||
void SetFileSize(u32 fileSize) { mFileSize = fileSize; }
|
||||
u32 GetFileSize() const {
|
||||
return mFileSize;
|
||||
}
|
||||
void SetFileSize(unsigned long fileSize) {
|
||||
mFileSize = fileSize;
|
||||
}
|
||||
|
||||
u32 Tell() const { return mFileOffset; }
|
||||
u32 Tell() const {
|
||||
return mFileOffset;
|
||||
}
|
||||
|
||||
u32 Skip(s32 offset);
|
||||
u32 Append(s32 offset);
|
||||
void Seek(s32 offset, u32 origin);
|
||||
u32 Skip(long offset);
|
||||
u32 Append(long offset);
|
||||
void Seek(long offset, unsigned long origin);
|
||||
|
||||
private:
|
||||
u32 mFileSize; // at 0x0
|
||||
@@ -35,9 +41,9 @@ public:
|
||||
virtual ~FileStream() {} // at 0xC
|
||||
|
||||
virtual u32 GetSize() const = 0; // at 0x40
|
||||
virtual void Seek(s32 offset, u32 origin); // at 0x44
|
||||
virtual void Seek(long offset, unsigned long origin); // at 0x44
|
||||
virtual void Cancel(); // at 0x48
|
||||
virtual bool CancelAsync(AsyncCallback callback, void* arg); // at 0x4C
|
||||
virtual bool CancelAsync(AsyncCallback callback, void *arg); // at 0x4C
|
||||
virtual bool CanSeek() const = 0; // at 0x50
|
||||
virtual bool CanCancel() const = 0; // at 0x54
|
||||
virtual u32 Tell() const = 0; // at 0x58
|
||||
|
||||
@@ -10,33 +10,41 @@ class IOStream {
|
||||
public:
|
||||
NW4R_UT_RTTI_DECL(IOStream);
|
||||
|
||||
typedef void (*AsyncCallback)(s32 result, IOStream* stream, void* arg);
|
||||
typedef void (*AsyncCallback)(long result, IOStream *stream, void *arg);
|
||||
|
||||
IOStream() : mIsOpen(false), mCallback(NULL), mCallbackArg(NULL) {}
|
||||
virtual ~IOStream() {} // at 0xC
|
||||
|
||||
virtual void Close() = 0; // at 0x10
|
||||
virtual s32 Read(void* dst, u32 size) = 0; // at 0x14
|
||||
virtual bool ReadAsync(void* dst, u32 size, AsyncCallback callback,
|
||||
void* arg); // at 0x18
|
||||
virtual void Write(const void* src, u32 size); // at 0x1C
|
||||
virtual bool WriteAsync(const void* src, u32 size, AsyncCallback callback,
|
||||
void* arg); // at 0x20
|
||||
virtual bool IsBusy() const; // at 0x24
|
||||
virtual bool CanAsync() const = 0; // at 0x28
|
||||
virtual bool CanRead() const = 0; // at 0x2C
|
||||
virtual bool CanWrite() const = 0; // at 0x30
|
||||
virtual u32 GetOffsetAlign() const { return 1; } // at 0x34
|
||||
virtual u32 GetSizeAlign() const { return 1; } // at 0x38
|
||||
virtual u32 GetBufferAlign() const { return 1; } // at 0x3C
|
||||
virtual s32 Read(void *dst, u32 size) = 0; // at 0x14
|
||||
virtual bool ReadAsync(void *dst, unsigned long size, AsyncCallback callback,
|
||||
void *arg); // at 0x18
|
||||
virtual bool Write(const void *src, unsigned long size); // at 0x1C
|
||||
virtual bool WriteAsync(const void *src, unsigned long size, AsyncCallback callback,
|
||||
void *arg); // at 0x20
|
||||
virtual bool IsBusy() const; // at 0x24
|
||||
virtual bool CanAsync() const = 0; // at 0x28
|
||||
virtual bool CanRead() const = 0; // at 0x2C
|
||||
virtual bool CanWrite() const = 0; // at 0x30
|
||||
virtual u32 GetOffsetAlign() const {
|
||||
return 1;
|
||||
} // at 0x34
|
||||
virtual u32 GetSizeAlign() const {
|
||||
return 1;
|
||||
} // at 0x38
|
||||
virtual u32 GetBufferAlign() const {
|
||||
return 1;
|
||||
} // at 0x3C
|
||||
|
||||
bool IsAvailable() const { return mIsOpen; }
|
||||
bool IsAvailable() const {
|
||||
return mIsOpen;
|
||||
}
|
||||
|
||||
protected:
|
||||
bool mIsOpen; // at 0x4
|
||||
s32 mResult; // at 0x8
|
||||
AsyncCallback mCallback; // at 0xC
|
||||
void* mCallbackArg; // at 0x10
|
||||
void *mCallbackArg; // at 0x10
|
||||
};
|
||||
|
||||
} // namespace ut
|
||||
|
||||
@@ -10,9 +10,10 @@ enum PrintFlags {
|
||||
PRINTFLAGS_CHARSPACE = (1 << 0),
|
||||
};
|
||||
|
||||
template <typename T> struct PrintContext {
|
||||
TextWriterBase<T>* writer; // at 0x0
|
||||
const T* str; // at 0x4
|
||||
template <typename T>
|
||||
struct PrintContext {
|
||||
TextWriterBase<T> *writer; // at 0x0
|
||||
const T *str; // at 0x4
|
||||
f32 x; // at 0x8
|
||||
f32 y; // at 0xC
|
||||
u32 flags; // at 0x10
|
||||
@@ -26,17 +27,18 @@ enum Operation {
|
||||
OPERATION_END_DRAW
|
||||
};
|
||||
|
||||
template <typename T> class TagProcessorBase {
|
||||
template <typename T>
|
||||
class TagProcessorBase {
|
||||
public:
|
||||
TagProcessorBase();
|
||||
virtual ~TagProcessorBase(); // at 0x8
|
||||
|
||||
virtual Operation Process(u16 ch, PrintContext<T>* ctx); // at 0xC
|
||||
virtual Operation CalcRect(Rect* rect, u16 ch,
|
||||
PrintContext<T>* ctx); // at 0x10
|
||||
virtual Operation Process(u16 ch, PrintContext<T> *ctx); // at 0xC
|
||||
virtual Operation CalcRect(Rect *rect, u16 ch,
|
||||
PrintContext<T> *ctx); // at 0x10
|
||||
|
||||
void ProcessTab(PrintContext<T>* ctx);
|
||||
void ProcessLinefeed(PrintContext<T>* ctx);
|
||||
void ProcessLinefeed(PrintContext<T> *ctx);
|
||||
void ProcessTab(PrintContext<T> *ctx);
|
||||
};
|
||||
|
||||
} // namespace ut
|
||||
|
||||
@@ -19,8 +19,7 @@ struct BinaryFileHeader {
|
||||
u16 numBlocks; // at 0xE
|
||||
};
|
||||
|
||||
bool IsValidBinaryFile(const BinaryFileHeader* header, u32 magic, u16 version,
|
||||
u16 numBlocks);
|
||||
bool IsValidBinaryFile(const BinaryFileHeader *header, unsigned long magic, u16 version, u16 numBlocks);
|
||||
|
||||
} // namespace ut
|
||||
} // namespace nw4r
|
||||
|
||||
@@ -47,8 +47,8 @@ typedef struct OSThread {
|
||||
OSMutexQueue mutexQueue; // at 0x2F4
|
||||
struct OSThread *nextActive; // at 0x2FC
|
||||
struct OSThread *prevActive; // at 0x300
|
||||
u32 *stackBegin; // at 0x304
|
||||
u32 *stackEnd; // at 0x308
|
||||
void *stackBegin; // at 0x304
|
||||
void *stackEnd; // at 0x308
|
||||
s32 error; // at 0x30C
|
||||
void *specific[2]; // at 0x310
|
||||
} OSThread;
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef COUNTER_H
|
||||
#define COUNTER_H
|
||||
|
||||
#include <common.h>
|
||||
|
||||
class Counter {
|
||||
public:
|
||||
Counter(u16 id): counterId(id) {}
|
||||
virtual ~Counter() {};
|
||||
virtual s32 checkedAdd(s32 num);
|
||||
virtual u16 getCommittedValue();
|
||||
virtual u16 getMax() = 0;
|
||||
virtual u16 getUncommittedValue();
|
||||
virtual void setValue(u16 num);
|
||||
|
||||
u16 counterId;
|
||||
};
|
||||
|
||||
#endif COUNTER_H
|
||||
@@ -4,18 +4,32 @@
|
||||
#include "toBeSorted/save_file.h"
|
||||
#include <common.h>
|
||||
|
||||
|
||||
enum ITEM_ID {};
|
||||
enum SAVE_ITEM_ID {};
|
||||
|
||||
class SkipData {
|
||||
public:
|
||||
/** 0x00 */ u16 data[16];
|
||||
/** 0x20 */ u32 crc;
|
||||
};
|
||||
|
||||
class SavedSaveFiles {
|
||||
public:
|
||||
/* 0x0000 */ char regionCode[4];
|
||||
/* 0x0004 */ u8 unk1[0x1C - 0x04];
|
||||
/* 0x001C */ u32 m_0x1C;
|
||||
/* 0x0020 */ SaveFile saveFiles[3];
|
||||
/* 0xfb60 */ SkipData skipData[3];
|
||||
/* 0xfbcc */ u8 unk2[0xfbe0 - 0xfbcc];
|
||||
};
|
||||
|
||||
class FileManager {
|
||||
public:
|
||||
/* 0x0000 */ void *mpSavedSaveFiles;
|
||||
/* 0x0004 */ void *mpSkipData; // skip data Arrary (3 entries )
|
||||
/* 0x0000 */ SavedSaveFiles *mpSavedSaveFiles;
|
||||
/* 0x0004 */ SkipData *mpSkipData; // skip data Arrary (3 entries )
|
||||
/* 0x0008 */ SaveFile mFileA;
|
||||
/* 0x53C8 */ SaveFile mFileB;
|
||||
/* 0xA788 */ u16 mSkipFlags[16];
|
||||
/* 0xA7A8 */ u32 mSkipFlagsCRC;
|
||||
/* 0xA788 */ SkipData mSkipData;
|
||||
/* 0xA7AC */ wchar_t mHeroNames[3][9]; // each name is 9 wchars
|
||||
/* 0xA7E2 */ wchar_t mHeroName[9]; // The current Hero Name
|
||||
/* 0xA7F4 */ char mCurrentArea[32];
|
||||
@@ -46,7 +60,7 @@ public:
|
||||
/* 80009DB0 */ FileManager(); //
|
||||
/* 80009EE0 */ // mVec3();
|
||||
|
||||
/* 80009EF0 */ static FileManager create(EGG::Heap *);
|
||||
/* 80009EF0 */ static FileManager *create(EGG::Heap *);
|
||||
/* 80009F30 */ bool loadSaveData(void *out, char *name, bool isSkipData);
|
||||
/* 80009F70 */ void saveSaveData(void *unk, bool isSkipData);
|
||||
/* 8000A000 */ void refreshSaveFileData();
|
||||
@@ -57,7 +71,7 @@ public:
|
||||
/* 8000A2E0 */ void fn_8000A2E0(); // idk something blank save files
|
||||
|
||||
/* 8000A330 */ u16 *getStoryFlagsMut();
|
||||
/* 8000A360 */ u16 *getStoryFlagsConst();
|
||||
/* 8000A360 */ const u16 *getStoryFlagsConst() const;
|
||||
/* 8000A3B0 */ u16 *getItemFlagsMut();
|
||||
/* 8000A3E0 */ u16 *getItemFlagsConst();
|
||||
/* 8000A430 */ u16 *getDungeonFlagsMut();
|
||||
@@ -219,7 +233,7 @@ public:
|
||||
/* 8000D040 */ u8 getSkykeepPuzzleTile(u32 spot);
|
||||
|
||||
/* 8000D0B0 */ void checkFileStatus();
|
||||
/* 8000D1D0 */ void checkSkipDataCRCs();
|
||||
/* 8000D1D0 */ bool checkSkipDataCRCs();
|
||||
/* 8000D270 */ void saveOrClearSelectedFileToFileA();
|
||||
/* 8000D280 */ void saveOrClearToFileA(int fileNum);
|
||||
/* 8000D9C0 */ void copyFileBToCurrentFile();
|
||||
@@ -230,7 +244,7 @@ public:
|
||||
/* 8000EF90 */ void saveFileAToFile(int fileNum);
|
||||
/* 8000F730 */ void copyCurrentToFileB();
|
||||
/* 8000FDF0 */ void copySelectedFileSkipData();
|
||||
/* 8000FE00 */ void copySkipData(int fileNum);
|
||||
/* 8000FE00 */ void copySkipData(u8 fileNum);
|
||||
/* 8000FEB0 */ void setInfo_FileB();
|
||||
/* 8000FF60 */ void clearFileA();
|
||||
|
||||
@@ -243,18 +257,21 @@ public:
|
||||
/* 80010440 */ void clearTempFileData();
|
||||
/* 800104A0 */ void saveAfterCredits();
|
||||
/* 80011210 */ SaveFile *getCurrentFile();
|
||||
inline const SaveFile *getCurrentFile() const {
|
||||
return isFileInactive() ? &mFileB : &mFileA;
|
||||
}
|
||||
/* 80011250 */ u16 *getSkipFlags2();
|
||||
/* 80011260 */ SaveFile *getFileA();
|
||||
/* 80011270 */ SaveFile *getFileB();
|
||||
/* 80011280 */ void calcFileCRC(const SaveFile *file, u32 length);
|
||||
/* 80011280 */ u32 calcFileCRC(const void *data, u32 length);
|
||||
/* 80011290 */ void updateEmptyFiles();
|
||||
/* 800112D0 */ void updateEmptyFileFlags();
|
||||
/* 80011370 */ bool isFileEmpty(int fileNum);
|
||||
/* 80011390 */ bool isFileUnk3(int fileNum);
|
||||
/* 80011390 */ bool isFileDirty(int fileNum);
|
||||
/* 800113B0 */ u8 get_0xA84C();
|
||||
/* 800113C0 */ bool checkRegionCode();
|
||||
/* 80011440 */ bool checkFileCRC(int fileNum);
|
||||
/* 80011490 */ bool isFileInactive();
|
||||
/* 80011440 */ bool checkFileCRC(u8 fileNum);
|
||||
/* 80011490 */ bool isFileInactive() const;
|
||||
/* 80011500 */ void setPlayerInfoFileA();
|
||||
/* 800115E0 */ void setT3Info(mVec3_c *pos, mAng3_c *rot);
|
||||
/* 800116C0 */ static void getRegionVersion(char *out);
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
#ifndef SAVE_FILE_H
|
||||
#define SAVE_FILE_H
|
||||
|
||||
#include "UnknownTypeBelongings.h"
|
||||
#include "m/m_vec.h"
|
||||
#include <common.h>
|
||||
|
||||
// Ghidra: SaveFile
|
||||
// Size: 0x53c0
|
||||
// non-offical name
|
||||
class SaveFile {
|
||||
struct SaveFile {
|
||||
public:
|
||||
/* 0x 0000 */ char field_0x0000[0x8 - 0x0];
|
||||
/* 0x 0000 */ s64 playTime;
|
||||
/* 0x 0008 */ s64 savedTime;
|
||||
/* 0x 0010 */ Vec3f pos_t1;
|
||||
/* 0x 001c */ Vec3f pos_t2;
|
||||
/* 0x 0028 */ Vec3f pos_t3;
|
||||
/* 0x 0034 */ Vec3f beacon_pos[32][5];
|
||||
/* 0x 0010 */ mVec3_c pos_t1;
|
||||
/* 0x 001c */ mVec3_c pos_t2;
|
||||
/* 0x 0028 */ mVec3_c pos_t3;
|
||||
/* 0x 0034 */ mVec3_c beacon_pos[32][5];
|
||||
/* 0x 07b4 */ s32 beedleShopPathSegment;
|
||||
/* 0x 07b8 */ f32 beedlShopPathSegFrac;
|
||||
/* 0x 07bc */ char field_0x07BC[0x7c0 - 0x7bc];
|
||||
/* 0x 07bc */ u32 field_0x07BC;
|
||||
/* 0x 07c0 */ s32 pouch_items[8];
|
||||
/* 0x 07e0 */ s32 item_check_items[60];
|
||||
/* 0x 08d0 */ int file_area_index;
|
||||
/* 0x 08d4 */ s16 player_name[8];
|
||||
/* 0x 08d4 */ wchar_t player_name[8];
|
||||
/* 0x 08e4 */ u16 story_flags[128];
|
||||
/* 0x 09e4 */ u16 item_flags[64];
|
||||
/* 0x 0a64 */ u16 dungeon_flags[8][22];
|
||||
@@ -34,15 +34,15 @@ public:
|
||||
/* 0x 302c */ u16 hitByEnemyCounts[100];
|
||||
/* 0x 30f4 */ u16 temp_flags[4];
|
||||
/* 0x 30fc */ u16 zone_flags[252];
|
||||
/* 0x 32f4 */ u16 unk_flags[4096]; // size guessed? (saw memset)
|
||||
/* 0x 52f4 */ s16 air_potion_timer;
|
||||
/* 0x 52f6 */ s16 air_potion_plus_timer;
|
||||
/* 0x 52f8 */ s16 stamina_potion_timer;
|
||||
/* 0x 52fa */ s16 stamina_potion_plus_timer;
|
||||
/* 0x 52fc */ s16 gaurdian_potion_timer;
|
||||
/* 0x 52fe */ s16 gaurdian_potion_plus_timer;
|
||||
/* 0x 5300 */ s16 field_0x5300;
|
||||
/* 0x 5302 */ s16 health_capacity;
|
||||
/* 0x 32f4 */ u16 enemy_flags[4096];
|
||||
/* 0x 52f4 */ u16 air_potion_timer;
|
||||
/* 0x 52f6 */ u16 air_potion_plus_timer;
|
||||
/* 0x 52f8 */ u16 stamina_potion_timer;
|
||||
/* 0x 52fa */ u16 stamina_potion_plus_timer;
|
||||
/* 0x 52fc */ u16 gaurdian_potion_timer;
|
||||
/* 0x 52fe */ u16 gaurdian_potion_plus_timer;
|
||||
/* 0x 5300 */ u16 field_0x5300;
|
||||
/* 0x 5302 */ u16 health_capacity;
|
||||
/* 0x 5304 */ u16 unused_heart_related;
|
||||
/* 0x 5306 */ u16 current_health;
|
||||
/* 0x 5308 */ u16 room_id_t1;
|
||||
@@ -86,22 +86,22 @@ public:
|
||||
// ----------------------------------------------------------
|
||||
public:
|
||||
/* 800099b0 */ u16 *getStoryFlags0();
|
||||
/* 800099c0 */ u16 *getStoryFlags1();
|
||||
/* 800099c0 */ const u16 *getStoryFlags1() const;
|
||||
/* 800099d0 */ u16 *getItemFlags0();
|
||||
/* 800099e0 */ u16 *getItemFlags1();
|
||||
/* 800099e0 */ const u16 *getItemFlags1() const;
|
||||
/* 800099F0 */ u16 *getDungeonFlags0();
|
||||
/* 80009A00 */ u16 *getDungeonFlags1();
|
||||
/* 80009A00 */ const u16 *getDungeonFlags1() const;
|
||||
/* 80009A10 */ u16 *getSceneFlags0();
|
||||
/* 80009A20 */ u16 *getSceneFlags1();
|
||||
/* 80009A20 */ const u16 *getSceneFlags1() const;
|
||||
/* 80009A30 */ u16 *getTboxFlags0();
|
||||
/* 80009A40 */ u16 *getTboxFlags1();
|
||||
/* 80009A40 */ const u16 *getTboxFlags1() const;
|
||||
/* 80009A50 */ u16 *getTempFlags0();
|
||||
/* 80009A60 */ u16 *getTempFlags1();
|
||||
/* 80009A60 */ const u16 *getTempFlags1() const;
|
||||
/* 80009A70 */ u16 *getZoneFlags0();
|
||||
/* 80009A80 */ u16 *getZoneFlags1();
|
||||
/* 80009A90 */ u16 *getUnkFlags0();
|
||||
/* 80009AA0 */ u16 *getUnkFlags1();
|
||||
/* 80009AB0 */ s16 *getPlayerName(); // UTF16-BE
|
||||
/* 80009A80 */ const u16 *getZoneFlags1() const;
|
||||
/* 80009A90 */ u16 *getEnemyFlags0();
|
||||
/* 80009AA0 */ const u16 *getEnemyFlags1() const;
|
||||
/* 80009AB0 */ wchar_t *getPlayerName(); // UTF16-BE
|
||||
/* 80009AC0 */ void setAreaT1(char *name);
|
||||
/* 80009BE0 */ char *getAreaT1();
|
||||
/* 80009BF0 */ void setAreaT2(char *name);
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
#include <egg/core/eggThread.h>
|
||||
|
||||
namespace EGG {
|
||||
|
||||
/* 80673b10 */ nw4r::ut::List Thread::sThreadList;
|
||||
/* 80576770 */ void (*Thread::sOldSwitchThreadCallback)(OSThread *, OSThread *);
|
||||
|
||||
|
||||
/* 80496910 */ Thread::Thread(u32 stackSize, int msgCount, int priority, Heap *heap) {
|
||||
if (heap == nullptr) {
|
||||
heap = Heap::sCurrentHeap;
|
||||
}
|
||||
|
||||
mContainingHeap = heap;
|
||||
mStackSize = ROUND_DOWN(stackSize, 0x20);
|
||||
mStackMemory = Heap::alloc(ROUND_DOWN(stackSize, 0x20), 0x20, heap);
|
||||
mOSThread = Heap::alloc<OSThread>(mContainingHeap, 0x20);
|
||||
OSCreateThread(mOSThread, start, this, (char *)mStackMemory + mStackSize, mStackSize, priority, 1);
|
||||
mAllocatableHeap = nullptr;
|
||||
mCurrentHeap = nullptr;
|
||||
setCommonMesgQueue(msgCount, mContainingHeap);
|
||||
}
|
||||
|
||||
/* 804969e0 */ Thread::Thread(OSThread *osThread, int msgCount) {
|
||||
mContainingHeap = nullptr;
|
||||
mOSThread = osThread;
|
||||
mStackSize = (u8 *)osThread->stackBegin - (u8 *)osThread->stackEnd;
|
||||
mStackMemory = osThread->stackEnd;
|
||||
mAllocatableHeap = nullptr;
|
||||
mCurrentHeap = nullptr;
|
||||
setCommonMesgQueue(msgCount, Heap::sCurrentHeap);
|
||||
}
|
||||
|
||||
/* 80496a60 */ Thread::~Thread() {
|
||||
nw4r::ut::List_Remove(&sThreadList, this);
|
||||
if (mContainingHeap != nullptr) {
|
||||
if (!OSIsThreadTerminated(mOSThread)) {
|
||||
OSDetachThread(mOSThread);
|
||||
OSCancelThread(mOSThread);
|
||||
}
|
||||
Heap::free(mStackMemory, mContainingHeap);
|
||||
Heap::free(mOSThread, mContainingHeap);
|
||||
}
|
||||
Heap::free(mMesgBuffer, nullptr);
|
||||
}
|
||||
|
||||
/* 80496b20 */ Thread *Thread::findThread(OSThread *thread) {
|
||||
Thread *ptr = nullptr;
|
||||
while ((ptr = (Thread *)nw4r::ut::List_GetNext(&sThreadList, ptr)) != nullptr) {
|
||||
if (ptr->mOSThread == thread) {
|
||||
return ptr;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* 80496b90 */ void Thread::initialize() {
|
||||
// TODO offsetof
|
||||
nw4r::ut::List_Init(&sThreadList, 0x44);
|
||||
sOldSwitchThreadCallback = OSSetSwitchThreadCallback(switchThreadCallback);
|
||||
}
|
||||
|
||||
/* 80496bd0 */ void Thread::setThreadCurrentHeap(Heap *heap) {
|
||||
OSDisableScheduler();
|
||||
OSThread *myThread = mOSThread;
|
||||
OSThread *currentThread = OSGetCurrentThread();
|
||||
if (currentThread != myThread) {
|
||||
mCurrentHeap = heap;
|
||||
} else {
|
||||
if (heap != nullptr) {
|
||||
if (mCurrentHeap == nullptr) {
|
||||
mCurrentHeap = Heap::sCurrentHeap;
|
||||
}
|
||||
heap->_becomeCurrentHeapWithoutLock();
|
||||
} else {
|
||||
if (mCurrentHeap != nullptr) {
|
||||
mCurrentHeap->_becomeCurrentHeapWithoutLock();
|
||||
mCurrentHeap = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OSEnableScheduler();
|
||||
}
|
||||
|
||||
/* 80496c70 */ void Thread::switchThreadCallback(OSThread *from, OSThread *to) {
|
||||
Thread *fromThread = from != nullptr ? findThread(from) : nullptr;
|
||||
Thread *toThread = to != nullptr ? findThread(to) : nullptr;
|
||||
|
||||
if (fromThread != nullptr) {
|
||||
fromThread->onExit();
|
||||
if (fromThread->mCurrentHeap != nullptr) {
|
||||
Heap *curr = Heap::sCurrentHeap;
|
||||
fromThread->mCurrentHeap->_becomeCurrentHeapWithoutLock();
|
||||
fromThread->mCurrentHeap = curr;
|
||||
}
|
||||
}
|
||||
|
||||
if (toThread != nullptr) {
|
||||
if (toThread->mCurrentHeap != nullptr) {
|
||||
Heap *curr = Heap::sCurrentHeap;
|
||||
toThread->mCurrentHeap->_becomeCurrentHeapWithoutLock();
|
||||
toThread->mCurrentHeap = curr;
|
||||
}
|
||||
toThread->onEnter();
|
||||
}
|
||||
|
||||
if (sOldSwitchThreadCallback != nullptr) {
|
||||
(sOldSwitchThreadCallback)(from, to);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80496d60 */ void Thread::setCommonMesgQueue(int mesgCount, Heap *heap) {
|
||||
mMesgCount = mesgCount;
|
||||
mMesgBuffer = Heap::alloc<OSMessage>(mesgCount, heap);
|
||||
OSInitMessageQueue(&mMesgQueue, mMesgBuffer, mMesgCount);
|
||||
nw4r::ut::List_Append(&sThreadList, this);
|
||||
}
|
||||
|
||||
/* 80496dc0 */ void *Thread::start(void *arg) {
|
||||
Thread *thread = static_cast<Thread*>(arg);
|
||||
return thread->run();
|
||||
}
|
||||
|
||||
} // namespace EGG
|
||||
@@ -0,0 +1,58 @@
|
||||
#include <nw4r/ut.h>
|
||||
|
||||
namespace nw4r {
|
||||
namespace ut {
|
||||
|
||||
NW4R_UT_RTTI_DEF_DERIVED(FileStream, IOStream);
|
||||
|
||||
void FileStream::Cancel() {}
|
||||
|
||||
bool FileStream::CancelAsync(AsyncCallback callback, void *arg) {
|
||||
#pragma unused(callback)
|
||||
#pragma unused(arg)
|
||||
return true;
|
||||
}
|
||||
|
||||
u32 FileStream::FilePosition::Skip(long offset) {
|
||||
if (offset != 0) {
|
||||
s64 newOffset = mFileOffset + offset;
|
||||
mFileOffset = Clamp<s64>(newOffset, 0, mFileSize);
|
||||
}
|
||||
|
||||
return mFileOffset;
|
||||
}
|
||||
|
||||
u32 FileStream::FilePosition::Append(long offset) {
|
||||
s64 newOffset = mFileOffset + offset;
|
||||
|
||||
if (newOffset < 0) {
|
||||
mFileOffset = 0;
|
||||
} else {
|
||||
mFileOffset = newOffset;
|
||||
mFileSize = Max(mFileOffset, mFileSize);
|
||||
}
|
||||
|
||||
return mFileOffset;
|
||||
}
|
||||
|
||||
void FileStream::FilePosition::Seek(long offset, unsigned long origin) {
|
||||
switch (origin) {
|
||||
case SEEK_BEG:
|
||||
mFileOffset = 0;
|
||||
break;
|
||||
case SEEK_END:
|
||||
mFileOffset = mFileSize;
|
||||
break;
|
||||
case SEEK_CUR:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Skip(offset);
|
||||
}
|
||||
|
||||
// TODO: This should not be necessary. Because of nw4r::snd? still the case for ss
|
||||
DECOMP_FORCEACTIVE(ut_FileStream_cpp, FileStream::GetRuntimeTypeInfo);
|
||||
|
||||
} // namespace ut
|
||||
} // namespace nw4r
|
||||
@@ -0,0 +1,25 @@
|
||||
#include <nw4r/ut.h>
|
||||
|
||||
namespace nw4r {
|
||||
namespace ut {
|
||||
|
||||
NW4R_UT_RTTI_DEF_BASE(IOStream);
|
||||
|
||||
bool IOStream::ReadAsync(void *dst, unsigned long size, AsyncCallback callback, void *arg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IOStream::Write(const void *src, unsigned long size) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IOStream::WriteAsync(const void *src, unsigned long size, AsyncCallback callback, void *arg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IOStream::IsBusy() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace ut
|
||||
} // namespace nw4r
|
||||
@@ -0,0 +1,76 @@
|
||||
#include <nw4r/ut/ut_LinkList.h>
|
||||
|
||||
namespace nw4r {
|
||||
namespace ut {
|
||||
namespace detail {
|
||||
|
||||
/* 8042a850 */
|
||||
LinkListImpl::~LinkListImpl() {
|
||||
Clear();
|
||||
}
|
||||
|
||||
/* 8042a8e0 */
|
||||
LinkListImpl::Iterator LinkListImpl::Erase(LinkListImpl::Iterator it) {
|
||||
Iterator copy(it);
|
||||
return Erase(it, ++copy);
|
||||
}
|
||||
|
||||
/* 8042a930 */
|
||||
void LinkListImpl::Clear() {
|
||||
Erase(GetBeginIter(), GetEndIter());
|
||||
}
|
||||
|
||||
/* 8042a980 */
|
||||
LinkListImpl::Iterator LinkListImpl::Insert(Iterator it, LinkListNode *p) {
|
||||
LinkListNode *next = it.mNode;
|
||||
LinkListNode *prev = next->mPrev;
|
||||
|
||||
// prev <- p -> next
|
||||
p->mNext = next;
|
||||
p->mPrev = prev;
|
||||
// prev <-> p <-> next
|
||||
next->mPrev = p;
|
||||
prev->mNext = p;
|
||||
|
||||
mSize++;
|
||||
|
||||
return Iterator(p);
|
||||
}
|
||||
|
||||
/* 8042a9b0 */
|
||||
LinkListImpl::Iterator LinkListImpl::Erase(LinkListNode *p) {
|
||||
LinkListNode *next = p->mNext;
|
||||
LinkListNode *prev = p->mPrev;
|
||||
|
||||
// Remove connections to node
|
||||
next->mPrev = prev;
|
||||
prev->mNext = next;
|
||||
|
||||
mSize--;
|
||||
|
||||
// Isolate node
|
||||
p->mNext = NULL;
|
||||
p->mPrev = NULL;
|
||||
|
||||
return Iterator(next);
|
||||
}
|
||||
|
||||
/* Not in SS */
|
||||
LinkListImpl::Iterator LinkListImpl::Erase(Iterator begin, Iterator end) {
|
||||
LinkListNode *pCur = begin.mNode;
|
||||
LinkListNode *pEnd = end.mNode;
|
||||
|
||||
while (pCur != pEnd) {
|
||||
// Preserve next node before erasing pointers
|
||||
LinkListNode *pNext = pCur->mNext;
|
||||
// Erase current node
|
||||
Erase(pCur);
|
||||
pCur = pNext;
|
||||
}
|
||||
|
||||
return Iterator(pEnd);
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
} // namespace ut
|
||||
} // namespace nw4r
|
||||
@@ -0,0 +1,88 @@
|
||||
#include <nw4r/ut.h>
|
||||
|
||||
namespace nw4r {
|
||||
namespace ut {
|
||||
|
||||
template <typename T>
|
||||
TagProcessorBase<T>::TagProcessorBase() {}
|
||||
|
||||
template <typename T>
|
||||
TagProcessorBase<T>::~TagProcessorBase() {}
|
||||
|
||||
template <typename T>
|
||||
Operation TagProcessorBase<T>::Process(u16 ch, PrintContext<T> *ctx) {
|
||||
switch (ch) {
|
||||
case '\n':
|
||||
ProcessLinefeed(ctx);
|
||||
return OPERATION_NEXT_LINE;
|
||||
case '\t':
|
||||
ProcessTab(ctx);
|
||||
return OPERATION_NO_CHAR_SPACE;
|
||||
}
|
||||
|
||||
return OPERATION_DEFAULT;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
Operation TagProcessorBase<T>::CalcRect(Rect *rect, u16 ch, PrintContext<T> *ctx) {
|
||||
switch (ch) {
|
||||
case '\n': {
|
||||
const TextWriterBase<T> &writer = *ctx->writer;
|
||||
rect->right = writer.GetCursorX();
|
||||
rect->top = writer.GetCursorY();
|
||||
ProcessLinefeed(ctx);
|
||||
rect->left = writer.GetCursorX();
|
||||
rect->bottom = writer.GetCursorY() + ctx->writer->GetFontHeight();
|
||||
rect->Normalize();
|
||||
return OPERATION_NEXT_LINE;
|
||||
}
|
||||
case '\t': {
|
||||
const TextWriterBase<T> &writer = *ctx->writer;
|
||||
rect->left = writer.GetCursorX();
|
||||
ProcessTab(ctx);
|
||||
rect->right = writer.GetCursorX();
|
||||
rect->top = writer.GetCursorY();
|
||||
rect->bottom = rect->top + writer.GetFontHeight();
|
||||
rect->Normalize();
|
||||
return OPERATION_NO_CHAR_SPACE;
|
||||
}
|
||||
}
|
||||
|
||||
return OPERATION_DEFAULT;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void TagProcessorBase<T>::ProcessTab(PrintContext<T> *ctx) {
|
||||
TextWriterBase<T> &writer = *ctx->writer;
|
||||
|
||||
int tabWidth = writer.GetTabWidth();
|
||||
if (tabWidth <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
f32 charWidth = writer.IsWidthFixed() ? writer.GetFixedWidth() : writer.GetFontWidth();
|
||||
|
||||
f32 dx = writer.GetCursorX() - ctx->x;
|
||||
f32 tabPixel = tabWidth * charWidth;
|
||||
int numTab = static_cast<int>(dx / tabPixel) + 1;
|
||||
f32 x = ctx->x + (tabPixel * numTab);
|
||||
|
||||
writer.SetCursorX(x);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void TagProcessorBase<T>::ProcessLinefeed(PrintContext<T> *ctx) {
|
||||
TextWriterBase<T> &writer = *ctx->writer;
|
||||
|
||||
f32 x = ctx->x;
|
||||
f32 y = writer.GetCursorY() + writer.GetLineHeight();
|
||||
|
||||
writer.SetCursorX(x);
|
||||
writer.SetCursorY(y);
|
||||
}
|
||||
|
||||
template class TagProcessorBase<char>;
|
||||
template class TagProcessorBase<wchar_t>;
|
||||
|
||||
} // namespace ut
|
||||
} // namespace nw4r
|
||||
@@ -0,0 +1,28 @@
|
||||
#include <nw4r/ut/ut_binaryFileFormat.h>
|
||||
|
||||
namespace nw4r {
|
||||
namespace ut {
|
||||
|
||||
/* 8042a9e0 */
|
||||
bool IsValidBinaryFile(const BinaryFileHeader *header, unsigned long magic, u16 version, u16 numBlocks) {
|
||||
if (header->magic != magic) {
|
||||
return false;
|
||||
}
|
||||
if (header->byteOrder != 0xFEFF) {
|
||||
return false;
|
||||
}
|
||||
if (header->version != version) {
|
||||
return false;
|
||||
}
|
||||
if (header->fileSize < (numBlocks * sizeof(BinaryBlockHeader) + sizeof(BinaryFileHeader))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (header->numBlocks < numBlocks) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace ut
|
||||
} // namespace nw4r
|
||||
@@ -0,0 +1,14 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
class ArrowCounter : public Counter {
|
||||
public:
|
||||
ArrowCounter();
|
||||
/* 8016DFA0 */ ~ArrowCounter() {}
|
||||
/* 8016E000 */ virtual u16 getMax() override {
|
||||
return 20;
|
||||
};
|
||||
};
|
||||
|
||||
/* 80575618 */ ArrowCounter lbl_80575618;
|
||||
|
||||
/* 8016DFE0 */ ArrowCounter::ArrowCounter() : Counter(0x1f2) {}
|
||||
@@ -0,0 +1,14 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
class BombCounter : public Counter {
|
||||
public:
|
||||
BombCounter();
|
||||
/* 8016E020 */ ~BombCounter() {}
|
||||
/* 8016E080 */ virtual u16 getMax() override {
|
||||
return 10;
|
||||
}
|
||||
};
|
||||
|
||||
/* 80575620 */ BombCounter lbl_80575620;
|
||||
|
||||
/* 8016E060 */ BombCounter::BombCounter(): Counter(0x1f3) { }
|
||||
@@ -0,0 +1,55 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
// TODO use the item flag manager once it exists
|
||||
class ItemFlagManager {
|
||||
public:
|
||||
ItemFlagManager() {}
|
||||
/** 0x08 */ virtual ~ItemFlagManager();
|
||||
/** 0x0C */ virtual void setFlagszptr();
|
||||
/** 0x10 */ virtual void onDirty();
|
||||
/** 0x14 */ virtual void copyFlagsFromSave() = 0;
|
||||
/** 0x18 */ virtual void setupUnkFlagsStuff() = 0;
|
||||
/** 0x1C */ virtual bool doCommit() = 0;
|
||||
/** 0x20 */ virtual void setFlag(u16 flag);
|
||||
/** 0x24 */ virtual void unsetFlag(u16 flag);
|
||||
/** 0x28 */ virtual void setFlagOrCounterToValue(u16 flag, u16 value);
|
||||
/** 0x2C */ virtual u16 getCounterOrFlag(u16 flag);
|
||||
/** 0x30 */ virtual u16 getUncommittedValue(u16 flag);
|
||||
/** 0x34 */ virtual void unk3();
|
||||
/** 0x38 */ virtual u16 *getSaveFlagSpace() = 0;
|
||||
};
|
||||
|
||||
// TODO set up item flag manager
|
||||
extern "C" ItemFlagManager *lbl_80575400;
|
||||
|
||||
|
||||
/* 8016cc40 */ s32 Counter::checkedAdd(s32 num) {
|
||||
s32 uncommitted = getUncommittedValue();
|
||||
s32 max = getMax();
|
||||
s32 result = uncommitted + num;
|
||||
if (result < 0) {
|
||||
setValue(0);
|
||||
} else if (result < max) {
|
||||
setValue(result);
|
||||
} else {
|
||||
setValue(max);
|
||||
}
|
||||
|
||||
if (result < 0) {
|
||||
return result;
|
||||
}
|
||||
|
||||
return result <= max ? 0 : (result - max);
|
||||
}
|
||||
|
||||
/* 8016cd30 */ u16 Counter::getCommittedValue() {
|
||||
return lbl_80575400->getCounterOrFlag(counterId | 0x4000);
|
||||
}
|
||||
|
||||
/* 8016cd50 */ u16 Counter::getUncommittedValue() {
|
||||
return lbl_80575400->getUncommittedValue(counterId | 0x4000);
|
||||
}
|
||||
|
||||
/* 8016cd70 */ void Counter::setValue(u16 num) {
|
||||
lbl_80575400->setFlagOrCounterToValue(counterId | 0x4000, num);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
class ExtraWalletCounter : public Counter {
|
||||
public:
|
||||
ExtraWalletCounter();
|
||||
/* 8016E220 */ ~ExtraWalletCounter() {}
|
||||
/* 8016E280 */ virtual u16 getMax() override {
|
||||
return 3;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* 80575640 */ ExtraWalletCounter lbl_80575640;
|
||||
|
||||
/* 8016E260 */ ExtraWalletCounter::ExtraWalletCounter(): Counter(0x1fc) { }
|
||||
@@ -0,0 +1,14 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
class KeyPieceCounter : public Counter {
|
||||
public:
|
||||
KeyPieceCounter();
|
||||
/* 8016E1A0 */ ~KeyPieceCounter() {}
|
||||
/* 8016E200 */ virtual u16 getMax() override {
|
||||
return 5;
|
||||
}
|
||||
};
|
||||
|
||||
/* 80575638 */ KeyPieceCounter lbl_80575638;
|
||||
|
||||
/* 8016E1E0 */ KeyPieceCounter::KeyPieceCounter() : Counter(0x1f9) {}
|
||||
@@ -0,0 +1,50 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
static u16 getBaseCapacity();
|
||||
static u16 getExtraWalletCapacity();
|
||||
|
||||
class RupeeCounter : public Counter {
|
||||
public:
|
||||
RupeeCounter();
|
||||
/* 8016DEF0 */ ~RupeeCounter() {}
|
||||
/* 8016DF50 */ virtual u16 getMax() override {
|
||||
return (getBaseCapacity() + getExtraWalletCapacity());
|
||||
}
|
||||
};
|
||||
|
||||
struct WalletStruct {
|
||||
u32 flag;
|
||||
u16 capacity;
|
||||
};
|
||||
|
||||
// TODO set up item flag manager
|
||||
extern "C" void *lbl_80575400;
|
||||
extern "C" u16 fn_800BF5E0(void *data, u16 flag);
|
||||
|
||||
/* 8016DE10 */ static u16 getBaseCapacity() {
|
||||
int i = 0;
|
||||
/* 804E91B0 */ WalletStruct wallet_definitions[4] = {
|
||||
{0x6c, 500},
|
||||
{0x6d, 1000},
|
||||
{0x6e, 5000},
|
||||
{0x6f, 9000},
|
||||
};
|
||||
const WalletStruct *wallet = &wallet_definitions[3];
|
||||
for (; i < 4; i++, wallet--) {
|
||||
if (fn_800BF5E0(lbl_80575400, wallet->flag)) {
|
||||
return wallet->capacity;
|
||||
}
|
||||
}
|
||||
return 300;
|
||||
}
|
||||
|
||||
// TODO main counters class
|
||||
extern "C" u16 fn_8016D730(u16);
|
||||
|
||||
/* 8016DEC0 */ static u16 getExtraWalletCapacity() {
|
||||
return 300 * fn_8016D730(0x27);
|
||||
}
|
||||
|
||||
/* 80575610 */ RupeeCounter lbl_80575610;
|
||||
|
||||
/* 8016DF30 */ RupeeCounter::RupeeCounter() : Counter(0x1f5) {}
|
||||
@@ -0,0 +1,14 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
class SlingshotSeedCounter : public Counter {
|
||||
public:
|
||||
SlingshotSeedCounter();
|
||||
/* 8016E120 */ ~SlingshotSeedCounter() {}
|
||||
/* 8016E180 */ virtual u16 getMax() override {
|
||||
return 20;
|
||||
};
|
||||
};
|
||||
|
||||
/* 80575630 */ SlingshotSeedCounter lbl_80575630;
|
||||
|
||||
/* 8016E160 */ SlingshotSeedCounter::SlingshotSeedCounter() : Counter(0x1ed) {}
|
||||
@@ -0,0 +1,14 @@
|
||||
#include <toBeSorted/counters/counter.h>
|
||||
|
||||
class TearCounter : public Counter {
|
||||
public:
|
||||
TearCounter();
|
||||
/* 8016E0A0 */ ~TearCounter() {}
|
||||
/* 8016E100 */ virtual u16 getMax() override {
|
||||
return 15;
|
||||
};
|
||||
};
|
||||
|
||||
/* 80575628 */ TearCounter lbl_80575628;
|
||||
|
||||
/* 8016E0E0 */ TearCounter::TearCounter(): Counter(0x1f4) { }
|
||||
@@ -0,0 +1,104 @@
|
||||
#include "toBeSorted/bitwise_flag_helper.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "toBeSorted/flag_space.h"
|
||||
#include "toBeSorted/unk_flag_stuff.h"
|
||||
#include <libc.h>
|
||||
|
||||
// TODO move
|
||||
extern "C" UnkFlagDefinition lbl_80511AF0[];
|
||||
|
||||
class DungeonflagManager {
|
||||
public:
|
||||
bool mShouldCommit;
|
||||
u16 mStageIndex;
|
||||
UnkFlagStuff *mFlagStuff;
|
||||
FlagSpace mFlagSpace;
|
||||
|
||||
static u16 sDungeonFlags[8];
|
||||
// static DungeonflagManager *sInstance;
|
||||
|
||||
void copyFromSave(s16 flag);
|
||||
void copyFromSave(u16 flagIndex);
|
||||
void setCommitFlag(u16 flag);
|
||||
DungeonflagManager();
|
||||
void setupFlagStuff();
|
||||
void setToValue(u16 flag, u32 value);
|
||||
void setFlag(u16 flag);
|
||||
u32 getDungeonFlag(u16 flag);
|
||||
bool doCommit();
|
||||
|
||||
/** inline shenanigans to get copyFromSave to match */
|
||||
static inline u16 *saveFilePtr(u16 flagIndex) {
|
||||
u32 offset = (flagIndex & 0x1fff) * 8;
|
||||
return FileManager::sInstance->getDungeonFlagsConst() + offset;
|
||||
}
|
||||
};
|
||||
|
||||
/** 80575404 */
|
||||
// DungeonflagManager *DungeonflagManager::sInstance = nullptr;
|
||||
|
||||
/** 805a9c58 */
|
||||
u16 DungeonflagManager::sDungeonFlags[8] = {};
|
||||
|
||||
/** 800bf8d0 */
|
||||
void DungeonflagManager::copyFromSave(u16 flagIndex) {
|
||||
mFlagSpace.copyFromSaveFile(saveFilePtr(flagIndex), 0, 0x8);
|
||||
}
|
||||
|
||||
/** 800bf930 */
|
||||
void DungeonflagManager::setCommitFlag(u16 flag) {
|
||||
mShouldCommit = true;
|
||||
}
|
||||
|
||||
/** 0x800bf940 */
|
||||
DungeonflagManager::DungeonflagManager()
|
||||
: mShouldCommit(false), mStageIndex(-1), mFlagStuff(nullptr),
|
||||
mFlagSpace(sDungeonFlags, ARRAY_LENGTH(sDungeonFlags)) {}
|
||||
|
||||
/** 800bf980 */
|
||||
void DungeonflagManager::setupFlagStuff() {
|
||||
mFlagStuff = new UnkFlagStuff(0x11, lbl_80511AF0);
|
||||
mShouldCommit = false;
|
||||
}
|
||||
|
||||
/** 800bf9e0 */
|
||||
void DungeonflagManager::copyFromSave(s16 flag) {
|
||||
mStageIndex = flag;
|
||||
copyFromSave((u16)flag);
|
||||
}
|
||||
|
||||
/** 800bf9f0 */
|
||||
void DungeonflagManager::setToValue(u16 flag, u32 value) {
|
||||
u16 *data = mFlagSpace.getFlagPtrChecked();
|
||||
mFlagStuff->setCounterOrFlag(flag, data, 8, value);
|
||||
setCommitFlag(flag);
|
||||
}
|
||||
|
||||
/** 800bfa60 */
|
||||
void DungeonflagManager::setFlag(u16 flag) {
|
||||
u16 *data = mFlagSpace.getFlagPtrChecked();
|
||||
mFlagStuff->setCounterOrFlag(flag, data, 8, 1);
|
||||
setCommitFlag(flag);
|
||||
}
|
||||
|
||||
/** 800fbac0 */
|
||||
u32 DungeonflagManager::getDungeonFlag(u16 flag) {
|
||||
u16 *data = mFlagSpace.getFlagPtrUnchecked();
|
||||
return mFlagStuff->getCounterOrFlag(flag, data, 8);
|
||||
}
|
||||
|
||||
/** 800fbb10 */
|
||||
bool DungeonflagManager::doCommit() {
|
||||
FileManager *instance;
|
||||
u16 idx = mStageIndex;
|
||||
if (idx == 0xFFFF) {
|
||||
return false;
|
||||
} else if (mShouldCommit) {
|
||||
instance = FileManager::sInstance;
|
||||
u16 *ptr = mFlagSpace.getFlagPtrUnchecked();
|
||||
instance->setDungeonFlags(ptr, (idx & 0x1fff) * 8, 0x08);
|
||||
mShouldCommit = false;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
+360
-116
@@ -1,83 +1,175 @@
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "f/f_base.h"
|
||||
#include <m/m_heap.h>
|
||||
// #include "libc.h"
|
||||
#include <MSL_C/string.h>
|
||||
|
||||
// This class here makes no sense and the name might
|
||||
// be a total misnomer, but this gets the sinit section correct
|
||||
class UnkClass {
|
||||
public:
|
||||
UnkClass();
|
||||
/* vtable at 80500400 */
|
||||
virtual ~UnkClass();
|
||||
|
||||
static UnkClass sInstance;
|
||||
};
|
||||
// This seems really pointless since the class only has a virtual destructor
|
||||
// and no members but /shrug
|
||||
/* 80574FF8 */ UnkClass UnkClass::sInstance;
|
||||
|
||||
/* 80009D30 */ UnkClass::UnkClass() {}
|
||||
/* 80009D40 */ UnkClass::~UnkClass() {}
|
||||
|
||||
/* 80574FFC */ FileManager *FileManager::sInstance;
|
||||
|
||||
extern "C" {
|
||||
/* 80009D30 */ void fn_80009D30() {} // some ctor
|
||||
/* 80009D40 */ void fn_80009D40() {} // some dtor
|
||||
/* 80009D80 */ void fn_80009D80() {} // return
|
||||
/* 80009D90 */ void fn_80009D90() {} // return
|
||||
/* 80009DA0 */ void fn_80009DA0() {} // memset(param_1, 0, 0x20) a 0x24 structure is implied here (0x20 data) a crc is at 0x24
|
||||
/* 80009D80 */ void fn_80009D80() {} // return
|
||||
/* 80009D90 */ void fn_80009D90() {} // return
|
||||
/* 80009DA0 */ void fn_80009DA0(void *ptr) {
|
||||
memset(ptr, 0, 0x20);
|
||||
} // memset(param_1, 0, 0x20) a 0x24 structure is implied here (0x20 data) a crc is at 0x24
|
||||
}
|
||||
|
||||
/* 80009DB0 */ FileManager::FileManager() {}
|
||||
/* 80009DB0 */ FileManager::FileManager() {
|
||||
// TODO the assembly code looks really wild
|
||||
mHeroNames[0][0] = '\0';
|
||||
u32 num_files = (u32)(mHeroName - mHeroNames[0]);
|
||||
num_files = num_files / sizeof(mHeroName);
|
||||
for (int i = 1; mHeroNames[i] < mHeroName && i < num_files; i++) {
|
||||
mHeroNames[i][0] = '\0';
|
||||
}
|
||||
mHeroName[0] = '\0';
|
||||
mCurrentArea[0] = '\0';
|
||||
sInstance = this;
|
||||
// TODO these should probably use the new operators?
|
||||
mpSavedSaveFiles = (SavedSaveFiles *)mHeap::g_gameHeaps[0]->alloc(sizeof(SavedSaveFiles), 0x20);
|
||||
mpSkipData = (SkipData *)mHeap::g_gameHeaps[0]->alloc(0x80, 0x20);
|
||||
|
||||
fn_8000A2E0();
|
||||
}
|
||||
/* 80009EE0 */ // mVec3();
|
||||
|
||||
/* 80009EF0 */ FileManager FileManager::create(EGG::Heap*){}
|
||||
/* 80009F30 */ bool FileManager::loadSaveData(void* out, char* name, bool isSkipData){}
|
||||
/* 80009F70 */ void FileManager::saveSaveData(void* unk, bool isSkipData){}
|
||||
/* 8000A000 */ void FileManager::refreshSaveFileData(){}
|
||||
/* 8000A260 */ wchar_t* FileManager::getFileHeroname(int fileNum){}
|
||||
/* 8000A280 */ s64 FileManager::getFileSaveTime(int fileNum){}
|
||||
/* 8000A2A0 */ s16 FileManager::getFileCurrentHealth(int fileNum){}
|
||||
/* 8000A2C0 */ s16 FileManager::getFileHealthCapacity(int fileNum){}
|
||||
/* 8000A2E0 */ void FileManager::fn_8000A2E0(){}
|
||||
/* 80009EF0 */ FileManager *FileManager::create(EGG::Heap *heap) {
|
||||
return new (heap, 0x04) FileManager();
|
||||
}
|
||||
/* 80009F30 */ bool FileManager::loadSaveData(void *out, char *name, bool isSkipData) {}
|
||||
/* 80009F70 */ void FileManager::saveSaveData(void *unk, bool isSkipData) {}
|
||||
/* 8000A000 */ void FileManager::refreshSaveFileData() {}
|
||||
/* 8000A260 */ wchar_t *FileManager::getFileHeroname(int fileNum) {}
|
||||
/* 8000A280 */ s64 FileManager::getFileSaveTime(int fileNum) {}
|
||||
/* 8000A2A0 */ s16 FileManager::getFileCurrentHealth(int fileNum) {}
|
||||
/* 8000A2C0 */ s16 FileManager::getFileHealthCapacity(int fileNum) {}
|
||||
/* 8000A2E0 */ void FileManager::fn_8000A2E0() {
|
||||
// maybe call this function "reset"
|
||||
mIsFileUnk1[0] = true;
|
||||
initBlankSaveFiles();
|
||||
m_0xA84D = 0;
|
||||
mSelectedFile = 1;
|
||||
}
|
||||
|
||||
/* 8000A330 */
|
||||
u16* FileManager::getStoryFlagsMut() {
|
||||
/* 8000A330 */
|
||||
u16 *FileManager::getStoryFlagsMut() {
|
||||
return getCurrentFile()->getStoryFlags0();
|
||||
}
|
||||
/* 8000A360 */ u16* FileManager::getStoryFlagsConst() {
|
||||
return (isFileInactive() ? mFileB : mFileA).getStoryFlags1();
|
||||
/* 8000A360 */ const u16 *FileManager::getStoryFlagsConst() const {
|
||||
return getCurrentFile()->getStoryFlags1();
|
||||
}
|
||||
/* 8000A3B0 */ u16* FileManager::getItemFlagsMut() {}
|
||||
/* 8000A3E0 */ u16* FileManager::getItemFlagsConst() {}
|
||||
/* 8000A430 */ u16* FileManager::getDungeonFlagsMut() {}
|
||||
/* 8000A460 */ u16* FileManager::getDungeonFlagsConst() {}
|
||||
/* 8000A4B0 */ u16* FileManager::getSceneFlagsMut() {}
|
||||
/* 8000A4E0 */ u16* FileManager::getSceneFlagsConst() {}
|
||||
/* 8000A530 */ u16* FileManager::getTBoxFlagsMut() {}
|
||||
/* 8000A560 */ u16* FileManager::getTBoxFlagsConst() {}
|
||||
/* 8000A5B0 */ u16* FileManager::getTempFlagsMut() {}
|
||||
/* 8000A5E0 */ u16* FileManager::getTempFlagsConst() {}
|
||||
/* 8000A630 */ u16* FileManager::getZoneFlagsMut() {}
|
||||
/* 8000A660 */ u16* FileManager::getZoneFlagsConst() {}
|
||||
/* 8000A6B0 */ u16* FileManager::getEnemyDefeatFlagsMut() {}
|
||||
/* 8000A6E0 */ u16* FileManager::getEnemyDefeatFlagsConst() {}
|
||||
/* 8000A730 */ void FileManager::setStoryFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A790 */ void FileManager::setItemFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A7F0 */ void FileManager::setDungeonFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A850 */ void FileManager::setSceneFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A8B0 */ void FileManager::setTBoxFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A910 */ void FileManager::setTempFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A970 */ void FileManager::setZoneFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A9D0 */ void FileManager::setEnemyDefeatFlags(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000A3B0 */ u16 *FileManager::getItemFlagsMut() {}
|
||||
/* 8000A3E0 */ u16 *FileManager::getItemFlagsConst() {}
|
||||
/* 8000A430 */ u16 *FileManager::getDungeonFlagsMut() {}
|
||||
/* 8000A460 */ u16 *FileManager::getDungeonFlagsConst() {}
|
||||
/* 8000A4B0 */ u16 *FileManager::getSceneFlagsMut() {}
|
||||
/* 8000A4E0 */ u16 *FileManager::getSceneFlagsConst() {}
|
||||
/* 8000A530 */ u16 *FileManager::getTBoxFlagsMut() {}
|
||||
/* 8000A560 */ u16 *FileManager::getTBoxFlagsConst() {}
|
||||
/* 8000A5B0 */ u16 *FileManager::getTempFlagsMut() {}
|
||||
/* 8000A5E0 */ u16 *FileManager::getTempFlagsConst() {}
|
||||
/* 8000A630 */ u16 *FileManager::getZoneFlagsMut() {}
|
||||
/* 8000A660 */ u16 *FileManager::getZoneFlagsConst() {}
|
||||
/* 8000A6B0 */ u16 *FileManager::getEnemyDefeatFlagsMut() {}
|
||||
/* 8000A6E0 */ u16 *FileManager::getEnemyDefeatFlagsConst() {}
|
||||
/* 8000A730 */ void FileManager::setStoryFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A790 */ void FileManager::setItemFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A7F0 */ void FileManager::setDungeonFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A850 */ void FileManager::setSceneFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A8B0 */ void FileManager::setTBoxFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A910 */ void FileManager::setTempFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A970 */ void FileManager::setZoneFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
/* 8000A9D0 */ void FileManager::setEnemyDefeatFlags(u16 *flags, u32 offset, u16 count) {}
|
||||
|
||||
/* 8000AA30 */ u16* FileManager::getSkipFlags() {}
|
||||
/* 8000AA40 */ void FileManager::setSkipFlagsChecked(u16* flags, u32 offset, u16 count) {}
|
||||
/* 8000AA30 */ u16 *FileManager::getSkipFlags() {}
|
||||
/* 8000AA40 */ void FileManager::setSkipFlagsChecked(u16 *flags, u32 offset, u16 count) {}
|
||||
|
||||
/* 8000AAA0 */ void FileManager::initFile(int fileNum) {}
|
||||
// This does strncat things - append src to dest
|
||||
inline void fake_strncat(char *dest, const char *src, size_t max_len) {
|
||||
if (src != nullptr) {
|
||||
size_t len = strlen(dest);
|
||||
size_t count = strlen(src);
|
||||
count = len + count + 1 >= max_len ? max_len - len - 1 : count;
|
||||
strncpy(dest + len, src, count);
|
||||
// one instshuffle here - this should be (len + count),
|
||||
// but then regalloc blows up and uses one more register in initFile
|
||||
dest[count + len] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
// A function like this is inlined into in a bunch of area-related code
|
||||
// It doesn't make a whole lot of sense to use strncat on a string just
|
||||
// clipped to zero length...
|
||||
inline void strnsth(char *dest, const char *src, size_t max_len) {
|
||||
if (src != dest) {
|
||||
dest[0] = '\0';
|
||||
fake_strncat(dest, src, max_len);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8000AAA0 */ void FileManager::initFile(int fileNum) {
|
||||
|
||||
mIsFileInvalid[1] = 1;
|
||||
SaveFile *file = getFileA();
|
||||
if (fileNum != 0) {
|
||||
file = &mFileB;
|
||||
}
|
||||
file->new_file = 0;
|
||||
file->health_capacity = 0x18;
|
||||
file->unused_heart_related = 0x18;
|
||||
file->current_health = 0x18;
|
||||
file->shield_pouch_slot = 8;
|
||||
file->equipped_b_item = 0xb;
|
||||
file->selectedDowsingSlot = 0x8;
|
||||
file->lastUsedPouchItemSlot = 0x8;
|
||||
|
||||
char buf[0x20];
|
||||
buf[0] = '\0';
|
||||
strnsth(buf, "F405", 0x20);
|
||||
file->setAreaT1(buf);
|
||||
file->room_id_t1 = 0;
|
||||
file->forced_layer_t1 = 0;
|
||||
file->entrance_t1_load_flag = 1;
|
||||
}
|
||||
|
||||
/* 8000ABD0 */ void FileManager::setCurrentHealthCapacity(s16 health) {}
|
||||
/* 8000AC00 */ s16 FileManager::getCurrentHealthCapacity() {}
|
||||
/* 8000AC50 */ void FileManager::setCurrentHealth(s16 health) {}
|
||||
/* 8000AC80 */ s16 FileManager::getCurrentHealth() {}
|
||||
|
||||
/* 8000ACD0 */ u16 FileManager::getLoadRoomT1() {}
|
||||
/* 8000AD20 */ u16 FileManager::getLoadRoomT2() {}
|
||||
/* 8000ACD0 */ u16 FileManager::getLoadRoomT1() {}
|
||||
/* 8000AD20 */ u16 FileManager::getLoadRoomT2() {}
|
||||
/* 8000AD70 */ void FileManager::setLoadRoomT3(s16 room) {}
|
||||
/* 8000ADA0 */ u16 FileManager::getLoadRoomT3() {}
|
||||
/* 8000ADA0 */ u16 FileManager::getLoadRoomT3() {}
|
||||
|
||||
/* 8000ADF0 */ mVec3_c* FileManager::getPosT1() {}
|
||||
/* 8000AE40 */ void FileManager::setPosT2(mVec3_c* pos) {}
|
||||
/* 8000AE90 */ mVec3_c* FileManager::getPosT2() {}
|
||||
/* 8000AEE0 */ void FileManager::setPosT3(mVec3_c* pos) {}
|
||||
/* 8000AF30 */ mVec3_c* FileManager::getPosT3() {}
|
||||
/* 8000ADF0 */ mVec3_c *FileManager::getPosT1() {}
|
||||
/* 8000AE40 */ void FileManager::setPosT2(mVec3_c *pos) {}
|
||||
/* 8000AE90 */ mVec3_c *FileManager::getPosT2() {}
|
||||
/* 8000AEE0 */ void FileManager::setPosT3(mVec3_c *pos) {}
|
||||
/* 8000AF30 */ mVec3_c *FileManager::getPosT3() {}
|
||||
|
||||
/* 8000AF80 */ s16 FileManager::getAngleT1() {}
|
||||
/* 8000AF80 */ s16 FileManager::getAngleT1() {}
|
||||
/* 8000AFD0 */ void FileManager::setAngleT2(s16 angle) {}
|
||||
/* 8000B000 */ s16 FileManager::getAngleT2() {}
|
||||
/* 8000B000 */ s16 FileManager::getAngleT2() {}
|
||||
/* 8000B050 */ void FileManager::setAngleT3(s16 angle) {}
|
||||
/* 8000B080 */ s16 FileManager::getAngleT3() {}
|
||||
/* 8000B080 */ s16 FileManager::getAngleT3() {}
|
||||
|
||||
/* 8000B0D0 */ void FileManager::setPouchData(s32 slot, u32 slotData) {}
|
||||
/* 8000B130 */ u32 FileManager::getPouchData(s32 slot) {}
|
||||
@@ -86,38 +178,38 @@ u16* FileManager::getStoryFlagsMut() {
|
||||
/* 8000B250 */ void FileManager::setPouchUpperData(s32 slot, s32 data) {}
|
||||
/* 8000B2C0 */ u16 FileManager::getPouchUpperData(s32 slot) {}
|
||||
|
||||
/* 8000B2F0 */ void FileManager::setItemCheckData(u32 idx, u32 itemData){}
|
||||
/* 8000B360 */ u32 FileManager::getItemCheckData(u32 idx){}
|
||||
/* 8000B3F0 */ void FileManager::setItemCheckItem(u32 idx, ITEM_ID item){}
|
||||
/* 8000B480 */ ITEM_ID FileManager::getItemCheckItem(u32 idx){}
|
||||
/* 8000B4B0 */ void FileManager::setItemCheckUpperData(u32 idx, u32 itemData){}
|
||||
/* 8000B540 */ u32 FileManager::getItemCheckUpperData(){}
|
||||
/* 8000B2F0 */ void FileManager::setItemCheckData(u32 idx, u32 itemData) {}
|
||||
/* 8000B360 */ u32 FileManager::getItemCheckData(u32 idx) {}
|
||||
/* 8000B3F0 */ void FileManager::setItemCheckItem(u32 idx, ITEM_ID item) {}
|
||||
/* 8000B480 */ ITEM_ID FileManager::getItemCheckItem(u32 idx) {}
|
||||
/* 8000B4B0 */ void FileManager::setItemCheckUpperData(u32 idx, u32 itemData) {}
|
||||
/* 8000B540 */ u32 FileManager::getItemCheckUpperData() {}
|
||||
|
||||
/* 8000B570 */ void FileManager::setEquippedItem(u8 bWheelItem){}
|
||||
/* 8000B5A0 */ u8 FileManager::getEquippedItem(){}
|
||||
/* 8000B5F0 */ void FileManager::setSelectedPouchSlot(u8 slot){}
|
||||
/* 8000B620 */ u8 FileManager::getSelectedPouchSlot(){}
|
||||
/* 8000B670 */ void FileManager::setShieldPouchSlot(u8 slot){}
|
||||
/* 8000B6A0 */ u8 FileManager::getShieldPouchSlot(){}
|
||||
/* 8000B570 */ void FileManager::setEquippedItem(u8 bWheelItem) {}
|
||||
/* 8000B5A0 */ u8 FileManager::getEquippedItem() {}
|
||||
/* 8000B5F0 */ void FileManager::setSelectedPouchSlot(u8 slot) {}
|
||||
/* 8000B620 */ u8 FileManager::getSelectedPouchSlot() {}
|
||||
/* 8000B670 */ void FileManager::setShieldPouchSlot(u8 slot) {}
|
||||
/* 8000B6A0 */ u8 FileManager::getShieldPouchSlot() {}
|
||||
|
||||
/* 8000B6F0 */ void FileManager::setAirPotionTimer(s16 time){}
|
||||
/* 8000B720 */ s16 FileManager::getAirPotionTimer(){}
|
||||
/* 8000B770 */ void FileManager::setAirPotionPlusTimer(s16 time){}
|
||||
/* 8000B7A0 */ s16 FileManager::getAirPotionPlusTimer(){}
|
||||
/* 8000B7F0 */ void FileManager::setStaminaPotionTimer(s16 time){}
|
||||
/* 8000B820 */ s16 FileManager::getStaminaPotionTimer(){}
|
||||
/* 8000B870 */ void FileManager::setStaminaPotionPlusTimer(s16 time){}
|
||||
/* 8000B8A0 */ s16 FileManager::getStaminaPotionPlusTimer(){}
|
||||
/* 8000B8F0 */ void FileManager::setGuardianPotionTimer(s16 time){}
|
||||
/* 8000B920 */ s16 FileManager::getGuardianPotionTimer(){}
|
||||
/* 8000B970 */ void FileManager::setGuardianPotionPlusTimer(s16 time){}
|
||||
/* 8000B9A0 */ s16 FileManager::getGuardianPotionPlusTimer(){}
|
||||
/* 8000B6F0 */ void FileManager::setAirPotionTimer(s16 time) {}
|
||||
/* 8000B720 */ s16 FileManager::getAirPotionTimer() {}
|
||||
/* 8000B770 */ void FileManager::setAirPotionPlusTimer(s16 time) {}
|
||||
/* 8000B7A0 */ s16 FileManager::getAirPotionPlusTimer() {}
|
||||
/* 8000B7F0 */ void FileManager::setStaminaPotionTimer(s16 time) {}
|
||||
/* 8000B820 */ s16 FileManager::getStaminaPotionTimer() {}
|
||||
/* 8000B870 */ void FileManager::setStaminaPotionPlusTimer(s16 time) {}
|
||||
/* 8000B8A0 */ s16 FileManager::getStaminaPotionPlusTimer() {}
|
||||
/* 8000B8F0 */ void FileManager::setGuardianPotionTimer(s16 time) {}
|
||||
/* 8000B920 */ s16 FileManager::getGuardianPotionTimer() {}
|
||||
/* 8000B970 */ void FileManager::setGuardianPotionPlusTimer(s16 time) {}
|
||||
/* 8000B9A0 */ s16 FileManager::getGuardianPotionPlusTimer() {}
|
||||
|
||||
/* 8000B9F0 */ void FileManager::setDowsingSlotIdx(u8 idx) {}
|
||||
/* 8000BA20 */ u8 FileManager::getDowsingSlotIdx() {}
|
||||
|
||||
/* 8000BA70 */ void FileManager::setBeaconPos(u32 beaconArea, u32 beaconNum, mVec3_c* pos) {}
|
||||
/* 8000BB80 */ mVec3_c* FileManager::getBeaconPos(u32 beaconArea, u32 beaconNum) {}
|
||||
/* 8000BA70 */ void FileManager::setBeaconPos(u32 beaconArea, u32 beaconNum, mVec3_c *pos) {}
|
||||
/* 8000BB80 */ mVec3_c *FileManager::getBeaconPos(u32 beaconArea, u32 beaconNum) {}
|
||||
/* 8000BC70 */ void FileManager::setEnemyKillCount(u32 enemy, u16 killCount) {}
|
||||
/* 8000BCE0 */ u16 FileManager::getEnemyKillCount(u32 enemy) {}
|
||||
/* 8000BD60 */ void FileManager::setHitCountFromEnemy(u32 enemy, u16 hitCount) {}
|
||||
@@ -126,9 +218,9 @@ u16* FileManager::getStoryFlagsMut() {
|
||||
/* 8000BE50 */ void FileManager::setLoadRoomT1_FileB(s16 roomId) {}
|
||||
/* 8000BE80 */ s16 FileManager::getLoadRoomT1_FileB() {}
|
||||
/* 8000BE90 */ void FileManager::setEntranceT1_FileB(u8 entrance) {}
|
||||
/* 8000BEC0 */ u8 FileManager::getEntranceT1_FileB() {}
|
||||
/* 8000BED0 */ void FileManager::setAreaT1_FileB(const char* name) {}
|
||||
/* 8000BF80 */ char* FileManager::getAreaT1_FileB() {}
|
||||
/* 8000BEC0 */ u8 FileManager::getEntranceT1_FileB() {}
|
||||
/* 8000BED0 */ void FileManager::setAreaT1_FileB(const char *name) {}
|
||||
/* 8000BF80 */ char *FileManager::getAreaT1_FileB() {}
|
||||
/* 8000C080 */ void FileManager::setNightT1_FileB(bool night) {}
|
||||
/* 8000C0B0 */ bool FileManager::getNightT1_FileB() {}
|
||||
/* 8000C0C0 */ void FileManager::setEntranceT1LoadFlag_FileB(u8 flag) {}
|
||||
@@ -136,13 +228,13 @@ u16* FileManager::getStoryFlagsMut() {
|
||||
/* 8000C120 */ void FileManager::getForcedLayerT1_FileB() {}
|
||||
/* 8000C130 */ void FileManager::setCurrentHealth_FileB(s16 health) {}
|
||||
|
||||
/* 8000C160 */ void FileManager::setHeroname(const wchar_t* name) {}
|
||||
/* 8000C230 */ wchar_t* FileManager::getHeroname() {}
|
||||
/* 8000C160 */ void FileManager::setHeroname(const wchar_t *name) {}
|
||||
/* 8000C230 */ wchar_t *FileManager::getHeroname() {}
|
||||
|
||||
/* 8000C360 */ char* FileManager::getAreaT1() {}
|
||||
/* 8000C470 */ char* FileManager::getAreaT2() {}
|
||||
/* 8000C580 */ void FileManager::setAreaT3(const char* name) {}
|
||||
/* 8000C630 */ char* FileManager::getAreaT3() {}
|
||||
/* 8000C360 */ char *FileManager::getAreaT1() {}
|
||||
/* 8000C470 */ char *FileManager::getAreaT2() {}
|
||||
/* 8000C580 */ void FileManager::setAreaT3(const char *name) {}
|
||||
/* 8000C630 */ char *FileManager::getAreaT3() {}
|
||||
|
||||
/* 8000C740 */ u8 FileManager::getForcedLayerT1() {}
|
||||
/* 8000C790 */ u8 FileManager::getForcedLayerT2() {}
|
||||
@@ -188,54 +280,206 @@ u16* FileManager::getStoryFlagsMut() {
|
||||
/* 8000CFE0 */ void FileManager::setSkykeepPuzzle(u32 spot, u8 tile) {}
|
||||
/* 8000D040 */ u8 FileManager::getSkykeepPuzzleTile(u32 spot) {}
|
||||
|
||||
/* 8000D0B0 */ void FileManager::checkFileStatus() {}
|
||||
/* 8000D1D0 */ void FileManager::checkSkipDataCRCs() {}
|
||||
/* 8000D270 */ void FileManager::saveOrClearSelectedFileToFileA() {}
|
||||
/* 8000D0B0 */ void FileManager::checkFileStatus() {
|
||||
mIsFileInvalid[2] = 0;
|
||||
SkipData *data;
|
||||
SavedSaveFiles *files = mpSavedSaveFiles;
|
||||
|
||||
if (!checkRegionCode()) {
|
||||
mIsFileInvalid[2] = 1;
|
||||
}
|
||||
if (files->m_0x1C != 0x1d) {
|
||||
mIsFileInvalid[2] = 1;
|
||||
}
|
||||
|
||||
for (u8 i = 0; i < 3; i++) {
|
||||
if (checkFileCRC(i) == 0) {
|
||||
mIsFileDataDirty[i] = 1;
|
||||
} else {
|
||||
mIsFileDataDirty[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int i;
|
||||
for (i = 0, data = files->skipData; i < 3; i++, data++) {
|
||||
u32 crc = calcFileCRC(data->data, sizeof(data->data));
|
||||
if (crc != data->crc) {
|
||||
fn_80009DA0(data);
|
||||
data->crc = calcFileCRC(data->data, sizeof(data->data));
|
||||
}
|
||||
}
|
||||
}
|
||||
/* 8000D1D0 */ bool FileManager::checkSkipDataCRCs() {
|
||||
SkipData *data;
|
||||
bool dirty = false;
|
||||
u8 i;
|
||||
for (data = mpSkipData, i = 0; (s32)i < 3; i++, data++) {
|
||||
u32 crc = calcFileCRC(data->data, sizeof(data->data));
|
||||
if (crc == data->crc) {
|
||||
mIsFileSkipDataDirty[i] = 0;
|
||||
} else {
|
||||
mIsFileSkipDataDirty[i] = 1;
|
||||
dirty = true;
|
||||
}
|
||||
}
|
||||
return dirty;
|
||||
}
|
||||
/* 8000D270 */ void FileManager::saveOrClearSelectedFileToFileA() {
|
||||
saveOrClearToFileA(mSelectedFile);
|
||||
}
|
||||
/* 8000D280 */ void FileManager::saveOrClearToFileA(int fileNum) {}
|
||||
/* 8000D9C0 */ void FileManager::copyFileBToCurrentFile() {}
|
||||
/* 8000E060 */ void FileManager::copyFileAToSelectedFile() {}
|
||||
/* 8000E060 */ void FileManager::copyFileAToSelectedFile() {
|
||||
copyFileAToFile(mSelectedFile);
|
||||
}
|
||||
/* 8000E070 */ void FileManager::copyFileAToFile(int fileNum) {}
|
||||
/* 8000E7C0 */ void FileManager::copyFile(int from, int to) {}
|
||||
/* 8000EF80 */ void FileManager::saveFileAToSelectedFile() {}
|
||||
/* 8000EF80 */ void FileManager::saveFileAToSelectedFile() {
|
||||
saveFileAToFile(mSelectedFile);
|
||||
}
|
||||
/* 8000EF90 */ void FileManager::saveFileAToFile(int fileNum) {}
|
||||
/* 8000F730 */ void FileManager::copyCurrentToFileB() {}
|
||||
/* 8000FDF0 */ void FileManager::copySelectedFileSkipData() {}
|
||||
/* 8000FE00 */ void FileManager::copySkipData(int fileNum) {}
|
||||
/* 8000FDF0 */ void FileManager::copySelectedFileSkipData() {
|
||||
copySkipData(mSelectedFile);
|
||||
}
|
||||
/* 8000FE00 */ void FileManager::copySkipData(u8 fileNum) {
|
||||
if (fileNum < 3) {
|
||||
SkipData *curr = &mSkipData;
|
||||
SkipData *data = mpSkipData;
|
||||
curr->crc = calcFileCRC(&curr->data, sizeof(mSkipData.data));
|
||||
data[fileNum] = *curr;
|
||||
}
|
||||
}
|
||||
/* 8000FEB0 */ void FileManager::setInfo_FileB() {}
|
||||
/* 8000FF60 */ void FileManager::clearFileA() {}
|
||||
/* 8000FF60 */ void FileManager::clearFileA() {
|
||||
SkipData *data;
|
||||
SaveFile *file = getFileA();
|
||||
memset(file, 0, sizeof(SaveFile));
|
||||
file->new_file = 1;
|
||||
file->checksum = calcFileCRC(file, sizeof(SaveFile) - sizeof(u32));
|
||||
data = &mSkipData;
|
||||
memset(&data->data, 0, sizeof(SkipData));
|
||||
data->crc = calcFileCRC(data->data, sizeof(mSkipData.data));
|
||||
}
|
||||
|
||||
/* 80010000 */ void FileManager::initBlankSaveFiles() {}
|
||||
/* 80010160 */ void FileManager::initSkipData() {}
|
||||
/* 80010000 */ void FileManager::initBlankSaveFiles() {
|
||||
memset(mpSavedSaveFiles, 0, 0xfbe0);
|
||||
mSelectedFile = 0;
|
||||
memset(mIsFileEmpty, 0, 3);
|
||||
SkipData *data;
|
||||
|
||||
SaveFile *file;
|
||||
SavedSaveFiles *saved = mpSavedSaveFiles;
|
||||
|
||||
mHeroNames[0][0] = '\0';
|
||||
mPlayTime[0] = 0;
|
||||
mCurrentHealth[0] = 0;
|
||||
mCurrentHealthCapacity[0] = 0;
|
||||
|
||||
mHeroNames[1][0] = '\0';
|
||||
mPlayTime[1] = 0;
|
||||
mCurrentHealth[1] = 0;
|
||||
mCurrentHealthCapacity[1] = 0;
|
||||
|
||||
mHeroNames[2][0] = '\0';
|
||||
mPlayTime[2] = 0;
|
||||
mCurrentHealth[2] = 0;
|
||||
mCurrentHealthCapacity[2] = 0;
|
||||
|
||||
getRegionVersion(saved->regionCode);
|
||||
saved->m_0x1C = 0x1d;
|
||||
|
||||
file = saved->saveFiles;
|
||||
for (int num = 0; num < 3; num++, file++) {
|
||||
file->new_file = 1;
|
||||
u32 crc = calcFileCRC(file, sizeof(SaveFile) - sizeof(u32));
|
||||
file->checksum = crc;
|
||||
}
|
||||
|
||||
int i;
|
||||
for (i = 0, data = saved->skipData; i < 3; i++, data++) {
|
||||
u32 crc = calcFileCRC(data->data, sizeof(data->data));
|
||||
data->crc = crc;
|
||||
}
|
||||
|
||||
clearFileA();
|
||||
mIsFileUnk1[1] = 0;
|
||||
mIsFileUnk1[2] = 0;
|
||||
mIsFileInvalid[0] = 0;
|
||||
mIsFileInvalid[1] = 0;
|
||||
m_0xA84C = 0;
|
||||
mIsFileInvalid[2] = 0;
|
||||
mIsFileDataDirty[0] = 0;
|
||||
mIsFileDataDirty[1] = 0;
|
||||
mIsFileDataDirty[2] = 0;
|
||||
initSkipData();
|
||||
}
|
||||
/* 80010160 */ void FileManager::initSkipData() {
|
||||
memset(mpSkipData, 0, 0x80);
|
||||
SkipData *data;
|
||||
int i;
|
||||
for (i = 0, data = mpSkipData; i < 3; i++, data++) {
|
||||
u32 crc = calcFileCRC(data->data, sizeof(data->data));
|
||||
data->crc = crc;
|
||||
}
|
||||
mIsFileSkipDataDirty[0] = 0;
|
||||
mIsFileSkipDataDirty[1] = 0;
|
||||
mIsFileSkipDataDirty[2] = 0;
|
||||
}
|
||||
|
||||
/* 800101F0 */ void FileManager::unsetFileANewFile() {}
|
||||
/* 80010220 */ void FileManager::saveT1SaveInfo(u8 entranceT1LoadFlag) {}
|
||||
/* 80010350 */ void FileManager::copyFileSkipData(int fileNum) {}
|
||||
/* 80010440 */ void FileManager::clearTempFileData() {}
|
||||
extern "C" void fn_800C01F0(); // todo flag managers
|
||||
/* 80010440 */ void FileManager::clearTempFileData() {
|
||||
memset(&mFileA, 0, sizeof(SaveFile));
|
||||
memset(&mFileB, 0, sizeof(SaveFile));
|
||||
memset(&mSkipData, 0, sizeof(SkipData));
|
||||
fn_800C01F0();
|
||||
}
|
||||
/* 800104A0 */ void FileManager::saveAfterCredits() {}
|
||||
|
||||
/* 80011210 */ SaveFile* FileManager::getCurrentFile() {}
|
||||
/* 80011250 */ u16* FileManager::getSkipFlags2() {}
|
||||
/* 80011260 */ SaveFile* FileManager::getFileA() {}
|
||||
/* 80011270 */ SaveFile* FileManager::getFileB() {}
|
||||
/* 80011280 */ void FileManager::calcFileCRC(const SaveFile* file, u32 length) {}
|
||||
/* 80011290 */ void FileManager::updateEmptyFiles() {}
|
||||
/* 800112D0 */ void FileManager::updateEmptyFileFlags() {}
|
||||
/* 80011210 */ SaveFile *FileManager::getCurrentFile() {
|
||||
return isFileInactive() ? &mFileB : &mFileA;
|
||||
}
|
||||
/* 80011250 */ u16 *FileManager::getSkipFlags2() {}
|
||||
/* 80011260 */ SaveFile *FileManager::getFileA() {
|
||||
return &mFileA;
|
||||
}
|
||||
/* 80011270 */ SaveFile *FileManager::getFileB() {
|
||||
return &mFileB;
|
||||
}
|
||||
/* 80011280 */ u32 FileManager::calcFileCRC(const void *data, u32 length) {}
|
||||
/* 80011290 */ void FileManager::updateEmptyFiles() {
|
||||
updateEmptyFileFlags();
|
||||
refreshSaveFileData();
|
||||
}
|
||||
/* 800112D0 */ void FileManager::updateEmptyFileFlags() {
|
||||
SaveFile *saves = mpSavedSaveFiles->saveFiles;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (saves[i].new_file == 1) {
|
||||
mIsFileEmpty[i] = 1;
|
||||
} else {
|
||||
mIsFileEmpty[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* 80011370 */ bool FileManager::isFileEmpty(int fileNum) {}
|
||||
/* 80011390 */ bool FileManager::isFileUnk3(int fileNum) {}
|
||||
/* 80011390 */ bool FileManager::isFileDirty(int fileNum) {}
|
||||
/* 800113B0 */ u8 FileManager::get_0xA84C() {}
|
||||
/* 800113C0 */ bool FileManager::checkRegionCode() {}
|
||||
/* 80011440 */ bool FileManager::checkFileCRC(int fileNum) {}
|
||||
/* 80011440 */ bool FileManager::checkFileCRC(u8 fileNum) {}
|
||||
/* 80011490 */
|
||||
bool FileManager::isFileInactive() {
|
||||
fBase_c* actor = fManager_c::searchBaseByGroupType(1, nullptr);
|
||||
bool FileManager::isFileInactive() const {
|
||||
fBase_c *actor = fManager_c::searchBaseByGroupType(1, nullptr);
|
||||
if (actor) {
|
||||
if (actor->profile_name == fProfile::TITLE && !mAntiCommitFlag)
|
||||
if (actor->profile_name == fProfile::TITLE && !mAntiCommitFlag) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/* 80011500 */ void FileManager::setPlayerInfoFileA() {}
|
||||
/* 800115E0 */ void FileManager::setT3Info(mVec3_c* pos, mAng3_c* rot) {}
|
||||
/* 800116C0 */ void FileManager::getRegionVersion(char* out) {}
|
||||
|
||||
/* 800115E0 */ void FileManager::setT3Info(mVec3_c *pos, mAng3_c *rot) {}
|
||||
/* 800116C0 */ void FileManager::getRegionVersion(char *out) {}
|
||||
|
||||
@@ -5,68 +5,68 @@
|
||||
u16* SaveFile::getStoryFlags0() {
|
||||
return story_flags;
|
||||
}
|
||||
// 0x800099c0 getStoryFlags1__8SaveFileFv
|
||||
u16* SaveFile::getStoryFlags1() {
|
||||
// 0x800099c0 getStoryFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getStoryFlags1() const {
|
||||
return story_flags;
|
||||
}
|
||||
// 0x800099d0 getItemFlags0__8SaveFileFv
|
||||
u16* SaveFile::getItemFlags0() {
|
||||
return item_flags;
|
||||
}
|
||||
// 0x800099e0 getItemFlags1__8SaveFileFv
|
||||
u16* SaveFile::getItemFlags1() {
|
||||
// 0x800099e0 getItemFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getItemFlags1() const {
|
||||
return item_flags;
|
||||
}
|
||||
// 0x800099F0 getDungeonFlags0__8SaveFileFv
|
||||
u16* SaveFile::getDungeonFlags0() {
|
||||
return dungeon_flags[0];
|
||||
}
|
||||
// 0x80009A00 getDungeonFlags1__8SaveFileFv
|
||||
u16* SaveFile::getDungeonFlags1() {
|
||||
// 0x80009A00 getDungeonFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getDungeonFlags1() const {
|
||||
return dungeon_flags[0];
|
||||
}
|
||||
// 0x80009A10 getSceneFlags0__8SaveFileFv
|
||||
u16* SaveFile::getSceneFlags0() {
|
||||
return scene_flags;
|
||||
}
|
||||
// 0x80009A20 getSceneFlags1__8SaveFileFv
|
||||
u16* SaveFile::getSceneFlags1() {
|
||||
// 0x80009A20 getSceneFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getSceneFlags1() const {
|
||||
return scene_flags;
|
||||
}
|
||||
// 0x80009A30 getTboxFlags0__8SaveFileFv
|
||||
u16* SaveFile::getTboxFlags0() {
|
||||
return tbox_flags;
|
||||
}
|
||||
// 0x80009A40 getTboxFlags1__8SaveFileFv
|
||||
u16* SaveFile::getTboxFlags1() {
|
||||
// 0x80009A40 getTboxFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getTboxFlags1() const {
|
||||
return tbox_flags;
|
||||
}
|
||||
// 0x80009A50 getTempFlags0__8SaveFileFv
|
||||
u16* SaveFile::getTempFlags0() {
|
||||
return temp_flags;
|
||||
}
|
||||
// 0x80009A60 getTempFlags1__8SaveFileFv
|
||||
u16* SaveFile::getTempFlags1() {
|
||||
// 0x80009A60 getTempFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getTempFlags1() const {
|
||||
return temp_flags;
|
||||
}
|
||||
// 0x80009A70 getZoneFlags0__8SaveFileFv
|
||||
u16* SaveFile::getZoneFlags0() {
|
||||
return zone_flags;
|
||||
}
|
||||
// 0x80009A80 getZoneFlags1__8SaveFileFv
|
||||
u16* SaveFile::getZoneFlags1() {
|
||||
// 0x80009A80 getZoneFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getZoneFlags1() const {
|
||||
return zone_flags;
|
||||
}
|
||||
// 0x80009A90 getUnkFlags0__8SaveFileFv
|
||||
u16* SaveFile::getUnkFlags0() {
|
||||
return unk_flags;
|
||||
// 0x80009A90 getEnemyFlags0__8SaveFileFv
|
||||
u16* SaveFile::getEnemyFlags0() {
|
||||
return enemy_flags;
|
||||
}
|
||||
// 0x80009AA0 getUnkFlags1__8SaveFileFv
|
||||
u16* SaveFile::getUnkFlags1() {
|
||||
return unk_flags;
|
||||
// 0x80009AA0 getEnemyFlags1__8SaveFileCFv
|
||||
const u16* SaveFile::getEnemyFlags1() const {
|
||||
return enemy_flags;
|
||||
}
|
||||
// 0x80009AB0 getPlayerName__8SaveFileFv
|
||||
s16* SaveFile::getPlayerName() {
|
||||
wchar_t* SaveFile::getPlayerName() {
|
||||
return player_name;
|
||||
}
|
||||
|
||||
@@ -105,4 +105,4 @@ s8* SaveFile::getAreaT2() {
|
||||
// 0x80009D20 getAreaT3__8SaveFileFv
|
||||
s8* SaveFile::getAreaT3() {
|
||||
return area_t3;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user