66 static const StringID units_volume[] = {
67 STR_ITEMS, STR_PASSENGERS, STR_TONS, STR_BAGS,
68 STR_LITERS, STR_ITEMS, STR_CRATES, STR_TONS,
69 STR_TONS, STR_TONS, STR_TONS, STR_BAGS,
70 STR_TONS, STR_TONS, STR_TONS, STR_BAGS,
71 STR_TONS, STR_TONS, STR_BAGS, STR_LITERS,
72 STR_TONS, STR_LITERS, STR_TONS, STR_ITEMS,
73 STR_BAGS, STR_LITERS, STR_TONS, STR_ITEMS,
74 STR_TONS, STR_ITEMS, STR_LITERS, STR_ITEMS
78 assert(!
IsInsideMM(str.base(), 0xD000, 0xD7FF));
80#define TEXTID_TO_STRINGID(begin, end, stringid, stringend) \
81 static_assert(stringend.base() - stringid.base() == end - begin); \
82 if (str.base() >= begin && str.base() <= end) return StringID{str.base() + (stringid.base() - begin)}
85 TEXTID_TO_STRINGID(0x000E, 0x002D, STR_CARGO_PLURAL_NOTHING, STR_CARGO_PLURAL_FIZZY_DRINKS);
86 TEXTID_TO_STRINGID(0x002E, 0x004D, STR_CARGO_SINGULAR_NOTHING, STR_CARGO_SINGULAR_FIZZY_DRINK);
87 if (str.base() >= 0x004E && str.base() <= 0x006D)
return units_volume[str.base() - 0x004E];
88 TEXTID_TO_STRINGID(0x006E, 0x008D, STR_QUANTITY_NOTHING, STR_QUANTITY_FIZZY_DRINKS);
89 TEXTID_TO_STRINGID(0x008E, 0x00AD, STR_ABBREV_NOTHING, STR_ABBREV_FIZZY_DRINKS);
90 TEXTID_TO_STRINGID(0x00D1, 0x00E0, STR_COLOUR_DARK_BLUE, STR_COLOUR_WHITE);
95 TEXTID_TO_STRINGID(0x200F, 0x201F, STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_1, STR_TOWN_BUILDING_NAME_OLD_HOUSES_1);
96 TEXTID_TO_STRINGID(0x2036, 0x2041, STR_TOWN_BUILDING_NAME_COTTAGES_1, STR_TOWN_BUILDING_NAME_SHOPPING_MALL_1);
97 TEXTID_TO_STRINGID(0x2059, 0x205C, STR_TOWN_BUILDING_NAME_IGLOO_1, STR_TOWN_BUILDING_NAME_PIGGY_BANK_1);
100 TEXTID_TO_STRINGID(0x4802, 0x4826, STR_INDUSTRY_NAME_COAL_MINE, STR_INDUSTRY_NAME_SUGAR_MINE);
101 TEXTID_TO_STRINGID(0x482D, 0x482E, STR_NEWS_INDUSTRY_CONSTRUCTION, STR_NEWS_INDUSTRY_PLANTED);
102 TEXTID_TO_STRINGID(0x4832, 0x4834, STR_NEWS_INDUSTRY_CLOSURE_GENERAL, STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES);
103 TEXTID_TO_STRINGID(0x4835, 0x4838, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM);
104 TEXTID_TO_STRINGID(0x4839, 0x483A, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL, STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM);
106 switch (str.base()) {
107 case 0x4830:
return STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY;
108 case 0x4831:
return STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED;
109 case 0x483B:
return STR_ERROR_CAN_ONLY_BE_POSITIONED;
111#undef TEXTID_TO_STRINGID
113 if (str.base() == 0)
return STR_EMPTY;
StringID GetGRFStringID(GrfID grfid, GRFStringID stringid)
Returns the index for this stringid associated with its grfID.
Header of Action 04 "universal holder" structure and functions.
Header of Action 04 "universal holder" structure.
StrongType::Typedef< uint32_t, struct GRFStringIDTag, StrongType::Compare, StrongType::Integer > GRFStringID
Type for GRF-internal string IDs.