diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index 9693298914..710055e5c2 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -1255,10 +1255,10 @@ static void editor_load_selected_objects() if (objectType == OBJECT_TYPE_RIDE) { rct_ride_entry *rideEntry = get_ride_entry(entryIndex); uint8 rideType = ride_entry_get_first_non_null_ride_type(rideEntry); - research_insert(1, 0x10000 | (rideType << 8) | entryIndex, rideEntry->category[0]); + research_insert(1, RESEARCH_ENTRY_RIDE_MASK | (rideType << 8) | entryIndex, rideEntry->category[0]); } else if (objectType == OBJECT_TYPE_SCENERY_GROUP) { - research_insert(1, entryIndex, RESEARCH_CATEGORY_SCENERYSET); + research_insert(1, entryIndex, RESEARCH_CATEGORY_SCENERY_GROUP); } } } diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index 1f9aa976c4..9a2fb65ab1 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -217,7 +217,7 @@ static constexpr const rct_string_id ResearchCategoryNames[] = { STR_RESEARCH_CATEGORY_THRILL, STR_RESEARCH_CATEGORY_WATER, STR_RESEARCH_CATEGORY_SHOP, - STR_RESEARCH_CATEGORY_SCENERYSET, + STR_RESEARCH_CATEGORY_SCENERY_GROUP, }; static constexpr const rct_string_id ResearchStageNames[] = { diff --git a/src/openrct2/interface/Console.cpp b/src/openrct2/interface/Console.cpp index 9e44c0e2cb..f8019bd8d9 100644 --- a/src/openrct2/interface/Console.cpp +++ b/src/openrct2/interface/Console.cpp @@ -1164,7 +1164,7 @@ static sint32 cc_load_object(const utf8 **argv, sint32 argc) { for (sint32 j = 0; j < MAX_RIDE_TYPES_PER_RIDE_ENTRY; j++) { rideType = rideEntry->ride_type[j]; if (rideType != RIDE_TYPE_NULL) - research_insert(true, 0x10000 | (rideType << 8) | groupIndex, rideEntry->category[0]); + research_insert(true, RESEARCH_ENTRY_RIDE_MASK | (rideType << 8) | groupIndex, rideEntry->category[0]); } gSilentResearch = true; @@ -1172,7 +1172,7 @@ static sint32 cc_load_object(const utf8 **argv, sint32 argc) { gSilentResearch = false; } else if (objectType == OBJECT_TYPE_SCENERY_GROUP) { - research_insert(true, groupIndex, RESEARCH_CATEGORY_SCENERYSET); + research_insert(true, groupIndex, RESEARCH_CATEGORY_SCENERY_GROUP); gSilentResearch = true; research_reset_current_item(); diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index 2d0ece605e..6deb346caa 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -1713,7 +1713,7 @@ enum { STR_RESEARCH_CATEGORY_THRILL = 2281, STR_RESEARCH_CATEGORY_WATER = 2282, STR_RESEARCH_CATEGORY_SHOP = 2283, - STR_RESEARCH_CATEGORY_SCENERYSET = 2284, + STR_RESEARCH_CATEGORY_SCENERY_GROUP = 2284, STR_RESEARCH_STAGE_INITIAL_RESEARCH = 2285, STR_RESEARCH_STAGE_DESIGNING = 2286, STR_RESEARCH_STAGE_COMPLETING_DESIGN = 2287, diff --git a/src/openrct2/management/Research.cpp b/src/openrct2/management/Research.cpp index 2ea60d13d4..5378503ded 100644 --- a/src/openrct2/management/Research.cpp +++ b/src/openrct2/management/Research.cpp @@ -434,7 +434,7 @@ void research_reset_current_item() * * rct2: 0x006857FA */ -static void research_insert_unresearched(sint32 entryIndex, sint32 category) +static void research_insert_unresearched(sint32 rawValue, sint32 category) { rct_research_item * researchItem, * researchItem2; @@ -452,19 +452,19 @@ static void research_insert_unresearched(sint32 entryIndex, sint32 category) memmove(researchItem + 1, researchItem, (researchItem2 - researchItem + 1) * sizeof(rct_research_item)); // Place new item - researchItem->rawValue = entryIndex; - researchItem->category = category; + researchItem->rawValue = rawValue; + researchItem->category = category; break; } } - while (entryIndex != (researchItem++)->rawValue); + while (rawValue != (researchItem++)->rawValue); } /** * * rct2: 0x00685826 */ -static void research_insert_researched(sint32 entryIndex, sint32 category) +static void research_insert_researched(sint32 rawValue, uint8 category) { rct_research_item * researchItem, * researchItem2; @@ -472,7 +472,7 @@ static void research_insert_researched(sint32 entryIndex, sint32 category) // First check to make sure that entry is not already accounted for for (; researchItem->rawValue != RESEARCHED_ITEMS_END; researchItem++) { - if (researchItem->rawValue == entryIndex) + if ((researchItem->rawValue & 0xFFFFFF) == (rawValue & 0xFFFFFF)) { return; } @@ -491,12 +491,12 @@ static void research_insert_researched(sint32 entryIndex, sint32 category) memmove(researchItem + 1, researchItem, (researchItem2 - researchItem + 1) * sizeof(rct_research_item)); // Place new item - researchItem->rawValue = entryIndex; - researchItem->category = category; + researchItem->rawValue = rawValue; + researchItem->category = category; break; } } - while (entryIndex != (researchItem++)->rawValue); + while (rawValue != (researchItem++)->rawValue); } /** @@ -520,15 +520,15 @@ void research_remove(rct_research_item * researchItem) } } -void research_insert(sint32 researched, sint32 entryIndex, sint32 category) +void research_insert(sint32 researched, sint32 rawValue, uint8 category) { if (researched) { - research_insert_researched(entryIndex, category); + research_insert_researched(rawValue, category); } else { - research_insert_unresearched(entryIndex, category); + research_insert_unresearched(rawValue, category); } } @@ -567,7 +567,7 @@ void research_populate_list_random() } sint32 researched = (scenario_rand() & 0xFF) > 85; - research_insert(researched, i, RESEARCH_CATEGORY_SCENERYSET); + research_insert(researched, i, RESEARCH_CATEGORY_SCENERY_GROUP); } } @@ -600,7 +600,7 @@ void research_populate_list_researched() continue; } - research_insert(true, i, RESEARCH_CATEGORY_SCENERYSET); + research_insert(true, i, RESEARCH_CATEGORY_SCENERY_GROUP); } } @@ -665,7 +665,7 @@ void research_insert_ride_entry(uint8 entryIndex, bool researched) void research_insert_scenery_group_entry(uint8 entryIndex, bool researched) { - research_insert(researched, entryIndex, RESEARCH_CATEGORY_SCENERYSET); + research_insert(researched, entryIndex, RESEARCH_CATEGORY_SCENERY_GROUP); } bool ride_type_is_invented(sint32 rideType) diff --git a/src/openrct2/management/Research.h b/src/openrct2/management/Research.h index eb0bed391d..8680cbc145 100644 --- a/src/openrct2/management/Research.h +++ b/src/openrct2/management/Research.h @@ -91,7 +91,7 @@ enum { RESEARCH_CATEGORY_THRILL, RESEARCH_CATEGORY_WATER, RESEARCH_CATEGORY_SHOP, - RESEARCH_CATEGORY_SCENERYSET + RESEARCH_CATEGORY_SCENERY_GROUP }; #ifdef __cplusplus @@ -123,7 +123,7 @@ void research_set_funding(sint32 amount); void research_set_priority(sint32 activeCategories); void game_command_set_research_funding(sint32* eax, sint32* ebx, sint32* ecx, sint32* edx, sint32* esi, sint32* edi, sint32* ebp); void research_finish_item(rct_research_item * researchItem); -void research_insert(sint32 researched, sint32 entryIndex, sint32 category); +void research_insert(sint32 researched, sint32 rawValue, uint8 category); void research_remove(rct_research_item * researchItem); void research_insert_ride_entry(uint8 entryIndex, bool researched); diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index abe9d74c27..fbda19d0da 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -2066,7 +2066,7 @@ private: } if (_s4.research_priority & RCT1_RESEARCH_CATEGORY_SCENERY_THEMEING) { - activeResearchTypes |= (1 << RESEARCH_CATEGORY_SCENERYSET); + activeResearchTypes |= (1 << RESEARCH_CATEGORY_SCENERY_GROUP); } gResearchPriorities = activeResearchTypes; gResearchFundingLevel = _s4.research_level; diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 1224ab84ba..b9b4808ea0 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -123,7 +123,7 @@ void park_init() (1 << RESEARCH_CATEGORY_THRILL) | (1 << RESEARCH_CATEGORY_WATER) | (1 << RESEARCH_CATEGORY_SHOP) | - (1 << RESEARCH_CATEGORY_SCENERYSET); + (1 << RESEARCH_CATEGORY_SCENERY_GROUP); gResearchFundingLevel = RESEARCH_FUNDING_NORMAL; gGuestInitialCash = MONEY(50,00); // Cash per guest (average)