mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 10:41:15 +00:00
implement ModelDbPart::Read & ModelDbModel::Read
This commit is contained in:
parent
01f07a323c
commit
869dff17b3
@ -1,21 +1,74 @@
|
|||||||
#include "modeldb.h"
|
#include "modeldb.h"
|
||||||
|
|
||||||
|
#include "windows.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(ModelDbWorld, 0x18)
|
DECOMP_SIZE_ASSERT(ModelDbWorld, 0x18)
|
||||||
DECOMP_SIZE_ASSERT(ModelDbPart, 0x18)
|
DECOMP_SIZE_ASSERT(ModelDbPart, 0x18)
|
||||||
DECOMP_SIZE_ASSERT(ModelDbModel, 0x38)
|
DECOMP_SIZE_ASSERT(ModelDbModel, 0x38)
|
||||||
DECOMP_SIZE_ASSERT(ModelDbPartList, 0x1c)
|
DECOMP_SIZE_ASSERT(ModelDbPartList, 0x1c)
|
||||||
DECOMP_SIZE_ASSERT(ModelDbPartListCursor, 0x10)
|
DECOMP_SIZE_ASSERT(ModelDbPartListCursor, 0x10)
|
||||||
|
|
||||||
// STUB: LEGO1 0x100276b0
|
// FUNCTION: LEGO1 0x100276b0
|
||||||
MxResult ModelDbModel::Read(FILE* p_file)
|
MxResult ModelDbModel::Read(FILE* p_file)
|
||||||
{
|
{
|
||||||
return SUCCESS;
|
MxU32 charSize;
|
||||||
|
|
||||||
|
if (fread(&charSize, sizeof(MxU32), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
m_modelName = new char[charSize];
|
||||||
|
|
||||||
|
if (fread(m_modelName, charSize, 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fread(&m_unk0x04, sizeof(undefined4), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
if (fread(&m_unk0x08, sizeof(undefined4), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fread(&charSize, sizeof(MxU32), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_presenter = new char[charSize];
|
||||||
|
if (fread(m_presenter, charSize, 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fread(&m_unk0x10, sizeof(undefined4), 3, p_file) != 3) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
if (fread(&m_unk0x1c, sizeof(undefined4), 3, p_file) != 3) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
if (fread(&m_unk0x28, sizeof(undefined4), 3, p_file) != 3) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fread(&m_unk0x34, sizeof(undefined), 1, p_file) == 1 ? SUCCESS : FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10027850
|
// FUNCTION: LEGO1 0x10027850
|
||||||
MxResult ModelDbPart::Read(FILE* p_file)
|
MxResult ModelDbPart::Read(FILE* p_file)
|
||||||
{
|
{
|
||||||
return SUCCESS;
|
MxU32 size;
|
||||||
|
char roiNameBuffer[128];
|
||||||
|
if (fread(&size, sizeof(MxU32), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
if (fread(roiNameBuffer, size, 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
m_roiName = roiNameBuffer;
|
||||||
|
|
||||||
|
if (fread(&m_unk0x10, sizeof(undefined4), 1, p_file) != 1) {
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fread(&m_unk0x14, sizeof(undefined4), 1, p_file) == 1 ? SUCCESS : FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10027910
|
// FUNCTION: LEGO1 0x10027910
|
||||||
|
|||||||
@ -93,8 +93,14 @@ class ModelDbPartListCursor : public MxListCursor<ModelDbPart*> {
|
|||||||
struct ModelDbModel {
|
struct ModelDbModel {
|
||||||
MxResult Read(FILE* p_file);
|
MxResult Read(FILE* p_file);
|
||||||
|
|
||||||
char* m_modelName; // 0x00
|
char* m_modelName; // 0x00
|
||||||
undefined m_unk0x04[0x34]; // 0x04
|
undefined4 m_unk0x04; // 0x04
|
||||||
|
undefined4 m_unk0x08; // 0x08
|
||||||
|
char* m_presenter; // 0x0c
|
||||||
|
undefined4 m_unk0x10[3]; // 0x10
|
||||||
|
undefined4 m_unk0x1c[3]; // 0x1c
|
||||||
|
undefined4 m_unk0x28[3]; // 0x28
|
||||||
|
undefined m_unk0x34; // 0x34
|
||||||
};
|
};
|
||||||
|
|
||||||
// SIZE 0x18
|
// SIZE 0x18
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user