OpenRCT2/src/openrct2/ride/RideTypes.h

43 lines
1.1 KiB
C
Raw Normal View History

2019-01-12 11:11:55 +01:00
/*****************************************************************************
2020-07-21 15:04:34 +02:00
* Copyright (c) 2014-2020 OpenRCT2 developers
2019-01-12 11:11:55 +01:00
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#pragma once
#include "../object/Object.h"
2019-01-12 11:11:55 +01:00
#include <cstdint>
2020-02-16 22:21:17 +01:00
#include <limits>
2021-08-02 06:24:39 +02:00
#include <type_traits>
2019-01-12 11:11:55 +01:00
2021-08-02 06:24:39 +02:00
enum class ride_id_t : uint16_t;
struct Ride;
2021-08-02 06:24:39 +02:00
constexpr const ride_id_t RIDE_ID_NULL = static_cast<ride_id_t>(std::numeric_limits<std::underlying_type_t<ride_id_t>>::max());
2021-09-19 21:02:24 +02:00
using ride_type_t = uint16_t;
/**
* Couples a ride type and subtype together.
*/
struct RideSelection
{
uint8_t Type;
ObjectEntryIndex EntryIndex;
bool operator==(const RideSelection& other) const
{
return Type == other.Type && EntryIndex == other.EntryIndex;
}
bool operator!=(const RideSelection& other) const
{
return !(*this == other);
}
};