Merge remote-tracking branch 'upstream/master' into legobackgroundcolor

This commit is contained in:
Misha 2023-06-29 16:49:51 +03:00
commit c2b16eb8ff
308 changed files with 8715 additions and 240 deletions

View file

@ -6,13 +6,21 @@ Generally, decompilation is a fairly advanced skill. If you aren't already famil
## Ghidra Server ## Ghidra Server
For documenting the original binaries and generating pseudocode that we decompile with, we primarily use [Ghidra](https://ghidra-sre.org/) (it's free and open source). To help with collaboration, we have a shared Ghidra repository with all of our current work. You are free to check it out and mess around with it locally, however to prevent sabotage, you will need to request permission before you can push back to the server (ask in the Matrix room). For documenting the original binaries and generating pseudocode that we decompile with, we primarily use [Ghidra](https://ghidra-sre.org/) (it's free and open source). To help with collaboration, we have a shared Ghidra repository with all of our current work. You are free to check it out and mess around with it locally, however to prevent sabotage, you will need to request permission before you can push your changes back to the server (ask in the Matrix room).
To access the Ghidra repository, use the following details: To access the Ghidra repository, use the following details:
- Address: `server.mattkc.com` - Address: `server.mattkc.com`
- Port: `13100` - Port: `13100`
## General Guidelines
If you have contributions, feel free to create a pull request! Someone will review and merge it (or provide feedback) as soon as possible.
Please keep your pull requests small and understandable; you may be able to shoot ahead and make a lot of progress in a short amount of time, but this is a collaborative project, so you must allow others to catch up and follow along. Large pull requests become significantly more unwieldy to review, and as such make it exponentially more likely for a mistake or error to go undetected. They also make it harder to merge other pull requests because the more files you modify, the more likely it is for a merge conflict to occur. A general guideline is to keep submissions limited to one class at a time. Sometimes two or more classes may be too interlinked for this to be feasible, so this is not a hard rule, however if your PR is starting to modify more than 10 or so files, it's probably getting too big.
This repository currently has only one goal: accuracy to the original executables. We are byte/instruction matching as much as possible, which means the priority is making the original compiler (MSVC 4.20) produce code that matches the original game. As such, modernizations and bug fixes will probably be rejected for the time being.
## Code Style ## Code Style
In general, we're not exhaustively strict about coding style, but there are some preferable guidelines to follow that have been adopted from what we know about the original codebase: In general, we're not exhaustively strict about coding style, but there are some preferable guidelines to follow that have been adopted from what we know about the original codebase:
@ -23,10 +31,6 @@ In general, we're not exhaustively strict about coding style, but there are some
- `g_camelCase` for global variables. - `g_camelCase` for global variables.
- `p_camelCase` for function parameters. - `p_camelCase` for function parameters.
## Kinds of Contributions
This repository has only one goal: accuracy to the original executables. As such, we are not likely to accept pull requests that attempt to modernize the code, or improve compatibility in a newer compiler that ends up reducing compatibility in MSVC 4.20. Essentially, accuracy is king, everything else is secondary. For modernizations and enhancements, it's recommended to create a fork downstream from this one instead.
## Questions? ## Questions?
For any further questions, feel free to ask in either the [Matrix chatroom](https://matrix.to/#/#isledecomp:matrix.org) or on the [forum](https://forum.mattkc.com/viewforum.php?f=1). For any further questions, feel free to ask in either the [Matrix chatroom](https://matrix.to/#/#isledecomp:matrix.org) or on the [forum](https://forum.mattkc.com/viewforum.php?f=1).

View file

@ -1,4 +1,4 @@
#include "isle.h" #include "isleapp.h"
#include "define.h" #include "define.h"
#include <dsound.h> #include <dsound.h>

View file

@ -1,9 +1,9 @@
#ifndef ISLE_H #ifndef ISLEAPP_H
#define ISLE_H #define ISLEAPP_H
#include <windows.h> #include <windows.h>
#include "mxresult.h" #include "mxtypes.h"
#include "mxvideoparam.h" #include "mxvideoparam.h"
class IsleApp class IsleApp
@ -73,4 +73,4 @@ class IsleApp
HCURSOR m_cursorCurrent; HCURSOR m_cursorCurrent;
}; };
#endif // ISLE_H #endif // ISLEAPP_H

8
LEGO1/act1state.cpp Normal file
View file

@ -0,0 +1,8 @@
#include "act1state.h"
// OFFSET: LEGO1 0x100334b0 STUB
Act1State::Act1State()
{
// TODO
}

27
LEGO1/act1state.h Normal file
View file

@ -0,0 +1,27 @@
#ifndef ACT1STATE_H
#define ACT1STATE_H
#include "legostate.h"
// VTABLE 0x100d7028
// SIZE 0x26c
class Act1State : public LegoState
{
public:
Act1State();
// OFFSET: LEGO1 0x100338a0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0154
return "Act1State";
};
// OFFSET: LEGO1 0x100338b0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Act1State::ClassName()) || LegoState::IsA(name);
};
};
#endif // ACT1STATE_H

29
LEGO1/act2brick.cpp Normal file
View file

@ -0,0 +1,29 @@
#include "act2brick.h"
// OFFSET: LEGO1 0x1007a2b0 STUB
Act2Brick::Act2Brick()
{
// TODO
}
// OFFSET: LEGO1 0x1007a470 STUB
Act2Brick::~Act2Brick()
{
// TODO
}
// STUB OFFSET: LEGO1 0x1007a8c0 STUB
long Act2Brick::Notify(MxParam &p)
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x1007a7f0 STUB
long Act2Brick::Tickle()
{
// TODO
return 0;
}

32
LEGO1/act2brick.h Normal file
View file

@ -0,0 +1,32 @@
#ifndef ACT2BRICK_H
#define ACT2BRICK_H
#include "legopathactor.h"
// VTABLE 0x100d9b60
// SIZE 0x194
class Act2Brick : public LegoPathActor
{
public:
Act2Brick();
virtual ~Act2Brick() override; // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x4
virtual long Tickle() override; // vtable+0x08
// OFFSET: LEGO1 0x1007a360
inline virtual const char *ClassName() override // vtable+0x0c
{
// 0x100f0438
return "Act2Brick";
}
// OFFSET: LEGO1 0x1007a370
inline virtual MxBool IsA(const char *name) override // vtable+0x10
{
return !strcmp(Act2Brick::ClassName(), name) || LegoEntity::IsA(name);
}
};
#endif // ACT2BRICK_H

View file

@ -0,0 +1,9 @@
#include "act2policestation.h"
// OFFSET: LEGO1 0x1004e0e0 STUB
long Act2PoliceStation::Notify(MxParam &p)
{
// TODO
return 0;
}

27
LEGO1/act2policestation.h Normal file
View file

@ -0,0 +1,27 @@
#ifndef ACT2POLICESTATION_H
#define ACT2POLICESTATION_H
#include "legoentity.h"
// VTABLE 0x100d53a8
// SIZE 0x68
class Act2PoliceStation : public LegoEntity
{
public:
virtual long Notify(MxParam &p) override; // vtable+0x4
// OFFSET: LEGO1 0x1000e200
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f03fc
return "Act2PoliceStation";
}
// OFFSET: LEGO1 0x1000e210
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Act2PoliceStation::ClassName()) || LegoEntity::IsA(name);
}
};
#endif // ACT2POLICESTATION_H

13
LEGO1/act3.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "act3.h"
// OFFSET: LEGO1 0x10072270 STUB
Act3::Act3()
{
// TODO
}
// OFFSET: LEGO1 0x100726a0 STUB
Act3::~Act3()
{
// TODO
}

31
LEGO1/act3.h Normal file
View file

@ -0,0 +1,31 @@
#ifndef ACT3_H
#define ACT3_H
#include "legoworld.h"
// VTABLE 0x100d9628
// SIZE 0x4274
class Act3 : public LegoWorld
{
public:
Act3();
virtual ~Act3() override; // vtable+00
// OFFSET: LEGO1 0x10072510
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f013c
return "Act3";
}
// OFFSET: LEGO1 0x10072520
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Act3::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // ACT3_H

18
LEGO1/act3actor.h Normal file
View file

@ -0,0 +1,18 @@
#ifndef ACT3ACTOR_H
#define ACT3ACTOR_H
// FIXME: Uncertain location. There are three vtables which eventually call this
// class' ClassName() function, but none of them call it directly.
class Act3Actor
{
public:
// OFFSET: LEGO1 0x100431b0
inline virtual const char *ClassName() override
{
// 0x100f03ac
return "Act3Actor";
}
};
#endif // ACT3ACTOR_H

1
LEGO1/act3shark.cpp Normal file
View file

@ -0,0 +1 @@
#include "act3shark.h"

18
LEGO1/act3shark.h Normal file
View file

@ -0,0 +1,18 @@
#ifndef ACT3SHARK_H
#define ACT3SHARK_H
#include "legoanimactor.h"
// VTABLE 0x100d7920
class Act3Shark : public LegoAnimActor
{
public:
// OFFSET: LEGO1 0x100430c0
inline virtual const char *ClassName() const override
{
// 0x100f03a0
return "Act3Shark";
}
};
#endif // ACT3SHARK_H

7
LEGO1/act3state.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "act3state.h"
// OFFSET: LEGO1 0x1000e2f0
MxBool Act3State::VTable0x14()
{
return FALSE;
}

37
LEGO1/act3state.h Normal file
View file

@ -0,0 +1,37 @@
#ifndef ACT3STATE_H
#define ACT3STATE_H
#include "legostate.h"
// VTABLE 0x100d4fc8
// SIZE 0xc
class Act3State : public LegoState
{
public:
inline Act3State()
{
m_unk08 = 0;
}
// OFFSET: LEGO1 0x1000e300
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f03f0
return "Act3State";
}
// OFFSET: LEGO1 0x1000e310
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Act3State::ClassName()) || LegoState::IsA(name);
}
virtual MxBool VTable0x14() override;
private:
// FIXME: May be part of LegoState? Uncertain...
MxU32 m_unk08;
};
#endif // ACT3STATE_H

7
LEGO1/ambulance.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "ambulance.h"
// OFFSET: LEGO1 0x10035ee0 STUB
Ambulance::Ambulance()
{
// TODO
}

28
LEGO1/ambulance.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef AMBULANCE_H
#define AMBULANCE_H
#include "islepathactor.h"
// VTABLE 0x100d71a8
// SIZE 0x184
class Ambulance : public IslePathActor
{
public:
Ambulance();
// OFFSET: LEGO1 0x10035fa0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f03c4
return "Ambulance";
}
// OFFSET: LEGO1 0x10035fb0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Ambulance::ClassName()) || IslePathActor::IsA(name);
}
};
#endif // AMBULANCE_H

View file

@ -0,0 +1,7 @@
#include "ambulancemissionstate.h"
// OFFSET: LEGO1 0x100373a0 STUB
AmbulanceMissionState::AmbulanceMissionState()
{
// TODO
}

View file

@ -0,0 +1,29 @@
#ifndef AMBULANCEMISSIONSTATE_H
#define AMBULANCEMISSIONSTATE_H
#include "legostate.h"
// VTABLE 0x100d72a0
// SIZE 0x24
class AmbulanceMissionState : public LegoState
{
public:
AmbulanceMissionState();
// OFFSET: LEGO1 0x10037600
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f00e8
return "AmbulanceMissionState";
}
// OFFSET: LEGO1 0x10037610
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, AmbulanceMissionState::ClassName()) || LegoState::IsA(name);
}
};
#endif // AMBULANCEMISSIONSTATE_H

13
LEGO1/animstate.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "animstate.h"
// OFFSET: LEGO1 0x10064ff0 STUB
AnimState::AnimState()
{
// TODO
}
// OFFSET: LEGO1 0x10065150 STUB
AnimState::~AnimState()
{
// TODO
}

29
LEGO1/animstate.h Normal file
View file

@ -0,0 +1,29 @@
#ifndef ANIMSTATE_H
#define ANIMSTATE_H
#include "legostate.h"
// VTABLE 0x100d8d80
// SIZE 0x1c
class AnimState : public LegoState
{
public:
AnimState();
virtual ~AnimState() override; // vtable+0x0
// OFFSET: LEGO1 0x10065070
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0460
return "AnimState";
}
// OFFSET: LEGO1 0x10065080
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, AnimState::ClassName()) || LegoState::IsA(name);
}
};
#endif // ANIMSTATE_H

View file

@ -0,0 +1,9 @@
#include "beachhouseentity.h"
// OFFSET: LEGO1 0x100150a0 STUB
long BeachHouseEntity::Notify(MxParam &p)
{
// TODO
return 0;
}

27
LEGO1/beachhouseentity.h Normal file
View file

@ -0,0 +1,27 @@
#ifndef BEACHHOUSEENTITY_H
#define BEACHHOUSEENTITY_H
#include "buildingentity.h"
// VTABLE 0x100d4a18
// SIZE 0x68
class BeachHouseEntity : public BuildingEntity
{
public:
virtual long Notify(MxParam &p) override; // vtable+04
// OFFSET: LEGO1 0x1000ee80
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0314
return "BeachHouseEntity";
}
// OFFSET: LEGO1 0x1000ee90
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(name);
}
};
#endif // BEACHHOUSEENTITY_H

8
LEGO1/bike.cpp Normal file
View file

@ -0,0 +1,8 @@
#include "bike.h"
// OFFSET: LEGO1 0x10076670 STUB
Bike::Bike()
{
// TODO
}

29
LEGO1/bike.h Normal file
View file

@ -0,0 +1,29 @@
#ifndef BIKE_H
#define BIKE_H
#include "islepathactor.h"
// VTABLE 0x100d9808
// SIZE 0x164
class Bike : public IslePathActor
{
public:
Bike();
// OFFSET: LEGO1 0x100766f0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f03d0
return "Bike";
}
// OFFSET: LEGO1 0x10076700
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Bike::ClassName()) || IslePathActor::IsA(name);
}
};
#endif // BIKE_H

13
LEGO1/buildingentity.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "buildingentity.h"
// OFFSET: LEGO1 0x10014e20 STUB
BuildingEntity::BuildingEntity()
{
// TODO
}
// OFFSET: LEGO1 0x10015030 STUB
BuildingEntity::~BuildingEntity()
{
// TODO
}

28
LEGO1/buildingentity.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef BUILDINGENTITY_H
#define BUILDINGENTITY_H
#include "legoentity.h"
// VTABLE 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
// OFFSET: LEGO1 0x10014f20
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f07e8
return "BuildingEntity";
}
// OFFSET: LEGO1 0x10014f30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, BuildingEntity::ClassName()) || LegoEntity::IsA(name);
}
};
#endif // BUILDINGENTITY_H

1
LEGO1/bumpbouy.cpp Normal file
View file

@ -0,0 +1 @@
#include "bumpbouy.h"

25
LEGO1/bumpbouy.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef BUMPBOUY_H
#define BUMPBOUY_H
#include "legoanimactor.h"
#include "mxtypes.h"
// VTABLE 0x100d6790
class BumpBouy : public LegoAnimActor
{
public:
// OFFSET: LEGO1 0x100274e0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0394
return "BumpBouy";
}
// OFFSET: LEGO1 0x10027500
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, BumpBouy::ClassName()) || LegoAnimActor::IsA(name);
}
};
#endif // BUMPBOUY_H

7
LEGO1/carrace.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "carrace.h"
// OFFSET: LEGO1 0x10016a90 STUB
CarRace::CarRace()
{
// TODO
}

27
LEGO1/carrace.h Normal file
View file

@ -0,0 +1,27 @@
#ifndef CARRACE_H
#define CARRACE_H
#include "legorace.h"
// VTABLE 0x100d5e50
// SIZE 0x154
class CarRace : public LegoRace
{
public:
CarRace();
// OFFSET: LEGO1 0x10016b20
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0528
return "CarRace";
}
// OFFSET: LEGO1 0x10016b30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, CarRace::ClassName()) || LegoRace::IsA(name);
}
};
#endif // CARRACE_H

25
LEGO1/carracestate.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef CARRACESTATE_H
#define CARRACESTATE_H
#include "racestate.h"
// VTABLE 0x100d4b70
// SIZE 0x2c
class CarRaceState : public RaceState
{
public:
// OFFSET: LEGO1 0x1000dd30
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f009c
return "CarRaceState";
}
// OFFSET: LEGO1 0x1000dd40
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, CarRaceState::ClassName()) || RaceState::IsA(name);
}
};
#endif // CARRACESTATE_H

26
LEGO1/doors.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef DOORS_H
#define DOORS_H
#include "legopathactor.h"
// VTABLE 0x100d4788
// SIZE 0x1f8
class Doors : public LegoPathActor
{
public:
// OFFSET: LEGO1 0x1000e430
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f03e8
return "Doors";
}
// OFFSET: LEGO1 0x1000e440
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Doors::ClassName()) || LegoPathActor::IsA(name);
}
};
#endif // DOORS_H

7
LEGO1/dunebuggy.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "dunebuggy.h"
// OFFSET: LEGO1 0x10067bb0 STUB
DuneBuggy::DuneBuggy()
{
// TODO
}

28
LEGO1/dunebuggy.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef DUNEBUGGY_H
#define DUNEBUGGY_H
#include "islepathactor.h"
// VTABLE 0x100d8f98
// SIZE 0x16c
class DuneBuggy : public IslePathActor
{
public:
DuneBuggy();
// OFFSET: LEGO1 0x10067c30
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0410
return "DuneBuggy";
}
// OFFSET: LEGO1 0x10067c40
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, DuneBuggy::ClassName()) || IslePathActor::IsA(name);
}
};
#endif // DUNEBUGGY_H

21
LEGO1/elevatorbottom.cpp Normal file
View file

@ -0,0 +1,21 @@
#include "elevatorbottom.h"
// OFFSET: LEGO1 0x10017e90 STUB
ElevatorBottom::ElevatorBottom()
{
// TODO
}
// OFFSET: LEGO1 0x10018060 STUB
ElevatorBottom::~ElevatorBottom()
{
// TODO
}
// OFFSET: LEGO1 0x10018150 STUB
long ElevatorBottom::Notify(MxParam &p)
{
// TODO
return 0;
}

30
LEGO1/elevatorbottom.h Normal file
View file

@ -0,0 +1,30 @@
#ifndef ELEVATORBOTTOM_H
#define ELEVATORBOTTOM_H
#include "legoworld.h"
// VTABLE 0x100d5f20
class ElevatorBottom : public LegoWorld
{
public:
ElevatorBottom();
virtual ~ElevatorBottom() override; // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x4
// OFFSET: LEGO1 0x10017f20
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f04ac
return "ElevatorBottom";
}
// OFFSET: LEGO1 0x10017f30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, ElevatorBottom::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // ELEVATORBOTTOM_H

29
LEGO1/gasstation.cpp Normal file
View file

@ -0,0 +1,29 @@
#include "gasstation.h"
// OFFSET: LEGO1 0x100046a0 STUB
GasStation::GasStation()
{
// TODO
}
// OFFSET: LEGO1 0x100048c0 STUB
GasStation::~GasStation()
{
// TODO
}
// OFFSET: LEGO1 0x10004a60 STUB
long GasStation::Notify(MxParam &p)
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x10005c90 STUB
long GasStation::Tickle()
{
// TODO
return 0;
}

33
LEGO1/gasstation.h Normal file
View file

@ -0,0 +1,33 @@
#ifndef GASSTATION_H
#define GASSTATION_H
#include "legoworld.h"
// VTABLE 0x100d4650
// SIZE 0x128
// Radio variable at 0x46, in constructor
class GasStation : public LegoWorld
{
public:
GasStation();
virtual ~GasStation() override; // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x4
virtual long Tickle() override; // vtable+0x8
// OFFSET: LEGO1 0x10004780
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0168
return "GasStation";
}
// OFFSET: LEGO1 0x10004790
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, GasStation::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // GASSTATION_H

View file

@ -0,0 +1 @@
#include "gasstationentity.h"

25
LEGO1/gasstationentity.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef GASSTATIONENTITY_H
#define GASSTATIONENTITY_H
#include "buildingentity.h"
// VTABLE 0x100d5258
// SIZE 0x68
class GasStationEntity : public BuildingEntity
{
public:
// OFFSET: LEGO1 0x1000eb20
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0348
return "GasStationEntity";
}
// OFFSET: LEGO1 0x1000eb30
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, GasStationEntity::ClassName()) || BuildingEntity::IsA(name);
}
};
#endif // GASSTATIONENTITY_H

View file

@ -0,0 +1,7 @@
#include "gasstationstate.h"
// OFFSET: LEGO1 0x10005eb0 STUB
GasStationState::GasStationState()
{
// TODO
}

28
LEGO1/gasstationstate.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef GASSTATIONSTATE_H
#define GASSTATIONSTATE_H
#include "legostate.h"
// VTABLE 0x100d46e0
// SIZE 0x24
class GasStationState : public LegoState
{
public:
GasStationState();
// OFFSET: LEGO1 0x100061d0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0174
return "GasStationState";
}
// OFFSET: LEGO1 0x100061e0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, GasStationState::ClassName()) || LegoState::IsA(name);
}
};
#endif // GASSTATIONSTATE_H

13
LEGO1/helicopter.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "helicopter.h"
// OFFSET: LEGO1 0x10001e60 STUB
Helicopter::Helicopter()
{
// TODO
}
// OFFSET: LEGO1 0x10003230 STUB
Helicopter::~Helicopter()
{
// TODO
}

29
LEGO1/helicopter.h Normal file
View file

@ -0,0 +1,29 @@
#ifndef HELICOPTER_H
#define HELICOPTER_H
#include "islepathactor.h"
// VTABLE 0x100d40f8
// SIZE 0x230
class Helicopter : public IslePathActor
{
public:
Helicopter();
virtual ~Helicopter(); // vtable+0x0
// OFFSET: LEGO1 0x10003070
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0130
return "Helicopter";
}
// OFFSET: LEGO1 0x10003080
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Helicopter::ClassName()) || IslePathActor::IsA(name);
}
};
#endif // HELICOPTER_H

View file

@ -0,0 +1 @@
#include "helicopterstate.h"

25
LEGO1/helicopterstate.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef HELICOPTERSTATE_H
#define HELICOPTERSTATE_H
#include "legostate.h"
// VTABLE 0x100d5418
// SIZE 0xc
class HelicopterState : public LegoState
{
public:
// OFFSET: LEGO1 0x1000e0d0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0144
return "HelicopterState";
}
// OFFSET: LEGO1 0x1000e0e0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, HelicopterState::ClassName()) || LegoState::IsA(name);
}
};
#endif // HELICOPTERSTATE_H

21
LEGO1/historybook.cpp Normal file
View file

@ -0,0 +1,21 @@
#include "historybook.h"
// OFFSET: LEGO1 0x100822f0 STUB
HistoryBook::HistoryBook()
{
// TODO
}
// OFFSET: LEGO1 0x100824d0 STUB
HistoryBook::~HistoryBook()
{
// TODO
}
// OFFSET: LEGO1 0x10082680 STUB
long HistoryBook::Notify(MxParam &p)
{
// TODO
return 0;
}

30
LEGO1/historybook.h Normal file
View file

@ -0,0 +1,30 @@
#ifndef HISTORYBOOK_H
#define HISTORYBOOK_H
#include "legoworld.h"
// VTABLE 0x100da328
// SIZE 0x3e4
class HistoryBook : public LegoWorld
{
public:
HistoryBook();
virtual ~HistoryBook() override; // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x4
// OFFSET: LEGO1 0x10082390
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f04bc
return "HistoryBook";
}
// OFFSET: LEGO1 0x100823a0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, HistoryBook::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // HISTORYBOOK_H

21
LEGO1/hospital.cpp Normal file
View file

@ -0,0 +1,21 @@
#include "hospital.h"
// OFFSET: LEGO1 0x100745e0 STUB
Hospital::Hospital()
{
// TODO
}
// OFFSET: LEGO1 0x100747f0 STUB
Hospital::~Hospital()
{
// TODO
}
// OFFSET: LEGO1 0x10074990 STUB
long Hospital::Notify(MxParam &p)
{
// TODO
return 0;
}

31
LEGO1/hospital.h Normal file
View file

@ -0,0 +1,31 @@
#ifndef HOSPITAL_H
#define HOSPITAL_H
#include "legoworld.h"
// VTABLE 0x100d9730
// SIZE 0x12c
class Hospital : public LegoWorld
{
public:
Hospital();
virtual ~Hospital() override; // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x04
// OFFSET: LEGO1 0x100746b0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0490
return "Hospital";
}
// OFFSET: LEGO1 0x100746c0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Hospital::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // HOSPITAL_H

1
LEGO1/hospitalentity.cpp Normal file
View file

@ -0,0 +1 @@
#include "hospitalentity.h"

26
LEGO1/hospitalentity.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef HOSPITALENTITY_H
#define HOSPITALENTITY_H
#include "buildingentity.h"
// VTABLE 0x100d5068
// SIZE 0x68
class HospitalEntity : public BuildingEntity
{
public:
// OFFSET: LEGO1 0x1000ec40
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0338
return "HospitalEntity";
}
// OFFSET: LEGO1 0x1000ec50
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, HospitalEntity::ClassName()) || BuildingEntity::IsA(name);
}
};
#endif // HOSPITALENTITY_H

7
LEGO1/hospitalstate.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "hospitalstate.h"
// OFFSET: LEGO1 0x10076370 STUB
HospitalState::HospitalState()
{
// TODO
}

28
LEGO1/hospitalstate.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef HOSPITALSTATE_H
#define HOSPITALSTATE_H
#include "legostate.h"
// VTABLE 0x100d97a0
// SIZE 0x18
class HospitalState : public LegoState
{
public:
HospitalState();
// OFFSET: LEGO1 0x10076400
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0480
return "HospitalState";
}
// OFFSET: LEGO1 0x10076410
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, HospitalState::ClassName()) || LegoState::IsA(name);
}
};
#endif // HOSPITALSTATE_H

29
LEGO1/infocenter.cpp Normal file
View file

@ -0,0 +1,29 @@
#include "infocenter.h"
// OFFSET: LEGO1 0x1006ea20 STUB
Infocenter::Infocenter()
{
// TODO
}
// OFFSET: LEGO1 0x1006ec90 STUB
Infocenter::~Infocenter()
{
// TODO
}
// OFFSET: LEGO1 0x1006ef10 STUB
long Infocenter::Notify(MxParam &p)
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x10070af0 STUB
long Infocenter::Tickle()
{
// TODO
return 0;
}

32
LEGO1/infocenter.h Normal file
View file

@ -0,0 +1,32 @@
#ifndef INFOCENTER_H
#define INFOCENTER_H
#include "legoworld.h"
// VTABLE 0x100d9338
// SIZE 0x1d8
class Infocenter : public LegoWorld
{
public:
Infocenter();
virtual ~Infocenter() override;
virtual long Notify(MxParam &p) override; // vtable+0x4
virtual long Tickle() override; // vtable+0x8
// OFFSET: LEGO1 0x1006eb40
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f04ec
return "Infocenter";
}
// OFFSET: LEGO1 0x1006eb50
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Infocenter::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // INFOCENTER_H

21
LEGO1/infocenterdoor.cpp Normal file
View file

@ -0,0 +1,21 @@
#include "infocenterdoor.h"
// OFFSET: LEGO1 0x10037730 STUB
InfocenterDoor::InfocenterDoor()
{
// TODO
}
// OFFSET: LEGO1 0x100378f0 STUB
InfocenterDoor::~InfocenterDoor()
{
// TODO
}
// OFFSET: LEGO1 0x100379e0 STUB
long InfocenterDoor::Notify(MxParam &p)
{
// TODO
return 0;
}

31
LEGO1/infocenterdoor.h Normal file
View file

@ -0,0 +1,31 @@
#ifndef INFOCENTERDOOR_H
#define INFOCENTERDOOR_H
#include "legoworld.h"
// VTABLE 0x100d72d8
// SIZE 0xfc
class InfocenterDoor : public LegoWorld
{
public:
InfocenterDoor();
virtual ~InfocenterDoor(); // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x4
// OFFSET: LEGO1 0x100377b0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f049c
return "InfocenterDoor";
}
// OFFSET: LEGO1 0x100377c0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, InfocenterDoor::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // INFOCENTERDOOR_H

View file

@ -0,0 +1 @@
#include "infocenterentity.h"

26
LEGO1/infocenterentity.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef INFOCENTERENTITY_H
#define INFOCENTERENTITY_H
#include "buildingentity.h"
// VTABLE 0x100d4b90
// SIZE 0x68
class InfoCenterEntity : public BuildingEntity
{
public:
// OFFSET: LEGO1 0x1000ea00
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f035c
return "InfoCenterEntity";
}
// OFFSET: LEGO1 0x1000ea10
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(name);
}
};
#endif // INFOCENTERENTITY_H

14
LEGO1/infocenterstate.cpp Normal file
View file

@ -0,0 +1,14 @@
#include "infocenterstate.h"
// OFFSET: LEGO1 0x10071600 STUB
InfocenterState::InfocenterState()
{
// TODO
}
// OFFSET: LEGO1 0x10071920 STUB
InfocenterState::~InfocenterState()
{
// TODO
}

28
LEGO1/infocenterstate.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef INFOCENTERSTATE_H
#define INFOCENTERSTATE_H
#include "legostate.h"
// VTABLE 0x100d93a8
// SIZE 0x94
class InfocenterState : public LegoState
{
public:
InfocenterState();
virtual ~InfocenterState();
// OFFSET: LEGO1 0x10071840
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f04dc
return "InfocenterState";
}
// OFFSET: LEGO1 0x10071850
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, InfocenterState::ClassName()) || LegoState::IsA(name);
}
};
#endif // INFOCENTERSTATE_H

7
LEGO1/isle.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "isle.h"
// OFFSET: LEGO1 0x10030820 STUB
Isle::Isle()
{
// TODO
}

28
LEGO1/isle.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef ISLE_H
#define ISLE_H
#include "legoworld.h"
// VTABLE 0x100d6fb8
// SIZE 0x140
// Radio at 0x12c
class Isle : public LegoWorld
{
public:
Isle();
// OFFSET: LEGO1 0x10030910
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0458
return "Isle";
}
// OFFSET: LEGO1 0x10030920
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Isle::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // ISLE_H

1
LEGO1/isleactor.cpp Normal file
View file

@ -0,0 +1 @@
#include "isleactor.h"

24
LEGO1/isleactor.h Normal file
View file

@ -0,0 +1,24 @@
#ifndef ISLEACTOR_H
#define ISLEACTOR_H
#include "legoactor.h"
// VTABLE 0x100d5178
class IsleActor : public LegoActor
{
public:
// OFFSET: LEGO1 0x1000e660
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f07dc
return "IsleActor";
}
// OFFSET: LEGO1 0x1000e670
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, IsleActor::ClassName()) || LegoActor::IsA(name);
}
};
#endif // ISLEACTOR_H

1
LEGO1/islepathactor.cpp Normal file
View file

@ -0,0 +1 @@
#include "islepathactor.h"

25
LEGO1/islepathactor.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef ISLEPATHACTOR_H
#define ISLEPATHACTOR_H
#include "legopathactor.h"
// VTABLE 0x100d4398
// SIZE >= 0x230
class IslePathActor : public LegoPathActor
{
public:
// OFFSET: LEGO1 0x10002ea0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0104
return "IslePathActor";
}
// OFFSET: LEGO1 0x10002eb0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, IslePathActor::ClassName()) || LegoPathActor::IsA(name);
}
};
#endif // ISLEPATHACTOR_H

7
LEGO1/jetski.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "jetski.h"
// OFFSET: LEGO1 0x1007e3b0 STUB
Jetski::Jetski()
{
// TODO
}

29
LEGO1/jetski.h Normal file
View file

@ -0,0 +1,29 @@
#ifndef JETSKI_H
#define JETSKI_H
#include "islepathactor.h"
// VTABLE 0x100d9ec8
// SIZE 0x164
class Jetski : public IslePathActor
{
public:
Jetski();
// OFFSET: LEGO1 0x1007e430
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f03d8
return "Jetski";
}
// OFFSET: LEGO1 0x1007e440
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Jetski::ClassName()) || IslePathActor::IsA(name);
}
};
#endif // JETSKI_H

1
LEGO1/jetskirace.cpp Normal file
View file

@ -0,0 +1 @@
#include "jetskirace.h"

26
LEGO1/jetskirace.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef JETSKIRACE_H
#define JETSKIRACE_H
#include "legorace.h"
// VTABLE 0x100d4fe8
// SIZE 0x144
class JetskiRace : public LegoRace
{
public:
// OFFSET: LEGO1 0x1000daf0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0530
return "JetskiRace";
}
// OFFSET: LEGO1 0x1000db00
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JetskiRace::ClassName()) || LegoRace::IsA(name);
}
};
#endif // JETSKIRACE_H

26
LEGO1/jetskiracestate.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef JETSKIRACESTATE_H
#define JETSKIRACESTATE_H
#include "racestate.h"
// VTABLE 0x100d4fa8
// SIZE 0x2c
class JetskiRaceState : public RaceState
{
public:
// OFFSET: LEGO1 0x1000dc40
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f00ac
return "JetskiRaceState";
}
// OFFSET: LEGO1 0x1000dc50
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JetskiRaceState::ClassName()) || RaceState::IsA(name);
}
};
#endif // JETSKIRACESTATE_H

7
LEGO1/jukebox.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "jukebox.h"
// OFFSET: LEGO1 0x1005d660 STUB
JukeBox::JukeBox()
{
// TODO
}

28
LEGO1/jukebox.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef JUKEBOX_H
#define JUKEBOX_H
#include "legoworld.h"
// VTABLE 0x100d8958
// SIZE 0x104
class JukeBox : public LegoWorld
{
public:
JukeBox();
// OFFSET: LEGO1 0x1005d6f0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f02cc
return "JukeBox";
}
// OFFSET: LEGO1 0x1005d700
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JukeBox::ClassName()) || LegoWorld::IsA(name);
}
};
#endif // JUKEBOX_H

13
LEGO1/jukeboxentity.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "jukeboxentity.h"
// OFFSET: LEGO1 0x10085bc0 STUB
JukeBoxEntity::JukeBoxEntity()
{
// TODO
}
// OFFSET: LEGO1 0x10085dd0 STUB
JukeBoxEntity::~JukeBoxEntity()
{
// TODO
}

29
LEGO1/jukeboxentity.h Normal file
View file

@ -0,0 +1,29 @@
#ifndef JUKEBOXENTITY_H
#define JUKEBOXENTITY_H
#include "legoentity.h"
// VTABLE 0x100da8a0
// SIZE 0x6c
class JukeBoxEntity : public LegoEntity
{
public:
JukeBoxEntity();
virtual ~JukeBoxEntity() override; // vtable+0x0
// OFFSET: LEGO1 0x10085cc0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f02f0
return "JukeBoxEntity";
}
// OFFSET: LEGO1 0x10085cd0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JukeBoxEntity::ClassName()) || LegoEntity::IsA(name);
}
};
#endif // JUKEBOXENTITY_H

1
LEGO1/jukeboxstate.cpp Normal file
View file

@ -0,0 +1 @@
#include "jukeboxstate.h"

26
LEGO1/jukeboxstate.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef JUKEBOXSTATE_H
#define JUKEBOXSTATE_H
#include "legostate.h"
// VTABLE 0x100d4a90
// SIZE 0x10
class JukeBoxState : public LegoState
{
public:
// OFFSET: LEGO1 0x1000f310
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f02bc
return "JukeBoxState";
}
// OFFSET: LEGO1 0x1000f320
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, JukeBoxState::ClassName()) || LegoState::IsA(name);
}
};
#endif // JUKEBOXSTATE_H

View file

@ -0,0 +1,25 @@
#ifndef LEGO3DWAVEPRESENTER_H
#define LEGO3DWAVEPRESENTER_H
#include "legowavepresenter.h"
// VTABLE 0x100d52b0
// SIZE 0xa0
class Lego3DWavePresenter : public LegoWavePresenter
{
public:
// OFFSET: LEGO1 0x1000d890
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f058c
return "Lego3DWavePresenter";
}
// OFFSET: LEGO1 0x1000d8a0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, Lego3DWavePresenter::ClassName()) || MxWavePresenter::IsA(name);
}
};
#endif // LEGO3DWAVEPRESENTER_H

1
LEGO1/legoact2state.cpp Normal file
View file

@ -0,0 +1 @@
#include "legoact2state.h"

26
LEGO1/legoact2state.h Normal file
View file

@ -0,0 +1,26 @@
#ifndef LEGOACT2STATE_H
#define LEGOACT2STATE_H
#include "legostate.h"
// VTABLE 0x100d4a70
// SIZE 0x10
class LegoAct2State : public LegoState
{
public:
// OFFSET: LEGO1 0x1000df80
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0428
return "LegoAct2State";
}
// OFFSET: LEGO1 0x1000df90
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAct2State::ClassName()) || LegoState::IsA(name);
}
};
#endif // LEGOACT2STATE_H

View file

@ -0,0 +1 @@
#include "legoactioncontrolpresenter.h"

View file

@ -0,0 +1,25 @@
#ifndef LEGOACTIONCONTROLPRESENTER_H
#define LEGOACTIONCONTROLPRESENTER_H
#include "mxmediapresenter.h"
// VTABLE 0x100d5118
// SIZE 0x68
class LegoActionControlPresenter : public MxMediaPresenter
{
public:
// OFFSET: LEGO1 0x1000d0e0
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f05bc
return "LegoActionControlPresenter";
}
// OFFSET: LEGO1 0x1000d0f0
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoActionControlPresenter::ClassName()) || MxMediaPresenter::IsA(name);
}
};
#endif // LEGOACTIONCONTROLPRESENTER_H

25
LEGO1/legoactor.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef LEGOACTOR_H
#define LEGOACTOR_H
#include "legoentity.h"
// VTABLE 0x100d6d68
// SIZE 0x78
class LegoActor : public LegoEntity
{
public:
// OFFSET: LEGO1 0x1002d210
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f0124
return "LegoActor";
}
// OFFSET: LEGO1 0x1002d220
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoActor::ClassName()) || LegoEntity::IsA(name);
}
};
#endif // LEGOACTOR_H

View file

@ -0,0 +1,25 @@
#ifndef LEGOACTORPRESENTER_H
#define LEGOACTORPRESENTER_H
#include "legoentitypresenter.h"
// VTABLE 0x100d5320
// SIZE 0x50
class LegoActorPresenter : public LegoEntityPresenter
{
public:
// OFFSET: LEGO1 0x1000cb10
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f06a4
return "LegoActorPresenter";
}
// OFFSET: LEGO1 0x1000cb20
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoActorPresenter::ClassName()) || LegoEntityPresenter::IsA(name);
}
};
#endif // LEGOACTORPRESENTER_H

1
LEGO1/legoanimactor.cpp Normal file
View file

@ -0,0 +1 @@
#include "legoanimactor.h"

11
LEGO1/legoanimactor.h Normal file
View file

@ -0,0 +1,11 @@
#ifndef LEGOANIMACTOR_H
#define LEGOANIMACTOR_H
#include "legopathactor.h"
class LegoAnimActor : public LegoPathActor
{
public:
};
#endif // LEGOANIMACTOR_H

View file

@ -0,0 +1,34 @@
#include "legoanimationmanager.h"
// OFFSET: LEGO1 0x1005eb60 STUB
LegoAnimationManager::LegoAnimationManager()
{
}
// OFFSET: LEGO1 0x1005ed30 STUB
LegoAnimationManager::~LegoAnimationManager()
{
// TODO
}
// OFFSET: LEGO1 0x100619f0 STUB
long LegoAnimationManager::Notify(MxParam &p)
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x10061cc0 STUB
long LegoAnimationManager::Tickle()
{
// TODO
return 0;
}
// OFFSET: LEGO1 0x1005f130 STUB
void LegoAnimationManager::Init()
{
// TODO
}

View file

@ -1,10 +1,37 @@
#ifndef LEGOANIMATIONMANAGER_H #ifndef LEGOANIMATIONMANAGER_H
#define LEGOANIMATIONMANAGER_H #define LEGOANIMATIONMANAGER_H
class LegoAnimationManager #include "mxcore.h"
// VTABLE 0x100d8c18
// SIZE 0x500
class LegoAnimationManager : public MxCore
{ {
public: public:
LegoAnimationManager();
virtual ~LegoAnimationManager() override; // vtable+0x0
virtual long Notify(MxParam &p) override; // vtable+0x4
virtual long Tickle() override; // vtable+0x8
// OFFSET: LEGO1 0x1005ec80
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f7508
return "LegoAnimationManager";
}
// OFFSET: LEGO1 0x1005ec90
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimationManager::ClassName()) || MxCore::IsA(name);
}
__declspec(dllexport) static void configureLegoAnimationManager(int param_1); __declspec(dllexport) static void configureLegoAnimationManager(int param_1);
private:
void Init();
}; };
#endif // LEGOANIMATIONMANAGER_H #endif // LEGOANIMATIONMANAGER_H

View file

@ -0,0 +1,7 @@
#include "legoanimmmpresenter.h"
// OFFSET: LEGO1 0x1004a8d0 STUB
LegoAnimMMPresenter::LegoAnimMMPresenter()
{
// TODO
}

View file

@ -0,0 +1,28 @@
#ifndef LEGOANIMMMPRESENTER_H
#define LEGOANIMMMPRESENTER_H
#include "mxcompositepresenter.h"
// VTABLE 0x100d7de8
// SIZE 0x74
class LegoAnimMMPresenter : public MxCompositePresenter
{
public:
LegoAnimMMPresenter();
// OFFSET: LEGO1 0x1004a950
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f046c
return "LegoAnimMMPresenter";
}
// OFFSET: LEGO1 0x1004a960
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(name);
}
};
#endif // LEGOANIMMMPRESENTER_H

View file

@ -0,0 +1,13 @@
#include "legoanimpresenter.h"
// OFFSET: LEGO1 0x10068420 STUB
LegoAnimPresenter::LegoAnimPresenter()
{
// TODO
}
// OFFSET: LEGO1 0x100686f0 STUB
void LegoAnimPresenter::Init()
{
// TODO
}

30
LEGO1/legoanimpresenter.h Normal file
View file

@ -0,0 +1,30 @@
#ifndef LEGOANIMPRESENTER_H
#define LEGOANIMPRESENTER_H
#include "mxvideopresenter.h"
// VTABLE 0x100d90c8
class LegoAnimPresenter : public MxVideoPresenter
{
public:
LegoAnimPresenter();
// OFFSET: LEGO1 0x10068530
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f071c
return "LegoAnimPresenter";
}
// OFFSET: LEGO1 0x10068540
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoAnimPresenter::ClassName()) || MxVideoPresenter::IsA(name);
}
private:
void Init();
};
#endif // LEGOANIMPRESENTER_H

View file

@ -0,0 +1,17 @@
#include "legobuildingmanager.h"
// OFFSET: LEGO1 0x1002f8c0 STUB
LegoBuildingManager::LegoBuildingManager()
{
}
// OFFSET: LEGO1 0x1002f960 STUB
LegoBuildingManager::~LegoBuildingManager()
{
}
// OFFSET: LEGO1 0x1002f9d0 STUB
void LegoBuildingManager::Init()
{
// TODO
}

View file

@ -1,10 +1,28 @@
#ifndef LEGOBUILDINGMANAGER_H #ifndef LEGOBUILDINGMANAGER_H
#define LEGOBUILDINGMANAGER_H #define LEGOBUILDINGMANAGER_H
class LegoBuildingManager #include "mxcore.h"
// VTABLE 0x100d6f50
// SIZE 0x30
class LegoBuildingManager : public MxCore
{ {
public: public:
LegoBuildingManager();
virtual ~LegoBuildingManager() override;
// OFFSET: LEGO1 0x1002f930
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f37d0
return "LegoBuildingManager";
}
__declspec(dllexport) static void configureLegoBuildingManager(int param_1); __declspec(dllexport) static void configureLegoBuildingManager(int param_1);
private:
void Init();
}; };
#endif // LEGOBUILDINGMANAGER_H #endif // LEGOBUILDINGMANAGER_H

19
LEGO1/legocachesound.cpp Normal file
View file

@ -0,0 +1,19 @@
#include "legocachesound.h"
// OFFSET: LEGO1 0x100064d0
LegoCacheSound::LegoCacheSound()
{
Init();
}
// OFFSET: LEGO1 0x10006630 STUB
LegoCacheSound::~LegoCacheSound()
{
// TODO
}
// OFFSET: LEGO1 0x100066d0 STUB
void LegoCacheSound::Init()
{
// TODO
}

31
LEGO1/legocachesound.h Normal file
View file

@ -0,0 +1,31 @@
#ifndef LEGOCACHESOUND_H
#define LEGOCACHESOUND_H
#include "mxcore.h"
// VTABLE 0x100d4718
// SIZE 0x88
class LegoCacheSound : public MxCore
{
public:
LegoCacheSound();
virtual ~LegoCacheSound() override; // vtable+0x0
// OFFSET: LEGO1 0x10006580
inline virtual const char *ClassName() const override // vtable+0x0c
{
// 0x100f01c4
return "LegoCacheSound";
}
// OFFSET: LEGO1 0x10006590
inline virtual MxBool IsA(const char *name) const override // vtable+0x10
{
return !strcmp(name, LegoCacheSound::ClassName()) || MxCore::IsA(name);
}
private:
void Init();
};
#endif // LEGOCACHESOUND_H

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