1#include "utility/aglParameterIO.h"
2#include <basis/seadRawPrint.h>
3
4namespace agl::utl {
5
6IParameterIO::IParameterIO() {
7 _1cc = 1;
8 mType = "xml";
9 mVersion = 0;
10 setParameterListName_("param_root");
11}
12
13IParameterIO::IParameterIO(const sead::SafeString& name, u32 version) {
14 _1cc = 0;
15 mType = name;
16 mVersion = version;
17 setParameterListName_("param_root");
18}
19
20void IParameterIO::applyResParameterArchive(ResParameterArchive arc) {
21 SEAD_ASSERT(arc.isValid());
22 mResFileSize = arc.ptr()->file_size;
23
24 if (mVersion != arc.ptr()->pio_version)
25 callbackInvalidVersion_(arc);
26
27 applyResParameterList(list: arc.getRootList());
28}
29
30void IParameterIO::applyResParameterArchiveLerp(ResParameterArchive arc_a,
31 ResParameterArchive arc_b, f32 t) {
32 SEAD_ASSERT(arc_a.isValid());
33 SEAD_ASSERT(arc_b.isValid());
34
35 if (mVersion != arc_a.ptr()->pio_version)
36 callbackInvalidVersion_(arc_a);
37
38 if (mVersion != arc_b.ptr()->pio_version)
39 callbackInvalidVersion_(arc_b);
40
41 applyResParameterList(list1: arc_a.getRootList(), list2: arc_b.getRootList(), t);
42}
43
44bool IParameterIO::isCompleteArchive(ResParameterArchive archive, bool x) const {
45 return isComplete(res: archive.getRootList(), x);
46}
47
48} // namespace agl::utl
49