1 | #pragma once |
2 | |
3 | #include "utility/aglParameterList.h" |
4 | |
5 | namespace sead { |
6 | class XmlDocument; |
7 | } |
8 | |
9 | namespace agl::utl { |
10 | |
11 | class IParameterIO : public IParameterList { |
12 | public: |
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 | |
31 | protected: |
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 | |