SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ConfigDataMisc.cpp
1#include "Game/System/ConfigDataMisc.hpp"
2#include "JSystem/JSupport/JSUMemoryInputStream.hpp"
3#include "JSystem/JSupport/JSUMemoryOutputStream.hpp"
4
5ConfigDataMisc::ConfigDataMisc() {
6 mData = 1;
7 mLastModified = 0;
8
9 initializeData();
10}
11
12bool ConfigDataMisc::isLastLoadedMario() const {
13 return !((mData & 0x1) - 1);
14}
15
16void ConfigDataMisc::setLastLoadedMario(bool lastLoaded) {
17 if (lastLoaded) {
18 mData |= 0x1;
19 }
20 else {
21 mData &= 0xFE;
22 }
23}
24
25void ConfigDataMisc::onCompleteEndingMario() {
26 mData |= 0x2;
27}
28
29void ConfigDataMisc::onCompleteEndingLuigi() {
30 mData |= 0x4;
31}
32
33bool ConfigDataMisc::isOnCompleteEndingMario() {
34 return (mData >> 1) & 0x1;
35}
36
37bool ConfigDataMisc::isOnCompleteEndingLuigi() {
38 return (mData >> 2) & 0x1;
39}
40
41OSTime ConfigDataMisc::getLastModified() const {
42 return mLastModified;
43}
44
45void ConfigDataMisc::updateLastModified() {
46 mLastModified = OSGetTime();
47}
48
49u32 ConfigDataMisc::makeHeaderHashCode() const {
50 return 1;
51}
52
53u32 ConfigDataMisc::getSignature() const {
54 return 0x4D495343;
55}
56
57s32 ConfigDataMisc::serialize(u8 *pData, u32 len) const {
58 JSUMemoryOutputStream stream;
59 stream.setBuffer(pData, len);
60 u8 stack_8 = mData;
61 stream.write(&stack_8, 1);
62 OSTime stack_10 = mLastModified;
63 stream.write(&stack_10, 8);
64 return stream.mPosition;
65}
66
67s32 ConfigDataMisc::deserialize(const u8 *pData, u32 len) {
68 initializeData();
69 JSUMemoryInputStream stream;
70 stream.setBuffer(pData, len);
71 u8 stack_8;
72 stream.read(&stack_8, 1);
73 mData = stack_8;
74
75 if (!stream.getAvailable()) {
76 mLastModified = 0;
77 }
78 else {
79 OSTime time;
80 stream.read(&time, 8);
81 mLastModified = time;
82 }
83
84 return 0;
85}
86
87void ConfigDataMisc::initializeData() {
88 mData = 1;
89 mLastModified = 0;
90}