mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-22 15:23:01 +01:00
Pass GameState on when importing entities from save files
This commit is contained in:
@@ -2155,15 +2155,15 @@ namespace OpenRCT2
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void WriteEntitiesOfType(OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
void WriteEntitiesOfType(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
template<typename... T>
|
||||
void WriteEntitiesOfTypes(OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
void WriteEntitiesOfTypes(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
|
||||
template<typename T>
|
||||
void ReadEntitiesOfType(OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
void ReadEntitiesOfType(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
|
||||
template<typename... T>
|
||||
void ReadEntitiesOfTypes(OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
void ReadEntitiesOfTypes(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs);
|
||||
|
||||
void ReadWriteEntitiesChunk(GameState_t& gameState, OrcaStream& os);
|
||||
|
||||
@@ -2637,7 +2637,7 @@ namespace OpenRCT2
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void ParkFile::WriteEntitiesOfType(OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
void ParkFile::WriteEntitiesOfType(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
{
|
||||
uint16_t count = GetEntityListCount(T::cEntityType);
|
||||
cs.write(T::cEntityType);
|
||||
@@ -2650,13 +2650,13 @@ namespace OpenRCT2
|
||||
}
|
||||
|
||||
template<typename... T>
|
||||
void ParkFile::WriteEntitiesOfTypes(OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
void ParkFile::WriteEntitiesOfTypes(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
{
|
||||
(WriteEntitiesOfType<T>(os, cs), ...);
|
||||
(WriteEntitiesOfType<T>(gameState, os, cs), ...);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void ParkFile::ReadEntitiesOfType(OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
void ParkFile::ReadEntitiesOfType(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
{
|
||||
[[maybe_unused]] auto t = cs.read<EntityType>();
|
||||
assert(t == T::cEntityType);
|
||||
@@ -2677,9 +2677,9 @@ namespace OpenRCT2
|
||||
}
|
||||
|
||||
template<typename... T>
|
||||
void ParkFile::ReadEntitiesOfTypes(OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
void ParkFile::ReadEntitiesOfTypes(GameState_t& gameState, OrcaStream& os, OrcaStream::ChunkStream& cs)
|
||||
{
|
||||
(ReadEntitiesOfType<T>(os, cs), ...);
|
||||
(ReadEntitiesOfType<T>(gameState, os, cs), ...);
|
||||
}
|
||||
|
||||
void ParkFile::ReadWriteEntitiesChunk(GameState_t& gameState, OrcaStream& os)
|
||||
@@ -2695,7 +2695,7 @@ namespace OpenRCT2
|
||||
{
|
||||
ReadEntitiesOfTypes<
|
||||
Vehicle, Guest, Staff, Litter, SteamParticle, MoneyEffect, VehicleCrashParticle, ExplosionCloud,
|
||||
CrashSplashParticle, ExplosionFlare, JumpingFountain, Balloon, Duck>(os, cs);
|
||||
CrashSplashParticle, ExplosionFlare, JumpingFountain, Balloon, Duck>(gameState, os, cs);
|
||||
|
||||
auto version = os.getHeader().targetVersion;
|
||||
if (version < kPeepAnimationObjectsVersion)
|
||||
@@ -2707,7 +2707,7 @@ namespace OpenRCT2
|
||||
{
|
||||
WriteEntitiesOfTypes<
|
||||
Vehicle, Guest, Staff, Litter, SteamParticle, MoneyEffect, VehicleCrashParticle, ExplosionCloud,
|
||||
CrashSplashParticle, ExplosionFlare, JumpingFountain, Balloon, Duck>(os, cs);
|
||||
CrashSplashParticle, ExplosionFlare, JumpingFountain, Balloon, Duck>(gameState, os, cs);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ namespace OpenRCT2::RCT1
|
||||
|
||||
ImportRides();
|
||||
ImportRideMeasurements();
|
||||
ImportEntities();
|
||||
ImportEntities(gameState);
|
||||
ImportTileElements(gameState);
|
||||
ImportMapAnimations();
|
||||
ImportPeepSpawns(gameState);
|
||||
@@ -1259,15 +1259,15 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
}
|
||||
|
||||
void ImportEntity(const RCT12EntityBase& src);
|
||||
void ImportEntity(GameState_t& gameState, const RCT12EntityBase& src);
|
||||
template<typename T>
|
||||
void ImportEntity(const RCT12EntityBase& src);
|
||||
void ImportEntity(GameState_t& gameState, const RCT12EntityBase& src);
|
||||
|
||||
void ImportEntities()
|
||||
void ImportEntities(GameState_t& gameState)
|
||||
{
|
||||
for (int i = 0; i < Limits::kMaxEntities; i++)
|
||||
{
|
||||
ImportEntity(_s4.Entities[i].Unknown);
|
||||
ImportEntity(gameState, _s4.Entities[i].Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2782,7 +2782,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<::Vehicle>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<::Vehicle>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<::Vehicle>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT1::Vehicle*>(&srcBase);
|
||||
@@ -2905,7 +2905,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<Guest>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<Guest>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<Guest>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT1::Peep*>(&srcBase);
|
||||
@@ -2997,7 +2997,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<Staff>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<Staff>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<Staff>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT1::Peep*>(&srcBase);
|
||||
@@ -3016,7 +3016,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<Litter>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<Litter>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<Litter>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityLitter*>(&srcBase);
|
||||
@@ -3027,7 +3027,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<SteamParticle>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<SteamParticle>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<SteamParticle>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntitySteamParticle*>(&srcBase);
|
||||
@@ -3038,7 +3038,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<MoneyEffect>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<MoneyEffect>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<MoneyEffect>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityMoneyEffect*>(&srcBase);
|
||||
@@ -3053,7 +3053,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<VehicleCrashParticle>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<VehicleCrashParticle>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<VehicleCrashParticle>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityCrashedVehicleParticle*>(&srcBase);
|
||||
@@ -3072,7 +3072,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<ExplosionCloud>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<ExplosionCloud>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<ExplosionCloud>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityParticle*>(&srcBase);
|
||||
@@ -3081,7 +3081,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<ExplosionFlare>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<ExplosionFlare>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<ExplosionFlare>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityParticle*>(&srcBase);
|
||||
@@ -3090,7 +3090,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<CrashSplashParticle>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<CrashSplashParticle>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<CrashSplashParticle>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityParticle*>(&srcBase);
|
||||
@@ -3099,7 +3099,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<JumpingFountain>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<JumpingFountain>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<JumpingFountain>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityJumpingFountain*>(&srcBase);
|
||||
@@ -3119,7 +3119,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<Balloon>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<Balloon>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<Balloon>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityBalloon*>(&srcBase);
|
||||
@@ -3140,7 +3140,7 @@ namespace OpenRCT2::RCT1
|
||||
}
|
||||
|
||||
template<>
|
||||
void S4Importer::ImportEntity<Duck>(const RCT12EntityBase& srcBase)
|
||||
void S4Importer::ImportEntity<Duck>(GameState_t& gameState, const RCT12EntityBase& srcBase)
|
||||
{
|
||||
auto* dst = CreateEntityAt<Duck>(EntityId::FromUnderlying(srcBase.EntityIndex));
|
||||
auto* src = static_cast<const RCT12EntityDuck*>(&srcBase);
|
||||
@@ -3152,48 +3152,48 @@ namespace OpenRCT2::RCT1
|
||||
dst->state = static_cast<Duck::DuckState>(src->State);
|
||||
}
|
||||
|
||||
void S4Importer::ImportEntity(const RCT12EntityBase& src)
|
||||
void S4Importer::ImportEntity(GameState_t& gameState, const RCT12EntityBase& src)
|
||||
{
|
||||
switch (GetEntityTypeFromRCT1Sprite(src))
|
||||
{
|
||||
case EntityType::Vehicle:
|
||||
ImportEntity<::Vehicle>(src);
|
||||
ImportEntity<::Vehicle>(gameState, src);
|
||||
break;
|
||||
case EntityType::Guest:
|
||||
ImportEntity<Guest>(src);
|
||||
ImportEntity<Guest>(gameState, src);
|
||||
break;
|
||||
case EntityType::Staff:
|
||||
ImportEntity<Staff>(src);
|
||||
ImportEntity<Staff>(gameState, src);
|
||||
break;
|
||||
case EntityType::SteamParticle:
|
||||
ImportEntity<SteamParticle>(src);
|
||||
ImportEntity<SteamParticle>(gameState, src);
|
||||
break;
|
||||
case EntityType::MoneyEffect:
|
||||
ImportEntity<MoneyEffect>(src);
|
||||
ImportEntity<MoneyEffect>(gameState, src);
|
||||
break;
|
||||
case EntityType::CrashedVehicleParticle:
|
||||
ImportEntity<VehicleCrashParticle>(src);
|
||||
ImportEntity<VehicleCrashParticle>(gameState, src);
|
||||
break;
|
||||
case EntityType::ExplosionCloud:
|
||||
ImportEntity<ExplosionCloud>(src);
|
||||
ImportEntity<ExplosionCloud>(gameState, src);
|
||||
break;
|
||||
case EntityType::ExplosionFlare:
|
||||
ImportEntity<ExplosionFlare>(src);
|
||||
ImportEntity<ExplosionFlare>(gameState, src);
|
||||
break;
|
||||
case EntityType::CrashSplash:
|
||||
ImportEntity<CrashSplashParticle>(src);
|
||||
ImportEntity<CrashSplashParticle>(gameState, src);
|
||||
break;
|
||||
case EntityType::JumpingFountain:
|
||||
ImportEntity<JumpingFountain>(src);
|
||||
ImportEntity<JumpingFountain>(gameState, src);
|
||||
break;
|
||||
case EntityType::Balloon:
|
||||
ImportEntity<Balloon>(src);
|
||||
ImportEntity<Balloon>(gameState, src);
|
||||
break;
|
||||
case EntityType::Duck:
|
||||
ImportEntity<Duck>(src);
|
||||
ImportEntity<Duck>(gameState, src);
|
||||
break;
|
||||
case EntityType::Litter:
|
||||
ImportEntity<Litter>(src);
|
||||
ImportEntity<Litter>(gameState, src);
|
||||
break;
|
||||
default:
|
||||
// Null elements do not need imported
|
||||
|
||||
@@ -351,7 +351,7 @@ namespace OpenRCT2::RCT2
|
||||
|
||||
DetermineFlatRideStatus();
|
||||
ImportTileElements(gameState);
|
||||
ImportEntities();
|
||||
ImportEntities(gameState);
|
||||
ConvertPeepAnimationTypeToObjects(gameState);
|
||||
|
||||
auto& park = gameState.park;
|
||||
@@ -1645,11 +1645,11 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
}
|
||||
|
||||
void ImportEntities()
|
||||
void ImportEntities(GameState_t& gameState)
|
||||
{
|
||||
for (int32_t i = 0; i < GetMaxEntities(); i++)
|
||||
{
|
||||
ImportEntity(_s6.Entities[i].Unknown);
|
||||
ImportEntity(gameState, _s6.Entities[i].Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1659,7 +1659,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<typename OpenRCT2_T>
|
||||
void ImportEntity(const RCT12EntityBase& src);
|
||||
void ImportEntity(GameState_t& gameState, const RCT12EntityBase& src);
|
||||
|
||||
void ImportEntityPeep(::Peep* dst, const Peep* src)
|
||||
{
|
||||
@@ -1813,7 +1813,7 @@ namespace OpenRCT2::RCT2
|
||||
dst->Orientation = src->EntityDirection;
|
||||
}
|
||||
|
||||
void ImportEntity(const RCT12EntityBase& src);
|
||||
void ImportEntity(GameState_t& gameState, const RCT12EntityBase& src);
|
||||
|
||||
std::string GetUserString(StringId stringId)
|
||||
{
|
||||
@@ -1944,7 +1944,7 @@ namespace OpenRCT2::RCT2
|
||||
};
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::Vehicle>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::Vehicle>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::Vehicle>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT2::Vehicle*>(&baseSrc);
|
||||
@@ -2070,7 +2070,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::Guest>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::Guest>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::Guest>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const Peep*>(&baseSrc);
|
||||
@@ -2145,7 +2145,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::Staff>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::Staff>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::Staff>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const Peep*>(&baseSrc);
|
||||
@@ -2166,7 +2166,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::SteamParticle>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::SteamParticle>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::SteamParticle>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntitySteamParticle*>(&baseSrc);
|
||||
@@ -2176,7 +2176,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::MoneyEffect>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::MoneyEffect>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::MoneyEffect>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityMoneyEffect*>(&baseSrc);
|
||||
@@ -2190,7 +2190,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::VehicleCrashParticle>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::VehicleCrashParticle>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::VehicleCrashParticle>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityCrashedVehicleParticle*>(&baseSrc);
|
||||
@@ -2210,7 +2210,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::ExplosionCloud>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::ExplosionCloud>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::ExplosionCloud>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityParticle*>(&baseSrc);
|
||||
@@ -2219,7 +2219,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::ExplosionFlare>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::ExplosionFlare>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::ExplosionFlare>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityParticle*>(&baseSrc);
|
||||
@@ -2228,7 +2228,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::CrashSplashParticle>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::CrashSplashParticle>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::CrashSplashParticle>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityParticle*>(&baseSrc);
|
||||
@@ -2237,7 +2237,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::JumpingFountain>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::JumpingFountain>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::JumpingFountain>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityJumpingFountain*>(&baseSrc);
|
||||
@@ -2254,7 +2254,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::Balloon>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::Balloon>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::Balloon>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityBalloon*>(&baseSrc);
|
||||
@@ -2266,7 +2266,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::Duck>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::Duck>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::Duck>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityDuck*>(&baseSrc);
|
||||
@@ -2278,7 +2278,7 @@ namespace OpenRCT2::RCT2
|
||||
}
|
||||
|
||||
template<>
|
||||
void S6Importer::ImportEntity<::Litter>(const RCT12EntityBase& baseSrc)
|
||||
void S6Importer::ImportEntity<::Litter>(GameState_t& gameState, const RCT12EntityBase& baseSrc)
|
||||
{
|
||||
auto dst = CreateEntityAt<::Litter>(EntityId::FromUnderlying(baseSrc.EntityIndex));
|
||||
auto src = static_cast<const RCT12EntityLitter*>(&baseSrc);
|
||||
@@ -2287,48 +2287,48 @@ namespace OpenRCT2::RCT2
|
||||
dst->creationTick = AdjustScenarioToCurrentTicks(_s6, src->CreationTick);
|
||||
}
|
||||
|
||||
void S6Importer::ImportEntity(const RCT12EntityBase& src)
|
||||
void S6Importer::ImportEntity(GameState_t& gameState, const RCT12EntityBase& src)
|
||||
{
|
||||
switch (GetEntityTypeFromRCT2Sprite(&src))
|
||||
{
|
||||
case EntityType::Vehicle:
|
||||
ImportEntity<::Vehicle>(src);
|
||||
ImportEntity<::Vehicle>(gameState, src);
|
||||
break;
|
||||
case EntityType::Guest:
|
||||
ImportEntity<::Guest>(src);
|
||||
ImportEntity<::Guest>(gameState, src);
|
||||
break;
|
||||
case EntityType::Staff:
|
||||
ImportEntity<::Staff>(src);
|
||||
ImportEntity<::Staff>(gameState, src);
|
||||
break;
|
||||
case EntityType::SteamParticle:
|
||||
ImportEntity<::SteamParticle>(src);
|
||||
ImportEntity<::SteamParticle>(gameState, src);
|
||||
break;
|
||||
case EntityType::MoneyEffect:
|
||||
ImportEntity<::MoneyEffect>(src);
|
||||
ImportEntity<::MoneyEffect>(gameState, src);
|
||||
break;
|
||||
case EntityType::CrashedVehicleParticle:
|
||||
ImportEntity<::VehicleCrashParticle>(src);
|
||||
ImportEntity<::VehicleCrashParticle>(gameState, src);
|
||||
break;
|
||||
case EntityType::ExplosionCloud:
|
||||
ImportEntity<::ExplosionCloud>(src);
|
||||
ImportEntity<::ExplosionCloud>(gameState, src);
|
||||
break;
|
||||
case EntityType::ExplosionFlare:
|
||||
ImportEntity<::ExplosionFlare>(src);
|
||||
ImportEntity<::ExplosionFlare>(gameState, src);
|
||||
break;
|
||||
case EntityType::CrashSplash:
|
||||
ImportEntity<::CrashSplashParticle>(src);
|
||||
ImportEntity<::CrashSplashParticle>(gameState, src);
|
||||
break;
|
||||
case EntityType::JumpingFountain:
|
||||
ImportEntity<::JumpingFountain>(src);
|
||||
ImportEntity<::JumpingFountain>(gameState, src);
|
||||
break;
|
||||
case EntityType::Balloon:
|
||||
ImportEntity<::Balloon>(src);
|
||||
ImportEntity<::Balloon>(gameState, src);
|
||||
break;
|
||||
case EntityType::Duck:
|
||||
ImportEntity<::Duck>(src);
|
||||
ImportEntity<::Duck>(gameState, src);
|
||||
break;
|
||||
case EntityType::Litter:
|
||||
ImportEntity<::Litter>(src);
|
||||
ImportEntity<::Litter>(gameState, src);
|
||||
break;
|
||||
default:
|
||||
// Null elements do not need imported
|
||||
|
||||
Reference in New Issue
Block a user