ksys/res: Finish implementing Chemical

This commit is contained in:
Léo Lam
2021-03-21 18:55:57 +01:00
parent f8ca5ab333
commit ddf55e78da
3 changed files with 54 additions and 19 deletions
@@ -1 +1,24 @@
#include "KingSystem/Resource/resResourceChemical.h"
namespace ksys::res {
Chemical::Chemical() : ParamIO("chemical", 0) {
addList(&mRoot, "chemical_root");
}
void Chemical::doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) {}
bool Chemical::parse_(u8* data, size_t size, sead::Heap* heap) {
if (!data)
return true;
agl::utl::ResParameterArchive archive{data};
const auto chemical_root_list =
agl::utl::getResParameterList(archive.getRootList(), "chemical_root");
mRoot.parse(chemical_root_list, heap);
return true;
}
} // namespace ksys::res
+13 -1
View File
@@ -1,13 +1,25 @@
#pragma once
#include "KingSystem/Chemical/chmRoot.h"
#include "KingSystem/Resource/resResource.h"
#include "KingSystem/Utils/ParamIO.h"
namespace ksys::res {
// TODO
class Chemical : public ParamIO, public Resource {
SEAD_RTTI_OVERRIDE(Chemical, Resource)
public:
Chemical();
void doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) override;
bool needsParse() const override { return true; }
bool parse_(u8* data, size_t size, sead::Heap* heap) override;
const chm::Root& getRoot() const { return mRoot; }
private:
chm::Root mRoot;
};
} // namespace ksys::res