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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions config/RSBE01_02/rels/sora_melee/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ mo_melee/sora_melee/so/so_common_data_accesser.cpp:
.ctors start:0x0000004C end:0x00000050
.bss start:0x00002CD0 end:0x00002E58

mo_melee/sora_melee/ft/ft_class_info.cpp:
.text start:0x001254D4 end:0x001257EC
.ctors start:0x0000005C end:0x00000060
.data start:0x00029210 end:0x000292A0
.bss start:0x00003040 end:0x00003138

mo_melee/mo_melee.cpp:
.text start:0x003CBCBC end:0x003CBE40
.ctors start:0x00000514 end:0x00000518
Expand Down
31 changes: 16 additions & 15 deletions config/RSBE01_02/rels/sora_melee/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11924,13 +11924,13 @@ fn_27_1254B4 = .text:0x001254B4; // type:function size:0x8
fn_27_1254BC = .text:0x001254BC; // type:function size:0x8
fn_27_1254C4 = .text:0x001254C4; // type:function size:0x8
fn_27_1254CC = .text:0x001254CC; // type:function size:0x8
fn_27_1254D4 = .text:0x001254D4; // type:function size:0x11C
fn_27_1255F0 = .text:0x001255F0; // type:function size:0x40
fn_27_125630 = .text:0x00125630; // type:function size:0x14
fn_27_125644 = .text:0x00125644; // type:function size:0x14
fn_27_125658 = .text:0x00125658; // type:function size:0x8
fn_27_125660 = .text:0x00125660; // type:function size:0x40
fn_27_1256A0 = .text:0x001256A0; // type:function size:0x14C
__ct__11ftClassInfoFb = .text:0x001254D4; // type:function size:0x11C
__dt__11ftClassInfoFv = .text:0x001255F0; // type:function size:0x40
getClassInfo__11ftClassInfoFQ28Fighters13ftFighterKind = .text:0x00125630; // type:function size:0x14
setClassInfo__11ftClassInfoFQ28Fighters13ftFighterKindP11ftClassInfo = .text:0x00125644; // type:function size:0x14
create__15ftClassInfoNullCFv = .text:0x00125658; // type:function size:0x8
__dt__15ftClassInfoNullFv = .text:0x00125660; // type:function size:0x40
__sinit_\ft_class_info_cpp = .text:0x001256A0; // type:function size:0x14C scope:local
fn_27_1257EC = .text:0x001257EC; // type:function size:0x578
fn_27_125D64 = .text:0x00125D64; // type:function size:0xBC
fn_27_125E20 = .text:0x00125E20; // type:function size:0x64C
Expand Down Expand Up @@ -31969,14 +31969,14 @@ lbl_27_data_291C0 = .data:0x000291C0; // type:object size:0x8
lbl_27_data_291C8 = .data:0x000291C8; // type:object size:0x2E data:string
lbl_27_data_291F8 = .data:0x000291F8; // type:object size:0x10
lbl_27_data_29208 = .data:0x00029208; // type:object size:0x8
lbl_27_data_29210 = .data:0x00029210; // type:object size:0x20
__vt__15ftClassInfoNull = .data:0x00029210; // type:object size:0x1C
lbl_27_data_29230 = .data:0x00029230; // type:object size:0x10 data:string
lbl_27_data_29240 = .data:0x00029240; // type:object size:0x18
lbl_27_data_29258 = .data:0x00029258; // type:object size:0x8
lbl_27_data_29260 = .data:0x00029260; // type:object size:0x1C
lbl_27_data_29240 = .data:0x00029240; // type:object size:0x14
__RTTI__15ftClassInfoNull = .data:0x00029258; // type:object size:0x8
__vt__11ftClassInfo = .data:0x00029260; // type:object size:0x1C
lbl_27_data_2927C = .data:0x0002927C; // type:object size:0xC data:string
lbl_27_data_29288 = .data:0x00029288; // type:object size:0x10
lbl_27_data_29298 = .data:0x00029298; // type:object size:0x8
lbl_27_data_29288 = .data:0x00029288; // type:object size:0xC
__RTTI__11ftClassInfo = .data:0x00029298; // type:object size:0x8
lbl_27_data_292A0 = .data:0x000292A0; // type:object size:0x14 data:byte
lbl_27_data_292B4 = .data:0x000292B4; // type:object size:0x7 data:string
jumptable_27_data_292BC = .data:0x000292BC; // type:object size:0x9C scope:local
Expand Down Expand Up @@ -39140,8 +39140,9 @@ g_ftSlotManager = .bss:0x00002E90; // type:object size:0x8 data:4byte
lbl_27_bss_2E98 = .bss:0x00002E98; // type:object size:0x10
lbl_27_bss_2EA8 = .bss:0x00002EA8; // type:object size:0xC
g_ftInstanceManager = .bss:0x00002EB4; // type:object size:0x18C data:4byte
lbl_27_bss_3040 = .bss:0x00003040; // type:object size:0xEC data:4byte
lbl_27_bss_312C = .bss:0x0000312C; // type:object size:0xC data:4byte
g_ftClassInfoTable = .bss:0x00003040; // type:object size:0xDC scope:local data:4byte
g_ftClassInfoTableInit = .bss:0x0000311C; // type:object size:0x1 scope:local
g_ftClassInfoNull = .bss:0x0000312C; // type:object size:0xC data:4byte
lbl_27_bss_3138 = .bss:0x00003138; // type:object size:0x8 data:4byte
lbl_27_bss_3140 = .bss:0x00003140; // type:object size:0x8 data:4byte
lbl_27_bss_3148 = .bss:0x00003148; // type:object size:0x8 data:4byte
Expand Down
1 change: 1 addition & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -813,6 +813,7 @@ def MatchingFor(*versions):
Object(Matching, "mo_melee/sora_melee/so/anim/so_anim_cmd_interpreter_effect.cpp"),
Object(Matching, "mo_melee/sora_melee/so/so_photo_call_back.cpp"),
Object(Matching, "mo_melee/sora_melee/so/so_common_data_accesser.cpp"),
Object(Matching, "mo_melee/sora_melee/ft/ft_class_info.cpp"),
Object(Matching, "mo_melee/mo_melee.cpp"),
],
},
Expand Down
2 changes: 1 addition & 1 deletion include/lib/BrawlHeaders
34 changes: 34 additions & 0 deletions src/mo_melee/sora_melee/ft/ft_class_info.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#include <ft/ft_class_info.h>
#include <gm/gm_lib.h>
#include <so/so_null.h>
#include <types.h>

static const u32 FtClassInfoTableSize = 55;

static ftClassInfo* g_ftClassInfoTable[FtClassInfoTableSize];
static bool g_ftClassInfoTableInit;
ftClassInfoNull g_ftClassInfoNull;

ftClassInfo::ftClassInfo(bool isNull) : soNullable(isNull) {
if (!g_ftClassInfoTableInit) {
g_ftClassInfoTableInit = true;
for (u32 i = 0; i < FtClassInfoTableSize; i++)
g_ftClassInfoTable[i] = &g_ftClassInfoNull;
}
}

ftClassInfo::~ftClassInfo() { }

ftClassInfo* ftClassInfo::getClassInfo(Fighters::ftFighterKind kind) {
return g_ftClassInfoTable[kind];
}

void ftClassInfo::setClassInfo(Fighters::ftFighterKind kind, ftClassInfo* info) {
g_ftClassInfoTable[kind] = info;
}

ftClassInfo* ftClassInfoNull::create() const {
return nullptr;
}

ftClassInfoNull::~ftClassInfoNull() { }
Loading