#pragma once #include #include #include #include "KingSystem/GameData/gdtFlag.h" #include "KingSystem/Utils/Types.h" namespace al { class ByamlIter; } namespace ksys::res { class GameData : public sead::DirectResource { public: static void loadDebugData(gdt::FlagDebugData* data, const al::ByamlIter& iter); static void loadFlagProperties(gdt::FlagProperties* properties, const al::ByamlIter& iter); GameData(); ~GameData() override; void doCreate_(u8* buffer, u32 values_iter, sead::Heap* heap) override; s32 getField14() const { return _14; } sead::Buffer& getBoolFlags() { return mBoolFlags; } sead::Buffer& getS32Flags() { return mS32Flags; } sead::Buffer& getF32Flags() { return mF32Flags; } sead::Buffer& getStringFlags() { return mStringFlags; } sead::Buffer& getString64Flags() { return mString64Flags; } sead::Buffer& getString256Flags() { return mString256Flags; } sead::Buffer& getVector2fFlags() { return mVector2fFlags; } sead::Buffer& getVector3fFlags() { return mVector3fFlags; } sead::Buffer& getVector4fFlags() { return mVector4fFlags; } sead::PtrArray& getBoolArrayFlags() { return mBoolArrayFlags; } sead::PtrArray& getS32ArrayFlags() { return mS32ArrayFlags; } sead::PtrArray& getF32ArrayFlags() { return mF32ArrayFlags; } sead::PtrArray& getStringArrayFlags() { return mStringArrayFlags; } sead::PtrArray& getString64ArrayFlags() { return mString64ArrayFlags; } sead::PtrArray& getString256ArrayFlags() { return mString256ArrayFlags; } sead::PtrArray& getVector2fArrayFlags() { return mVector2fArrayFlags; } sead::PtrArray& getVector3fArrayFlags() { return mVector3fArrayFlags; } sead::PtrArray& getVector4fArrayFlags() { return mVector4fArrayFlags; } const sead::Buffer& getBoolFlags() const { return mBoolFlags; } const sead::Buffer& getS32Flags() const { return mS32Flags; } const sead::Buffer& getF32Flags() const { return mF32Flags; } const sead::Buffer& getStringFlags() const { return mStringFlags; } const sead::Buffer& getString64Flags() const { return mString64Flags; } const sead::Buffer& getString256Flags() const { return mString256Flags; } const sead::Buffer& getVector2fFlags() const { return mVector2fFlags; } const sead::Buffer& getVector3fFlags() const { return mVector3fFlags; } const sead::Buffer& getVector4fFlags() const { return mVector4fFlags; } const sead::PtrArray& getBoolArrayFlags() const { return mBoolArrayFlags; } const sead::PtrArray& getS32ArrayFlags() const { return mS32ArrayFlags; } const sead::PtrArray& getF32ArrayFlags() const { return mF32ArrayFlags; } const sead::PtrArray& getStringArrayFlags() const { return mStringArrayFlags; } const sead::PtrArray& getString64ArrayFlags() const { return mString64ArrayFlags; } const sead::PtrArray& getString256ArrayFlags() const { return mString256ArrayFlags; } const sead::PtrArray& getVector2fArrayFlags() const { return mVector2fArrayFlags; } const sead::PtrArray& getVector3fArrayFlags() const { return mVector3fArrayFlags; } const sead::PtrArray& getVector4fArrayFlags() const { return mVector4fArrayFlags; } static constexpr size_t cLoadDataAlignment = 4; private: s32 _14 = -1; sead::Buffer mBoolFlags; sead::Buffer mS32Flags; sead::Buffer mF32Flags; sead::Buffer mStringFlags; sead::Buffer mString64Flags; sead::Buffer mString256Flags; sead::Buffer mVector2fFlags; sead::Buffer mVector3fFlags; sead::Buffer mVector4fFlags; sead::PtrArray mBoolArrayFlags; sead::PtrArray mS32ArrayFlags; sead::PtrArray mF32ArrayFlags; sead::PtrArray mStringArrayFlags; sead::PtrArray mString64ArrayFlags; sead::PtrArray mString256ArrayFlags; sead::PtrArray mVector2fArrayFlags; sead::PtrArray mVector3fArrayFlags; sead::PtrArray mVector4fArrayFlags; }; KSYS_CHECK_SIZE_NX150(GameData, 0x140); } // namespace ksys::res