This commit is contained in:
Christian Semmler 2024-01-07 14:34:25 -05:00
parent 3f3bc0e343
commit 7b4bd7cbf6
120 changed files with 280 additions and 63 deletions

View File

@ -8,12 +8,26 @@ option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON)
add_library(lego1 SHARED
LEGO1/define.cpp
LEGO1/lego/legoomni/src/act1/act1state.cpp
LEGO1/lego/legoomni/src/act2/act2brick.cpp
LEGO1/lego/legoomni/src/act2/act2policestation.cpp
LEGO1/lego/legoomni/src/act2/legoact2state.cpp
LEGO1/lego/legoomni/src/act3/act3.cpp
LEGO1/lego/legoomni/src/act3/act3shark.cpp
LEGO1/lego/legoomni/src/act3/act3state.cpp
LEGO1/lego/legoomni/src/audio/legocachesound.cpp
LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp
LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp
LEGO1/lego/legoomni/src/build/buildingentity.cpp
LEGO1/lego/legoomni/src/build/dunebuggy.cpp
LEGO1/lego/legoomni/src/build/helicopter.cpp
LEGO1/lego/legoomni/src/build/helicopterstate.cpp
LEGO1/lego/legoomni/src/build/jetski.cpp
LEGO1/lego/legoomni/src/build/legobuildingmanager.cpp
LEGO1/lego/legoomni/src/build/legocarbuild.cpp
LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp
LEGO1/lego/legoomni/src/build/racecar.cpp
LEGO1/lego/legoomni/src/common/animstate.cpp
LEGO1/lego/legoomni/src/common/gifmanager.cpp
LEGO1/lego/legoomni/src/common/legoactioncontrolpresenter.cpp
LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp
@ -37,11 +51,54 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/entity/legorace.cpp
LEGO1/lego/legoomni/src/entity/legoworld.cpp
LEGO1/lego/legoomni/src/entity/legoworldpresenter.cpp
LEGO1/lego/legoomni/src/gasstation/gasstation.cpp
LEGO1/lego/legoomni/src/gasstation/gasstationentity.cpp
LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp
LEGO1/lego/legoomni/src/hospital/ambulance.cpp
LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp
LEGO1/lego/legoomni/src/hospital/hospital.cpp
LEGO1/lego/legoomni/src/hospital/hospitalentity.cpp
LEGO1/lego/legoomni/src/hospital/hospitalstate.cpp
LEGO1/lego/legoomni/src/infocenter/elevatorbottom.cpp
LEGO1/lego/legoomni/src/infocenter/infocenter.cpp
LEGO1/lego/legoomni/src/infocenter/infocenterdoor.cpp
LEGO1/lego/legoomni/src/infocenter/infocenterentity.cpp
LEGO1/lego/legoomni/src/infocenter/infocenterstate.cpp
LEGO1/lego/legoomni/src/infocenter/registrationbook.cpp
LEGO1/lego/legoomni/src/infocenter/score.cpp
LEGO1/lego/legoomni/src/infocenter/scorestate.cpp
LEGO1/lego/legoomni/src/input/legoinputmanager.cpp
LEGO1/lego/legoomni/src/isle/beachhouseentity.cpp
LEGO1/lego/legoomni/src/isle/bike.cpp
LEGO1/lego/legoomni/src/isle/bumpbouy.cpp
LEGO1/lego/legoomni/src/isle/historybook.cpp
LEGO1/lego/legoomni/src/isle/isleactor.cpp
LEGO1/lego/legoomni/src/isle/isle.cpp
LEGO1/lego/legoomni/src/isle/islepathactor.cpp
LEGO1/lego/legoomni/src/isle/jukebox.cpp
LEGO1/lego/legoomni/src/isle/jukeboxentity.cpp
LEGO1/lego/legoomni/src/isle/jukeboxstate.cpp
LEGO1/lego/legoomni/src/isle/motorcycle.cpp
LEGO1/lego/legoomni/src/isle/radio.cpp
LEGO1/lego/legoomni/src/isle/radiostate.cpp
LEGO1/lego/legoomni/src/isle/skateboard.cpp
LEGO1/lego/legoomni/src/main/legoomni.cpp
LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp
LEGO1/lego/legoomni/src/paths/legopathcontroller.cpp
LEGO1/lego/legoomni/src/paths/legopathpresenter.cpp
LEGO1/lego/legoomni/src/pizzeria/pizza.cpp
LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp
LEGO1/lego/legoomni/src/pizzeria/pizzeria.cpp
LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp
LEGO1/lego/legoomni/src/police/police.cpp
LEGO1/lego/legoomni/src/police/policeentity.cpp
LEGO1/lego/legoomni/src/police/policestate.cpp
LEGO1/lego/legoomni/src/race/carrace.cpp
LEGO1/lego/legoomni/src/race/jetskirace.cpp
LEGO1/lego/legoomni/src/race/racestandsentity.cpp
LEGO1/lego/legoomni/src/race/racestate.cpp
LEGO1/lego/legoomni/src/towtrack/towtrack.cpp
LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp
LEGO1/lego/legoomni/src/unknown/legounknown100d7c88.cpp
LEGO1/lego/legoomni/src/video/legoanimationmanager.cpp
LEGO1/lego/legoomni/src/video/legoanimmmpresenter.cpp
@ -57,63 +114,6 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/video/legophonemepresenter.cpp
LEGO1/lego/legoomni/src/video/legotexturepresenter.cpp
LEGO1/lego/legoomni/src/video/legovideomanager.cpp
LEGO1/lego/scripts/act1/act1state.cpp
LEGO1/lego/scripts/act2/act2brick.cpp
LEGO1/lego/scripts/act2/act2policestation.cpp
LEGO1/lego/scripts/act2/legoact2state.cpp
LEGO1/lego/scripts/act3/act3.cpp
LEGO1/lego/scripts/act3/act3shark.cpp
LEGO1/lego/scripts/act3/act3state.cpp
LEGO1/lego/scripts/build/buildingentity.cpp
LEGO1/lego/scripts/build/dunebuggy.cpp
LEGO1/lego/scripts/build/helicopter.cpp
LEGO1/lego/scripts/build/helicopterstate.cpp
LEGO1/lego/scripts/build/jetski.cpp
LEGO1/lego/scripts/build/racecar.cpp
LEGO1/lego/scripts/gasstation/gasstation.cpp
LEGO1/lego/scripts/gasstation/gasstationentity.cpp
LEGO1/lego/scripts/gasstation/gasstationstate.cpp
LEGO1/lego/scripts/hospital/ambulance.cpp
LEGO1/lego/scripts/hospital/ambulancemissionstate.cpp
LEGO1/lego/scripts/hospital/hospital.cpp
LEGO1/lego/scripts/hospital/hospitalentity.cpp
LEGO1/lego/scripts/hospital/hospitalstate.cpp
LEGO1/lego/scripts/infocenter/elevatorbottom.cpp
LEGO1/lego/scripts/infocenter/infocenter.cpp
LEGO1/lego/scripts/infocenter/infocenterdoor.cpp
LEGO1/lego/scripts/infocenter/infocenterentity.cpp
LEGO1/lego/scripts/infocenter/infocenterstate.cpp
LEGO1/lego/scripts/infocenter/registrationbook.cpp
LEGO1/lego/scripts/infocenter/score.cpp
LEGO1/lego/scripts/infocenter/scorestate.cpp
LEGO1/lego/scripts/isle/animstate.cpp
LEGO1/lego/scripts/isle/beachhouseentity.cpp
LEGO1/lego/scripts/isle/bike.cpp
LEGO1/lego/scripts/isle/bumpbouy.cpp
LEGO1/lego/scripts/isle/historybook.cpp
LEGO1/lego/scripts/isle/isleactor.cpp
LEGO1/lego/scripts/isle/isle.cpp
LEGO1/lego/scripts/isle/islepathactor.cpp
LEGO1/lego/scripts/isle/jukebox.cpp
LEGO1/lego/scripts/isle/jukeboxentity.cpp
LEGO1/lego/scripts/isle/jukeboxstate.cpp
LEGO1/lego/scripts/isle/motorcycle.cpp
LEGO1/lego/scripts/isle/radio.cpp
LEGO1/lego/scripts/isle/radiostate.cpp
LEGO1/lego/scripts/isle/skateboard.cpp
LEGO1/lego/scripts/pizzeria/pizza.cpp
LEGO1/lego/scripts/pizzeria/pizzamissionstate.cpp
LEGO1/lego/scripts/pizzeria/pizzeria.cpp
LEGO1/lego/scripts/pizzeria/pizzeriastate.cpp
LEGO1/lego/scripts/police/police.cpp
LEGO1/lego/scripts/police/policeentity.cpp
LEGO1/lego/scripts/police/policestate.cpp
LEGO1/lego/scripts/race/carrace.cpp
LEGO1/lego/scripts/race/jetskirace.cpp
LEGO1/lego/scripts/race/racestandsentity.cpp
LEGO1/lego/scripts/race/racestate.cpp
LEGO1/lego/scripts/towtrack/towtrack.cpp
LEGO1/lego/scripts/towtrack/towtrackmissionstate.cpp
LEGO1/lego/sources/3dmanager/lego3dmanager.cpp
LEGO1/lego/sources/3dmanager/lego3dview.cpp
LEGO1/lego/sources/3dmanager/legoview1.cpp
@ -224,6 +224,7 @@ add_library(lego1 SHARED
LEGO1/viewmanager/viewmanager.cpp
LEGO1/viewmanager/viewroi.cpp
)
if (MINGW)
target_compile_definitions(lego1 PRIVATE DIRECTINPUT_VERSION=0x0500)
endif()

View File

@ -8,7 +8,6 @@
#include "legomodelpresenter.h"
#include "legoomni.h"
#include "legopartpresenter.h"
#include "legoroi.h"
#include "legovideomanager.h"
#include "legoworldpresenter.h"
#include "mxbackgroundaudiomanager.h"

View File

@ -0,0 +1,27 @@
#ifndef BUILDINGENTITY_H
#define BUILDINGENTITY_H
#include "legoentity.h"
// VTABLE: LEGO1 0x100d5c88
// SIZE <= 0x68, hard to tell because it's always constructed as a derivative
class BuildingEntity : public LegoEntity {
public:
BuildingEntity();
virtual ~BuildingEntity() override; // vtable+0x0
// FUNCTION: LEGO1 0x10014f20
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f07e8
return "BuildingEntity";
}
// FUNCTION: LEGO1 0x10014f30
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, BuildingEntity::ClassName()) || LegoEntity::IsA(p_name);
}
};
#endif // BUILDINGENTITY_H

View File

@ -0,0 +1,33 @@
#ifndef DUNEBUGGY_H
#define DUNEBUGGY_H
#include "decomp.h"
#include "islepathactor.h"
// VTABLE: LEGO1 0x100d8f98
// SIZE 0x16c
class DuneBuggy : public IslePathActor {
public:
DuneBuggy();
// FUNCTION: LEGO1 0x10067c30
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0410
return "DuneBuggy";
}
// FUNCTION: LEGO1 0x10067c40
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, DuneBuggy::ClassName()) || IslePathActor::IsA(p_name);
}
private:
// TODO: Double check DuneBuggy field types
undefined4 m_unk0x160;
MxFloat m_unk0x164;
undefined4 m_unk0x168;
};
#endif // DUNEBUGGY_H

View File

@ -0,0 +1,63 @@
#ifndef HELICOPTER_H
#define HELICOPTER_H
#include "helicopterstate.h"
#include "islepathactor.h"
#include "realtime/matrix.h"
// SIZE 0x34
class HelicopterSubclass {
public:
inline HelicopterSubclass() : m_unk0x30(0) {}
MxResult FUN_100040a0(Vector4Impl& p_v, float p_f);
private:
Vector4Data m_unk0x0; // 0x0
Vector4Data m_unk0x18; // 0x18
undefined4 m_unk0x30; // 0x30
};
// VTABLE: LEGO1 0x100d40f8
// SIZE 0x230
class Helicopter : public IslePathActor {
public:
Helicopter();
virtual ~Helicopter() override; // vtable+0x0
// FUNCTION: LEGO1 0x10003070
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0130
return "Helicopter";
}
// FUNCTION: LEGO1 0x10003080
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, Helicopter::ClassName()) || IslePathActor::IsA(p_name);
}
virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+0x18
void VTable0x70(float p_float) override; // vtable+0x70
void VTable0x74(Matrix4Impl& p_transform) override; // vtable+0x74
virtual MxU32 VTable0xcc() override; // vtable+0xcc
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
virtual MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
virtual void VTable0xe4() override; // vtable+0xe4
// SYNTHETIC: LEGO1 0x10003210
// Helicopter::`scalar deleting destructor'
protected:
Matrix4Data m_unk0x160; // 0x160
Matrix4Data m_unk0x1a8; // 0x1a8
float m_unk0x1f0; // 0x1f0
HelicopterSubclass m_unk0x1f4; // 0x1f4
HelicopterState* m_state; // 0x228
MxAtomId m_script; // 0x22c
private:
void GetState();
};
#endif // HELICOPTER_H

View File

@ -0,0 +1,31 @@
#ifndef HELICOPTERSTATE_H
#define HELICOPTERSTATE_H
#include "decomp.h"
#include "legostate.h"
// VTABLE: LEGO1 0x100d5418
// SIZE 0xc
class HelicopterState : public LegoState {
public:
// FUNCTION: LEGO1 0x1000e0d0
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0144
return "HelicopterState";
}
// FUNCTION: LEGO1 0x1000e0e0
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
}
inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; }
inline MxU32 GetUnkown8() { return m_unk0x8; }
protected:
MxU32 m_unk0x8; // 0x8
};
#endif // HELICOPTERSTATE_H

View File

@ -0,0 +1,31 @@
#ifndef JETSKI_H
#define JETSKI_H
#include "decomp.h"
#include "islepathactor.h"
// VTABLE: LEGO1 0x100d9ec8
// SIZE 0x164
class Jetski : public IslePathActor {
public:
Jetski();
// FUNCTION: LEGO1 0x1007e430
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f03d8
return "Jetski";
}
// FUNCTION: LEGO1 0x1007e440
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, Jetski::ClassName()) || IslePathActor::IsA(p_name);
}
private:
// TODO: Jetski fields
undefined m_unk0x160[4];
};
#endif // JETSKI_H

View File

@ -0,0 +1,32 @@
#ifndef RACECAR_H
#define RACECAR_H
#include "decomp.h"
#include "islepathactor.h"
// VTABLE: LEGO1 0x100d6918
// SIZE 0x164
class RaceCar : public IslePathActor {
public:
RaceCar();
virtual ~RaceCar() override; // vtable+0x0
// FUNCTION: LEGO1 0x10028270
inline virtual const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f03e0
return "RaceCar";
}
// FUNCTION: LEGO1 0x10028280
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, RaceCar::ClassName()) || IslePathActor::IsA(p_name);
}
private:
// TODO: RaceCar fields
undefined m_unk0x160[4];
};
#endif // RACECAR_H

View File

@ -2,12 +2,12 @@
#include "infocenterstate.h"
#include "legoomni.h"
#include "legoroi.h"
#include "legostate.h"
#include "legostream.h"
#include "mxobjectfactory.h"
#include "mxstring.h"
#include "mxvariabletable.h"
#include "roi/legoroi.h"
#include <stdio.h>

Some files were not shown because too many files have changed in this diff Show More