From cb719a6e105db7682e33f171d90c708b4f0474fe Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 31 Dec 2020 19:09:45 +0200 Subject: [PATCH] Add missing case statements for entity scripting --- distribution/openrct2.d.ts | 2 +- .../interface/ViewportInteraction.cpp | 6 +- src/openrct2/GameStateSnapshots.cpp | 58 +++++++++---------- src/openrct2/paint/sprite/Paint.Misc.cpp | 24 ++++---- src/openrct2/rct1/S4Importer.cpp | 20 +++---- src/openrct2/rct2/S6Exporter.cpp | 22 +++---- src/openrct2/rct2/S6Importer.cpp | 22 +++---- src/openrct2/ride/Vehicle.cpp | 2 +- src/openrct2/scripting/ScEntity.hpp | 24 +++++++- src/openrct2/scripting/ScMap.hpp | 4 +- src/openrct2/world/Balloon.cpp | 4 +- src/openrct2/world/Duck.cpp | 4 +- src/openrct2/world/Fountain.cpp | 16 ++--- src/openrct2/world/MoneyEffect.cpp | 4 +- src/openrct2/world/Particle.cpp | 8 +-- src/openrct2/world/Sprite.cpp | 32 +++++----- src/openrct2/world/Sprite.h | 2 +- test/tests/S6ImportExportTests.cpp | 18 +++--- 18 files changed, 146 insertions(+), 126 deletions(-) diff --git a/distribution/openrct2.d.ts b/distribution/openrct2.d.ts index 3c0514e99b..092c3400e8 100644 --- a/distribution/openrct2.d.ts +++ b/distribution/openrct2.d.ts @@ -937,7 +937,7 @@ declare global { } type EntityType = - "car" | "duck" | "peep"; + "car" | "duck" | "peep" | "steam_particle" | "money_effect" | "crashed_vehicle_particle" | "explosion_cloud" | "crash_splash" | "explosion_flare" | "jumping_fountain_water" | "balloon" | "jumping_fountain_snow"; /** * Represents an object "entity" on the map that can typically moves and has a sub-tile coordinate. diff --git a/src/openrct2-ui/interface/ViewportInteraction.cpp b/src/openrct2-ui/interface/ViewportInteraction.cpp index 984da38551..81cfa0c624 100644 --- a/src/openrct2-ui/interface/ViewportInteraction.cpp +++ b/src/openrct2-ui/interface/ViewportInteraction.cpp @@ -195,15 +195,15 @@ bool ViewportInteractionLeftClick(const ScreenCoordsXY& screenCoords) case SpriteIdentifier::Misc: if (game_is_not_paused()) { - switch (static_cast(entity->type)) + switch (static_cast(entity->type)) { - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: { auto balloonPress = BalloonPressAction(entity->sprite_index); GameActions::Execute(&balloonPress); } break; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: { auto duck = entity->As(); if (duck != nullptr) diff --git a/src/openrct2/GameStateSnapshots.cpp b/src/openrct2/GameStateSnapshots.cpp index 5d3c885979..39353eb20d 100644 --- a/src/openrct2/GameStateSnapshots.cpp +++ b/src/openrct2/GameStateSnapshots.cpp @@ -92,21 +92,21 @@ struct GameStateSnapshot_t case SpriteIdentifier::Misc: { ds << sprite.generic.type; - switch (static_cast(sprite.generic.type)) + switch (static_cast(sprite.generic.type)) { - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: ds << reinterpret_cast(sprite.money_effect); break; - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: ds << reinterpret_cast(sprite.balloon); break; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: ds << reinterpret_cast(sprite.duck); break; - case MiscSpriteType::JumpingFountainWater: + case MiscEntityType::JumpingFountainWater: ds << reinterpret_cast(sprite.jumping_fountain); break; - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: ds << reinterpret_cast(sprite.steam_particle); break; default: @@ -494,32 +494,32 @@ struct GameStateSnapshots final : public IGameStateSnapshots case SpriteIdentifier::Misc: // This is not expected to happen, as misc sprites do not constitute sprite checksum CompareSpriteDataGeneric(spriteBase.generic, spriteCmp.generic, changeData); - switch (static_cast(spriteBase.generic.type)) + switch (static_cast(spriteBase.generic.type)) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: CompareSpriteDataSteamParticle(spriteBase.steam_particle, spriteCmp.steam_particle, changeData); break; - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: CompareSpriteDataMoneyEffect(spriteBase.money_effect, spriteCmp.money_effect, changeData); break; - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: CompareSpriteDataVehicleCrashParticle( spriteBase.crashed_vehicle_particle, spriteCmp.crashed_vehicle_particle, changeData); break; - case MiscSpriteType::ExplosionCloud: - case MiscSpriteType::CrashSplash: - case MiscSpriteType::ExplosionFlare: + case MiscEntityType::ExplosionCloud: + case MiscEntityType::CrashSplash: + case MiscEntityType::ExplosionFlare: // SpriteGeneric break; - case MiscSpriteType::JumpingFountainWater: - case MiscSpriteType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainWater: + case MiscEntityType::JumpingFountainSnow: CompareSpriteDataJumpingFountain( spriteBase.jumping_fountain, spriteCmp.jumping_fountain, changeData); break; - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: CompareSpriteDataBalloon(spriteBase.balloon, spriteCmp.balloon, changeData); break; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: CompareSpriteDataDuck(spriteBase.duck, spriteCmp.duck, changeData); break; default: @@ -594,7 +594,7 @@ struct GameStateSnapshots final : public IGameStateSnapshots return res; } - static const char* GetSpriteIdentifierName(SpriteIdentifier spriteIdentifier, MiscSpriteType miscIdentifier) + static const char* GetSpriteIdentifierName(SpriteIdentifier spriteIdentifier, MiscEntityType miscIdentifier) { switch (spriteIdentifier) { @@ -609,25 +609,25 @@ struct GameStateSnapshots final : public IGameStateSnapshots case SpriteIdentifier::Misc: switch (miscIdentifier) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: return "Misc: Steam Particle"; - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: return "Misc: Money effect"; - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: return "Misc: Crash Vehicle Particle"; - case MiscSpriteType::ExplosionCloud: + case MiscEntityType::ExplosionCloud: return "Misc: Explosion Cloud"; - case MiscSpriteType::CrashSplash: + case MiscEntityType::CrashSplash: return "Misc: Crash Splash"; - case MiscSpriteType::ExplosionFlare: + case MiscEntityType::ExplosionFlare: return "Misc: Explosion Flare"; - case MiscSpriteType::JumpingFountainWater: + case MiscEntityType::JumpingFountainWater: return "Misc: Jumping fountain water"; - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: return "Misc: Balloon"; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: return "Misc: Duck"; - case MiscSpriteType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainSnow: return "Misc: Jumping fountain snow"; default: break; @@ -656,7 +656,7 @@ struct GameStateSnapshots final : public IGameStateSnapshots continue; const char* typeName = GetSpriteIdentifierName( - change.spriteIdentifier, static_cast(change.miscIdentifier)); + change.spriteIdentifier, static_cast(change.miscIdentifier)); if (change.changeType == GameStateSpriteChange_t::ADDED) { diff --git a/src/openrct2/paint/sprite/Paint.Misc.cpp b/src/openrct2/paint/sprite/Paint.Misc.cpp index cf02f6afe8..86628afdcb 100644 --- a/src/openrct2/paint/sprite/Paint.Misc.cpp +++ b/src/openrct2/paint/sprite/Paint.Misc.cpp @@ -33,9 +33,9 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir { rct_drawpixelinfo* dpi = &session->DPI; - switch (static_cast(misc->type)) + switch (static_cast(misc->type)) { - case MiscSpriteType::SteamParticle: // 0 + case MiscEntityType::SteamParticle: // 0 { auto particle = misc->As(); if (particle == nullptr) @@ -45,7 +45,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::MoneyEffect: // 1 + case MiscEntityType::MoneyEffect: // 1 { if (dpi->zoom_level > 0) { @@ -61,7 +61,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::CrashedVehicleParticle: // 2 + case MiscEntityType::CrashedVehicleParticle: // 2 { if (dpi->zoom_level > 0) { @@ -77,7 +77,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::ExplosionCloud: // 3 + case MiscEntityType::ExplosionCloud: // 3 { auto particle = misc->As(); if (particle == nullptr) @@ -87,7 +87,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::CrashSplash: // 4 + case MiscEntityType::CrashSplash: // 4 { auto crashSplash = misc->As(); if (crashSplash == nullptr) @@ -97,7 +97,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::ExplosionFlare: // 5 + case MiscEntityType::ExplosionFlare: // 5 { // Like a flare auto flare = misc->As(); @@ -108,8 +108,8 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::JumpingFountainWater: // 6 - case MiscSpriteType::JumpingFountainSnow: // 9 + case MiscEntityType::JumpingFountainWater: // 6 + case MiscEntityType::JumpingFountainSnow: // 9 { if (dpi->zoom_level > 0) { @@ -134,7 +134,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir isAntiClockwise = !isAntiClockwise; } - uint32_t baseImageId = (static_cast(jumpingFountain->type) == MiscSpriteType::JumpingFountainSnow) + uint32_t baseImageId = (static_cast(jumpingFountain->type) == MiscEntityType::JumpingFountainSnow) ? 23037 : 22973; uint32_t imageId = baseImageId + ebx * 16 + jumpingFountain->frame; @@ -148,7 +148,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::Balloon: // 7 + case MiscEntityType::Balloon: // 7 { auto balloon = misc->As(); if (balloon == nullptr) @@ -164,7 +164,7 @@ void misc_paint(paint_session* session, const SpriteBase* misc, int32_t imageDir break; } - case MiscSpriteType::Duck: + case MiscEntityType::Duck: if (dpi->zoom_level <= 1) { const Duck* duck = misc->As(); diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index f3e222eb60..c28355dd1a 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1691,30 +1691,30 @@ private: dst->MoveTo({ src->x, src->y, src->z }); - switch (static_cast(src->type)) + switch (static_cast(src->type)) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: ImportSteamParticle(dst->As(), reinterpret_cast(src)); break; - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: ImportMoneyEffect(dst->As(), reinterpret_cast(src)); break; - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: break; - case MiscSpriteType::ExplosionCloud: + case MiscEntityType::ExplosionCloud: break; - case MiscSpriteType::CrashSplash: + case MiscEntityType::CrashSplash: break; - case MiscSpriteType::ExplosionFlare: + case MiscEntityType::ExplosionFlare: break; - case MiscSpriteType::JumpingFountainWater: + case MiscEntityType::JumpingFountainWater: ImportJumpingFountainWater( dst->As(), reinterpret_cast(src)); break; - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: ImportBalloon(dst->As(), reinterpret_cast(src)); break; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: ImportDuck(dst->As(), reinterpret_cast(src)); break; default: diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index a89e217bbd..23c6b18862 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -1251,9 +1251,9 @@ void S6Exporter::ExportSpritePeep(RCT2SpritePeep* dst, const Peep* src) void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const SpriteBase* csrc) { ExportSpriteCommonProperties(cdst, csrc); - switch (static_cast(cdst->type)) + switch (static_cast(cdst->type)) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1261,7 +1261,7 @@ void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const SpriteBase* csrc) dst->frame = src->frame; break; } - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1273,7 +1273,7 @@ void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const SpriteBase* csrc) dst->wiggle = src->Wiggle; break; } - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1291,17 +1291,17 @@ void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const SpriteBase* csrc) dst->acceleration_z = src->acceleration_z; break; } - case MiscSpriteType::ExplosionCloud: - case MiscSpriteType::ExplosionFlare: - case MiscSpriteType::CrashSplash: + case MiscEntityType::ExplosionCloud: + case MiscEntityType::ExplosionFlare: + case MiscEntityType::CrashSplash: { auto src = static_cast(csrc); auto dst = static_cast(cdst); dst->frame = src->frame; break; } - case MiscSpriteType::JumpingFountainWater: - case MiscSpriteType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainWater: + case MiscEntityType::JumpingFountainSnow: { auto* src = static_cast(csrc); auto* dst = static_cast(cdst); @@ -1314,7 +1314,7 @@ void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const SpriteBase* csrc) dst->iteration = src->Iteration; break; } - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1324,7 +1324,7 @@ void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const SpriteBase* csrc) dst->colour = src->colour; break; } - case MiscSpriteType::Duck: + case MiscEntityType::Duck: { auto src = static_cast(csrc); auto dst = static_cast(cdst); diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index f1135aacdb..4b73efab0c 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -1538,9 +1538,9 @@ public: void ImportSpriteMisc(SpriteBase* cdst, const RCT12SpriteBase* csrc) { ImportSpriteCommonProperties(cdst, csrc); - switch (static_cast(cdst->type)) + switch (static_cast(cdst->type)) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1548,7 +1548,7 @@ public: dst->frame = src->frame; break; } - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1560,7 +1560,7 @@ public: dst->Wiggle = src->wiggle; break; } - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1578,17 +1578,17 @@ public: dst->acceleration_z = src->acceleration_z; break; } - case MiscSpriteType::ExplosionCloud: - case MiscSpriteType::ExplosionFlare: - case MiscSpriteType::CrashSplash: + case MiscEntityType::ExplosionCloud: + case MiscEntityType::ExplosionFlare: + case MiscEntityType::CrashSplash: { auto src = static_cast(csrc); auto dst = static_cast(cdst); dst->frame = src->frame; break; } - case MiscSpriteType::JumpingFountainWater: - case MiscSpriteType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainWater: + case MiscEntityType::JumpingFountainSnow: { auto* src = static_cast(csrc); auto* dst = static_cast(cdst); @@ -1600,7 +1600,7 @@ public: dst->Iteration = src->iteration; break; } - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: { auto src = static_cast(csrc); auto dst = static_cast(cdst); @@ -1610,7 +1610,7 @@ public: dst->colour = src->colour; break; } - case MiscSpriteType::Duck: + case MiscEntityType::Duck: { auto src = static_cast(csrc); auto dst = static_cast(cdst); diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 2d6fcc5f64..e1a53ad4af 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -7253,7 +7253,7 @@ static void steam_particle_create(const CoordsXYZ& coords) steam->sprite_height_negative = 18; steam->sprite_height_positive = 16; steam->sprite_identifier = SpriteIdentifier::Misc; - steam->type = EnumValue(MiscSpriteType::SteamParticle); + steam->type = EnumValue(MiscEntityType::SteamParticle); steam->frame = 256; steam->time_to_move = 0; steam->MoveTo(coords); diff --git a/src/openrct2/scripting/ScEntity.hpp b/src/openrct2/scripting/ScEntity.hpp index 2bc604863e..9ea6ec300d 100644 --- a/src/openrct2/scripting/ScEntity.hpp +++ b/src/openrct2/scripting/ScEntity.hpp @@ -57,12 +57,30 @@ namespace OpenRCT2::Scripting case SpriteIdentifier::Peep: return "peep"; case SpriteIdentifier::Misc: - switch (static_cast(entity->type)) + switch (static_cast(entity->type)) { - case MiscSpriteType::Balloon: + case MiscEntityType::SteamParticle: + return "steam_particle"; + case MiscEntityType::MoneyEffect: + return "money_effect"; + case MiscEntityType::CrashedVehicleParticle: + return "crashed_vehicle_particle"; + case MiscEntityType::ExplosionCloud: + return "explosion_cloud"; + case MiscEntityType::CrashSplash: + return "crash_splash"; + case MiscEntityType::ExplosionFlare: + return "explosion_flare"; + case MiscEntityType::JumpingFountainWater: + return "jumping_fountain_water"; + case MiscEntityType::Balloon: return "balloon"; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: return "duck"; + case MiscEntityType::JumpingFountainSnow: + return "jumping_fountain_snow"; + default: + break; } break; case SpriteIdentifier::Litter: diff --git a/src/openrct2/scripting/ScMap.hpp b/src/openrct2/scripting/ScMap.hpp index b8503aedb4..69b5ecaec8 100644 --- a/src/openrct2/scripting/ScMap.hpp +++ b/src/openrct2/scripting/ScMap.hpp @@ -103,7 +103,7 @@ namespace OpenRCT2::Scripting if (type == "balloon") { targetList = EntityListId::Misc; - targetType = EnumValue(MiscSpriteType::Balloon); + targetType = EnumValue(MiscEntityType::Balloon); } if (type == "car") { @@ -116,7 +116,7 @@ namespace OpenRCT2::Scripting else if (type == "duck") { targetList = EntityListId::Misc; - targetType = EnumValue(MiscSpriteType::Duck); + targetType = EnumValue(MiscEntityType::Duck); } else if (type == "peep") { diff --git a/src/openrct2/world/Balloon.cpp b/src/openrct2/world/Balloon.cpp index bb29c28cb1..18dfc519c6 100644 --- a/src/openrct2/world/Balloon.cpp +++ b/src/openrct2/world/Balloon.cpp @@ -16,7 +16,7 @@ template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::Balloon; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::Balloon; } void Balloon::Update() @@ -85,7 +85,7 @@ void create_balloon(const CoordsXYZ& balloonPos, int32_t colour, bool isPopped) if (sprite == nullptr) return; sprite->generic.sprite_identifier = SpriteIdentifier::Misc; - sprite->generic.type = EnumValue(MiscSpriteType::Balloon); + sprite->generic.type = EnumValue(MiscEntityType::Balloon); auto balloon = sprite->generic.As(); if (balloon == nullptr) return; // can never happen diff --git a/src/openrct2/world/Duck.cpp b/src/openrct2/world/Duck.cpp index 93fc235310..ee48c41faa 100644 --- a/src/openrct2/world/Duck.cpp +++ b/src/openrct2/world/Duck.cpp @@ -68,7 +68,7 @@ static constexpr const uint8_t * DuckAnimations[] = template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::Duck; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::Duck; } void Duck::Invalidate() @@ -298,7 +298,7 @@ void create_duck(const CoordsXY& pos) targetPos.y += offsetXY; sprite->generic.sprite_identifier = SpriteIdentifier::Misc; - sprite->generic.type = EnumValue(MiscSpriteType::Duck); + sprite->generic.type = EnumValue(MiscEntityType::Duck); auto duck = sprite->generic.As(); if (duck == nullptr) return; // can never happen diff --git a/src/openrct2/world/Fountain.cpp b/src/openrct2/world/Fountain.cpp index 843b49811d..004422e3f9 100644 --- a/src/openrct2/world/Fountain.cpp +++ b/src/openrct2/world/Fountain.cpp @@ -72,9 +72,9 @@ const uint8_t _fountainPatternFlags[] = { template<> bool SpriteBase::Is() const { - const auto miscType = static_cast(type); + const auto miscType = static_cast(type); return sprite_identifier == SpriteIdentifier::Misc - && (miscType == MiscSpriteType::JumpingFountainSnow || miscType == MiscSpriteType::JumpingFountainWater); + && (miscType == MiscEntityType::JumpingFountainSnow || miscType == MiscEntityType::JumpingFountainWater); } void JumpingFountain::StartAnimation(const int32_t newType, const CoordsXY& newLoc, const TileElement* tileElement) @@ -140,8 +140,8 @@ void JumpingFountain::Create( jumpingFountain->sprite_height_positive = 12; jumpingFountain->sprite_identifier = SpriteIdentifier::Misc; jumpingFountain->MoveTo(newLoc); - jumpingFountain->type = newType == JUMPING_FOUNTAIN_TYPE_SNOW ? EnumValue(MiscSpriteType::JumpingFountainSnow) - : EnumValue(MiscSpriteType::JumpingFountainWater); + jumpingFountain->type = newType == JUMPING_FOUNTAIN_TYPE_SNOW ? EnumValue(MiscEntityType::JumpingFountainSnow) + : EnumValue(MiscEntityType::JumpingFountainWater); jumpingFountain->NumTicksAlive = 0; jumpingFountain->frame = 0; } @@ -162,9 +162,9 @@ void JumpingFountain::Update() Invalidate0(); frame++; - switch (static_cast(type)) + switch (static_cast(type)) { - case MiscSpriteType::JumpingFountainWater: + case MiscEntityType::JumpingFountainWater: if (frame == 11 && (FountainFlags & FOUNTAIN_FLAG::FAST)) { AdvanceAnimation(); @@ -174,7 +174,7 @@ void JumpingFountain::Update() AdvanceAnimation(); } break; - case MiscSpriteType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainSnow: if (frame == 16) { AdvanceAnimation(); @@ -192,7 +192,7 @@ void JumpingFountain::Update() int32_t JumpingFountain::GetType() const { - const int32_t fountainType = static_cast(type) == MiscSpriteType::JumpingFountainSnow + const int32_t fountainType = static_cast(type) == MiscEntityType::JumpingFountainSnow ? JUMPING_FOUNTAIN_TYPE_SNOW : JUMPING_FOUNTAIN_TYPE_WATER; return fountainType; diff --git a/src/openrct2/world/MoneyEffect.cpp b/src/openrct2/world/MoneyEffect.cpp index da56d7d832..164acee4d2 100644 --- a/src/openrct2/world/MoneyEffect.cpp +++ b/src/openrct2/world/MoneyEffect.cpp @@ -20,7 +20,7 @@ static constexpr const CoordsXY _moneyEffectMoveOffset[] = { { 1, -1 }, { 1, 1 } template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::MoneyEffect; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::MoneyEffect; } /** @@ -43,7 +43,7 @@ void MoneyEffect::CreateAt(money32 value, const CoordsXYZ& effectPos, bool verti moneyEffect->sprite_height_positive = 30; moneyEffect->sprite_identifier = SpriteIdentifier::Misc; moneyEffect->MoveTo(effectPos); - moneyEffect->type = EnumValue(MiscSpriteType::MoneyEffect); + moneyEffect->type = EnumValue(MiscEntityType::MoneyEffect); moneyEffect->NumMovements = 0; moneyEffect->MoveDelay = 0; diff --git a/src/openrct2/world/Particle.cpp b/src/openrct2/world/Particle.cpp index 8120e2bffc..8b3fc053de 100644 --- a/src/openrct2/world/Particle.cpp +++ b/src/openrct2/world/Particle.cpp @@ -17,12 +17,12 @@ template<> bool SpriteBase::Is() const { return sprite_identifier == SpriteIdentifier::Misc - && static_cast(type) == MiscSpriteType::CrashedVehicleParticle; + && static_cast(type) == MiscEntityType::CrashedVehicleParticle; } template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::CrashSplash; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::CrashSplash; } /** * @@ -40,7 +40,7 @@ void crashed_vehicle_particle_create(rct_vehicle_colour colours, const CoordsXYZ sprite->sprite_height_positive = 8; sprite->sprite_identifier = SpriteIdentifier::Misc; sprite->MoveTo(vehiclePos); - sprite->type = EnumValue(MiscSpriteType::CrashedVehicleParticle); + sprite->type = EnumValue(MiscEntityType::CrashedVehicleParticle); sprite->frame = (scenario_rand() & 0xFF) * 12; sprite->time_to_live = (scenario_rand() & 0x7F) + 140; @@ -130,7 +130,7 @@ void crash_splash_create(const CoordsXYZ& splashPos) sprite->sprite_height_positive = 16; sprite->sprite_identifier = SpriteIdentifier::Misc; sprite->MoveTo(splashPos + CoordsXYZ{ 0, 0, 3 }); - sprite->type = EnumValue(MiscSpriteType::CrashSplash); + sprite->type = EnumValue(MiscEntityType::CrashSplash); sprite->frame = 0; } } diff --git a/src/openrct2/world/Sprite.cpp b/src/openrct2/world/Sprite.cpp index 190f94fe9d..5532cb3514 100644 --- a/src/openrct2/world/Sprite.cpp +++ b/src/openrct2/world/Sprite.cpp @@ -65,17 +65,17 @@ template<> bool SpriteBase::Is() const template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::SteamParticle; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::SteamParticle; } template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::ExplosionFlare; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::ExplosionFlare; } template<> bool SpriteBase::Is() const { - return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscSpriteType::ExplosionCloud; + return sprite_identifier == SpriteIdentifier::Misc && static_cast(type) == MiscEntityType::ExplosionCloud; } uint16_t GetEntityListCount(EntityListId list) @@ -557,7 +557,7 @@ void sprite_misc_explosion_cloud_create(const CoordsXYZ& cloudPos) sprite->sprite_height_positive = 34; sprite->sprite_identifier = SpriteIdentifier::Misc; sprite->MoveTo(cloudPos + CoordsXYZ{ 0, 0, 4 }); - sprite->type = EnumValue(MiscSpriteType::ExplosionCloud); + sprite->type = EnumValue(MiscEntityType::ExplosionCloud); sprite->frame = 0; } } @@ -590,7 +590,7 @@ void sprite_misc_explosion_flare_create(const CoordsXYZ& flarePos) sprite->sprite_height_positive = 8; sprite->sprite_identifier = SpriteIdentifier::Misc; sprite->MoveTo(flarePos + CoordsXYZ{ 0, 0, 4 }); - sprite->type = EnumValue(MiscSpriteType::ExplosionFlare); + sprite->type = EnumValue(MiscEntityType::ExplosionFlare); sprite->frame = 0; } } @@ -615,34 +615,34 @@ void ExplosionFlare::Update() */ static void sprite_misc_update(SpriteBase* sprite) { - switch (static_cast(sprite->type)) + switch (static_cast(sprite->type)) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: sprite->As()->Update(); break; - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: sprite->As()->Update(); break; - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: sprite->As()->Update(); break; - case MiscSpriteType::ExplosionCloud: + case MiscEntityType::ExplosionCloud: sprite->As()->Update(); break; - case MiscSpriteType::CrashSplash: + case MiscEntityType::CrashSplash: sprite->As()->Update(); break; - case MiscSpriteType::ExplosionFlare: + case MiscEntityType::ExplosionFlare: sprite->As()->Update(); break; - case MiscSpriteType::JumpingFountainWater: - case MiscSpriteType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainWater: + case MiscEntityType::JumpingFountainSnow: sprite->As()->Update(); break; - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: sprite->As()->Update(); break; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: sprite->As()->Update(); break; default: diff --git a/src/openrct2/world/Sprite.h b/src/openrct2/world/Sprite.h index af3a676dc5..e449b55467 100644 --- a/src/openrct2/world/Sprite.h +++ b/src/openrct2/world/Sprite.h @@ -172,7 +172,7 @@ struct rct_sprite_checksum #pragma pack(pop) -enum class MiscSpriteType : uint8_t +enum class MiscEntityType : uint8_t { SteamParticle, MoneyEffect, diff --git a/test/tests/S6ImportExportTests.cpp b/test/tests/S6ImportExportTests.cpp index c307ce0be1..b64e6ed137 100644 --- a/test/tests/S6ImportExportTests.cpp +++ b/test/tests/S6ImportExportTests.cpp @@ -419,27 +419,29 @@ static void CompareSpriteData(const rct_sprite& left, const rct_sprite& right) CompareSpriteDataLitter(left.litter, right.litter); break; case SpriteIdentifier::Misc: - switch (static_cast(left.generic.type)) + switch (static_cast(left.generic.type)) { - case MiscSpriteType::SteamParticle: + case MiscEntityType::SteamParticle: CompareSpriteDataSteamParticle(left.steam_particle, right.steam_particle); break; - case MiscSpriteType::MoneyEffect: + case MiscEntityType::MoneyEffect: CompareSpriteDataMoneyEffect(left.money_effect, right.money_effect); break; - case MiscSpriteType::CrashedVehicleParticle: + case MiscEntityType::CrashedVehicleParticle: CompareSpriteDataCrashedVehicleParticle(left.crashed_vehicle_particle, right.crashed_vehicle_particle); break; - case MiscSpriteType::JumpingFountainSnow: - case MiscSpriteType::JumpingFountainWater: + case MiscEntityType::JumpingFountainSnow: + case MiscEntityType::JumpingFountainWater: CompareSpriteDataJumpingFountain(left.jumping_fountain, right.jumping_fountain); break; - case MiscSpriteType::Balloon: + case MiscEntityType::Balloon: CompareSpriteDataBalloon(left.balloon, right.balloon); break; - case MiscSpriteType::Duck: + case MiscEntityType::Duck: CompareSpriteDataDuck(left.duck, right.duck); break; + default: + break; } break; case SpriteIdentifier::Null: