Add road/tram type properties to set road vehicle collision mode

This commit is contained in:
Jonathan G Rennison
2023-02-19 14:29:52 +00:00
parent 39d38ecf19
commit 3497d0dcdb
11 changed files with 108 additions and 4 deletions

View File

@@ -62,6 +62,14 @@ enum RoadTypeExtraFlags {
};
DECLARE_ENUM_AS_BIT_SET(RoadTypeExtraFlags)
enum RoadTypeCollisionMode : uint8 {
RTCM_NORMAL = 0,
RTCM_NONE,
RTCM_ELEVATED,
RTCM_END,
};
struct SpriteGroup;
/** Sprite groups for a roadtype. */
@@ -140,6 +148,11 @@ public:
*/
RoadTypeExtraFlags extra_flags;
/**
* Collision mode
*/
RoadTypeCollisionMode collision_mode;
/**
* Cost multiplier for building this road type
*/
@@ -316,10 +329,12 @@ RoadType GetRoadTypeByLabel(RoadTypeLabel label, bool allow_alternate_labels = t
void ResetRoadTypes();
void InitRoadTypes();
void InitRoadTypesCaches();
RoadType AllocateRoadType(RoadTypeLabel label, RoadTramType rtt);
bool HasAnyRoadTypesAvail(CompanyID company, RoadTramType rtt);
extern std::vector<RoadType> _sorted_roadtypes;
extern RoadTypes _roadtypes_hidden_mask;
extern std::array<RoadTypes, RTCM_END> _collision_mode_roadtypes;
#endif /* ROAD_H */