mirror of
https://github.com/encounter/Petari.git
synced 2026-03-30 11:34:15 -07:00
90 lines
1.8 KiB
C++
90 lines
1.8 KiB
C++
#include "Game/System/ConfigDataMisc.hpp"
|
|
#include "JSystem/JSupport/JSUMemoryInputStream.hpp"
|
|
#include "JSystem/JSupport/JSUMemoryOutputStream.hpp"
|
|
|
|
ConfigDataMisc::ConfigDataMisc() {
|
|
mData = 1;
|
|
mLastModified = 0;
|
|
|
|
initializeData();
|
|
}
|
|
|
|
bool ConfigDataMisc::isLastLoadedMario() const {
|
|
return !((mData & 0x1) - 1);
|
|
}
|
|
|
|
void ConfigDataMisc::setLastLoadedMario(bool lastLoaded) {
|
|
if (lastLoaded) {
|
|
mData |= 0x1;
|
|
}
|
|
else {
|
|
mData &= 0xFE;
|
|
}
|
|
}
|
|
|
|
void ConfigDataMisc::onCompleteEndingMario() {
|
|
mData |= 0x2;
|
|
}
|
|
|
|
void ConfigDataMisc::onCompleteEndingLuigi() {
|
|
mData |= 0x4;
|
|
}
|
|
|
|
bool ConfigDataMisc::isOnCompleteEndingMario() {
|
|
return (mData >> 1) & 0x1;
|
|
}
|
|
|
|
bool ConfigDataMisc::isOnCompleteEndingLuigi() {
|
|
return (mData >> 2) & 0x1;
|
|
}
|
|
|
|
OSTime ConfigDataMisc::getLastModified() const {
|
|
return mLastModified;
|
|
}
|
|
|
|
void ConfigDataMisc::updateLastModified() {
|
|
mLastModified = OSGetTime();
|
|
}
|
|
|
|
u32 ConfigDataMisc::makeHeaderHashCode() const {
|
|
return 1;
|
|
}
|
|
|
|
u32 ConfigDataMisc::getSignature() const {
|
|
return 0x4D495343;
|
|
}
|
|
|
|
s32 ConfigDataMisc::serialize(u8 *pData, u32 len) const {
|
|
JSUMemoryOutputStream stream;
|
|
stream.setBuffer(pData, len);
|
|
u8 stack_8 = mData;
|
|
stream.write(&stack_8, 1);
|
|
OSTime stack_10 = mLastModified;
|
|
stream.write(&stack_10, 8);
|
|
return stream.mPosition;
|
|
}
|
|
|
|
s32 ConfigDataMisc::deserialize(const u8 *pData, u32 len) {
|
|
initializeData();
|
|
JSUMemoryInputStream stream;
|
|
stream.setBuffer(pData, len);
|
|
u8 stack_8;
|
|
stream.read(&stack_8, 1);
|
|
mData = stack_8;
|
|
|
|
if (!stream.getAvailable()) {
|
|
mLastModified = 0;
|
|
}
|
|
else {
|
|
OSTime time;
|
|
stream.read(&time, 8);
|
|
mLastModified = time;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void ConfigDataMisc::initializeData() {
|
|
mData = 1;
|
|
mLastModified = 0;
|
|
} |