diff --git a/LEGO1/act3actor.h b/LEGO1/act3actor.h index ef756436..bfdf879a 100644 --- a/LEGO1/act3actor.h +++ b/LEGO1/act3actor.h @@ -3,7 +3,7 @@ // FIXME: Uncertain location. There are three vtables which eventually call this // class' ClassName() function, but none of them call it directly. -class Act3Actor { +class Act3Actor : public MxCore { public: // FUNCTION: LEGO1 0x100431b0 inline virtual const char* ClassName() override diff --git a/LEGO1/lego3dwavepresenter.h b/LEGO1/lego3dwavepresenter.h index a2363518..ca72f212 100644 --- a/LEGO1/lego3dwavepresenter.h +++ b/LEGO1/lego3dwavepresenter.h @@ -1,11 +1,11 @@ #ifndef LEGO3DWAVEPRESENTER_H #define LEGO3DWAVEPRESENTER_H -#include "legowavepresenter.h" +#include "mxwavepresenter.h" // VTABLE: LEGO1 0x100d52b0 // SIZE 0xa0 -class Lego3DWavePresenter : public LegoWavePresenter { +class Lego3DWavePresenter : public MxWavePresenter { public: // FUNCTION: LEGO1 0x1000d890 inline virtual const char* ClassName() const override // vtable+0x0c diff --git a/LEGO1/legoact2.h b/LEGO1/legoact2.h new file mode 100644 index 00000000..41f37fea --- /dev/null +++ b/LEGO1/legoact2.h @@ -0,0 +1,13 @@ +#ifndef LEGOACT2_H +#define LEGOACT2_H + +#include "legopathactor.h" +#include "legocarraceactor.h" + +// VTABLE: LEGO1 0x100d82e0 +// SIZE: 0x1154 +class LegoAct2 : public LegoWorld { + +}; + +#endif // LEGOACT2_H diff --git a/LEGO1/legoobjectfactory.cpp b/LEGO1/legoobjectfactory.cpp index 9dcaf3ad..dbec1e27 100644 --- a/LEGO1/legoobjectfactory.cpp +++ b/LEGO1/legoobjectfactory.cpp @@ -1,106 +1,105 @@ #include "legoobjectfactory.h" #include "decomp.h" -#include "LegoModelPresenter.h" -#include "LegoTexturePresenter.h" -#include "LegoPhonemePresenter.h" -#include "LegoFlcTexturePresenter.h" -#include "LegoEntityPresenter.h" -#include "LegoActorPresenter.h" -#include "LegoWorldPresenter.h" -#include "LegoWorld.h" -#include "LegoPalettePresenter.h" -#include "LegoPathPresenter.h" -#include "LegoAnimPresenter.h" -#include "LegoLoopingAnimPresenter.h" -#include "LegoLocomotionAnimPresenter.h" -#include "LegoHideAnimPresenter.h" -#include "LegoPartPresenter.h" -#include "LegoCarBuildAnimPresenter.h" -#include "LegoActionControlPresenter.h" -#include "MxVideoPresenter.h" -#include "LegoLoadCacheSoundPresenter.h" -#include "Lego3DWavePresenter.h" -#include "LegoActor.h" -#include "LegoPathActor.h" -//#include "LegoRaceCar.h" -#include "LegoJetski.h" -#include "JetskiRace.h" -#include "LegoEntity.h" -#include "LegoCarRaceActor.h" -#include "LegoJetskiRaceActor.h" -#include "LegoCarBuild.h" -#include "Infocenter.h" -#include "LegoAnimActor.h" -#include "MxControlPresenter.h" -#include "RegistrationBook.h" -#include "HistoryBook.h" -#include "ElevatorBottom.h" -#include "InfocenterDoor.h" -#include "Score.h" -#include "ScoreState.h" -#include "Hospital.h" -#include "Isle.h" -#include "Police.h" -#include "GasStation.h" -//#include "LegoAct2.h" -#include "LegoAct2State.h" -#include "CarRace.h" -//#include "LegoRaceCarBuildState.h" -//#include "LegoCopterBuildState.h" -//#include "LegoDuneCarBuildState.h" -//#include "LegoJetskiBuildState.h" -#include "HospitalState.h" -#include "InfocenterState.h" -#include "PoliceState.h" -#include "GasStationState.h" -#include "SkateBoard.h" -#include "Helicopter.h" -#include "HelicopterState.h" -#include "DuneBuggy.h" -#include "Pizza.h" -#include "PizzaMissionState.h" -//#include "Act2Actor.h" -#include "Act2Brick.h" -//#include "Act2GenActor.h" -#include "Act2PoliceStation.h" -#include "Act3.h" -#include "Act3State.h" -#include "Doors.h" -#include "LegoAnimMMPresenter.h" -#include "RaceCar.h" -#include "Jetski.h" -#include "Bike.h" -#include "Motorcycle.h" -#include "Ambulance.h" -#include "AmbulanceMissionState.h" -#include "TowTrack.h" -#include "TowTrackMissionState.h" -//#include "Act3Cop.h" -//#include "Act3Brickster.h" -#include "Act3Shark.h" -#include "BumpBouy.h" -#include "Act3Actor.h" -#include "JetskiRaceState.h" -#include "CarRaceState.h" -#include "Act1State.h" -#include "Pizzeria.h" -#include "PizzeriaState.h" -#include "InfoCenterEntity.h" -#include "HospitalEntity.h" -#include "GasStationEntity.h" -#include "PoliceEntity.h" -#include "BeachHouseEntity.h" -#include "RaceStandsEntity.h" -#include "JukeBoxEntity.h" -#include "RadioState.h" -//#include "CaveEntity.h" -//#include "JailEntity.h" -#include "MxCompositeMediaPresenter.h" -#include "Jukebox.h" -#include "JukeBoxState.h" -//#include "RaceSkel.h" -#include "AnimState.h" +#include "legomodelpresenter.h" +#include "legotexturepresenter.h" +#include "legophonemepresenter.h" +#include "legoflctexturepresenter.h" +#include "legoentitypresenter.h" +#include "legoactorpresenter.h" +#include "legoworldpresenter.h" +#include "legoworld.h" +#include "legopalettepresenter.h" +#include "legopathpresenter.h" +#include "legoanimpresenter.h" +#include "legoloopinganimpresenter.h" +#include "legolocomotionanimpresenter.h" +#include "legohideanimpresenter.h" +#include "legopartpresenter.h" +#include "legocarbuildanimpresenter.h" +#include "legoactioncontrolpresenter.h" +#include "mxvideopresenter.h" +#include "legoloadcachesoundpresenter.h" +#include "lego3dwavepresenter.h" +#include "legoactor.h" +#include "legopathactor.h" +#include "legoracecar.h" +#include "legojetski.h" +#include "jetskirace.h" +#include "legoentity.h" +#include "legocarraceactor.h" +#include "legojetskiraceactor.h" +#include "legocarbuild.h" +#include "infocenter.h" +#include "legoanimactor.h" +#include "mxcontrolpresenter.h" +#include "registrationbook.h" +#include "historybook.h" +#include "elevatorbottom.h" +#include "infocenterdoor.h" +#include "score.h" +#include "scorestate.h" +#include "hospital.h" +#include "isle.h" +#include "police.h" +#include "gasstation.h" +#include "legoact2.h" +#include "legoact2state.h" +#include "carrace.h" +#include "hospitalstate.h" +#include "infocenterstate.h" +#include "policestate.h" +#include "gasstationstate.h" +#include "skateboard.h" +#include "helicopter.h" +#include "helicopterstate.h" +#include "dunebuggy.h" +#include "pizza.h" +#include "pizzamissionstate.h" +//#include "act2actor.h" +#include "act2brick.h" +//#include "act2genactor.h" +#include "act2policestation.h" +#include "act3.h" +#include "act3state.h" +#include "doors.h" +#include "legoanimmmpresenter.h" +#include "racecar.h" +#include "jetski.h" +#include "bike.h" +#include "motorcycle.h" +#include "ambulance.h" +#include "ambulancemissionstate.h" +#include "towtrack.h" +#include "towtrackmissionstate.h" +//#include "act3cop.h" +//#include "act3brickster.h" +#include "act3shark.h" +#include "bumpbouy.h" +#include "act3actor.h" +#include "jetskiracestate.h" +#include "carracestate.h" +#include "act1state.h" +#include "pizzeria.h" +#include "pizzeriastate.h" +#include "infocenterentity.h" +#include "hospitalentity.h" +#include "gasstationentity.h" +#include "policeentity.h" +#include "beachhouseentity.h" +#include "racestandsentity.h" +#include "jukeboxentity.h" +#include "radiostate.h" +//#include "caveentity.h" +//#include "jailentity.h" +#include "mxcompositemediapresenter.h" +#include "jukebox.h" +#include "jukeboxstate.h" +//#include "raceskel.h" +#include "animstate.h" + + +// TODO: Before HospitalState, add all of the different LegoVehicleBuildState's // TODO: Uncomment once we have all the relevant types ready // DECOMP_SIZE_ASSERT(LegoObjectFactory, 0x1c8); diff --git a/LEGO1/legoobjectfactory.h b/LEGO1/legoobjectfactory.h index 476f84a7..3a575c52 100644 --- a/LEGO1/legoobjectfactory.h +++ b/LEGO1/legoobjectfactory.h @@ -26,9 +26,9 @@ X(Lego3DWavePresenter) \ X(LegoActor) \ X(LegoPathActor) \ - X(LegoRaceCar) \ + X(LegoRaceCar) \ X(LegoJetski) \ - X(JetskiRace) \ + /*X(JetskiRace) \*/ \ X(LegoEntity) \ X(LegoCarRaceActor) \ X(LegoJetskiRaceActor) \ @@ -48,11 +48,7 @@ X(GasStation) \ X(LegoAct2) \ X(LegoAct2State) \ - X(CarRace) \ - X(LegoRaceCarBuildState) \ - X(LegoCopterBuildState) \ - X(LegoDuneCarBuildState) \ - X(LegoJetskiBuildState) \ + /*X(CarRace)*/ \ X(HospitalState) \ X(InfocenterState) \ X(PoliceState) \ @@ -63,9 +59,9 @@ X(DuneBuggy) \ X(Pizza) \ X(PizzaMissionState) \ - X(Act2Actor) \ - X(Act2Brick) \ - X(Act2GenActor) \ + /*X(Act2Actor)*/ \ + /*X(Act2Brick)*/ \ + /*X(Act2GenActor)*/ \ X(Act2PoliceStation) \ X(Act3) \ X(Act3State) \ @@ -79,8 +75,8 @@ X(AmbulanceMissionState) \ X(TowTrack) \ X(TowTrackMissionState) \ - X(Act3Cop) \ - X(Act3Brickster) \ + /*X(Act3Cop)*/ \ + /*X(Act3Brickster)*/ \ X(Act3Shark) \ X(BumpBouy) \ X(Act3Actor) \ @@ -97,12 +93,12 @@ X(RaceStandsEntity) \ X(JukeBoxEntity) \ X(RadioState) \ - X(CaveEntity) \ - X(JailEntity) \ + /*X(CaveEntity)*/ \ + /*X(JailEntity)*/ \ X(MxCompositeMediaPresenter) \ - X(Jukebox) \ + X(JukeBox) \ X(JukeBoxState) \ - X(RaceSkel) \ + /*X(RaceSkel)*/ \ X(AnimState) // VTABLE: LEGO1 0x100d4768 diff --git a/LEGO1/legoracecar.h b/LEGO1/legoracecar.h new file mode 100644 index 00000000..366b67c2 --- /dev/null +++ b/LEGO1/legoracecar.h @@ -0,0 +1,25 @@ +#ifndef LEGOCARRACE_H +#define LEGOCARRACE_H + +#include "legopathactor.h" +#include "legocarraceactor.h" + +// VTABLE: LEGO1 0x100d58b8 +// SIZE: 0x200 +class LegoRaceCar : public LegoCarRaceActor { +public: + // FUNCTION: LEGO1 0x10014290 + inline const char* ClassName() const override // vtable+0xc + { + // GLOBAL: LEGO1 0x100f0bf4 + return "LegoRaceCar"; + } + + // FUNCTION: LEGO1 0x100142b0 + inline MxBool IsA(const char* p_name) const override // vtable+0x10 + { + return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name); + } +}; + +#endif // LEGOCARRACE_H diff --git a/LEGO1/pizzeria.h b/LEGO1/pizzeria.h index 65a3b195..b9fcadf3 100644 --- a/LEGO1/pizzeria.h +++ b/LEGO1/pizzeria.h @@ -1,5 +1,5 @@ -#ifndef PIZZERIASTATE_H -#define PIZZERIASTATE_H +#ifndef PIZZERIA_H +#define PIZZERIA_H #include "isleactor.h" @@ -21,4 +21,4 @@ class Pizzeria : public IsleActor { } }; -#endif // PIZZERIASTATE_H +#endif // PIZZERIA_H