mirror of https://github.com/OpenRCT2/OpenRCT2.git
Slight research refactor
This commit is contained in:
parent
c95702c469
commit
e8b2a3df0d
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue