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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions config/RSBE01_02/rels/ft_purin/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,11 @@ fn_124_57B8 = .text:0x000057B8; // type:function size:0x78
fn_124_5830 = .text:0x00005830; // type:function size:0x5C
fn_124_588C = .text:0x0000588C; // type:function size:0x78
fn_124_5904 = .text:0x00005904; // type:function size:0x5C
fn_124_5960 = .text:0x00005960; // type:function size:0x144
__dt__180soInsideEventManageModuleBuilder<110soInsideEventManageModuleBuildConfig<32,40,4,4,4,4,4,4,5,4,4,4,4,4,1,1,0,2,1,30ftInsideEventManageModuleTypes>,30ftInsideEventManageModuleTypes>Fv = .text:0x00005960; // type:function size:0x144
fn_124_5AA4 = .text:0x00005AA4; // type:function size:0x14
fn_124_5AB8 = .text:0x00005AB8; // type:function size:0xC4
fn_124_5B7C = .text:0x00005B7C; // type:function size:0x8
fn_124_5B84 = .text:0x00005B84; // type:function size:0x354
__ct__180soInsideEventManageModuleBuilder<110soInsideEventManageModuleBuildConfig<32,40,4,4,4,4,4,4,5,4,4,4,4,4,1,1,0,2,1,30ftInsideEventManageModuleTypes>,30ftInsideEventManageModuleTypes>Fv = .text:0x00005B84; // type:function size:0x354
fn_124_5ED8 = .text:0x00005ED8; // type:function size:0x68
fn_124_5F40 = .text:0x00005F40; // type:function size:0x88
fn_124_5FC8 = .text:0x00005FC8; // type:function size:0x19C
Expand Down
80 changes: 40 additions & 40 deletions config/RSBE01_02/rels/sora_melee/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5910,8 +5910,8 @@ fn_27_8E8DC = .text:0x0008E8DC; // type:function size:0x74
fn_27_8E950 = .text:0x0008E950; // type:function size:0x190
fn_27_8EAE0 = .text:0x0008EAE0; // type:function size:0xC4
fn_27_8EBA4 = .text:0x0008EBA4; // type:function size:0x4C
fn_27_8EBF0 = .text:0x0008EBF0; // type:function size:0x64
fn_27_8EC54 = .text:0x0008EC54; // type:function size:0x70
__ct__23soEventManageModuleImplFPv = .text:0x0008EBF0; // type:function size:0x64
__dt__23soEventManageModuleImplFv = .text:0x0008EC54; // type:function size:0x70
fn_27_8ECC4 = .text:0x0008ECC4; // type:function size:0x84
fn_27_8ED48 = .text:0x0008ED48; // type:function size:0x18
fn_27_8ED60 = .text:0x0008ED60; // type:function size:0x38
Expand Down Expand Up @@ -8640,17 +8640,17 @@ fn_27_D5A38 = .text:0x000D5A38; // type:function size:0x10
fn_27_D5A48 = .text:0x000D5A48; // type:function size:0x104
fn_27_D5B4C = .text:0x000D5B4C; // type:function size:0xBC
fn_27_D5C08 = .text:0x000D5C08; // type:function size:0x10
fn_27_D5C18 = .text:0x000D5C18; // type:function size:0x104
fn_27_D5D1C = .text:0x000D5D1C; // type:function size:0xBC
__ct__49soEventUnitWithWorkArea<20soModelEventObserver,4>Fss = .text:0x000D5C18; // type:function size:0x104
__dt__49soEventUnitWithWorkArea<20soModelEventObserver,4>Fv = .text:0x000D5D1C; // type:function size:0xBC
fn_27_D5DD8 = .text:0x000D5DD8; // type:function size:0x10
fn_27_D5DE8 = .text:0x000D5DE8; // type:function size:0x104
fn_27_D5EEC = .text:0x000D5EEC; // type:function size:0xBC
fn_27_D5FA8 = .text:0x000D5FA8; // type:function size:0x10
fn_27_D5FB8 = .text:0x000D5FB8; // type:function size:0x104
fn_27_D60BC = .text:0x000D60BC; // type:function size:0xBC
__ct__50soEventUnitWithWorkArea<21soDamageEventObserver,4>Fss = .text:0x000D5FB8; // type:function size:0x104
__dt__50soEventUnitWithWorkArea<21soDamageEventObserver,4>Fv = .text:0x000D60BC; // type:function size:0xBC
fn_27_D6178 = .text:0x000D6178; // type:function size:0x10
fn_27_D6188 = .text:0x000D6188; // type:function size:0x104
fn_27_D628C = .text:0x000D628C; // type:function size:0xBC
__ct__50soEventUnitWithWorkArea<21soMotionEventObserver,1>Fss = .text:0x000D6188; // type:function size:0x104
__dt__50soEventUnitWithWorkArea<21soMotionEventObserver,1>Fv = .text:0x000D628C; // type:function size:0xBC
fn_27_D6348 = .text:0x000D6348; // type:function size:0x10
fn_27_D6358 = .text:0x000D6358; // type:function size:0x104
fn_27_D645C = .text:0x000D645C; // type:function size:0xBC
Expand All @@ -8676,11 +8676,11 @@ fn_27_D6FF8 = .text:0x000D6FF8; // type:function size:0x10
fn_27_D7008 = .text:0x000D7008; // type:function size:0x104
fn_27_D710C = .text:0x000D710C; // type:function size:0xBC
fn_27_D71C8 = .text:0x000D71C8; // type:function size:0x10
fn_27_D71D8 = .text:0x000D71D8; // type:function size:0x104
fn_27_D72DC = .text:0x000D72DC; // type:function size:0xBC
__ct__56soEventUnitWithWorkArea<27soCollisionHitEventObserver,4>Fss = .text:0x000D71D8; // type:function size:0x104
__dt__56soEventUnitWithWorkArea<27soCollisionHitEventObserver,4>Fv = .text:0x000D72DC; // type:function size:0xBC
fn_27_D7398 = .text:0x000D7398; // type:function size:0x10
fn_27_D73A8 = .text:0x000D73A8; // type:function size:0x104
fn_27_D74AC = .text:0x000D74AC; // type:function size:0xBC
__ct__58soEventUnitWithWorkArea<29soCollisionCatchEventObserver,1>Fss = .text:0x000D73A8; // type:function size:0x104
__dt__58soEventUnitWithWorkArea<29soCollisionCatchEventObserver,1>Fv = .text:0x000D74AC; // type:function size:0xBC
fn_27_D7568 = .text:0x000D7568; // type:function size:0x10
fn_27_D7578 = .text:0x000D7578; // type:function size:0x104
fn_27_D767C = .text:0x000D767C; // type:function size:0xBC
Expand Down Expand Up @@ -8735,8 +8735,8 @@ fn_27_D8DE4 = .text:0x000D8DE4; // type:function size:0x10
fn_27_D8DF4 = .text:0x000D8DF4; // type:function size:0x10
fn_27_D8E04 = .text:0x000D8E04; // type:function size:0x8
__ct__46soInstanceUnitFullProperty<P15soKineticEnergy>FRCP15soKineticEnergylRCss = .text:0x000D8E0C; // type:function size:0x1C
fn_27_D8E28 = .text:0x000D8E28; // type:function size:0x98
fn_27_D8EC0 = .text:0x000D8EC0; // type:function size:0x70
__ct__98soInstanceManagerSimpleEntity<P11soEventUnit,50soArrayVector<30soInstanceUnit<P11soEventUnit>,19>>Fv = .text:0x000D8E28; // type:function size:0x98
__dt__98soInstanceManagerSimpleEntity<P11soEventUnit,50soArrayVector<30soInstanceUnit<P11soEventUnit>,19>>Fv = .text:0x000D8EC0; // type:function size:0x70
fn_27_D8F30 = .text:0x000D8F30; // type:function size:0x28
fn_27_D8F58 = .text:0x000D8F58; // type:function size:0x28
fn_27_D8F80 = .text:0x000D8F80; // type:function size:0x28
Expand Down Expand Up @@ -13573,16 +13573,16 @@ fn_27_18C8A0 = .text:0x0018C8A0; // type:function size:0x110
fn_27_18C9B0 = .text:0x0018C9B0; // type:function size:0x11C
fn_27_18CACC = .text:0x0018CACC; // type:function size:0x468
fn_27_18CF34 = .text:0x0018CF34; // type:function size:0x40
fn_27_18CF74 = .text:0x0018CF74; // type:function size:0xBC
fn_27_18D030 = .text:0x0018D030; // type:function size:0xBC
fn_27_18D0EC = .text:0x0018D0EC; // type:function size:0xBC
fn_27_18D1A8 = .text:0x0018D1A8; // type:function size:0xBC
fn_27_18D264 = .text:0x0018D264; // type:function size:0xBC
fn_27_18D320 = .text:0x0018D320; // type:function size:0xBC
__dt__54soEventUnitWithWorkArea<25soItemManageEventObserver,1>Fv = .text:0x0018CF74; // type:function size:0xBC
__dt__59soEventUnitWithWorkArea<30soCollisionSearchEventObserver,4>Fv = .text:0x0018D030; // type:function size:0xBC
__dt__61soEventUnitWithWorkArea<32soCollisionAbsorberEventObserver,4>Fv = .text:0x0018D0EC; // type:function size:0xBC
__dt__62soEventUnitWithWorkArea<33soCollisionReflectorEventObserver,4>Fv = .text:0x0018D1A8; // type:function size:0xBC
__dt__59soEventUnitWithWorkArea<30soCollisionShieldEventObserver,4>Fv = .text:0x0018D264; // type:function size:0xBC
__dt__51soEventUnitWithWorkArea<22soCaptureEventObserver,4>Fv = .text:0x0018D320; // type:function size:0xBC
fn_27_18D3DC = .text:0x0018D3DC; // type:function size:0xBC
fn_27_18D498 = .text:0x0018D498; // type:function size:0xBC
fn_27_18D554 = .text:0x0018D554; // type:function size:0xBC
fn_27_18D610 = .text:0x0018D610; // type:function size:0xBC
__dt__59soEventUnitWithWorkArea<30soCollisionAttackEventObserver,4>Fv = .text:0x0018D554; // type:function size:0xBC
__dt__53soEventUnitWithWorkArea<24soSituationEventObserver,4>Fv = .text:0x0018D610; // type:function size:0xBC
fn_27_18D6CC = .text:0x0018D6CC; // type:function size:0xBC
fn_27_18D788 = .text:0x0018D788; // type:function size:0xBC
fn_27_18D844 = .text:0x0018D844; // type:function size:0x88
Expand Down Expand Up @@ -13733,7 +13733,7 @@ fn_27_192AF8 = .text:0x00192AF8; // type:function size:0x164
fn_27_192C5C = .text:0x00192C5C; // type:function size:0x88
fn_27_192CE4 = .text:0x00192CE4; // type:function size:0x40
fn_27_192D24 = .text:0x00192D24; // type:function size:0x28
__ct__18ftFighterBuildDataFl6ftKindQ25Heaps8HeapTypeQ25Heaps8HeapTypeQ25Heaps8HeapTypeScP16soModuleAccesserlPvPv = .text:0x00192D4C; // type:function size:0x9C
__ct__18ftFighterBuildDataFl6ftKindQ25Heaps8HeapTypeQ25Heaps8HeapTypeQ25Heaps8HeapTypeUcP16soModuleAccesserlPvPv = .text:0x00192D4C; // type:function size:0x9C
getAnimCmdData__18ftFighterBuildDataFUll = .text:0x00192DE8; // type:function size:0xA0
getAnimCmdDisguiseList__18ftFighterBuildDataFbl = .text:0x00192E88; // type:function size:0x38
getMdlResId__18ftFighterBuildDataFv = .text:0x00192EC0; // type:function size:0xC
Expand Down Expand Up @@ -16166,11 +16166,11 @@ initialize__41soEventObserver<22soGimmickEventObserver>FsSc = .text:0x001A7DB8;
addObserverSub__41soEventObserver<22soGimmickEventObserver>FlP22soGimmickEventObserverSc = .text:0x001A7DD0; // type:function size:0x244
fn_27_1A8014 = .text:0x001A8014; // type:function size:0x244
fn_27_1A8258 = .text:0x001A8258; // type:function size:0x244
__ct__48soEventUnitWithWorkArea<19soLinkEventObserver,4>Fls = .text:0x001A849C; // type:function size:0x104
__ct__48soEventUnitWithWorkArea<19soLinkEventObserver,4>Fss = .text:0x001A849C; // type:function size:0x104
__dt__48soEventUnitWithWorkArea<19soLinkEventObserver,4>Fv = .text:0x001A85A0; // type:function size:0xBC
getObserverNum__48soEventUnitWithWorkArea<19soLinkEventObserver,4>CFv = .text:0x001A865C; // type:function size:0x10
fn_27_1A866C = .text:0x001A866C; // type:function size:0x104
fn_27_1A8770 = .text:0x001A8770; // type:function size:0xBC
__ct__48soEventUnitWithWorkArea<19soTurnEventObserver,2>Fss = .text:0x001A866C; // type:function size:0x104
__dt__48soEventUnitWithWorkArea<19soTurnEventObserver,2>Fv = .text:0x001A8770; // type:function size:0xBC
fn_27_1A882C = .text:0x001A882C; // type:function size:0x10
fn_27_1A883C = .text:0x001A883C; // type:function size:0x104
fn_27_1A8940 = .text:0x001A8940; // type:function size:0xBC
Expand Down Expand Up @@ -16200,8 +16200,8 @@ fn_27_1A9704 = .text:0x001A9704; // type:function size:0x10
fn_27_1A9714 = .text:0x001A9714; // type:function size:0x104
fn_27_1A9818 = .text:0x001A9818; // type:function size:0xBC
fn_27_1A98D4 = .text:0x001A98D4; // type:function size:0x10
fn_27_1A98E4 = .text:0x001A98E4; // type:function size:0x104
fn_27_1A99E8 = .text:0x001A99E8; // type:function size:0xBC
__ct__51soEventUnitWithWorkArea<21soStatusEventObserver,32>Fss = .text:0x001A98E4; // type:function size:0x104
__dt__51soEventUnitWithWorkArea<21soStatusEventObserver,32>Fv = .text:0x001A99E8; // type:function size:0xBC
fn_27_1A9AA4 = .text:0x001A9AA4; // type:function size:0x10
fn_27_1A9AB4 = .text:0x001A9AB4; // type:function size:0x104
fn_27_1A9BB8 = .text:0x001A9BB8; // type:function size:0xBC
Expand All @@ -16220,41 +16220,41 @@ fn_27_1AA2F8 = .text:0x001AA2F8; // type:function size:0x10
fn_27_1AA308 = .text:0x001AA308; // type:function size:0x104
fn_27_1AA40C = .text:0x001AA40C; // type:function size:0xBC
fn_27_1AA4C8 = .text:0x001AA4C8; // type:function size:0x10
fn_27_1AA4D8 = .text:0x001AA4D8; // type:function size:0x104
fn_27_1AA5DC = .text:0x001AA5DC; // type:function size:0xBC
__ct__52soEventUnitWithWorkArea<22soAnimCmdEventObserver,40>Fss = .text:0x001AA4D8; // type:function size:0x104
__dt__52soEventUnitWithWorkArea<22soAnimCmdEventObserver,40>Fv = .text:0x001AA5DC; // type:function size:0xBC
fn_27_1AA698 = .text:0x001AA698; // type:function size:0x10
fn_27_1AA6A8 = .text:0x001AA6A8; // type:function size:0x104
fn_27_1AA7AC = .text:0x001AA7AC; // type:function size:0xBC
fn_27_1AA868 = .text:0x001AA868; // type:function size:0x10
fn_27_1AA878 = .text:0x001AA878; // type:function size:0x104
fn_27_1AA97C = .text:0x001AA97C; // type:function size:0x10
fn_27_1AA98C = .text:0x001AA98C; // type:function size:0x104
fn_27_1AAA90 = .text:0x001AAA90; // type:function size:0xBC
__ct__51soEventUnitWithWorkArea<22soArticleEventObserver,5>Fss = .text:0x001AA98C; // type:function size:0x104
__dt__51soEventUnitWithWorkArea<22soArticleEventObserver,5>Fv = .text:0x001AAA90; // type:function size:0xBC
fn_27_1AAB4C = .text:0x001AAB4C; // type:function size:0x10
fn_27_1AAB5C = .text:0x001AAB5C; // type:function size:0x104
__ct__51soEventUnitWithWorkArea<22soCaptureEventObserver,4>Fss = .text:0x001AAB5C; // type:function size:0x104
fn_27_1AAC60 = .text:0x001AAC60; // type:function size:0x10
fn_27_1AAC70 = .text:0x001AAC70; // type:function size:0x104
fn_27_1AAD74 = .text:0x001AAD74; // type:function size:0xBC
fn_27_1AAE30 = .text:0x001AAE30; // type:function size:0x10
fn_27_1AAE40 = .text:0x001AAE40; // type:function size:0x104
__ct__53soEventUnitWithWorkArea<24soSituationEventObserver,4>Fss = .text:0x001AAE40; // type:function size:0x104
fn_27_1AAF44 = .text:0x001AAF44; // type:function size:0x10
fn_27_1AAF54 = .text:0x001AAF54; // type:function size:0x104
__ct__54soEventUnitWithWorkArea<25soItemManageEventObserver,1>Fss = .text:0x001AAF54; // type:function size:0x104
fn_27_1AB058 = .text:0x001AB058; // type:function size:0x10
fn_27_1AB068 = .text:0x001AB068; // type:function size:0x104
fn_27_1AB16C = .text:0x001AB16C; // type:function size:0xBC
fn_27_1AB228 = .text:0x001AB228; // type:function size:0x10
fn_27_1AB238 = .text:0x001AB238; // type:function size:0x104
fn_27_1AB33C = .text:0x001AB33C; // type:function size:0xBC
fn_27_1AB3F8 = .text:0x001AB3F8; // type:function size:0x10
fn_27_1AB408 = .text:0x001AB408; // type:function size:0x104
__ct__59soEventUnitWithWorkArea<30soCollisionAttackEventObserver,4>Fss = .text:0x001AB408; // type:function size:0x104
fn_27_1AB50C = .text:0x001AB50C; // type:function size:0x10
fn_27_1AB51C = .text:0x001AB51C; // type:function size:0x104
__ct__59soEventUnitWithWorkArea<30soCollisionSearchEventObserver,4>Fss = .text:0x001AB51C; // type:function size:0x104
fn_27_1AB620 = .text:0x001AB620; // type:function size:0x10
fn_27_1AB630 = .text:0x001AB630; // type:function size:0x104
__ct__59soEventUnitWithWorkArea<30soCollisionShieldEventObserver,4>Fss = .text:0x001AB630; // type:function size:0x104
fn_27_1AB734 = .text:0x001AB734; // type:function size:0x10
fn_27_1AB744 = .text:0x001AB744; // type:function size:0x104
__ct__61soEventUnitWithWorkArea<32soCollisionAbsorberEventObserver,4>Fss = .text:0x001AB744; // type:function size:0x104
fn_27_1AB848 = .text:0x001AB848; // type:function size:0x10
fn_27_1AB858 = .text:0x001AB858; // type:function size:0x104
__ct__62soEventUnitWithWorkArea<33soCollisionReflectorEventObserver,4>Fss = .text:0x001AB858; // type:function size:0x104
fn_27_1AB95C = .text:0x001AB95C; // type:function size:0x10
fn_27_1AB96C = .text:0x001AB96C; // type:function size:0xA0
fn_27_1ABA0C = .text:0x001ABA0C; // type:function size:0x1A8
Expand Down
94 changes: 53 additions & 41 deletions src/mo_fighter/ft_purin/ft_purin.cpp
Original file line number Diff line number Diff line change
@@ -1,77 +1,89 @@
#include <StaticAssert.h>
#include <ft/fighter.h>
#include <ft/ft_entry.h>
#include <ft/ft_extend_param_accesser.h>
#include <ft/ft_fighter_build_data.h>
#include <ft/purin/ft_purin_extend_param_accesser.h>
#include <so/so_array.h>
#include <so/event/so_event_manage_module_impl.h>
#include <so/event/so_event_system.h>
#include <so/so_inside_event_manage_module_builder.h>
#include <so/so_instance_unit.h>
#include <so/so_module_accesser.h>
#include <so/template_utils.h>
#include <sr/sr_common.h>
#include <StaticAssert.h>
#include <ft/fighter.h>
#include <types.h>

ftPurinExtendParamAccesser g_ftPurinExtendParamAccesser;

template<typename BuildConfig>
class ftFighterBuilder : public Fighter {
public:
ftFighterBuilder(s32 entryId, ftKind kind, s32 p3, soModuleAccesser* acc) :
Fighter(entryId, kind, p3, acc) {
// TODO create ftFighterBuildData
typedef soInsideEventManageModuleBuildConfig
<32, 40, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 1, 1, 0, 2, 1, ftInsideEventManageModuleTypes>
ftPurinInsideEventManageModuleBuildConfig;

}
};
// FIXME: Present only to emit the constructor; delete once ftPurin is done
void testBuilder() {
soInsideEventManageModuleBuilder<ftPurinInsideEventManageModuleBuildConfig, ftInsideEventManageModuleTypes> insideBuilder;
}
soInsideEventManageModuleBuilder<ftPurinInsideEventManageModuleBuildConfig, ftInsideEventManageModuleTypes> g_insideBuilder;

// TODO: Are there more template params?
template<u32 C1, u32 C2, u32 C3, u32 C4, u32 C5,
u32 C6, u32 C7, u32 C8, u32 C9, u32 C10,
u32 C11, u32 C12, u32 C13, u32 C14, u32 C15,
u32 C16, u32 C17, u32 C18>
class soInsideEventManageModuleBuildConfig {
ftPurinExtendParamAccesser g_ftPurinExtendParamAccesser;

};
// size is 0x9A48
template<typename BC>
class ftFighterBuilder : public Fighter {
BC m_buildConfig; // +0x194
u32 unk9A38[2]; // cameraRangeSet TODO type
u32 unk9A40[2]; // cameraClipSphereSet TODO type

// e.g. soEventUnitWithWorkArea<soStatusEventObserver,32>
// TODO: more template params?
template<typename Cfg>
class soInsideEventManageModuleBuilder {
public:
soInsideEventManageModuleBuilder();
ftFighterBuilder(s32 entryId,
ftKind kind,
Heaps::HeapType instHeap,
Heaps::HeapType nwModelInstHeap,
Heaps::HeapType nwMotionInstHeap) :
Fighter(entryId, kind, instHeap, &m_buildConfig.unkB64),
m_buildConfig(ftFighterBuildData(entryId,
Fighter_Jigglypuff,
instHeap,
nwModelInstHeap,
nwMotionInstHeap,
0,
m_moduleAccesser,
-1,
&unk9A38,
&unk9A40)) {
}
};

class ftPurinBuildConfig {
public:
soInsideEventManageModuleBuilder<ftPurinInsideEventManageModuleBuildConfig, ftInsideEventManageModuleTypes> unk194;
soModuleAccesser unkB64;
u8 unkC44[0x8DF4];
ftPurinBuildConfig(const ftFighterBuildData& fbd) {

}
~ftPurinBuildConfig() { }
};

// Note: The values passed here are the capacities of
// the soEventUnitWithWorkAreas managed by the builder
typedef soInsideEventManageModuleBuildConfig
<32, 40, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 1, 1, 2, 1>
ftPurinInsideEventManageModuleBuildConfig;

class ftPurin : public ftFighterBuilder<ftPurinBuildConfig> {
soInsideEventManageModuleBuilder<ftPurinInsideEventManageModuleBuildConfig> unk194;
u8 unk198[0x9CC];
soModuleAccesser unkB64;
u8 unkC44[0x8DF4];
u32 unk9A38; // cameraRangeSet TODO type
u8 unk9A3C[0x4];
u32 unk9A40; // cameraClipSphereSet TODO type

// begin ftPurin fields
soArrayContractibleTable<const soStatusData> unk9A48;
void* unk9A58; // TODO type
public:
ftPurin(s32 entryId,
s32 p2,
Heaps::HeapType instHeap,
Heaps::HeapType nwModelInstHeap,
Heaps::HeapType nwMotionInstHeap);
};
// static_assert(sizeof(ftPurin) == 0x9A5C, "Class is the wrong size!");

ftPurin::ftPurin(s32 entryId,
s32 p2,
Heaps::HeapType instHeap,
Heaps::HeapType nwModelInstHeap,
Heaps::HeapType nwMotionInstHeap) :
ftFighterBuilder<ftPurinBuildConfig>(entryId, Fighter_Jigglypuff, p2, &unkB64) {
ftFighterBuilder<ftPurinBuildConfig>(entryId,
Fighter_Jigglypuff,
instHeap,
nwModelInstHeap,
nwMotionInstHeap) {
// TODO
}
Loading
Loading