mirror of https://github.com/OpenRCT2/OpenRCT2.git
Clean up ride groups and related functions
This commit is contained in:
parent
bf69b2e682
commit
ed05d45072
|
@ -395,7 +395,6 @@
|
|||
F76C86AD1EC4E88400FA49E2 /* PlatformEnvironment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84641EC4E7CC00FA49E2 /* PlatformEnvironment.cpp */; };
|
||||
F76C86AF1EC4E88400FA49E2 /* S4Importer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84671EC4E7CC00FA49E2 /* S4Importer.cpp */; };
|
||||
F76C86B01EC4E88400FA49E2 /* Tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84681EC4E7CC00FA49E2 /* Tables.cpp */; };
|
||||
F76C86B21EC4E88400FA49E2 /* rct1.c in Sources */ = {isa = PBXBuildFile; fileRef = F76C846A1EC4E7CC00FA49E2 /* rct1.c */; };
|
||||
F76C86B41EC4E88400FA49E2 /* SawyerChunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C846D1EC4E7CC00FA49E2 /* SawyerChunk.cpp */; };
|
||||
F76C86B61EC4E88400FA49E2 /* SawyerChunkReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C846F1EC4E7CC00FA49E2 /* SawyerChunkReader.cpp */; };
|
||||
F76C86B81EC4E88400FA49E2 /* SawyerChunkWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F76C84711EC4E7CC00FA49E2 /* SawyerChunkWriter.cpp */; };
|
||||
|
@ -611,7 +610,6 @@
|
|||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
4C31B2E61FB7352900F6A38A /* Scenery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scenery.h; sourceTree = "<group>"; };
|
||||
4C31B2E21FB6115600F6A38A /* MapGen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MapGen.cpp; sourceTree = "<group>"; };
|
||||
4C31B2E31FB6115600F6A38A /* MapGen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapGen.h; sourceTree = "<group>"; };
|
||||
4C31B2E51FB6116100F6A38A /* Location.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Location.h; sourceTree = "<group>"; };
|
||||
|
@ -1289,7 +1287,6 @@
|
|||
F76C84671EC4E7CC00FA49E2 /* S4Importer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = S4Importer.cpp; sourceTree = "<group>"; };
|
||||
F76C84681EC4E7CC00FA49E2 /* Tables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Tables.cpp; sourceTree = "<group>"; };
|
||||
F76C84691EC4E7CC00FA49E2 /* Tables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tables.h; sourceTree = "<group>"; };
|
||||
F76C846A1EC4E7CC00FA49E2 /* rct1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = rct1.c; sourceTree = "<group>"; };
|
||||
F76C846B1EC4E7CC00FA49E2 /* rct1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rct1.h; sourceTree = "<group>"; };
|
||||
F76C846D1EC4E7CC00FA49E2 /* SawyerChunk.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SawyerChunk.cpp; sourceTree = "<group>"; };
|
||||
F76C846E1EC4E7CC00FA49E2 /* SawyerChunk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SawyerChunk.h; sourceTree = "<group>"; };
|
||||
|
@ -1905,7 +1902,6 @@
|
|||
F76C84521EC4E7CC00FA49E2 /* ParkImporter.h */,
|
||||
F76C84641EC4E7CC00FA49E2 /* PlatformEnvironment.cpp */,
|
||||
F76C84651EC4E7CC00FA49E2 /* PlatformEnvironment.h */,
|
||||
F76C846A1EC4E7CC00FA49E2 /* rct1.c */,
|
||||
F76C846B1EC4E7CC00FA49E2 /* rct1.h */,
|
||||
F76C84751EC4E7CC00FA49E2 /* rct12.h */,
|
||||
F76C84811EC4E7CC00FA49E2 /* rct2.h */,
|
||||
|
@ -3469,7 +3465,6 @@
|
|||
F76C86AD1EC4E88400FA49E2 /* PlatformEnvironment.cpp in Sources */,
|
||||
F76C86AF1EC4E88400FA49E2 /* S4Importer.cpp in Sources */,
|
||||
F76C86B01EC4E88400FA49E2 /* Tables.cpp in Sources */,
|
||||
F76C86B21EC4E88400FA49E2 /* rct1.c in Sources */,
|
||||
F76C86B41EC4E88400FA49E2 /* SawyerChunk.cpp in Sources */,
|
||||
F76C86B61EC4E88400FA49E2 /* SawyerChunkReader.cpp in Sources */,
|
||||
F76C86B81EC4E88400FA49E2 /* SawyerChunkWriter.cpp in Sources */,
|
||||
|
|
|
@ -1,137 +0,0 @@
|
|||
#pragma region Copyright (c) 2014-2017 OpenRCT2 Developers
|
||||
/*****************************************************************************
|
||||
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
|
||||
*
|
||||
* OpenRCT2 is the work of many authors, a full list can be found in contributors.md
|
||||
* For more information, visit https://github.com/OpenRCT2/OpenRCT2
|
||||
*
|
||||
* OpenRCT2 is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* A full copy of the GNU General Public License can be found in licence.txt
|
||||
*****************************************************************************/
|
||||
#pragma endregion
|
||||
|
||||
#include "config/Config.h"
|
||||
#include "game.h"
|
||||
#include "localisation/string_ids.h"
|
||||
#include "rct1.h"
|
||||
#include "util/sawyercoding.h"
|
||||
#include "util/util.h"
|
||||
|
||||
bool rideTypeShouldLoseSeparateFlag(const rct_ride_entry *rideEntry)
|
||||
{
|
||||
if (!gConfigInterface.select_by_track_type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool remove_flag = true;
|
||||
for (sint32 j = 0; j < MAX_RIDE_TYPES_PER_RIDE_ENTRY; j++) {
|
||||
if (rideEntry->ride_type[j] == RIDE_TYPE_NULL) {
|
||||
continue;
|
||||
}
|
||||
if (ride_type_has_flag(rideEntry->ride_type[j], RIDE_TYPE_FLAG_FLAT_RIDE)) {
|
||||
remove_flag = false;
|
||||
}
|
||||
if (rideEntry->ride_type[j] == RIDE_TYPE_MAZE || rideEntry->ride_type[j] == RIDE_TYPE_MINI_GOLF) {
|
||||
remove_flag = false;
|
||||
}
|
||||
}
|
||||
return remove_flag;
|
||||
}
|
||||
|
||||
const uint8 gRideCategories[] = {
|
||||
2, // Spiral Roller coaster
|
||||
2, // Stand Up Coaster
|
||||
2, // Suspended Swinging
|
||||
2, // Inverted
|
||||
2, // Steel Mini Coaster
|
||||
0, // Mini Railroad
|
||||
0, // Monorail
|
||||
2, // Mini Suspended Coaster
|
||||
4, // Boat ride
|
||||
2, // Wooden Wild Mine/Mouse
|
||||
2, // Steeplechase/Motorbike/Soap Box Derby
|
||||
1, // Car Ride
|
||||
3, // Launched Freefall
|
||||
2, // Bobsleigh Coaster
|
||||
1, // Observation Tower
|
||||
2, // Looping Roller Coaster
|
||||
4, // Dinghy Slide
|
||||
2, // Mine Train Coaster
|
||||
0, // Chairlift
|
||||
2, // Corkscrew Roller Coaster
|
||||
1, // Maze
|
||||
1, // Spiral Slide
|
||||
3, // Go Karts
|
||||
4, // Log Flume
|
||||
4, // River Rapids
|
||||
1, // Dodgems
|
||||
3, // Pirate Ship
|
||||
3, // Swinging Inverter Ship
|
||||
5, // Food Stall
|
||||
255, // (none)
|
||||
5, // Drink Stall
|
||||
255, // (none)
|
||||
5, // Shop (all types)
|
||||
1, // Merry Go Round
|
||||
5, // Balloon Stall (maybe)
|
||||
5, // Information Kiosk
|
||||
5, // Bathroom
|
||||
1, // Ferris Wheel
|
||||
3, // Motion Simulator
|
||||
3, // 3D Cinema
|
||||
3, // Top Spin
|
||||
1, // Space Rings
|
||||
2, // Reverse Freefall Coaster
|
||||
0, // Elevator
|
||||
2, // Vertical Drop Roller Coaster
|
||||
5, // ATM
|
||||
3, // Twist
|
||||
1, // Haunted House
|
||||
5, // First Aid
|
||||
1, // Circus Show
|
||||
1, // Ghost Train
|
||||
2, // Twister Roller Coaster
|
||||
2, // Wooden Roller Coaster
|
||||
2, // Side-Friction Roller Coaster
|
||||
2, // Wild Mouse
|
||||
2, // Multi Dimension Coaster
|
||||
255, // (none)
|
||||
2, // Flying Roller Coaster
|
||||
255, // (none)
|
||||
2, // Virginia Reel
|
||||
4, // Splash Boats
|
||||
1, // Mini Helicopters
|
||||
2, // Lay-down Roller Coaster
|
||||
0, // Suspended Monorail
|
||||
255, // (none)
|
||||
2, // Reverser Roller Coaster
|
||||
2, // Heartline Twister Roller Coaster
|
||||
1, // Mini Golf
|
||||
2, // Giga Coaster
|
||||
3, // Roto-Drop
|
||||
1, // Flying Saucers
|
||||
1, // Crooked House
|
||||
1, // Monorail Cycles
|
||||
2, // Compact Inverted Coaster
|
||||
2, // Water Coaster
|
||||
2, // Air Powered Vertical Coaster
|
||||
2, // Inverted Hairpin Coaster
|
||||
3, // Magic Carpet
|
||||
4, // Submarine Ride
|
||||
4, // River Rafts
|
||||
255, // (none)
|
||||
3, // Enterprise
|
||||
255, // (none)
|
||||
255, // (none)
|
||||
255, // (none)
|
||||
255, // (none)
|
||||
2, // Inverted Impulse Coaster
|
||||
2, // Mini Roller Coaster
|
||||
2, // Mine Ride
|
||||
255, // 59 Unknown Ride
|
||||
2 // LIM Launched Roller Coaster
|
||||
};
|
|
@ -1224,10 +1224,6 @@ enum {
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern const uint8 gRideCategories[RIDE_TYPE_COUNT];
|
||||
|
||||
bool rideTypeShouldLoseSeparateFlag(const rct_ride_entry *rideEntry);
|
||||
|
||||
ParkLoadResult * load_from_sv4(const char *path);
|
||||
ParkLoadResult * load_from_sc4(const char *path);
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ static const RideGroup junior_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_
|
|||
static const RideGroup car_ride_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_car_ride, ride_group_monster_trucks };
|
||||
static const RideGroup twister_rc_groups[MAX_RIDE_GROUPS_PER_RIDE_TYPE] = { ride_group_steel_twister_rc, ride_group_hyper_twister };
|
||||
|
||||
const RideGroup * RideGroupManager::GetRideGroup(uint8 rideType, rct_ride_entry * rideEntry)
|
||||
const RideGroup * RideGroupManager::GetRideGroup(const uint8 rideType, const rct_ride_entry * rideEntry)
|
||||
{
|
||||
switch (rideType) {
|
||||
case RIDE_TYPE_CORKSCREW_ROLLER_COASTER:
|
||||
|
@ -116,7 +116,7 @@ const RideGroup * RideGroupManager::GetRideGroup(uint8 rideType, rct_ride_entry
|
|||
}
|
||||
}
|
||||
|
||||
bool RideGroupManager::RideTypeHasRideGroups(uint8 rideType)
|
||||
bool RideGroupManager::RideTypeHasRideGroups(const uint8 rideType)
|
||||
{
|
||||
if (!gConfigInterface.select_by_track_type) {
|
||||
return false;
|
||||
|
@ -134,7 +134,7 @@ bool RideGroupManager::RideTypeHasRideGroups(uint8 rideType)
|
|||
}
|
||||
}
|
||||
|
||||
const RideGroup * RideGroupManager::RideGroupFind(uint8 rideType, uint8 index)
|
||||
const RideGroup * RideGroupManager::RideGroupFind(const uint8 rideType, const uint8 index)
|
||||
{
|
||||
RideGroup * rideGroup;
|
||||
|
||||
|
@ -195,7 +195,7 @@ bool RideGroupManager::RideGroupIsInvented(const RideGroup * rideGroup)
|
|||
return false;
|
||||
}
|
||||
|
||||
const std::vector<const char *> RideGroupManager::GetPreferredRideEntryOrder(uint8 rideType)
|
||||
const std::vector<const char *> RideGroupManager::GetPreferredRideEntryOrder(const uint8 rideType)
|
||||
{
|
||||
static const std::vector<const char *> preferredRideEntryOrder[] =
|
||||
{
|
||||
|
@ -300,7 +300,7 @@ const std::vector<const char *> RideGroupManager::GetPreferredRideEntryOrder(uin
|
|||
* which picture is shown on the new ride tab and which train type is selected
|
||||
* by default.
|
||||
*/
|
||||
sint32 RideGroupManager::VehiclePreferenceCompare(uint8 rideType, const char * a, const char * b)
|
||||
sint32 RideGroupManager::VehiclePreferenceCompare(const uint8 rideType, const char * a, const char * b)
|
||||
{
|
||||
std::vector<const char *> rideEntryOrder = RideGroupManager::GetPreferredRideEntryOrder(rideType);
|
||||
for (const char * object : rideEntryOrder)
|
||||
|
@ -317,15 +317,140 @@ sint32 RideGroupManager::VehiclePreferenceCompare(uint8 rideType, const char * a
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool RideGroupManager::RideTypeShouldLoseSeparateFlag(const rct_ride_entry * rideEntry)
|
||||
{
|
||||
if (!gConfigInterface.select_by_track_type)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool remove_flag = true;
|
||||
for (size_t j = 0; j < MAX_RIDE_TYPES_PER_RIDE_ENTRY; j++)
|
||||
{
|
||||
if (rideEntry->ride_type[j] == RIDE_TYPE_NULL)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (ride_type_has_flag(rideEntry->ride_type[j], RIDE_TYPE_FLAG_FLAT_RIDE))
|
||||
{
|
||||
remove_flag = false;
|
||||
}
|
||||
if (rideEntry->ride_type[j] == RIDE_TYPE_MAZE || rideEntry->ride_type[j] == RIDE_TYPE_MINI_GOLF)
|
||||
{
|
||||
remove_flag = false;
|
||||
}
|
||||
}
|
||||
return remove_flag;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
const RideGroup * get_ride_group(uint8 rideType, rct_ride_entry * rideEntry)
|
||||
const RideGroup * get_ride_group(uint8 rideType, const rct_ride_entry * rideEntry)
|
||||
{
|
||||
return RideGroupManager::GetRideGroup(rideType, rideEntry);
|
||||
}
|
||||
|
||||
bool ride_type_has_ride_groups(uint8 rideType)
|
||||
bool ride_type_has_ride_groups(const uint8 rideType)
|
||||
{
|
||||
return RideGroupManager::RideTypeHasRideGroups(rideType);
|
||||
}
|
||||
|
||||
bool rideTypeShouldLoseSeparateFlag(const rct_ride_entry * rideEntry)
|
||||
{
|
||||
return RideGroupManager::RideTypeShouldLoseSeparateFlag(rideEntry);
|
||||
}
|
||||
}
|
||||
|
||||
const uint8 gRideCategories[] = {
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Spiral Roller coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Stand Up Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Suspended Swinging
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Inverted
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Steel Mini Coaster
|
||||
RIDE_CATEGORY_TRANSPORT, // Mini Railroad
|
||||
RIDE_CATEGORY_TRANSPORT, // Monorail
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Mini Suspended Coaster
|
||||
RIDE_CATEGORY_WATER, // Boat ride
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Wooden Wild Mine/Mouse
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Steeplechase/Motorbike/Soap Box Derby
|
||||
RIDE_CATEGORY_GENTLE, // Car Ride
|
||||
RIDE_CATEGORY_THRILL, // Launched Freefall
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Bobsleigh Coaster
|
||||
RIDE_CATEGORY_GENTLE, // Observation Tower
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Looping Roller Coaster
|
||||
RIDE_CATEGORY_WATER, // Dinghy Slide
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Mine Train Coaster
|
||||
RIDE_CATEGORY_TRANSPORT, // Chairlift
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Corkscrew Roller Coaster
|
||||
RIDE_CATEGORY_GENTLE, // Maze
|
||||
RIDE_CATEGORY_GENTLE, // Spiral Slide
|
||||
RIDE_CATEGORY_THRILL, // Go Karts
|
||||
RIDE_CATEGORY_WATER, // Log Flume
|
||||
RIDE_CATEGORY_WATER, // River Rapids
|
||||
RIDE_CATEGORY_GENTLE, // Dodgems
|
||||
RIDE_CATEGORY_THRILL, // Pirate Ship
|
||||
RIDE_CATEGORY_THRILL, // Swinging Inverter Ship
|
||||
RIDE_CATEGORY_SHOP, // Food Stall
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_SHOP, // Drink Stall
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_SHOP, // Shop (all types)
|
||||
RIDE_CATEGORY_GENTLE, // Merry Go Round
|
||||
255, // Unknown
|
||||
RIDE_CATEGORY_SHOP, // Information Kiosk
|
||||
RIDE_CATEGORY_SHOP, // Bathroom
|
||||
RIDE_CATEGORY_GENTLE, // Ferris Wheel
|
||||
RIDE_CATEGORY_THRILL, // Motion Simulator
|
||||
RIDE_CATEGORY_THRILL, // 3D Cinema
|
||||
RIDE_CATEGORY_THRILL, // Top Spin
|
||||
RIDE_CATEGORY_GENTLE, // Space Rings
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Reverse Freefall Coaster
|
||||
RIDE_CATEGORY_TRANSPORT, // Lift
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Vertical Drop Roller Coaster
|
||||
RIDE_CATEGORY_SHOP, // ATM
|
||||
RIDE_CATEGORY_THRILL, // Twist
|
||||
RIDE_CATEGORY_GENTLE, // Haunted House
|
||||
RIDE_CATEGORY_SHOP, // First Aid
|
||||
RIDE_CATEGORY_GENTLE, // Circus Show
|
||||
RIDE_CATEGORY_GENTLE, // Ghost Train
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Twister Roller Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Wooden Roller Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Side-Friction Roller Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Wild Mouse
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Multi Dimension Coaster
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Flying Roller Coaster
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Virginia Reel
|
||||
RIDE_CATEGORY_WATER, // Splash Boats
|
||||
RIDE_CATEGORY_GENTLE, // Mini Helicopters
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Lay-down Roller Coaster
|
||||
RIDE_CATEGORY_TRANSPORT, // Suspended Monorail
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Reverser Roller Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Heartline Twister Roller Coaster
|
||||
RIDE_CATEGORY_GENTLE, // Mini Golf
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Giga Coaster
|
||||
RIDE_CATEGORY_THRILL, // Roto-Drop
|
||||
RIDE_CATEGORY_GENTLE, // Flying Saucers
|
||||
RIDE_CATEGORY_GENTLE, // Crooked House
|
||||
RIDE_CATEGORY_GENTLE, // Monorail Cycles
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Compact Inverted Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Water Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Air Powered Vertical Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Inverted Hairpin Coaster
|
||||
RIDE_CATEGORY_THRILL, // Magic Carpet
|
||||
RIDE_CATEGORY_WATER, // Submarine Ride
|
||||
RIDE_CATEGORY_WATER, // River Rafts
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_THRILL, // Enterprise
|
||||
255, // (none)
|
||||
255, // (none)
|
||||
255, // (none)
|
||||
255, // (none)
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Inverted Impulse Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Mini Roller Coaster
|
||||
RIDE_CATEGORY_ROLLERCOASTER, // Mine Ride
|
||||
255, // 59 Unknown Ride
|
||||
RIDE_CATEGORY_ROLLERCOASTER // LIM Launched Roller Coaster
|
||||
};
|
||||
|
|
|
@ -30,6 +30,8 @@ extern "C"
|
|||
|
||||
#define MAX_RIDE_GROUPS_PER_RIDE_TYPE 2
|
||||
|
||||
extern const uint8 gRideCategories[RIDE_TYPE_COUNT];
|
||||
|
||||
typedef struct RideGroup
|
||||
{
|
||||
uint8 RideType;
|
||||
|
@ -42,22 +44,24 @@ typedef struct RideGroup
|
|||
class RideGroupManager
|
||||
{
|
||||
public:
|
||||
static const RideGroup * GetRideGroup(uint8 trackType, rct_ride_entry * rideEntry);
|
||||
static bool RideTypeHasRideGroups(uint8 trackType);
|
||||
static const RideGroup * RideGroupFind(uint8 rideType, uint8 index);
|
||||
static const RideGroup * GetRideGroup(const uint8 trackType, const rct_ride_entry * rideEntry);
|
||||
static bool RideTypeHasRideGroups(const uint8 trackType);
|
||||
static const RideGroup * RideGroupFind(const uint8 rideType, const uint8 index);
|
||||
static bool RideGroupsAreEqual(const RideGroup * a, const RideGroup * b);
|
||||
static bool RideGroupIsInvented(const RideGroup * rideGroup);
|
||||
|
||||
static const std::vector<const char *> GetPreferredRideEntryOrder(uint8 rideType);
|
||||
static sint32 VehiclePreferenceCompare(uint8 rideType, const char * a, const char * b);
|
||||
static const std::vector<const char *> GetPreferredRideEntryOrder(const uint8 rideType);
|
||||
static sint32 VehiclePreferenceCompare(const uint8 rideType, const char * a, const char * b);
|
||||
static bool RideTypeShouldLoseSeparateFlag(const rct_ride_entry * rideEntry);
|
||||
};
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
const RideGroup * get_ride_group(uint8 rideType, rct_ride_entry * rideEntry);
|
||||
bool ride_type_has_ride_groups(uint8 rideType);
|
||||
const RideGroup * get_ride_group(const uint8 rideType, const rct_ride_entry * rideEntry);
|
||||
bool ride_type_has_ride_groups(const uint8 rideType);
|
||||
|
||||
bool rideTypeShouldLoseSeparateFlag(const rct_ride_entry *rideEntry);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -7038,7 +7038,7 @@ uint8 ride_entry_get_vehicle_at_position(sint32 rideEntryIndex,sint32 numCarsPer
|
|||
}
|
||||
|
||||
// Finds track pieces that a given ride entry has sprites for
|
||||
uint64 ride_entry_get_supported_track_pieces(rct_ride_entry* rideEntry)
|
||||
uint64 ride_entry_get_supported_track_pieces(const rct_ride_entry * rideEntry)
|
||||
{
|
||||
uint64 supportedPieces = 0xFFFFFFFFFFFFFFFFULL;
|
||||
uint16 trackPieceRequiredSprites[55] = {
|
||||
|
|
|
@ -1206,7 +1206,7 @@ void ride_fix_breakdown(sint32 rideIndex, sint32 reliabilityIncreaseFactor);
|
|||
void ride_entry_get_train_layout(sint32 rideEntryIndex, sint32 numCarsPerTrain, uint8 *trainLayout);
|
||||
uint8 ride_entry_get_vehicle_at_position(sint32 rideEntryIndex, sint32 numCarsPerTrain, sint32 position);
|
||||
void ride_update_max_vehicles(sint32 rideIndex);
|
||||
uint64 ride_entry_get_supported_track_pieces(rct_ride_entry* rideEntry);
|
||||
uint64 ride_entry_get_supported_track_pieces(const rct_ride_entry * rideEntry);
|
||||
|
||||
void ride_set_ride_entry(sint32 rideIndex, sint32 rideEntry);
|
||||
void ride_set_num_vehicles(sint32 rideIndex, sint32 numVehicles);
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
#include "../interface/widget.h"
|
||||
#include "../localisation/localisation.h"
|
||||
#include "../object_list.h"
|
||||
#include "../rct1.h"
|
||||
#include "../ride/ride_data.h"
|
||||
#include "../ride/RideGroupManager.h"
|
||||
#include "../sprites.h"
|
||||
#include "../util/util.h"
|
||||
#include "../windows/Intent.h"
|
||||
|
|
Loading…
Reference in New Issue