SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ConfigDataHolder.cpp
1#include "Game/System/ConfigDataHolder.hpp"
2#include "JSystem/JSupport/JSUMemoryInputStream.hpp"
3#include "JSystem/JSupport/JSUMemoryOutputStream.hpp"
4#include <cstdio>
5
6ConfigDataCreateChunk::ConfigDataCreateChunk() : mData(0) {
7 initializeData();
8}
9
10u32 ConfigDataCreateChunk::makeHeaderHashCode() const {
11 return 0x2432DA;
12}
13
14u32 ConfigDataCreateChunk::getSignature() const {
15 return 0x434F4E46;
16}
17
18s32 ConfigDataCreateChunk::serialize(u8 *pData, u32 len) const {
19 JSUMemoryOutputStream stream;
20 stream.setBuffer(pData, len);
21 u8 data = -(mData != 0);
22 stream.write(&data, 1);
23 return stream.mPosition;
24}
25
26s32 ConfigDataCreateChunk::deserialize(const u8 *pData, u32 len) {
27 initializeData();
28 JSUMemoryInputStream stream;
29 stream.setBuffer(pData, len);
30 u8 data;
31 stream.read(&data, 1);
32 mData = data != 0;
33 return 0;
34}
35
36void ConfigDataCreateChunk::initializeData() {
37 mData = 0;
38}
39
40void ConfigDataHolder::setIsCreated(bool isCreated) {
41 mCreateChunk->mData = isCreated;
42}
43
44bool ConfigDataHolder::isCreated() const {
45 return mCreateChunk->mData;
46}
47
48void ConfigDataHolder::setLastLoadedMario(bool isLoaded) {
49 mMiscCreateChunk->setLastLoadedMario(isLoaded);
50}
51
52bool ConfigDataHolder::isLastLoadedMario() const {
53 return mMiscCreateChunk->isLastLoadedMario();
54}
55
56void ConfigDataHolder::onCompleteEndingMario() {
57 mMiscCreateChunk->onCompleteEndingMario();
58}
59
60void ConfigDataHolder::onCompleteEndingLuigi() {
61 mMiscCreateChunk->onCompleteEndingLuigi();
62}
63
64bool ConfigDataHolder::isOnCompleteEndingMario() {
65 return mMiscCreateChunk->isOnCompleteEndingMario();
66}
67
68bool ConfigDataHolder::isOnCompleteEndingLuigi() {
69 return mMiscCreateChunk->isOnCompleteEndingLuigi();
70}
71
72void ConfigDataHolder::updateLastModified() {
73 mMiscCreateChunk->updateLastModified();
74}
75
76OSTime ConfigDataHolder::getLastModified() const {
77 return mMiscCreateChunk->getLastModified();
78}
79
80void ConfigDataHolder::setMiiOrIconId(const void *pMiiId, const u32 *pIconId) {
81 mMiiCreateChunk->setMiiOrIconId(pMiiId, pIconId);
82}
83
84bool ConfigDataHolder::getMiiId(void *pId) const {
85 return mMiiCreateChunk->getMiiId(pId);
86}
87
88bool ConfigDataHolder::getIconId(u32 *pId) const {
89 return mMiiCreateChunk->getIconId(pId);
90}
91
92void ConfigDataHolder::resetAllData() {
93 mCreateChunk->initializeData();
94 mMiiCreateChunk->initializeData();
95 mMiscCreateChunk->initializeData();
96}
97
98void ConfigDataHolder::makeFileBinary(u8 *pData, u32 len) {
99 mChunkHolder->makeFileBinary(pData, len);
100}
101
102ConfigDataHolder::ConfigDataHolder() : mChunkHolder(0), mCreateChunk(0), mMiiCreateChunk(0), mMiscCreateChunk(0) {
103 mChunkHolder = new BinaryDataChunkHolder(0x40, 3);
104 mCreateChunk = new ConfigDataCreateChunk();
105 mMiiCreateChunk = new ConfigDataMii();
106 mMiscCreateChunk = new ConfigDataMisc();
107 mChunkHolder->addChunk(mCreateChunk);
108 mChunkHolder->addChunk(mMiiCreateChunk);
109 mChunkHolder->addChunk(mMiscCreateChunk);
110 resetAllData();
111 snprintf(mName, 0x10, "config1");
112}
113
114void ConfigDataHolder::loadFromFileBinary(const char *pName, const u8 *pData, u32 len) {
115 snprintf(mName, 0x10, "%s", pName);
116 mChunkHolder->loadFromFileBinary(pData, len);
117}