Split off RCT12ResearchItem

This commit is contained in:
Gymnasiast 2019-06-16 21:17:02 +02:00
parent 91d02093f9
commit daa00147d5
No known key found for this signature in database
GPG Key ID: DBFFF47AB2CA3EDD
4 changed files with 47 additions and 11 deletions

View File

@ -1006,13 +1006,3 @@ bool rct_research_item::IsInventedEndMarker() const
{
return rawValue == RESEARCHED_ITEMS_SEPARATOR;
}
bool rct_research_item::IsUninventedEndMarker() const
{
return rawValue == RESEARCHED_ITEMS_END;
}
bool rct_research_item::IsRandomEndMarker() const
{
return rawValue == RESEARCHED_ITEMS_END_2;
}

View File

@ -915,3 +915,18 @@ void RCT12BannerElement::SetAllowedEdges(uint8_t newEdges)
flags &= ~0b00001111;
flags |= (newEdges & 0b00001111);
}
bool RCT12ResearchItem::IsInventedEndMarker() const
{
return rawValue == RCT12_RESEARCHED_ITEMS_SEPARATOR;
}
bool RCT12ResearchItem::IsUninventedEndMarker() const
{
return rawValue == RCT12_RESEARCHED_ITEMS_END;
}
bool RCT12ResearchItem::IsRandomEndMarker() const
{
return rawValue == RCT12_RESEARCHED_ITEMS_END_2;
}

View File

@ -49,6 +49,7 @@ constexpr uint16_t const RCT12_MAX_INVERSIONS = 31;
constexpr uint16_t const RCT12_MAX_GOLF_HOLES = 31;
constexpr uint16_t const RCT12_MAX_HELICES = 31;
<<<<<<< HEAD
enum class RCT12TrackDesignVersion : uint8_t
{
TD4,
@ -56,6 +57,14 @@ enum class RCT12TrackDesignVersion : uint8_t
TD6,
unknown
};
=======
// Everything before this point has been researched
#define RCT12_RESEARCHED_ITEMS_SEPARATOR (-1)
// Everything before this point and after separator still requires research
#define RCT12_RESEARCHED_ITEMS_END (-2)
// Extra end of list entry. Leftover from RCT1.
#define RCT12_RESEARCHED_ITEMS_END_2 (-3)
>>>>>>> 04e9e626d... Split off RCT12ResearchItem
#pragma pack(push, 1)
@ -658,6 +667,28 @@ struct RCT12MapAnimation
};
assert_struct_size(RCT12MapAnimation, 6);
struct RCT12ResearchItem
{
// Bit 16 (0: scenery entry, 1: ride entry)
union
{
int32_t rawValue;
struct
{
uint8_t entryIndex;
uint8_t baseRideType;
uint8_t type; // 0: scenery entry, 1: ride entry
uint8_t flags;
};
};
uint8_t category;
bool IsInventedEndMarker() const;
bool IsRandomEndMarker() const;
bool IsUninventedEndMarker() const;
};
assert_struct_size(RCT12ResearchItem, 5);
#pragma pack(pop)
bool is_user_string_id(rct_string_id stringId);

View File

@ -238,7 +238,7 @@ struct rct_s6_data
uint8_t last_entrance_style;
uint8_t rct1_water_colour;
uint8_t pad_01358842[2];
rct_research_item research_items[MAX_RESEARCH_ITEMS];
RCT12ResearchItem research_items[MAX_RESEARCH_ITEMS];
uint16_t map_base_z;
char scenario_name[64];
char scenario_description[256];