mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 16:51:15 +00:00
138 lines
3.8 KiB
C++
138 lines
3.8 KiB
C++
#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"
|
|
|
|
// TODO: Uncomment once we have all the relevant types ready
|
|
// DECOMP_SIZE_ASSERT(LegoObjectFactory, 0x1c8);
|
|
|
|
// FUNCTION: LEGO1 0x10006e40
|
|
LegoObjectFactory::LegoObjectFactory()
|
|
{
|
|
#define X(V) this->m_id##V = MxAtomId(#V, LookupMode_Exact);
|
|
FOR_LEGOOBJECTFACTORY_OBJECTS(X)
|
|
#undef X
|
|
}
|
|
|
|
// FUNCTION: LEGO1 0x10009a90
|
|
MxCore* LegoObjectFactory::Create(const char* p_name)
|
|
{
|
|
MxAtomId atom(p_name, LookupMode_Exact);
|
|
|
|
#define X(V) \
|
|
if (this->m_id##V == atom) { \
|
|
return new V; \
|
|
} \
|
|
else
|
|
FOR_LEGOOBJECTFACTORY_OBJECTS(X)
|
|
#undef X
|
|
{
|
|
return MxObjectFactory::Create(p_name);
|
|
}
|
|
}
|
|
|
|
// FUNCTION: LEGO1 0x1000fb30
|
|
void LegoObjectFactory::Destroy(MxCore* p_object)
|
|
{
|
|
delete p_object;
|
|
}
|