From 384e0ee718168e5ca42351627ab1ec293ecd205e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20P=C4=99kalski?= Date: Sat, 17 Oct 2020 22:15:46 +0200 Subject: [PATCH] Close #12418: Refactor RESEARCH_CATEGORY_* to use strong enum (#13216) --- src/openrct2/management/Research.cpp | 2 +- src/openrct2/management/Research.h | 16 ++++++++-------- src/openrct2/rct1/S4Importer.cpp | 16 ++++++++-------- src/openrct2/rct2/S6Importer.cpp | 2 +- src/openrct2/world/Park.cpp | 6 +++--- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/openrct2/management/Research.cpp b/src/openrct2/management/Research.cpp index 0a84c09f44..a05da21566 100644 --- a/src/openrct2/management/Research.cpp +++ b/src/openrct2/management/Research.cpp @@ -519,7 +519,7 @@ bool research_insert_scenery_group_entry(ObjectEntryIndex entryIndex, bool resea if (entryIndex != OBJECT_ENTRY_INDEX_NULL) { auto tmpItem = ResearchItem( - Research::EntryType::Scenery, entryIndex, RIDE_TYPE_NULL, RESEARCH_CATEGORY_SCENERY_GROUP, 0); + Research::EntryType::Scenery, entryIndex, RIDE_TYPE_NULL, EnumToFlag(ResearchCategory::Group), 0); research_insert(tmpItem, researched); return true; } diff --git a/src/openrct2/management/Research.h b/src/openrct2/management/Research.h index 5a60075a8a..8cbb443680 100644 --- a/src/openrct2/management/Research.h +++ b/src/openrct2/management/Research.h @@ -138,15 +138,15 @@ enum RESEARCH_STAGE_FINISHED_ALL }; -enum : uint8_t +enum class ResearchCategory : uint8_t { - RESEARCH_CATEGORY_TRANSPORT, - RESEARCH_CATEGORY_GENTLE, - RESEARCH_CATEGORY_ROLLERCOASTER, - RESEARCH_CATEGORY_THRILL, - RESEARCH_CATEGORY_WATER, - RESEARCH_CATEGORY_SHOP, - RESEARCH_CATEGORY_SCENERY_GROUP + Transport, + Gentle, + Rollercoaster, + Thrill, + Water, + Shop, + Group }; extern uint8_t gResearchFundingLevel; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 63f64de9a6..05b2241c72 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -2407,25 +2407,25 @@ private: uint8_t activeResearchTypes = 0; if (_s4.research_priority & RCT1_RESEARCH_CATEGORY_ROLLERCOASTERS) { - activeResearchTypes |= (1 << RESEARCH_CATEGORY_ROLLERCOASTER); + activeResearchTypes |= EnumToFlag(ResearchCategory::Rollercoaster); } if (_s4.research_priority & RCT1_RESEARCH_CATEGORY_THRILL_RIDES) { - activeResearchTypes |= (1 << RESEARCH_CATEGORY_THRILL); - activeResearchTypes |= (1 << RESEARCH_CATEGORY_WATER); + activeResearchTypes |= EnumToFlag(ResearchCategory::Thrill); + activeResearchTypes |= EnumToFlag(ResearchCategory::Water); } if (_s4.research_priority & RCT1_RESEARCH_CATEGORY_GENTLE_TRANSPORT_RIDES) { - activeResearchTypes |= (1 << RESEARCH_CATEGORY_GENTLE); - activeResearchTypes |= (1 << RESEARCH_CATEGORY_TRANSPORT); + activeResearchTypes |= EnumToFlag(ResearchCategory::Gentle); + activeResearchTypes |= EnumToFlag(ResearchCategory::Transport); } if (_s4.research_priority & RCT1_RESEARCH_CATEGORY_SHOPS) { - activeResearchTypes |= (1 << RESEARCH_CATEGORY_SHOP); + activeResearchTypes |= EnumToFlag(ResearchCategory::Shop); } if (_s4.research_priority & RCT1_RESEARCH_CATEGORY_SCENERY_THEMEING) { - activeResearchTypes |= (1 << RESEARCH_CATEGORY_SCENERY_GROUP); + activeResearchTypes |= EnumToFlag(ResearchCategory::Group); } gResearchPriorities = activeResearchTypes; gResearchFundingLevel = _s4.research_level; @@ -2663,7 +2663,7 @@ private: { dst->entryIndex = entryIndex; dst->type = Research::EntryType::Scenery; - dst->category = RESEARCH_CATEGORY_SCENERY_GROUP; + dst->category = EnumToFlag(ResearchCategory::Group); dst->flags = 0; } } diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 1e8358afe9..e7aa1dccee 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -272,7 +272,7 @@ public: gResearchProgressStage = _s6.research_progress_stage; if (_s6.last_researched_item_subject != RCT12_RESEARCHED_ITEMS_SEPARATOR) gResearchLastItem = ResearchItem( - RCT12ResearchItem{ _s6.last_researched_item_subject, RESEARCH_CATEGORY_TRANSPORT }); + RCT12ResearchItem{ _s6.last_researched_item_subject, EnumToFlag(ResearchCategory::Transport) }); else gResearchLastItem = std::nullopt; // pad_01357CF8 diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 0b4d7dadd6..dc4549244d 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -284,9 +284,9 @@ void Park::Initialise() gPeepSpawns.clear(); reset_park_entrance(); - gResearchPriorities = (1 << RESEARCH_CATEGORY_TRANSPORT) | (1 << RESEARCH_CATEGORY_GENTLE) - | (1 << RESEARCH_CATEGORY_ROLLERCOASTER) | (1 << RESEARCH_CATEGORY_THRILL) | (1 << RESEARCH_CATEGORY_WATER) - | (1 << RESEARCH_CATEGORY_SHOP) | (1 << RESEARCH_CATEGORY_SCENERY_GROUP); + gResearchPriorities = EnumsToFlags( + ResearchCategory::Transport, ResearchCategory::Gentle, ResearchCategory::Rollercoaster, ResearchCategory::Thrill, + ResearchCategory::Water, ResearchCategory::Shop, ResearchCategory::Group); gResearchFundingLevel = RESEARCH_FUNDING_NORMAL; gGuestInitialCash = MONEY(50, 00);