summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium42 <rubidium@openttd.org>2021-06-16 17:54:08 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-07-01 19:04:38 +0200
commit9a7750f14eccd8afb6e8bb608ec421c09a486d53 (patch)
treee77f49a9225f414939961fd5b2794147b2aa25f6
parentaa9818db90b910b1b3d62d080f4a670a6a9d14af (diff)
downloadopenttd-9a7750f14eccd8afb6e8bb608ec421c09a486d53.tar.xz
Codechange: use the constructor for CompanyNewsItem to fill the data instead of a separate function
-rw-r--r--src/company_cmd.cpp18
-rw-r--r--src/economy.cpp6
-rw-r--r--src/news_type.h8
-rw-r--r--src/town_cmd.cpp3
4 files changed, 14 insertions, 21 deletions
diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp
index 3c5e5f5c7..754921284 100644
--- a/src/company_cmd.cpp
+++ b/src/company_cmd.cpp
@@ -376,8 +376,7 @@ set_name:;
MarkWholeScreenDirty();
if (c->is_ai) {
- CompanyNewsInformation *cni = new CompanyNewsInformation();
- cni->FillData(c);
+ CompanyNewsInformation *cni = new CompanyNewsInformation(c);
SetDParam(0, STR_NEWS_COMPANY_LAUNCH_TITLE);
SetDParam(1, STR_NEWS_COMPANY_LAUNCH_DESCRIPTION);
SetDParamStr(2, cni->company_name);
@@ -755,21 +754,19 @@ void CompaniesYearlyLoop()
* @param c the current company.
* @param other the other company (use \c nullptr if not relevant).
*/
-void CompanyNewsInformation::FillData(const Company *c, const Company *other)
+CompanyNewsInformation::CompanyNewsInformation(const Company *c, const Company *other)
{
SetDParam(0, c->index);
- GetString(this->company_name, STR_COMPANY_NAME, lastof(this->company_name));
+ this->company_name = GetString(STR_COMPANY_NAME);
- if (other == nullptr) {
- *this->other_company_name = '\0';
- } else {
+ if (other != nullptr) {
SetDParam(0, other->index);
- GetString(this->other_company_name, STR_COMPANY_NAME, lastof(this->other_company_name));
+ this->other_company_name = GetString(STR_COMPANY_NAME);
c = other;
}
SetDParam(0, c->index);
- GetString(this->president_name, STR_PRESIDENT_NAME_MANAGER, lastof(this->president_name));
+ this->president_name = GetString(STR_PRESIDENT_NAME_MANAGER);
this->colour = c->colour;
this->face = c->face;
@@ -888,8 +885,7 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
/* Delete any open window of the company */
CloseCompanyWindows(c->index);
- CompanyNewsInformation *cni = new CompanyNewsInformation();
- cni->FillData(c);
+ CompanyNewsInformation *cni = new CompanyNewsInformation(c);
/* Show the bankrupt news */
SetDParam(0, STR_NEWS_COMPANY_BANKRUPT_TITLE);
diff --git a/src/economy.cpp b/src/economy.cpp
index cb45d55b7..0c2e73cbd 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -580,8 +580,7 @@ static void CompanyCheckBankrupt(Company *c)
/* Warn about bankruptcy after 3 months */
case 4: {
- CompanyNewsInformation *cni = new CompanyNewsInformation();
- cni->FillData(c);
+ CompanyNewsInformation *cni = new CompanyNewsInformation(c);
SetDParam(0, STR_NEWS_COMPANY_IN_TROUBLE_TITLE);
SetDParam(1, STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION);
SetDParamStr(2, cni->company_name);
@@ -1975,8 +1974,7 @@ static void DoAcquireCompany(Company *c)
{
CompanyID ci = c->index;
- CompanyNewsInformation *cni = new CompanyNewsInformation();
- cni->FillData(c, Company::Get(_current_company));
+ CompanyNewsInformation *cni = new CompanyNewsInformation(c, Company::Get(_current_company));
SetDParam(0, STR_NEWS_COMPANY_MERGER_TITLE);
SetDParam(1, c->bankrupt_value == 0 ? STR_NEWS_MERGER_TAKEOVER_TITLE : STR_NEWS_COMPANY_MERGER_DESCRIPTION);
diff --git a/src/news_type.h b/src/news_type.h
index bed8f16e7..8045a58fa 100644
--- a/src/news_type.h
+++ b/src/news_type.h
@@ -158,14 +158,14 @@ struct NewsStringData : NewsAllocatedData {
* resulting in wrong names and such.
*/
struct CompanyNewsInformation : NewsAllocatedData {
- char company_name[64]; ///< The name of the company
- char president_name[64]; ///< The name of the president
- char other_company_name[64]; ///< The name of the company taking over this one
+ std::string company_name; ///< The name of the company
+ std::string president_name; ///< The name of the president
+ std::string other_company_name; ///< The name of the company taking over this one
uint32 face; ///< The face of the president
byte colour; ///< The colour related to the company
- void FillData(const struct Company *c, const struct Company *other = nullptr);
+ CompanyNewsInformation(const struct Company *c, const struct Company *other = nullptr);
};
#endif /* NEWS_TYPE_H */
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index b21d0ab71..d53cd5783 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -3231,8 +3231,7 @@ static CommandCost TownActionBuyRights(Town *t, DoCommandFlag flags)
SetWindowClassesDirty(WC_STATION_VIEW);
/* Spawn news message */
- CompanyNewsInformation *cni = new CompanyNewsInformation();
- cni->FillData(Company::Get(_current_company));
+ CompanyNewsInformation *cni = new CompanyNewsInformation(Company::Get(_current_company));
SetDParam(0, STR_NEWS_EXCLUSIVE_RIGHTS_TITLE);
SetDParam(1, STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION);
SetDParam(2, t->index);