mirror of https://github.com/OpenRCT2/OpenRCT2.git
Abstract access to gResearchedRide{Types,Entries}
This commit is contained in:
parent
ea4eb7775a
commit
d2de1a4a95
|
@ -227,6 +227,7 @@ void window_editor_bottom_toolbar_jump_forward_from_object_selection()
|
|||
return;
|
||||
|
||||
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) {
|
||||
set_every_ride_type_invented();
|
||||
set_every_ride_entry_invented();
|
||||
context_open_window(WC_CONSTRUCT_RIDE);
|
||||
gS6Info.editor_step = EDITOR_STEP_ROLLERCOASTER_DESIGNER;
|
||||
|
|
|
@ -1233,6 +1233,7 @@ static sint32 get_object_from_object_selection(uint8 object_type, sint32 y)
|
|||
*/
|
||||
static void window_editor_object_selection_manage_tracks()
|
||||
{
|
||||
set_every_ride_type_invented();
|
||||
set_every_ride_entry_invented();
|
||||
|
||||
gS6Info.editor_step = EDITOR_STEP_TRACK_DESIGNS_MANAGER;
|
||||
|
|
|
@ -54,16 +54,13 @@ rct_research_item gResearchItems[MAX_RESEARCH_ITEMS];
|
|||
// 0x00EE787C
|
||||
uint8 gResearchUncompletedCategories;
|
||||
|
||||
bool gResearchedRideTypes[RIDE_TYPE_COUNT];
|
||||
bool gResearchedRideEntries[MAX_RIDE_OBJECTS];
|
||||
static bool _researchedRideTypes[RIDE_TYPE_COUNT];
|
||||
static bool _researchedRideEntries[MAX_RIDE_OBJECTS];
|
||||
uint32 gResearchedSceneryItems[MAX_RESEARCHED_SCENERY_ITEMS];
|
||||
|
||||
bool gSilentResearch = false;
|
||||
|
||||
static void ride_type_set_invented(sint32 rideType);
|
||||
static void ride_entry_set_invented(sint32 rideEntryIndex);
|
||||
static void scenery_set_invented(uint16 sceneryItem);
|
||||
static void scenery_set_not_invented(uint16 sceneryItem);
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -414,6 +411,7 @@ void research_reset_current_item()
|
|||
ebp->category = cat;
|
||||
}
|
||||
|
||||
set_every_ride_type_not_invented();
|
||||
set_every_ride_entry_not_invented();
|
||||
|
||||
set_all_scenery_items_invented();
|
||||
|
@ -683,12 +681,12 @@ void research_insert_scenery_group_entry(uint8 entryIndex, bool researched)
|
|||
|
||||
bool ride_type_is_invented(sint32 rideType)
|
||||
{
|
||||
return gResearchedRideTypes[rideType];
|
||||
return _researchedRideTypes[rideType];
|
||||
}
|
||||
|
||||
bool ride_entry_is_invented(sint32 rideEntryIndex)
|
||||
{
|
||||
return gResearchedRideEntries[rideEntryIndex];
|
||||
return _researchedRideEntries[rideEntryIndex];
|
||||
}
|
||||
|
||||
bool track_piece_is_available_for_ride_type(uint8 rideType, sint32 trackType)
|
||||
|
@ -696,14 +694,14 @@ bool track_piece_is_available_for_ride_type(uint8 rideType, sint32 trackType)
|
|||
return RideTypePossibleTrackConfigurations[rideType] & (1ULL << trackType);
|
||||
}
|
||||
|
||||
static void ride_type_set_invented(sint32 rideType)
|
||||
void ride_type_set_invented(sint32 rideType)
|
||||
{
|
||||
gResearchedRideTypes[rideType] = true;
|
||||
_researchedRideTypes[rideType] = true;
|
||||
}
|
||||
|
||||
static void ride_entry_set_invented(sint32 rideEntryIndex)
|
||||
void ride_entry_set_invented(sint32 rideEntryIndex)
|
||||
{
|
||||
gResearchedRideEntries[rideEntryIndex] = true;
|
||||
_researchedRideEntries[rideEntryIndex] = true;
|
||||
}
|
||||
|
||||
bool scenery_is_invented(uint16 sceneryItem)
|
||||
|
@ -714,14 +712,14 @@ bool scenery_is_invented(uint16 sceneryItem)
|
|||
return invented;
|
||||
}
|
||||
|
||||
static void scenery_set_invented(uint16 sceneryItem)
|
||||
void scenery_set_invented(uint16 sceneryItem)
|
||||
{
|
||||
sint32 quadIndex = sceneryItem >> 5;
|
||||
sint32 bitIndex = sceneryItem & 0x1F;
|
||||
gResearchedSceneryItems[quadIndex] |= (uint32) 1 << bitIndex;
|
||||
}
|
||||
|
||||
static void scenery_set_not_invented(uint16 sceneryItem)
|
||||
void scenery_set_not_invented(uint16 sceneryItem)
|
||||
{
|
||||
sint32 quadIndex = sceneryItem >> 5;
|
||||
sint32 bitIndex = sceneryItem & 0x1F;
|
||||
|
@ -762,16 +760,24 @@ void set_all_scenery_items_invented()
|
|||
}
|
||||
}
|
||||
|
||||
void set_every_ride_type_invented()
|
||||
{
|
||||
Memory::Set(_researchedRideTypes, true, sizeof(_researchedRideTypes));
|
||||
}
|
||||
|
||||
void set_every_ride_type_not_invented()
|
||||
{
|
||||
Memory::Set(_researchedRideTypes, false, sizeof(_researchedRideTypes));
|
||||
}
|
||||
|
||||
void set_every_ride_entry_invented()
|
||||
{
|
||||
Memory::Set(gResearchedRideTypes, true, sizeof(gResearchedRideTypes));
|
||||
Memory::Set(gResearchedRideEntries, true, sizeof(gResearchedRideEntries));
|
||||
Memory::Set(_researchedRideEntries, true, sizeof(_researchedRideEntries));
|
||||
}
|
||||
|
||||
void set_every_ride_entry_not_invented()
|
||||
{
|
||||
Memory::Set(gResearchedRideTypes, false, sizeof(gResearchedRideTypes));
|
||||
Memory::Set(gResearchedRideEntries, false, sizeof(gResearchedRideEntries));
|
||||
Memory::Set(_researchedRideEntries, false, sizeof(_researchedRideEntries));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -110,8 +110,6 @@ extern rct_research_item gResearchNextItem;
|
|||
|
||||
extern rct_research_item gResearchItems[MAX_RESEARCH_ITEMS];
|
||||
extern uint8 gResearchUncompletedCategories;
|
||||
extern bool gResearchedRideTypes[RIDE_TYPE_COUNT];
|
||||
extern bool gResearchedRideEntries[MAX_RIDE_OBJECTS];
|
||||
extern uint32 gResearchedSceneryItems[MAX_RESEARCHED_SCENERY_ITEMS];
|
||||
extern bool gSilentResearch;
|
||||
|
||||
|
@ -132,12 +130,18 @@ void research_remove(rct_research_item * researchItem);
|
|||
void research_insert_ride_entry(uint8 entryIndex, bool researched);
|
||||
void research_insert_scenery_group_entry(uint8 entryIndex, bool researched);
|
||||
|
||||
void ride_type_set_invented(sint32 rideType);
|
||||
void ride_entry_set_invented(sint32 rideEntryIndex);
|
||||
void scenery_set_invented(uint16 sceneryItem);
|
||||
void scenery_set_not_invented(uint16 sceneryItem);
|
||||
bool ride_type_is_invented(sint32 rideType);
|
||||
bool ride_entry_is_invented(sint32 rideEntryIndex);
|
||||
bool track_piece_is_available_for_ride_type(uint8 rideType, sint32 trackType);
|
||||
bool scenery_group_is_invented(sint32 sgIndex);
|
||||
bool scenery_is_invented(uint16 sceneryItem);
|
||||
void set_all_scenery_items_invented();
|
||||
void set_every_ride_type_invented();
|
||||
void set_every_ride_type_not_invented();
|
||||
void set_every_ride_entry_invented();
|
||||
void set_every_ride_entry_not_invented();
|
||||
rct_string_id research_item_get_name(rct_research_item * researchItem);
|
||||
|
|
|
@ -700,7 +700,7 @@ public:
|
|||
|
||||
void ImportResearchedRideTypes()
|
||||
{
|
||||
Memory::Set(gResearchedRideTypes, false, sizeof(gResearchedRideTypes));
|
||||
set_every_ride_type_not_invented();
|
||||
|
||||
for (sint32 rideType = 0; rideType < RIDE_TYPE_COUNT; rideType++)
|
||||
{
|
||||
|
@ -708,13 +708,13 @@ public:
|
|||
sint32 bitIndex = rideType & 0x1F;
|
||||
bool invented = (_s6.researched_ride_types[quadIndex] & ((uint32) 1 << bitIndex));
|
||||
|
||||
gResearchedRideTypes[rideType] = invented;
|
||||
ride_type_set_invented(rideType);
|
||||
}
|
||||
}
|
||||
|
||||
void ImportResearchedRideEntries()
|
||||
{
|
||||
Memory::Set(gResearchedRideEntries, false, sizeof(gResearchedRideEntries));
|
||||
set_every_ride_entry_not_invented();
|
||||
|
||||
for (sint32 rideEntryIndex = 0; rideEntryIndex < MAX_RIDE_OBJECTS; rideEntryIndex++)
|
||||
{
|
||||
|
@ -722,7 +722,7 @@ public:
|
|||
sint32 bitIndex = rideEntryIndex & 0x1F;
|
||||
bool invented = (_s6.researched_ride_entries[quadIndex] & ((uint32) 1 << bitIndex));
|
||||
|
||||
gResearchedRideEntries[rideEntryIndex] = invented;
|
||||
ride_entry_set_invented(rideEntryIndex);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ void park_init()
|
|||
research_reset_items();
|
||||
finance_init();
|
||||
|
||||
Memory::Set(gResearchedRideTypes, false, sizeof(gResearchedRideTypes));
|
||||
set_every_ride_type_not_invented();
|
||||
|
||||
set_all_scenery_items_invented();
|
||||
|
||||
|
|
Loading…
Reference in New Issue