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/toBeSorted/oarc_manager.cpp b/src/toBeSorted/oarc_manager.cpp new file mode 100644 index 00000000..e69de29b