1#pragma once
2
3#include "utility/aglParameterList.h"
4
5namespace sead {
6class XmlDocument;
7}
8
9namespace agl::utl {
10
11class IParameterIO : public IParameterList {
12public:
13 IParameterIO();
14 IParameterIO(const sead::SafeString& name, u32 version);
15 ~IParameterIO() override { ; }
16
17 virtual bool save(const sead::SafeString& path, u32) const;
18 virtual void applyResParameterArchive(ResParameterArchive arc);
19 virtual void applyResParameterArchiveLerp(ResParameterArchive arc_a, ResParameterArchive arc_b,
20 f32 t);
21
22 void load(const sead::SafeString& path, bool);
23 void loadText(const void* data, u32 size, bool);
24
25 bool isCompleteArchive(ResParameterArchive archive, bool) const;
26
27 void genMessageIO(sead::hostio::Context* context, u32);
28 void listenPropertyEventIO(sead::hostio::Reflexible* reflexible,
29 sead::hostio::PropertyEvent* event);
30
31protected:
32 virtual void callbackInvalidVersion_(ResParameterArchive) {}
33
34#ifdef SEAD_DEBUG
35 virtual void writeHeader_(sead::XmlElement* element, sead::Heap* heap) const;
36#endif
37 void save_(const sead::SafeString& path, const sead::XmlDocument* document) const;
38
39 sead::FixedSafeString<64> mType;
40 u32 mVersion;
41 void* _a8 = nullptr;
42 sead::FixedSafeString<256> _b0 = sead::SafeString::cEmptyString;
43 u32 mResFileSize = 0;
44 u32 _1cc;
45};
46
47} // namespace agl::utl
48