mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-26 09:54:18 +00:00
Implement misc.lib (#483)
* Implement misc.lib * Lowercase files * Minor changes * Fix file cases * Fixes * Fix missing dtor * Add override * Match LegoImage::Read * Fix delete call --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
@@ -22,8 +22,8 @@ public:
|
||||
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
||||
};
|
||||
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x18 = p_unk0x18; }
|
||||
inline MxU32 GetUnknown18() { return m_unk0x18; }
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id)
|
||||
{
|
||||
|
||||
@@ -23,8 +23,8 @@ public:
|
||||
return !strcmp(p_name, AnimState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1C
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1C
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10065130
|
||||
// AnimState::`scalar deleting destructor'
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006290
|
||||
// GasStationState::`scalar deleting destructor'
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100764c0
|
||||
// HospitalState::`scalar deleting destructor'
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#ifndef LEGOANIMPRESENTER_H
|
||||
#define LEGOANIMPRESENTER_H
|
||||
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "mxgeometry/mxgeometry3d.h"
|
||||
#include "mxvideopresenter.h"
|
||||
|
||||
class LegoWorld;
|
||||
class LegoMemoryStream;
|
||||
class LegoAnimClass;
|
||||
|
||||
// VTABLE: LEGO1 0x100d90c8
|
||||
@@ -97,9 +97,9 @@ public:
|
||||
LegoAnimClass();
|
||||
virtual ~LegoAnimClass() override;
|
||||
|
||||
virtual void VTable0x8() override; // vtable+0x08
|
||||
virtual void VTable0xc() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemoryStream* p_stream, MxS32); // vtable+0x10
|
||||
virtual void VTable0x8() override; // vtable+0x08
|
||||
virtual void VTable0xc() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemory* p_stream, MxS32); // vtable+0x10
|
||||
|
||||
MxLong m_unk0x8; // 0x08
|
||||
undefined4 m_unk0xc; // 0x0c
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
#define LEGOGAMESTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "legobackgroundcolor.h"
|
||||
#include "legofullscreenmovie.h"
|
||||
#include "legostream.h"
|
||||
#include "mxtypes.h"
|
||||
#include "mxvariabletable.h"
|
||||
|
||||
class LegoState;
|
||||
class MxVariable;
|
||||
@@ -47,7 +48,7 @@ public:
|
||||
|
||||
struct ScoreStruct {
|
||||
void WriteScoreHistory();
|
||||
void FUN_1003ccf0(LegoFileStream&);
|
||||
void FUN_1003ccf0(LegoFile&);
|
||||
|
||||
MxU16 m_unk0x00;
|
||||
undefined m_unk0x02[0x2c][20];
|
||||
@@ -55,7 +56,9 @@ public:
|
||||
|
||||
private:
|
||||
void RegisterState(LegoState* p_state);
|
||||
MxResult WriteEndOfVariables(LegoStream* p_stream);
|
||||
MxResult WriteVariable(LegoStorage* p_stream, MxVariableTable* p_from, const char* p_variableName);
|
||||
MxResult WriteEndOfVariables(LegoStorage* p_stream);
|
||||
MxS32 ReadVariable(LegoStorage* p_stream, MxVariableTable* p_to);
|
||||
void SetROIHandlerFunction();
|
||||
|
||||
char* m_savePath; // 0x0
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define LEGOSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostream.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxstring.h"
|
||||
|
||||
@@ -24,9 +24,9 @@ public:
|
||||
return !strcmp(p_name, LegoState::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool VTable0x14(); // vtable+0x14
|
||||
virtual MxBool SetFlag(); // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream); // vtable+0x1C
|
||||
virtual MxBool VTable0x14(); // vtable+0x14
|
||||
virtual MxBool SetFlag(); // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile); // vtable+0x1C
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006160
|
||||
// LegoState::`scalar deleting destructor'
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
#ifndef LEGOSTREAM_H
|
||||
#define LEGOSTREAM_H
|
||||
|
||||
#include "compat.h"
|
||||
#include "decomp.h"
|
||||
#include "mxstring.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
#pragma warning(disable : 4237)
|
||||
#include <iosfwd>
|
||||
|
||||
#define LEGOSTREAM_MODE_READ 1
|
||||
#define LEGOSTREAM_MODE_WRITE 2
|
||||
|
||||
class MxVariableTable;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7d80
|
||||
class LegoStream {
|
||||
public:
|
||||
LegoStream() : m_mode(0) {}
|
||||
// FUNCTION: LEGO1 0x10045ad0
|
||||
inline virtual ~LegoStream() {}
|
||||
|
||||
virtual MxResult Read(void* p_buffer, MxU32 p_size) = 0;
|
||||
virtual MxResult Write(const void* p_buffer, MxU32 p_size) = 0;
|
||||
virtual MxResult Tell(MxU32* p_offset) = 0;
|
||||
virtual MxResult Seek(MxU32 p_offset) = 0;
|
||||
|
||||
virtual MxBool IsWriteMode();
|
||||
virtual MxBool IsReadMode();
|
||||
|
||||
enum OpenFlags {
|
||||
c_readBit = 1,
|
||||
c_writeBit = 2,
|
||||
c_binaryBit = 4,
|
||||
};
|
||||
|
||||
static MxResult __stdcall WriteVariable(LegoStream* p_stream, MxVariableTable* p_from, const char* p_variableName);
|
||||
static MxS32 __stdcall ReadVariable(LegoStream* p_stream, MxVariableTable* p_to);
|
||||
|
||||
protected:
|
||||
MxU8 m_mode;
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10045b00
|
||||
// LegoStream::`scalar deleting destructor'
|
||||
|
||||
// VTABLE: LEGO1 0x100db730
|
||||
class LegoFileStream : public LegoStream {
|
||||
public:
|
||||
LegoFileStream();
|
||||
virtual ~LegoFileStream() override;
|
||||
|
||||
MxResult Read(void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Write(const void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Tell(MxU32* p_offset) override;
|
||||
MxResult Seek(MxU32 p_offset) override;
|
||||
|
||||
MxResult Open(const char* p_filename, OpenFlags p_mode);
|
||||
|
||||
LegoFileStream* FUN_10006030(MxString p_str);
|
||||
|
||||
private:
|
||||
FILE* m_hFile;
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10099230
|
||||
// LegoFileStream::`scalar deleting destructor'
|
||||
|
||||
// VTABLE: LEGO1 0x100db710
|
||||
class LegoMemoryStream : public LegoStream {
|
||||
public:
|
||||
LegoMemoryStream(char* p_buffer);
|
||||
|
||||
MxResult Read(void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Write(const void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Tell(MxU32* p_offset) override;
|
||||
MxResult Seek(MxU32 p_offset) override;
|
||||
|
||||
private:
|
||||
char* m_buffer;
|
||||
MxU32 m_offset;
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10045a80
|
||||
// LegoMemoryStream::~LegoMemoryStream
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100990f0
|
||||
// LegoMemoryStream::`scalar deleting destructor'
|
||||
|
||||
#endif // LEGOSTREAM_H
|
||||
@@ -2,11 +2,11 @@
|
||||
#define LEGOUNKSAVEDATAWRITER_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class AutoROI;
|
||||
class LegoROI;
|
||||
class LegoStream;
|
||||
|
||||
struct LegoSaveDataEntry3 {
|
||||
char* m_name;
|
||||
@@ -35,7 +35,7 @@ struct LegoSaveDataEntry3 {
|
||||
|
||||
class LegoUnkSaveDataWriter {
|
||||
public:
|
||||
MxResult WriteSaveData3(LegoStream* p_stream);
|
||||
MxResult WriteSaveData3(LegoStorage* p_stream);
|
||||
AutoROI* FUN_10083500(undefined4, undefined4);
|
||||
void FUN_10083db0(LegoROI* p_roi);
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100260a0
|
||||
// LegoVehicleBuildState::`scalar deleting destructor'
|
||||
|
||||
@@ -13,7 +13,7 @@ class IslePathActor;
|
||||
class LegoPathBoundary;
|
||||
|
||||
struct PresenterSetCompare {
|
||||
int operator()(MxPresenter* const& p_a, MxPresenter* const& p_b) const { return p_a > p_b; }
|
||||
MxS32 operator()(MxPresenter* const& p_a, MxPresenter* const& p_b) const { return p_a > p_b; }
|
||||
};
|
||||
|
||||
typedef set<MxPresenter*, PresenterSetCompare> MxPresenterSet;
|
||||
@@ -23,7 +23,7 @@ typedef set<MxPresenter*, PresenterSetCompare> MxPresenterSet;
|
||||
class LegoWorld : public LegoEntity {
|
||||
public:
|
||||
__declspec(dllexport) LegoWorld();
|
||||
__declspec(dllexport) virtual ~LegoWorld(); // vtable+0x0
|
||||
__declspec(dllexport) virtual ~LegoWorld() override; // vtable+0x0
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
@@ -119,7 +119,6 @@ protected:
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001df00
|
||||
// Set<MxPresenter *,PresenterSetCompare>::~Set<MxPresenter *,PresenterSetCompare>
|
||||
// clang-format om
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001eed0
|
||||
// MxPresenterListCursor::`scalar deleting destructor'
|
||||
@@ -143,6 +142,7 @@ protected:
|
||||
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
||||
|
||||
// GLOBAL: LEGO1 0x100f11a0
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Nil
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *>>::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Nil
|
||||
// clang-format on
|
||||
|
||||
#endif // LEGOWORLD_H
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
return !strcmp(p_name, PizzaMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
return !strcmp(p_name, PizzeriaState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10017ce0
|
||||
// PizzeriaState::`scalar deleting destructor'
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
return !strcmp(p_name, PoliceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005e920
|
||||
// PoliceState::`scalar deleting destructor'
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
return !strcmp(p_name, RaceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
{
|
||||
return !strcmp(p_name, TowTrackMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1C
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1C
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user