Codechange: make LinkType a scoped enum (#15683)

This commit is contained in:
Peter Nelson
2026-06-06 21:54:37 +01:00
committed by GitHub
parent 552ad919a8
commit fa02d7aecb
4 changed files with 27 additions and 26 deletions
+6 -6
View File
@@ -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
View File
@@ -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
View File
@@ -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() {}
+6 -6
View File
@@ -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
};
/**