#pragma once #include #include #include #include "KingSystem/Resource/resResource.h" #include "KingSystem/Utils/ParamIO.h" #include "KingSystem/Utils/Types.h" namespace ksys::res { class Recipe : public ParamIO, public Resource { SEAD_RTTI_OVERRIDE(Recipe, Resource) public: struct Item { agl::utl::Parameter name; agl::utl::Parameter num; }; KSYS_CHECK_SIZE_NX150(Item, 0x48); struct Table { agl::utl::ParameterObj obj; agl::utl::Parameter name; agl::utl::Parameter column_num; sead::Buffer items; }; KSYS_CHECK_SIZE_NX150(Table, 0x88); Recipe() : ParamIO("recipe", 0) {} bool ParamIO_m0() override { return true; } void doCreate_(u8*, u32, sead::Heap*) override {} bool needsParse() const override { return true; } const sead::Buffer& getTables() const { return mTables; } private: bool parse_(u8* data, size_t size, sead::Heap* heap) override; void parseTable_(const s32& table_idx); agl::utl::ParameterObj mObj; agl::utl::Parameter mTableNum; sead::Buffer _300; sead::Buffer
mTables; }; KSYS_CHECK_SIZE_NX150(Recipe, 0x320); } // namespace ksys::res