1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-23 04:04:09 +01:00

Codechange: make the StringIndex (within a StringTab) a strong type

This commit is contained in:
Rubidium
2025-01-02 09:03:38 +01:00
committed by rubidium42
parent 2d372fa516
commit fd7a883cbd
10 changed files with 44 additions and 37 deletions

View File

@@ -571,7 +571,7 @@ StringID AddGRFString(uint32_t grfid, GRFStringID stringid, uint8_t langid_to_ad
it->stringid = stringid;
it->def_string = def_string;
}
uint id = static_cast<uint>(it - std::begin(_grf_text));
StringIndexInTab id(it - std::begin(_grf_text));
std::string newtext = TranslateTTDPatchCodes(grfid, langid_to_add, allow_newlines, text_to_add);
AddGRFTextToList(it->textholder, langid_to_add, newtext);
@@ -588,7 +588,7 @@ StringID GetGRFStringID(uint32_t grfid, GRFStringID stringid)
{
auto it = std::ranges::find_if(_grf_text, [&grfid, &stringid](const GRFTextEntry &grf_text) { return grf_text.grfid == grfid && grf_text.stringid == stringid; });
if (it != std::end(_grf_text)) {
uint id = static_cast<uint>(it - std::begin(_grf_text));
StringIndexInTab id(it - std::begin(_grf_text));
return MakeStringID(TEXT_TAB_NEWGRF_START, id);
}
@@ -636,16 +636,16 @@ const char *GetGRFStringFromGRFText(const GRFTextWrapper &text)
/**
* Get a C-string from a stringid set by a newgrf.
*/
const char *GetGRFStringPtr(uint32_t stringid)
const char *GetGRFStringPtr(StringIndexInTab stringid)
{
assert(stringid < _grf_text.size());
assert(_grf_text[stringid].grfid != 0);
assert(stringid.base() < _grf_text.size());
assert(_grf_text[stringid.base()].grfid != 0);
const char *str = GetGRFStringFromGRFText(_grf_text[stringid].textholder);
const char *str = GetGRFStringFromGRFText(_grf_text[stringid.base()].textholder);
if (str != nullptr) return str;
/* Use the default string ID if the fallback string isn't available */
return GetStringPtr(_grf_text[stringid].def_string);
return GetStringPtr(_grf_text[stringid.base()].def_string);
}
/**