mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Pass more std::string to StringFilter::AddLine() (#10743)
parent
ee9239d293
commit
ba3de0383a
|
@ -184,10 +184,10 @@ struct Industry : IndustryPool::PoolItem<&_industry_pool> {
|
||||||
memset(&counts, 0, sizeof(counts));
|
memset(&counts, 0, sizeof(counts));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const char *GetCachedName() const
|
inline const std::string &GetCachedName() const
|
||||||
{
|
{
|
||||||
if (this->cached_name.empty()) this->FillCachedName();
|
if (this->cached_name.empty()) this->FillCachedName();
|
||||||
return this->cached_name.c_str();
|
return this->cached_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -467,9 +467,9 @@ class NetworkContentListWindow : public Window, ContentCallback {
|
||||||
static bool CDECL TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
static bool CDECL TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||||
{
|
{
|
||||||
filter.string_filter.ResetState();
|
filter.string_filter.ResetState();
|
||||||
for (auto &tag : (*a)->tags) filter.string_filter.AddLine(tag.c_str());
|
for (auto &tag : (*a)->tags) filter.string_filter.AddLine(tag);
|
||||||
|
|
||||||
filter.string_filter.AddLine((*a)->name.c_str());
|
filter.string_filter.AddLine((*a)->name);
|
||||||
return filter.string_filter.GetState();
|
return filter.string_filter.GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -379,7 +379,7 @@ protected:
|
||||||
assert((*item) != nullptr);
|
assert((*item) != nullptr);
|
||||||
|
|
||||||
sf.ResetState();
|
sf.ResetState();
|
||||||
sf.AddLine((*item)->info.server_name.c_str());
|
sf.AddLine((*item)->info.server_name);
|
||||||
return sf.GetState();
|
return sf.GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,11 +142,9 @@ public:
|
||||||
static bool CDECL TagNameFilter(ObjectClassID const *oc, StringFilter &filter)
|
static bool CDECL TagNameFilter(ObjectClassID const *oc, StringFilter &filter)
|
||||||
{
|
{
|
||||||
ObjectClass *objclass = ObjectClass::Get(*oc);
|
ObjectClass *objclass = ObjectClass::Get(*oc);
|
||||||
char buffer[DRAW_STRING_BUFFER];
|
|
||||||
GetString(buffer, objclass->name, lastof(buffer));
|
|
||||||
|
|
||||||
filter.ResetState();
|
filter.ResetState();
|
||||||
filter.AddLine(buffer);
|
filter.AddLine(GetString(objclass->name));
|
||||||
return filter.GetState();
|
return filter.GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1046,11 +1046,8 @@ public:
|
||||||
/** Filter station classes by class name. */
|
/** Filter station classes by class name. */
|
||||||
static bool CDECL TagNameFilter(StationClassID const * sc, StringFilter &filter)
|
static bool CDECL TagNameFilter(StationClassID const * sc, StringFilter &filter)
|
||||||
{
|
{
|
||||||
char buffer[DRAW_STRING_BUFFER];
|
|
||||||
GetString(buffer, StationClass::Get(*sc)->name, lastof(buffer));
|
|
||||||
|
|
||||||
filter.ResetState();
|
filter.ResetState();
|
||||||
filter.AddLine(buffer);
|
filter.AddLine(GetString(StationClass::Get(*sc)->name));
|
||||||
return filter.GetState();
|
return filter.GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1249,11 +1249,8 @@ public:
|
||||||
/** Filter classes by class name. */
|
/** Filter classes by class name. */
|
||||||
static bool CDECL TagNameFilter(RoadStopClassID const *sc, StringFilter &filter)
|
static bool CDECL TagNameFilter(RoadStopClassID const *sc, StringFilter &filter)
|
||||||
{
|
{
|
||||||
char buffer[DRAW_STRING_BUFFER];
|
|
||||||
GetString(buffer, RoadStopClass::Get(*sc)->name, lastof(buffer));
|
|
||||||
|
|
||||||
filter.ResetState();
|
filter.ResetState();
|
||||||
filter.AddLine(buffer);
|
filter.AddLine(GetString(RoadStopClass::Get(*sc)->name));
|
||||||
return filter.GetState();
|
return filter.GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,19 @@ void StringFilter::AddLine(const char *str)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pass another text line from the current item to the filter.
|
||||||
|
*
|
||||||
|
* You can call this multiple times for a single item, if the filter shall apply to multiple things.
|
||||||
|
* Before processing the next item you have to call ResetState().
|
||||||
|
*
|
||||||
|
* @param str Another line from the item.
|
||||||
|
*/
|
||||||
|
void StringFilter::AddLine(const std::string &str)
|
||||||
|
{
|
||||||
|
AddLine(str.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pass another text line from the current item to the filter.
|
* Pass another text line from the current item to the filter.
|
||||||
*
|
*
|
||||||
|
@ -127,7 +140,5 @@ void StringFilter::AddLine(const char *str)
|
||||||
*/
|
*/
|
||||||
void StringFilter::AddLine(StringID str)
|
void StringFilter::AddLine(StringID str)
|
||||||
{
|
{
|
||||||
char buffer[DRAW_STRING_BUFFER];
|
AddLine(GetString(str));
|
||||||
GetString(buffer, str, lastof(buffer));
|
|
||||||
AddLine(buffer);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ public:
|
||||||
|
|
||||||
void ResetState();
|
void ResetState();
|
||||||
void AddLine(const char *str);
|
void AddLine(const char *str);
|
||||||
|
void AddLine(const std::string &str);
|
||||||
void AddLine(StringID str);
|
void AddLine(StringID str);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1458,7 +1458,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
|
||||||
static bool use_cache = true;
|
static bool use_cache = true;
|
||||||
if (use_cache) { // Use cached version if first call
|
if (use_cache) { // Use cached version if first call
|
||||||
AutoRestoreBackup cache_backup(use_cache, false);
|
AutoRestoreBackup cache_backup(use_cache, false);
|
||||||
buff = strecpy(buff, i->GetCachedName(), last);
|
buff = strecpy(buff, i->GetCachedName().c_str(), last);
|
||||||
} else if (_scan_for_gender_data) {
|
} else if (_scan_for_gender_data) {
|
||||||
/* Gender is defined by the industry type.
|
/* Gender is defined by the industry type.
|
||||||
* STR_FORMAT_INDUSTRY_NAME may have the town first, so it would result in the gender of the town name */
|
* STR_FORMAT_INDUSTRY_NAME may have the town first, so it would result in the gender of the town name */
|
||||||
|
@ -1541,7 +1541,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
|
||||||
static bool use_cache = true;
|
static bool use_cache = true;
|
||||||
if (use_cache) { // Use cached version if first call
|
if (use_cache) { // Use cached version if first call
|
||||||
AutoRestoreBackup cache_backup(use_cache, false);
|
AutoRestoreBackup cache_backup(use_cache, false);
|
||||||
buff = strecpy(buff, t->GetCachedName(), last);
|
buff = strecpy(buff, t->GetCachedName().c_str(), last);
|
||||||
} else if (!t->name.empty()) {
|
} else if (!t->name.empty()) {
|
||||||
int64 args_array[] = {(int64)(size_t)t->name.c_str()};
|
int64 args_array[] = {(int64)(size_t)t->name.c_str()};
|
||||||
StringParameters tmp_params(args_array);
|
StringParameters tmp_params(args_array);
|
||||||
|
|
|
@ -125,11 +125,11 @@ struct Town : TownPool::PoolItem<&_town_pool> {
|
||||||
|
|
||||||
void UpdateVirtCoord();
|
void UpdateVirtCoord();
|
||||||
|
|
||||||
inline const char *GetCachedName() const
|
inline const std::string &GetCachedName() const
|
||||||
{
|
{
|
||||||
if (!this->name.empty()) return this->name.c_str();
|
if (!this->name.empty()) return this->name;
|
||||||
if (this->cached_name.empty()) this->FillCachedName();
|
if (this->cached_name.empty()) this->FillCachedName();
|
||||||
return this->cached_name.c_str();
|
return this->cached_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Town *GetByTile(TileIndex tile)
|
static inline Town *GetByTile(TileIndex tile)
|
||||||
|
|
Loading…
Reference in New Issue