Implement LegoLOD::Read and related (#634)

* WIP

* Fix

* Remove bogus

* Fix

* Match

* Fix

* Remove TODO
This commit is contained in:
Christian Semmler
2024-03-07 14:57:17 -05:00
committed by GitHub
parent a12146f52f
commit 53e2353f78
16 changed files with 652 additions and 126 deletions

View File

@@ -0,0 +1,22 @@
#include "legocolor.h"
#include "decomp.h"
#include "legostorage.h"
DECOMP_SIZE_ASSERT(LegoColor, 0x03)
// FUNCTION: LEGO1 0x100d3a20
LegoResult LegoColor::Read(LegoStorage* p_storage)
{
LegoResult result;
if ((result = p_storage->Read(&m_red, sizeof(m_red))) != SUCCESS) {
return result;
}
if ((result = p_storage->Read(&m_green, sizeof(m_green))) != SUCCESS) {
return result;
}
if ((result = p_storage->Read(&m_blue, sizeof(m_blue))) != SUCCESS) {
return result;
}
return SUCCESS;
}

View File

@@ -0,0 +1,26 @@
#ifndef __LEGOCOLOR_H
#define __LEGOCOLOR_H
#include "legotypes.h"
class LegoStorage;
// SIZE 0x03
class LegoColor {
public:
LegoColor() { m_red = m_green = m_blue = 0; }
LegoU8 GetRed() { return m_red; }
void SetRed(LegoU8 p_red) { m_red = p_red; }
LegoU8 GetGreen() { return m_green; }
void SetGreen(LegoU8 p_green) { m_green = p_green; }
LegoU8 GetBlue() { return m_blue; }
void SetBlue(LegoU8 p_blue) { m_blue = p_blue; }
LegoResult Read(LegoStorage* p_storage);
protected:
LegoU8 m_red; // 0x00
LegoU8 m_green; // 0x01
LegoU8 m_blue; // 0x02
};
#endif // __LEGOCOLOR_H