#ifndef RAGNAROK_SOURCE_CONTENTS_SIMPLESTRINGMGR_H #define RAGNAROK_SOURCE_CONTENTS_SIMPLESTRINGMGR_H #include #include #include #include #include #include // VTABLE: vt_00755 class CSimpleStringMgr { public: enum STR_TYPE { STR_TYPE_EMOTION = 0, }; struct StrTypeHash { std::size_t operator()(STR_TYPE type) const { return static_cast(type); } }; virtual ~CSimpleStringMgr() { } static void Destroy(); void Init(); void LoadCsv(const char* name, std::function(std::vector&)> transform, std::function&, std::any)> insert, std::any context); std::vector TransformFields(const std::vector& fields); void AddString(STR_TYPE type, const char* key, const char* value); const char* GetString(const char* key); /* 0004 */ bool m_initialized; /* 0008 */ std::unordered_map, StrTypeHash> m_tables; }; extern CSimpleStringMgr* g_simpleStringMgr; #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(CSimpleStringMgr) == 0x28); #endif #endif