diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index e54ae8b7..7218ad81 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -14,6 +14,10 @@ d/a/d_a_base.cpp: .sdata start:0x80571920 end:0x80571930 .sbss start:0x80575080 end:0x80575098 +d/a/obj/d_a_obj_base.cpp: + .text start:0x8002DE40 end:0x8002F300 + .data start:0x805015B8 end:0x80501638 + d/d_base.cpp: .text start:0x80050800 end:0x80050A14 .data start:0x80503380 end:0x805033CC diff --git a/configure.py b/configure.py index 580db76a..8fbdf9c5 100644 --- a/configure.py +++ b/configure.py @@ -11,6 +11,7 @@ LIBS = [ ["toBeSorted/bitwise_flag_helper.cpp", True], ["d/d_base.cpp", False], ["d/a/d_a_base.cpp", False], + ["d/a/obj/d_a_obj_base.cpp", False], ["toBeSorted/save_file.cpp", False], ["toBeSorted/file_manager.cpp", False], ["toBeSorted/save_manager.cpp", False], diff --git a/include/UnknownTypeBelongings.h b/include/UnknownTypeBelongings.h index 177c7f23..0dac36a6 100644 --- a/include/UnknownTypeBelongings.h +++ b/include/UnknownTypeBelongings.h @@ -26,4 +26,15 @@ struct ObjInfoPtr { /* 0x08 */ u16 fiTextEntryId; /* 0x0A */ u8 unk_0xA; /* 0x0B */ u8 subtype; +}; + +class fBase_c; +struct ActorReference { + ActorReference* prev; + ActorReference* next; + fBase_c* link; +}; + +class UnkCollider { + }; \ No newline at end of file diff --git a/include/d/a/d_a_base.h b/include/d/a/d_a_base.h index 592bd835..4f33079f 100644 --- a/include/d/a/d_a_base.h +++ b/include/d/a/d_a_base.h @@ -2,14 +2,14 @@ #include #include -#include +#include #include // Ghidra: ActorBase // size: 0xFC // non-official name class dAcBase_c : public dBase_c { public: - /* 0x68 */ mHeapAllocator mHeapAllocator; // mHeapAlloctor + /* 0x68 */ mHeapAllocator_c mHeapAllocator; // mHeapAlloctor /* 0x84 */ ObjInfoPtr* objInfo; // /* 0x88 */ int field_0x88; /* 0x8C */ int field_0x8C; diff --git a/include/d/a/en/d_a_en_base.h b/include/d/a/en/d_a_en_base.h index a4150a87..f4961976 100644 --- a/include/d/a/en/d_a_en_base.h +++ b/include/d/a/en/d_a_en_base.h @@ -5,6 +5,6 @@ // Ghidra: ActorEnemyBase // size: // non-official name -class dAcEnBase_c : public dAcOBase_c { +class dAcEnBase_c : public dAcObjBase_c { }; \ No newline at end of file diff --git a/include/d/a/npc/d_a_npc.h b/include/d/a/npc/d_a_npc.h index dca5b929..5c414adc 100644 --- a/include/d/a/npc/d_a_npc.h +++ b/include/d/a/npc/d_a_npc.h @@ -7,6 +7,6 @@ // Ghidra: ActorNpcBase // size: 0x6e4 // official name -class dAcNpc_c : public dAcOBase_c { +class dAcNpc_c : public dAcObjBase_c { }; \ No newline at end of file diff --git a/include/d/a/obj/d_a_obj_base.h b/include/d/a/obj/d_a_obj_base.h index 7afc5e76..7bf7d920 100644 --- a/include/d/a/obj/d_a_obj_base.h +++ b/include/d/a/obj/d_a_obj_base.h @@ -1,10 +1,87 @@ #pragma once #include +#include // Ghidra: ActorObjectBase // size: 0x330 +// vtable: 0x805015b8 // non-official name -class dAcOBase_c : public dAcBase_c { +class dAcObjBase_c : public dAcBase_c { +public: + // Data Members + +public: + // could be their own thing? + /* 8002de40 */ static void* getOarcFile(char* oarcName, char* fileName); + /* 8002de60 */ static void* getOarcSubEntry(char* oarcName, char* fileName); + /* 8002de80 */ static void* getOarcResFile(char* oarcName); + /* 8002de90 */ static void* getOarcModelFile(char* oarcName); + /* 8002dea0 */ static void* getOarcZev(char* oarcName); + /* 8002deb0 */ static void* getOarcDZB(char* dzbName); + /* 8002ded0 */ static void* getOarcPLC(char* plcName); + +public: + /* 8002def0 */ dAcObjBase_c(); + /* 8002e050 */ virtual ~dAcObjBase_c(); + /* 8002e0e0 */ virtual int preCreate(); + /* 8002e150 */ virtual int preExecute(); + /* 8002e2a0 */ virtual void postExecute(); + /* 8002e330 */ virtual int preDraw(); + /* 8002e5b0 */ virtual void* getObjectListEntry(); + /* 8002e5c0 */ virtual bool restorePosRotFromCopy(); + /* 8002ea10 */ virtual bool canBeLinkedToWoodTag(); + /* 8002ea20 */ virtual bool drop(); + +public: + /* 8002e630 */ static dAcObjBase_c create( \ + fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2 ); + /* 8002e6d0 */ static dAcObjBase_c create( \ + char* name, u32 roomId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, \ + u32 params2, u16 id, u8 viewclipId); + /* 8002e770 */ static dAcObjBase_c* findObject(fProfile::PROFILE_NAME_e actorId,\ + ActorReference* refList, dAcObjBase_c* parent); + /* 8002e7f0 */ static dAcObjBase_c* getNextObject(ActorReference* ref, dAcObjBase_c* parent); + /* 8002e850 */ bool isPlayer(); + /* 8002e870 */ void calcVelocity(Vec3f& pos, f32 speed); + /* 8002e8e0 */ void calcVelocity(); + /* 8002e9a0 */ void updateMatrix(); + /* 8002ea00 */ void setDefaultCullDistance(); + /* 8002ea30 */ void fn_8002EA30(f32,f32,f32,f32,f32, void*); + /* 8002ea60 */ void fn_8002EA60(void*); + /* 8002eb30 */ void fn_8002EB30(void*); + /* 8002eb90 */ void putInODesert(f32 depth, Vec3f* position); + // Disabling makes Items and Link Disappear + /* 8002ec70 */ void drawModelType1(); + // Disabling make Lava and other objects Disappear + /* 8002ecd0 */ void drawModel2(); + /* 8002ed20 */ void fn_8002ed20(); + /* 8002edb0 */ void fn_8002edb0(); + /* 8002ee40 */ void drawShadow(); + /* 8002ef40 */ void createChildAttached( \ + fProfile::PROFILE_NAME_e actorId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2, \ + u32 roomId ); + /* 8002ef40 */ void createChildNonAttached( \ + fProfile::PROFILE_NAME_e actorId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2, \ + u32 roomId ); + /* 8002efa0 */ void fn_8002efa0(); + /* 8002eff0 */ bool fn_8002eff0(f32*, s16*, UnkCollider*, f32*, f32*); + /* 8002f190 */ void createChildAttached2( \ + fProfile::PROFILE_NAME_e actorId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, u32 params2, \ + u32 roomId ); + // These may not belong here + /* 8002f1c0 */ static dAcBase_c createActorUnkGroup3( \ + fProfile::PROFILE_NAME_e actorId, u32 roomId, \ + u32 params1, Vec3f* pos, Vec3s* rot, Vec3f* scale, \ + u32 params2); + /* 8002f260 */ static dAcBase_c createActorUnkGroup3( \ + char* name, u32 roomId, u32 params1, \ + Vec3f* pos, Vec3s* rot, Vec3f* scale, \ + u32 params2, u16 id, u8 viewclipId); }; \ No newline at end of file diff --git a/include/d/a/obj/d_a_obj_item.h b/include/d/a/obj/d_a_obj_item.h index b29b4aa5..35942d22 100644 --- a/include/d/a/obj/d_a_obj_item.h +++ b/include/d/a/obj/d_a_obj_item.h @@ -5,6 +5,6 @@ // Ghidra: AcItem // Size: 0xd68 // official name -class dAcItem_c : public dAcOBase_c { +class dAcItem_c : public dAcObjBase_c { }; \ No newline at end of file diff --git a/include/lib/egg/egg_types.h b/include/lib/egg/egg_types.h new file mode 100644 index 00000000..890b1465 --- /dev/null +++ b/include/lib/egg/egg_types.h @@ -0,0 +1,93 @@ +#pragma once + +#include + +// Types pulled from ogws +// May need to remove/add later + +namespace EGG +{ + // gfx + struct CapTexture; + struct CpuTexture; + struct DrawGX; + struct DrawPathBase; + struct DrawPathBloom; + struct DrawPathDOF; + struct DrawPathHDR; + struct DrawPathLightMap; + struct DrawPathShadowVolume; + struct Fog; + struct FogManager; + struct G3DUtility; + struct GfxEngine; + struct GXUtility; + struct IDrawGX; + struct IScnProc; + struct IScnProcModel; + struct LightObj; + struct LightManager; + struct LightTexture; + struct LightTextureManager; + struct ModelBoundingInfo; + struct ModelEx; + struct ModelSnapshot; + struct PostEffectBase; + struct PostEffectBlur; + struct PostEffectBlurGather; + struct PostEffectHDR; + struct PostEffectSimple; + struct ResTIMG; + struct ScnRenderer; + struct ScnRootEx; + struct Screen; + struct ScreenEffectBase; + struct ShadowTextureManager; + struct ShadowTexture; + struct StateGX; + struct StateGX; + struct TextureBuffer; + + // math + template struct Math; + struct Matrix33f; + struct Matrix34f; + struct Matrix44f; + struct Quatf; + struct Vector2f; + struct Vector3f; + + // core + struct Allocator; + struct Archive; + struct AsyncDisplay; + template struct IBinary; + template struct TBitFlag; + struct CntFile; + struct ColorFader; + struct Decomp; + struct Display; + struct Disposer; + struct DvdFile; + struct DvdRipper; + struct ExpHeap; + struct Fader; + struct FrmHeap; + struct Heap; + struct Scene; + struct SceneManager; + struct Thread; + struct Video; + struct Xfb; + struct XfbManager; + + // audio + struct ArcPlayer; + struct IAudioMgr; + struct SimpleAudioMgr; + struct SoundHeapMgr; + + // util + struct Exception; + struct MsgRes; +} // namespace EGG diff --git a/include/lib/nw4r/g3d/g3d_rescommon.h b/include/lib/nw4r/g3d/g3d_rescommon.h new file mode 100644 index 00000000..e69de29b diff --git a/include/lib/nw4r/g3d/g3d_resfile.h b/include/lib/nw4r/g3d/g3d_resfile.h new file mode 100644 index 00000000..7a04a1ab --- /dev/null +++ b/include/lib/nw4r/g3d/g3d_resfile.h @@ -0,0 +1,18 @@ +#pragma once + +#include + +namespace nw4r { + namespace g3d { + + struct ResFileData { + + }; + + struct ResFile + { + /* data */ + }; + + }; +}; \ No newline at end of file diff --git a/include/lib/nw4r/nw4r_types.h b/include/lib/nw4r/nw4r_types.h new file mode 100644 index 00000000..9b528a46 --- /dev/null +++ b/include/lib/nw4r/nw4r_types.h @@ -0,0 +1,197 @@ +#pragma once + +#include + +namespace nw4r +{ + namespace ut + { + template struct TextWriterBase; + template struct TagProcessorBase; + + struct Color; + struct FileStream; + + namespace detail + { + struct RuntimeTypeInfo; + } + } + + namespace ef + { + struct DrawOrder; + struct DrawInfo; + struct DrawStrategy; + struct DrawStrategyImpl; + struct DrawStrategyBuilder; + struct Effect; + struct EffectSystem; + struct EffectProject; + struct Emitter; + struct EmitterDrawSetting; + struct EmitFormBuilder; + struct ResEmitter; + struct EmitterResource; + struct EmitterForm; + struct EmitterInheritSetting; + struct Particle; + struct ParticleManager; + struct MemoryManager; + struct MemoryManagerBase; + } + + namespace math + { + struct VEC2; + struct VEC3; + struct MTX33; + struct MTX34; + struct AABB; + struct FRUSTUM; + } + + namespace snd + { + struct FxBase; + struct SoundPlayer; + struct SoundHandle; + struct SeqSoundHandle; + struct SoundArchive; + struct SoundArchivePlayer; + struct Sound3DActor; + struct Sound3DListener; + struct Sound3DManager; + struct SoundHandle; + struct StrmSoundHandle; + struct WaveSoundHandle; + + namespace detail + { + struct BasicSound; + struct BasicPlayer; + struct ChannelManager; + struct SeqSound; + struct SeqPlayer; + struct MmlParser; + struct MmlSeqTrack; + struct SeqTrack; + struct SeqTrackAllocator; + template struct SoundInstanceManager; + struct StrmBufferPool; + struct StrmSound; + struct NoteOnCallback; + struct PlayerHeap; + struct SoundArchiveFileReader; + struct SoundThread; + struct WaveSound; + struct StrmPlayer; + struct WsdPlayer; + } + } + + namespace g3d + { + struct AnmObjVis; + struct AnmObjVisNode; + struct AnmObjVisOR; + struct AnmObjVisRes; + struct AnmObj; + struct AnmObjChr; + struct FuncObjCalcWorld; + struct AnmScn; + struct AnmScnRes; + struct CameraAnmResult; + struct Draw1Mat1ShpSwap; + struct DrawResMdlReplacement; + struct FogAnmResult; + struct ResFile; + struct ResMdl; + struct ResPltt; + struct ResTex; + struct ResTexSrt; + struct ResMat; + struct ResTexPlttInfo; + struct ResShp; + struct ResFog; + struct ResAnmChr; + struct ResAnmVis; + struct ResAnmClr; + struct ResAnmTexPat; + struct ResAnmTexSrt; + struct ResAnmShp; + struct ResAnmScn; + struct ResAnmFog; + struct ResAnmCamera; + struct ResVtxPos; + struct ResVtxNrm; + struct ResVtxClr; + struct ResVtxTexCoord; + struct ClrAnmResult; + struct TexPatAnmResult; + struct TexSrtAnmResult; + struct ScnMdl1Mat1Shp; + struct TexSrt; + struct TexSrtTypedef; + struct LightObj; + struct LightAnmResult; + struct LightSet; + struct LightSetting; + struct LightSetData; + struct AmbLightObj; + struct AmbLightAnmResult; + struct Fog; + struct ScnRoot; + struct ScnProc; + struct ScnLeaf; + struct ScnObj; + struct ScnRfl; + struct ScnGroup; + struct ScnMdlSimple; + struct ScnMdl; + struct IScnObjGather; + struct IScnObjCallback; + + namespace G3DState + { + struct IndMtxOp; + } + } + + namespace lyt + { + struct Size; + + namespace detail + { + struct PaneBase; + struct TexCoordAry; + } + + namespace res + { + struct Group; + struct Pane; + struct Bounding; + struct AnimationBlock; + struct BinaryFileHeader; + } + + struct Group; + struct GroupContainer; + struct Pane; + struct DrawInfo; + struct AnimResource; + struct AnimTransform; + struct AnimTransformBasic; + struct AnimationLink; + struct ResourceAccessor; + struct ArcResourceAccessor; + struct FontRefLink; + struct Material; + struct Layout; + struct Bounding; + struct ResBlockSet; + struct TexMap; + } +} diff --git a/include/m/mAllocator.h b/include/m/m_allocator.h similarity index 73% rename from include/m/mAllocator.h rename to include/m/m_allocator.h index fd10bd59..2db8f404 100644 --- a/include/m/mAllocator.h +++ b/include/m/m_allocator.h @@ -2,21 +2,21 @@ #include -class mAllocator : public EGG::Allocator { +class mAllocator_c : public EGG::Allocator { public: - mAllocator(); + mAllocator_c(); // vtable at 0x10 - /* 0x08 */ virtual ~mAllocator(); + /* 0x08 */ virtual ~mAllocator_c(); /* 0x0C */ virtual void* alloc(u32 size); /* 0x10 */ virtual void free(void* block); bool attach(EGG::Heap* heap, s32 align); }; -class mHeapAllocator : public mAllocator { +class mHeapAllocator_c : public mAllocator_c { public: - mHeapAllocator(); + mHeapAllocator_c(); // vtable at 0x10 - /* 0x08 */ virtual ~mHeapAllocator(); + /* 0x08 */ virtual ~mHeapAllocator_c(); /* 0x0C */ // virtual void* alloc(u32 size); // see mAlloctor::alloc /* 0x10 */ // virtual void free(void* block); // see mAlloctor::free int replaceWithNewFrmHeap(s32 size, EGG::Heap* newHeap, char* heapName, s32 align, u32 unk); @@ -26,5 +26,5 @@ public: s32 adjustExpHeap(); s32 createNewTempFrmHeap(s32 size, EGG::Heap* newHeap, char* heapName, s32 align, u32 unk); void adjustFrmHeapRestoreCurrent(); - static void* allocOnHeap(s32 size, mHeapAllocator* allocator); + static void* allocOnHeap(s32 size, mHeapAllocator_c* allocator); }; \ No newline at end of file diff --git a/include/m/m_angle.h b/include/m/m_angle.h new file mode 100644 index 00000000..d249244f --- /dev/null +++ b/include/m/m_angle.h @@ -0,0 +1,11 @@ +#pragma once + +#include + +struct mAng { + s16 val; +}; + +class mAng3_c { + +}; \ No newline at end of file diff --git a/include/m/m_fader.h b/include/m/m_fader.h new file mode 100644 index 00000000..e69de29b diff --git a/include/m/m_frustum.h b/include/m/m_frustum.h new file mode 100644 index 00000000..e69de29b diff --git a/include/m/mHeap.h b/include/m/m_heap.h similarity index 100% rename from include/m/mHeap.h rename to include/m/m_heap.h diff --git a/include/m/m_mtx.h b/include/m/m_mtx.h new file mode 100644 index 00000000..2dd8799d --- /dev/null +++ b/include/m/m_mtx.h @@ -0,0 +1,42 @@ +#pragma once + +// NOTE:: Comments about functions pulled from NSMBW + +#include +#include +#include + +class mMtx_c +{ +public: + f32 xx, xy, xz, xw; + f32 yx, yy, yz, yw; + f32 zx, zy, zz, zw; + + mMtx_c() {}; + /* 802f1660 */ mMtx_c(f32 xx, f32 xy, f32 xz, f32 xw, \ + f32 yx, f32 yy, f32 yz, f32 yw, \ + f32 zx, f32 zy, f32 zz, f32 zw); + + /* 802f16b0 */ void XrotS(mAng angle); ///< Generates a rotation matrix for the X axis with the given angle. + /* 802f1770 */ void XrotM(mAng angle); ///< Rotates the matrix on the X axis by the given angle. + /* 802f17c0 */ void YrotS(mAng angle); ///< Generates a rotation matrix for the Y axis with the given angle. + /* 802f1880 */ void YrotM(mAng angle); ///< Rotates the matrix on the Y axis by the given angle. + /* 802f18d0 */ void ZrotS(mAng angle); ///< Generates a rotation matrix for the Z axis with the given angle. + /* 802f1990 */ void ZrotM(mAng angle); ///< Rotates the matrix on the Z axis by the given angle. + + /* 802f19e0 */ void ZXYrotS(mAng xRot, mAng yRot, mAng zRot); ///< Generates the matrix on the Y, X and Z axes by the given angles. + /* 802f1a40 */ void ZXYrotM(mAng xRot, mAng yRot, mAng zRot); ///< Rotates the matrix on the Y, X and Z axes by the given angles. + /* 802f1aa0 */ void XYZrotS(mAng xRot, mAng yRot, mAng zRot); ///< Generates the matrix on the Z, Y and X axes by the given angles. + /* 802f1b00 */ void XYZrotM(mAng xRot, mAng yRot, mAng zRot); ///< Rotates the matrix on the Z, Y and X axes by the given angles. + + /* 802f1b60 */ void toRot(mAng3_c &out) const; ///< Converts the matrix to a rotation vector. + + void multVecZero(nw4r::math::VEC3 &out) const; ///< Converts the matrix to a vector. + void zero(); ///< Zeroes out the matrix. + + /* 802f1c40 */ void rot(int, int); // does some werrd operation to rotate the matrix + /* 802f1e60 */ bool quatRelated(); + + static mMtx_c Identity; +}; diff --git a/include/m/m_pad.h b/include/m/m_pad.h new file mode 100644 index 00000000..e69de29b diff --git a/include/m/m_quat.h b/include/m/m_quat.h new file mode 100644 index 00000000..e69de29b diff --git a/include/m/m_vec.h b/include/m/m_vec.h new file mode 100644 index 00000000..e69de29b diff --git a/include/m/types_m.h b/include/m/types_m.h new file mode 100644 index 00000000..596c6b79 --- /dev/null +++ b/include/m/types_m.h @@ -0,0 +1,70 @@ +#pragma once + +#include + + +class mFaderBase_c; +class mFader_c; +class mColorFader_c; +class mWipeFader_c; + +// Heap Stuff +struct mHeap; // Maybe just a namespace? +class mAllocator_c; +class mHeapAllocator_c; + +// Math Stuff +class mMtx_c; +class mQuat_c; +struct mAng; +class mAng3_c; +class mVec3_c; +class mFrustum_c; + +namespace m2d { + class Layout_c; + class AnmResV2_c; + class AnmGroup_c; + class Simple_c; + class FrameCtrl_c; + class AnmGroupBase_c; + class Base_c; + class ResAccIf_c; +} // namespace m2d + +namespace m3d { + class mdl_c; // also contains ::callback_c ::mdlCallback_c + class smdl_c; + class bmdl_c; + + class scnLeaf_c; + + class banm_c; + class fanm_c; + + class anmChr_c; + class anmChrBlend_c; + class anmMatClr_c; // also contains ::child_c + class anmTexPat_c; // also contains ::child_c + class anmTexSrt_c; // also contains ::child_c + + + class anmVis_c; + + class capture_c; + class calcRatio_c; +} // namespace m3d + +class mDvd_command_c; +class mDvd_param_c; +class mDvd_toMainRam_c; +class mDvd_callback_c; +class mDvd_mountMemArchive_c; +namespace mDvd +{ + class MyThread_c; + + template // types are from EGG::StreamDecomp[LH/LRC/RL/LZ] + class TUncompressedInfo_c; + +} // namespace mDvd diff --git a/include/toBeSorted/arc_manager.h b/include/toBeSorted/arc_manager.h new file mode 100644 index 00000000..63dc2cea --- /dev/null +++ b/include/toBeSorted/arc_manager.h @@ -0,0 +1,34 @@ +#pragma once + +#include + +// Ghidra: ArcManagerEntry +// size: 0x40 +struct ArcManagerEntry { + /* 0x00 */ char arc_name[0x20]; + /* 0x20 */ u16 ref_count; + /* 0x24 */ int dvd_req_ptr; + /* 0x28 */ int archive_ptr; + /* 0x2C */ int heap_ptr_0; + /* 0x30 */ char field_0x30[0x3C - 0x30]; + /* 0x3C */ int heap_ptr_1; +}; + +// Ghidra: ArcManagerEntryTable +// size: 0xC +class ArcMangerEntryTable{ + public: + /* 0x0 */ ArcManagerEntry* entries; + /* 0x4 */ u16 count; + /* 0x8 */ u32 field_0x8; + public: + ArcMangerEntryTable(); +}; + +class OarcManager { +public: + void* getDataFromOarc(char* oarcName, char* fileName); + +}; + +OarcManager g_OarcManager; diff --git a/src/d/a/d_a_base.cpp b/src/d/a/d_a_base.cpp index 12d4de9b..536f272f 100644 --- a/src/d/a/d_a_base.cpp +++ b/src/d/a/d_a_base.cpp @@ -56,7 +56,7 @@ int dAcBase_c::initAllocatorWork1Heap(int size, char* name, int align) { initAllocator(size, name, dHeap::work1Heap, align); } -extern "C" int fn_802EE510(mAllocator*, int size, EGG::Heap* heap, char* name, int align, int unk); +extern "C" int fn_802EE510(mAllocator_c*, int size, EGG::Heap* heap, char* name, int align, int unk); /* 8002c720 */ int dAcBase_c::initAllocator(int size, char* name, EGG::Heap* heap, int align) { diff --git a/src/d/a/obj/d_a_obj_base.cpp b/src/d/a/obj/d_a_obj_base.cpp new file mode 100644 index 00000000..9f418b3b --- /dev/null +++ b/src/d/a/obj/d_a_obj_base.cpp @@ -0,0 +1 @@ +#include diff --git a/src/toBeSorted/oarc_manager.cpp b/src/toBeSorted/oarc_manager.cpp new file mode 100644 index 00000000..e69de29b