mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-15 15:19:52 +00:00
Codechange: make LinkType a scoped enum (#15683)
This commit is contained in:
+6
-6
@@ -34,12 +34,12 @@ INSTANTIATE_POOL_METHODS(LeagueTable)
|
||||
bool IsValidLink(Link link)
|
||||
{
|
||||
switch (link.type) {
|
||||
case LT_NONE: return (link.target == 0);
|
||||
case LT_TILE: return IsValidTile(link.target);
|
||||
case LT_INDUSTRY: return Industry::IsValidID(link.target);
|
||||
case LT_TOWN: return Town::IsValidID(link.target);
|
||||
case LT_COMPANY: return Company::IsValidID(link.target);
|
||||
case LT_STORY_PAGE: return StoryPage::IsValidID(link.target);
|
||||
case LinkType::None: return (link.target == 0);
|
||||
case LinkType::Tile: return IsValidTile(link.target);
|
||||
case LinkType::Industry: return Industry::IsValidID(link.target);
|
||||
case LinkType::Town: return Town::IsValidID(link.target);
|
||||
case LinkType::Company: return Company::IsValidID(link.target);
|
||||
case LinkType::StoryPage: return StoryPage::IsValidID(link.target);
|
||||
default: return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
+7
-6
@@ -208,28 +208,29 @@ static void HandleLinkClick(Link link)
|
||||
{
|
||||
TileIndex xy;
|
||||
switch (link.type) {
|
||||
case LT_NONE: return;
|
||||
case LinkType::None:
|
||||
return;
|
||||
|
||||
case LT_TILE:
|
||||
case LinkType::Tile:
|
||||
if (!IsValidTile(link.target)) return;
|
||||
xy = TileIndex{link.target};
|
||||
break;
|
||||
|
||||
case LT_INDUSTRY:
|
||||
case LinkType::Industry:
|
||||
if (!Industry::IsValidID(link.target)) return;
|
||||
xy = Industry::Get(link.target)->location.tile;
|
||||
break;
|
||||
|
||||
case LT_TOWN:
|
||||
case LinkType::Town:
|
||||
if (!Town::IsValidID(link.target)) return;
|
||||
xy = Town::Get(link.target)->xy;
|
||||
break;
|
||||
|
||||
case LT_COMPANY:
|
||||
case LinkType::Company:
|
||||
ShowCompany((CompanyID)link.target);
|
||||
return;
|
||||
|
||||
case LT_STORY_PAGE: {
|
||||
case LinkType::StoryPage: {
|
||||
if (!StoryPage::IsValidID(link.target)) return;
|
||||
CompanyID story_company = StoryPage::Get(link.target)->company;
|
||||
ShowStoryBook(story_company, static_cast<StoryPageID>(link.target));
|
||||
|
||||
+8
-8
@@ -13,19 +13,19 @@
|
||||
#include "core/pool_type.hpp"
|
||||
|
||||
/** Types of the possible link targets. */
|
||||
enum LinkType : uint8_t {
|
||||
LT_NONE = 0, ///< No link
|
||||
LT_TILE = 1, ///< Link a tile
|
||||
LT_INDUSTRY = 2, ///< Link an industry
|
||||
LT_TOWN = 3, ///< Link a town
|
||||
LT_COMPANY = 4, ///< Link a company
|
||||
LT_STORY_PAGE = 5, ///< Link a story page
|
||||
enum class LinkType : uint8_t {
|
||||
None = 0, ///< No link
|
||||
Tile = 1, ///< Link a tile
|
||||
Industry = 2, ///< Link an industry
|
||||
Town = 3, ///< Link a town
|
||||
Company = 4, ///< Link a company
|
||||
StoryPage = 5, ///< Link a story page
|
||||
};
|
||||
|
||||
typedef uint32_t LinkTargetID; ///< Contains either tile, industry ID, town ID, story page ID or company ID
|
||||
|
||||
struct Link {
|
||||
LinkType type = LT_NONE;
|
||||
LinkType type = LinkType::None;
|
||||
LinkTargetID target = 0;
|
||||
|
||||
Link() {}
|
||||
|
||||
@@ -33,12 +33,12 @@ public:
|
||||
* The type of a link.
|
||||
*/
|
||||
enum LinkType : uint8_t {
|
||||
LINK_NONE = ::LT_NONE, ///< No link
|
||||
LINK_TILE = ::LT_TILE, ///< Link a tile
|
||||
LINK_INDUSTRY = ::LT_INDUSTRY, ///< Link an industry
|
||||
LINK_TOWN = ::LT_TOWN, ///< Link a town
|
||||
LINK_COMPANY = ::LT_COMPANY, ///< Link a company
|
||||
LINK_STORY_PAGE = ::LT_STORY_PAGE, ///< Link a story page
|
||||
LINK_NONE = to_underlying(::LinkType::None), ///< No link
|
||||
LINK_TILE = to_underlying(::LinkType::Tile), ///< Link a tile
|
||||
LINK_INDUSTRY = to_underlying(::LinkType::Industry), ///< Link an industry
|
||||
LINK_TOWN = to_underlying(::LinkType::Town), ///< Link a town
|
||||
LINK_COMPANY = to_underlying(::LinkType::Company), ///< Link a company
|
||||
LINK_STORY_PAGE = to_underlying(::LinkType::StoryPage), ///< Link a story page
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user