diff --git a/src/openrct2-ui/windows/EditorBottomToolbar.cpp b/src/openrct2-ui/windows/EditorBottomToolbar.cpp index ec10436aaa..ea2934e76b 100644 --- a/src/openrct2-ui/windows/EditorBottomToolbar.cpp +++ b/src/openrct2-ui/windows/EditorBottomToolbar.cpp @@ -286,7 +286,7 @@ static void window_editor_bottom_toolbar_mouseup([[maybe_unused]] rct_window* w, if (widgetIndex == WIDX_PREVIOUS_STEP_BUTTON) { if ((gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) - || (GetNumFreeEntities() == MAX_SPRITES && !(gParkFlags & PARK_FLAGS_SPRITES_INITIALISED))) + || (GetNumFreeEntities() == MAX_ENTITIES && !(gParkFlags & PARK_FLAGS_SPRITES_INITIALISED))) { previous_button_mouseup_events[EnumValue(gS6Info.editor_step)](); } @@ -346,7 +346,7 @@ void window_editor_bottom_toolbar_invalidate(rct_window* w) } else if (!(gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)) { - if (GetNumFreeEntities() != MAX_SPRITES || gParkFlags & PARK_FLAGS_SPRITES_INITIALISED) + if (GetNumFreeEntities() != MAX_ENTITIES || gParkFlags & PARK_FLAGS_SPRITES_INITIALISED) { hide_previous_step_button(); } @@ -371,7 +371,7 @@ void window_editor_bottom_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi) { drawPreviousButton = true; } - else if (GetNumFreeEntities() != MAX_SPRITES) + else if (GetNumFreeEntities() != MAX_ENTITIES) { drawNextButton = true; } diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index 01c64abcb9..5976d7e031 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -310,7 +310,7 @@ namespace Editor ride_init_all(); // - for (int32_t i = 0; i < MAX_SPRITES; i++) + for (int32_t i = 0; i < MAX_ENTITIES; i++) { auto peep = GetEntity(i); if (peep != nullptr) diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index 5b01c2f887..0301b2f91a 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -588,7 +588,7 @@ void game_unload_scripts() */ void reset_all_sprite_quadrant_placements() { - for (size_t i = 0; i < MAX_SPRITES; i++) + for (size_t i = 0; i < MAX_ENTITIES; i++) { auto* spr = GetEntity(i); if (spr != nullptr && spr->sprite_identifier != SpriteIdentifier::Null) diff --git a/src/openrct2/GameStateSnapshots.cpp b/src/openrct2/GameStateSnapshots.cpp index d5ec981383..e1e9c3875c 100644 --- a/src/openrct2/GameStateSnapshots.cpp +++ b/src/openrct2/GameStateSnapshots.cpp @@ -146,7 +146,7 @@ struct GameStateSnapshots final : public IGameStateSnapshots virtual void Capture(GameStateSnapshot_t& snapshot) override final { snapshot.SerialiseSprites( - [](const size_t index) { return reinterpret_cast(GetEntity(index)); }, MAX_SPRITES, true); + [](const size_t index) { return reinterpret_cast(GetEntity(index)); }, MAX_ENTITIES, true); // log_info("Snapshot size: %u bytes", static_cast(snapshot.storedSprites.GetLength())); } @@ -172,7 +172,7 @@ struct GameStateSnapshots final : public IGameStateSnapshots std::vector BuildSpriteList(GameStateSnapshot_t& snapshot) const { std::vector spriteList; - spriteList.resize(MAX_SPRITES); + spriteList.resize(MAX_ENTITIES); for (auto& sprite : spriteList) { @@ -180,7 +180,7 @@ struct GameStateSnapshots final : public IGameStateSnapshots sprite.misc.sprite_identifier = SpriteIdentifier::Null; } - snapshot.SerialiseSprites([&spriteList](const size_t index) { return &spriteList[index]; }, MAX_SPRITES, false); + snapshot.SerialiseSprites([&spriteList](const size_t index) { return &spriteList[index]; }, MAX_ENTITIES, false); return spriteList; } diff --git a/src/openrct2/actions/GuestSetFlagsAction.cpp b/src/openrct2/actions/GuestSetFlagsAction.cpp index 82795c8f4f..9ecd1919eb 100644 --- a/src/openrct2/actions/GuestSetFlagsAction.cpp +++ b/src/openrct2/actions/GuestSetFlagsAction.cpp @@ -11,6 +11,7 @@ #include "../Context.h" #include "../OpenRCT2.h" +#include "../world/Entity.h" GuestSetFlagsAction::GuestSetFlagsAction(uint16_t peepId, uint32_t flags) : _peepId(peepId) diff --git a/src/openrct2/actions/GuestSetFlagsAction.h b/src/openrct2/actions/GuestSetFlagsAction.h index 2cf45ffa7c..f162e1216a 100644 --- a/src/openrct2/actions/GuestSetFlagsAction.h +++ b/src/openrct2/actions/GuestSetFlagsAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(GuestSetFlagsAction, GameCommand::GuestSetFlags, GameActions::Result) diff --git a/src/openrct2/actions/GuestSetNameAction.cpp b/src/openrct2/actions/GuestSetNameAction.cpp index 82fa3d9b2c..5c504ebbbe 100644 --- a/src/openrct2/actions/GuestSetNameAction.cpp +++ b/src/openrct2/actions/GuestSetNameAction.cpp @@ -56,7 +56,7 @@ void GuestSetNameAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr GuestSetNameAction::Query() const { - if (_spriteIndex >= MAX_SPRITES) + if (_spriteIndex >= MAX_ENTITIES) { return std::make_unique(GameActions::Status::InvalidParameters, STR_CANT_NAME_GUEST, STR_NONE); } diff --git a/src/openrct2/actions/GuestSetNameAction.h b/src/openrct2/actions/GuestSetNameAction.h index 5f2a9b025d..6611f075e2 100644 --- a/src/openrct2/actions/GuestSetNameAction.h +++ b/src/openrct2/actions/GuestSetNameAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(GuestSetNameAction, GameCommand::SetGuestName, GameActions::Result) diff --git a/src/openrct2/actions/PeepPickupAction.cpp b/src/openrct2/actions/PeepPickupAction.cpp index 8cd6dee6a7..49b422cdcf 100644 --- a/src/openrct2/actions/PeepPickupAction.cpp +++ b/src/openrct2/actions/PeepPickupAction.cpp @@ -12,6 +12,7 @@ #include "../Input.h" #include "../network/network.h" #include "../util/Util.h" +#include "../world/Sprite.h" PeepPickupAction::PeepPickupAction(PeepPickupType type, uint32_t spriteId, const CoordsXYZ& loc, NetworkPlayerId_t owner) : _type(type) @@ -35,7 +36,7 @@ void PeepPickupAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr PeepPickupAction::Query() const { - if (_spriteId >= MAX_SPRITES || _spriteId == SPRITE_INDEX_NULL) + if (_spriteId >= MAX_ENTITIES || _spriteId == SPRITE_INDEX_NULL) { log_error("Failed to pick up peep for sprite %d", _spriteId); return MakeResult(GameActions::Status::InvalidParameters, STR_ERR_CANT_PLACE_PERSON_HERE); diff --git a/src/openrct2/actions/PeepPickupAction.h b/src/openrct2/actions/PeepPickupAction.h index 7aab1b2d65..5ff32e8d59 100644 --- a/src/openrct2/actions/PeepPickupAction.h +++ b/src/openrct2/actions/PeepPickupAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" enum class PeepPickupType : uint8_t diff --git a/src/openrct2/actions/StaffFireAction.cpp b/src/openrct2/actions/StaffFireAction.cpp index 620fbeadc9..f8138d93a8 100644 --- a/src/openrct2/actions/StaffFireAction.cpp +++ b/src/openrct2/actions/StaffFireAction.cpp @@ -11,6 +11,7 @@ #include "../interface/Window.h" #include "../peep/Peep.h" +#include "../world/Entity.h" StaffFireAction::StaffFireAction(uint16_t spriteId) : _spriteId(spriteId) @@ -30,7 +31,7 @@ void StaffFireAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr StaffFireAction::Query() const { - if (_spriteId >= MAX_SPRITES) + if (_spriteId >= MAX_ENTITIES) { log_error("Invalid spriteId. spriteId = %u", _spriteId); return MakeResult(GameActions::Status::InvalidParameters, STR_NONE); diff --git a/src/openrct2/actions/StaffFireAction.h b/src/openrct2/actions/StaffFireAction.h index 1f19e8343c..2b74d256b6 100644 --- a/src/openrct2/actions/StaffFireAction.h +++ b/src/openrct2/actions/StaffFireAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(StaffFireAction, GameCommand::FireStaffMember, GameActions::Result) diff --git a/src/openrct2/actions/StaffHireNewAction.h b/src/openrct2/actions/StaffHireNewAction.h index 56c18f3118..47c9d6bb4c 100644 --- a/src/openrct2/actions/StaffHireNewAction.h +++ b/src/openrct2/actions/StaffHireNewAction.h @@ -10,7 +10,6 @@ #pragma once #include "../peep/Staff.h" -#include "../world/Sprite.h" #include "GameAction.h" /* rct2: 0x009929FC */ diff --git a/src/openrct2/actions/StaffSetCostumeAction.cpp b/src/openrct2/actions/StaffSetCostumeAction.cpp index 641f927ddb..6f475563b5 100644 --- a/src/openrct2/actions/StaffSetCostumeAction.cpp +++ b/src/openrct2/actions/StaffSetCostumeAction.cpp @@ -14,6 +14,7 @@ #include "../localisation/Localisation.h" #include "../localisation/StringIds.h" #include "../windows/Intent.h" +#include "../world/Entity.h" /** rct2: 0x00982134 */ constexpr const bool peep_slow_walking_types[] = { @@ -55,7 +56,7 @@ void StaffSetCostumeAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr StaffSetCostumeAction::Query() const { - if (_spriteIndex >= MAX_SPRITES) + if (_spriteIndex >= MAX_ENTITIES) { return std::make_unique(GameActions::Status::InvalidParameters, STR_NONE); } diff --git a/src/openrct2/actions/StaffSetCostumeAction.h b/src/openrct2/actions/StaffSetCostumeAction.h index 34b868f9aa..617f859140 100644 --- a/src/openrct2/actions/StaffSetCostumeAction.h +++ b/src/openrct2/actions/StaffSetCostumeAction.h @@ -10,7 +10,6 @@ #pragma once #include "../peep/Staff.h" -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(StaffSetCostumeAction, GameCommand::SetStaffCostume, GameActions::Result) diff --git a/src/openrct2/actions/StaffSetNameAction.cpp b/src/openrct2/actions/StaffSetNameAction.cpp index 4784b6e606..aa1b2feb92 100644 --- a/src/openrct2/actions/StaffSetNameAction.cpp +++ b/src/openrct2/actions/StaffSetNameAction.cpp @@ -18,6 +18,7 @@ #include "../localisation/StringIds.h" #include "../peep/Staff.h" #include "../windows/Intent.h" +#include "../world/Entity.h" #include "../world/Park.h" StaffSetNameAction::StaffSetNameAction(uint16_t spriteIndex, const std::string& name) @@ -40,7 +41,7 @@ void StaffSetNameAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr StaffSetNameAction::Query() const { - if (_spriteIndex >= MAX_SPRITES) + if (_spriteIndex >= MAX_ENTITIES) { return std::make_unique( GameActions::Status::InvalidParameters, STR_STAFF_ERROR_CANT_NAME_STAFF_MEMBER, STR_NONE); diff --git a/src/openrct2/actions/StaffSetNameAction.h b/src/openrct2/actions/StaffSetNameAction.h index aa40e84ad1..7864677be7 100644 --- a/src/openrct2/actions/StaffSetNameAction.h +++ b/src/openrct2/actions/StaffSetNameAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(StaffSetNameAction, GameCommand::SetStaffName, GameActions::Result) diff --git a/src/openrct2/actions/StaffSetOrdersAction.cpp b/src/openrct2/actions/StaffSetOrdersAction.cpp index 8492622beb..8ab821aa96 100644 --- a/src/openrct2/actions/StaffSetOrdersAction.cpp +++ b/src/openrct2/actions/StaffSetOrdersAction.cpp @@ -15,6 +15,7 @@ #include "../localisation/StringIds.h" #include "../peep/Staff.h" #include "../windows/Intent.h" +#include "../world/Entity.h" StaffSetOrdersAction::StaffSetOrdersAction(uint16_t spriteIndex, uint8_t ordersId) : _spriteIndex(spriteIndex) @@ -36,7 +37,7 @@ void StaffSetOrdersAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr StaffSetOrdersAction::Query() const { - if (_spriteIndex >= MAX_SPRITES) + if (_spriteIndex >= MAX_ENTITIES) { return std::make_unique(GameActions::Status::InvalidParameters, STR_NONE); } diff --git a/src/openrct2/actions/StaffSetOrdersAction.h b/src/openrct2/actions/StaffSetOrdersAction.h index 63e325405e..b0a1f41cdb 100644 --- a/src/openrct2/actions/StaffSetOrdersAction.h +++ b/src/openrct2/actions/StaffSetOrdersAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(StaffSetOrdersAction, GameCommand::SetStaffOrders, GameActions::Result) diff --git a/src/openrct2/actions/StaffSetPatrolAreaAction.cpp b/src/openrct2/actions/StaffSetPatrolAreaAction.cpp index cc035b029d..8f981a9468 100644 --- a/src/openrct2/actions/StaffSetPatrolAreaAction.cpp +++ b/src/openrct2/actions/StaffSetPatrolAreaAction.cpp @@ -12,6 +12,7 @@ #include "../interface/Window.h" #include "../peep/Peep.h" #include "../peep/Staff.h" +#include "../world/Entity.h" StaffSetPatrolAreaAction::StaffSetPatrolAreaAction(uint16_t spriteId, const CoordsXY& loc) : _spriteId(spriteId) @@ -32,7 +33,7 @@ void StaffSetPatrolAreaAction::Serialise(DataSerialiser& stream) GameActions::Result::Ptr StaffSetPatrolAreaAction::Query() const { - if (_spriteId >= MAX_SPRITES) + if (_spriteId >= MAX_ENTITIES) { log_error("Invalid spriteId. spriteId = %u", _spriteId); return MakeResult(GameActions::Status::InvalidParameters, STR_NONE); diff --git a/src/openrct2/actions/StaffSetPatrolAreaAction.h b/src/openrct2/actions/StaffSetPatrolAreaAction.h index 36add3adb7..7d43239aa7 100644 --- a/src/openrct2/actions/StaffSetPatrolAreaAction.h +++ b/src/openrct2/actions/StaffSetPatrolAreaAction.h @@ -9,7 +9,6 @@ #pragma once -#include "../world/Sprite.h" #include "GameAction.h" DEFINE_GAME_ACTION(StaffSetPatrolAreaAction, GameCommand::SetStaffPatrol, GameActions::Result) diff --git a/src/openrct2/common.h b/src/openrct2/common.h index 21d4dacbc4..7b81c78ae6 100644 --- a/src/openrct2/common.h +++ b/src/openrct2/common.h @@ -145,6 +145,8 @@ using money64 = fixed64_1dp; using EMPTY_ARGS_VOID_POINTER = void(); using rct_string_id = uint16_t; +constexpr uint16_t SPRITE_INDEX_NULL = 0xFFFF; + #define SafeFree(x) \ do \ { \ diff --git a/src/openrct2/interface/InteractiveConsole.cpp b/src/openrct2/interface/InteractiveConsole.cpp index 13988e3eff..6330c29197 100644 --- a/src/openrct2/interface/InteractiveConsole.cpp +++ b/src/openrct2/interface/InteractiveConsole.cpp @@ -1266,7 +1266,7 @@ static int32_t cc_show_limits(InteractiveConsole& console, [[maybe_unused]] cons } } - console.WriteFormatLine("Sprites: %d/%d", spriteCount, MAX_SPRITES); + console.WriteFormatLine("Sprites: %d/%d", spriteCount, MAX_ENTITIES); console.WriteFormatLine("Map Elements: %d/%d", tileElementCount, MAX_TILE_ELEMENTS); console.WriteFormatLine("Banners: %d/%zu", bannerCount, MAX_BANNERS); console.WriteFormatLine("Rides: %d/%d", rideCount, MAX_RIDES); @@ -1589,7 +1589,7 @@ static int32_t cc_mp_desync(InteractiveConsole& console, const arguments_t& argv std::vector peeps; - for (int i = 0; i < MAX_SPRITES; i++) + for (int i = 0; i < MAX_ENTITIES; i++) { auto* sprite = GetEntity(i); if (sprite == nullptr || sprite->sprite_identifier == SpriteIdentifier::Null) diff --git a/src/openrct2/interface/Window.cpp b/src/openrct2/interface/Window.cpp index dc44f90544..dd9a29a1b0 100644 --- a/src/openrct2/interface/Window.cpp +++ b/src/openrct2/interface/Window.cpp @@ -2141,7 +2141,7 @@ void window_init_all() void window_follow_sprite(rct_window* w, size_t spriteIndex) { - if (spriteIndex < MAX_SPRITES || spriteIndex == SPRITE_INDEX_NULL) + if (spriteIndex < MAX_ENTITIES || spriteIndex == SPRITE_INDEX_NULL) { w->viewport_smart_follow_sprite = static_cast(spriteIndex); } diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index bb4cedc939..f3c456a73e 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1356,7 +1356,7 @@ private: ImportPeep(peep, srcPeep); } } - for (size_t i = 0; i < MAX_SPRITES; i++) + for (size_t i = 0; i < MAX_ENTITIES; i++) { auto vehicle = GetEntity(i); if (vehicle != nullptr) diff --git a/src/openrct2/scripting/ScMap.hpp b/src/openrct2/scripting/ScMap.hpp index 86d7748030..870c266dd4 100644 --- a/src/openrct2/scripting/ScMap.hpp +++ b/src/openrct2/scripting/ScMap.hpp @@ -51,7 +51,7 @@ namespace OpenRCT2::Scripting int32_t numEntities_get() const { - return MAX_SPRITES; + return MAX_ENTITIES; } std::vector> rides_get() const @@ -84,7 +84,7 @@ namespace OpenRCT2::Scripting DukValue getEntity(int32_t id) const { - if (id >= 0 && id < MAX_SPRITES) + if (id >= 0 && id < MAX_ENTITIES) { auto spriteId = static_cast(id); auto sprite = GetEntity(spriteId); diff --git a/src/openrct2/world/Entity.h b/src/openrct2/world/Entity.h index 6e12851fb7..2259d47bcd 100644 --- a/src/openrct2/world/Entity.h +++ b/src/openrct2/world/Entity.h @@ -11,6 +11,8 @@ #include "SpriteBase.h" +constexpr uint16_t MAX_ENTITIES = 10000; + SpriteBase* try_get_sprite(size_t spriteIndex); SpriteBase* get_sprite(size_t sprite_idx); diff --git a/src/openrct2/world/Sprite.cpp b/src/openrct2/world/Sprite.cpp index add25cadfa..2bba77688d 100644 --- a/src/openrct2/world/Sprite.cpp +++ b/src/openrct2/world/Sprite.cpp @@ -26,11 +26,11 @@ #include #include -static rct_sprite _spriteList[MAX_SPRITES]; +static rct_sprite _spriteList[MAX_ENTITIES]; static std::array, EnumValue(EntityListId::Count)> gEntityLists; static std::vector _freeIdList; -static bool _spriteFlashingList[MAX_SPRITES]; +static bool _spriteFlashingList[MAX_ENTITIES]; static std::array, SPATIAL_INDEX_SIZE> gSpriteSpatialIndex; @@ -128,7 +128,7 @@ std::string rct_sprite_checksum::ToString() const SpriteBase* try_get_sprite(size_t spriteIndex) { - return spriteIndex >= MAX_SPRITES ? nullptr : &_spriteList[spriteIndex].misc; + return spriteIndex >= MAX_ENTITIES ? nullptr : &_spriteList[spriteIndex].misc; } SpriteBase* get_sprite(size_t spriteIndex) @@ -137,7 +137,7 @@ SpriteBase* get_sprite(size_t spriteIndex) { return nullptr; } - openrct2_assert(spriteIndex < MAX_SPRITES, "Tried getting sprite %u", spriteIndex); + openrct2_assert(spriteIndex < MAX_ENTITIES, "Tried getting sprite %u", spriteIndex); return try_get_sprite(spriteIndex); } @@ -258,7 +258,7 @@ void reset_sprite_list() { gSavedAge = 0; std::memset(static_cast(_spriteList), 0, sizeof(_spriteList)); - for (int32_t i = 0; i < MAX_SPRITES; ++i) + for (int32_t i = 0; i < MAX_ENTITIES; ++i) { auto* spr = GetEntity(i); if (spr == nullptr) @@ -290,7 +290,7 @@ void reset_sprite_spatial_index() { vec.clear(); } - for (size_t i = 0; i < MAX_SPRITES; i++) + for (size_t i = 0; i < MAX_ENTITIES; i++) { auto* spr = GetEntity(i); if (spr != nullptr && spr->sprite_identifier != SpriteIdentifier::Null) @@ -320,7 +320,7 @@ rct_sprite_checksum sprite_checksum() } _spriteHashAlg->Clear(); - for (size_t i = 0; i < MAX_SPRITES; i++) + for (size_t i = 0; i < MAX_ENTITIES; i++) { // TODO create a way to copy only the specific type auto sprite = GetEntity(i); @@ -945,12 +945,12 @@ EntityTweener& EntityTweener::Get() void sprite_set_flashing(SpriteBase* sprite, bool flashing) { - assert(sprite->sprite_index < MAX_SPRITES); + assert(sprite->sprite_index < MAX_ENTITIES); _spriteFlashingList[sprite->sprite_index] = flashing; } bool sprite_get_flashing(SpriteBase* sprite) { - assert(sprite->sprite_index < MAX_SPRITES); + assert(sprite->sprite_index < MAX_ENTITIES); return _spriteFlashingList[sprite->sprite_index]; } diff --git a/test/testpaint/Compat.cpp b/test/testpaint/Compat.cpp index 235f64668a..1cf1895b92 100644 --- a/test/testpaint/Compat.cpp +++ b/test/testpaint/Compat.cpp @@ -170,7 +170,7 @@ template<> bool SpriteBase::Is() const SpriteBase* get_sprite(size_t sprite_idx) { - assert(sprite_idx < MAX_SPRITES); + assert(sprite_idx < MAX_ENTITIES); return reinterpret_cast(&sprite_list[sprite_idx]); } diff --git a/test/tests/S6ImportExportTests.cpp b/test/tests/S6ImportExportTests.cpp index 04bfce0bb9..3ea6af2704 100644 --- a/test/tests/S6ImportExportTests.cpp +++ b/test/tests/S6ImportExportTests.cpp @@ -37,7 +37,7 @@ using namespace OpenRCT2; struct GameState_t { - rct_sprite sprites[MAX_SPRITES]; + rct_sprite sprites[MAX_ENTITIES]; }; static bool LoadFileToBuffer(MemoryStream& stream, const std::string& filePath) @@ -106,7 +106,7 @@ static bool ExportSave(MemoryStream& stream, std::unique_ptr& context) static std::unique_ptr GetGameState(std::unique_ptr& context) { std::unique_ptr res = std::make_unique(); - for (size_t spriteIdx = 0; spriteIdx < MAX_SPRITES; spriteIdx++) + for (size_t spriteIdx = 0; spriteIdx < MAX_ENTITIES; spriteIdx++) { rct_sprite* sprite = reinterpret_cast(GetEntity(spriteIdx)); if (sprite == nullptr) @@ -461,7 +461,7 @@ static void CompareStates( static_cast(exportBuffer.GetLength())); } - for (size_t spriteIdx = 0; spriteIdx < MAX_SPRITES; ++spriteIdx) + for (size_t spriteIdx = 0; spriteIdx < MAX_ENTITIES; ++spriteIdx) { if (importedState->sprites[spriteIdx].misc.sprite_identifier == SpriteIdentifier::Null && exportedState->sprites[spriteIdx].misc.sprite_identifier == SpriteIdentifier::Null)