summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/economy.cpp40
-rw-r--r--src/functions.h1
-rw-r--r--src/graph_gui.cpp12
-rw-r--r--src/group_gui.cpp5
-rw-r--r--src/lang/english.txt14
-rw-r--r--src/main_gui.cpp8
-rw-r--r--src/misc_gui.cpp5
-rw-r--r--src/openttd.cpp7
-rw-r--r--src/player_gui.cpp49
-rw-r--r--src/players.cpp37
-rw-r--r--src/screenshot.cpp6
-rw-r--r--src/station_gui.cpp6
-rw-r--r--src/strgen/strgen.cpp8
-rw-r--r--src/strings.cpp28
-rw-r--r--src/subsidy_gui.cpp6
-rw-r--r--src/table/control_codes.h3
-rw-r--r--src/town_cmd.cpp7
-rw-r--r--src/town_gui.cpp7
-rw-r--r--src/vehicle_gui.cpp5
19 files changed, 114 insertions, 140 deletions
diff --git a/src/economy.cpp b/src/economy.cpp
index 9fbfee677..e0e4269d5 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -478,8 +478,7 @@ static void PlayersCheckBankrupt(Player *p)
DeletePlayerWindows(owner);
/* Show bankrupt news */
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, p->index);
AddNewsItem( (StringID)(owner | NB_BBANKRUPT), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0);
if (IsHumanPlayer(owner)) {
@@ -516,8 +515,7 @@ void DrawNewsBankrupcy(Window *w)
DrawPlayerFace(p->face, p->player_color, 2, 23);
GfxFillRect(3, 23, 3 + 91, 23 + 118, PALETTE_TO_STRUCT_GREY | (1 << USE_COLORTABLE));
- SetDParam(0, p->president_name_1);
- SetDParam(1, p->president_name_2);
+ SetDParam(0, p->index);
DrawStringMultiCenter(49, 148, STR_7058_PRESIDENT, 94);
@@ -525,8 +523,7 @@ void DrawNewsBankrupcy(Window *w)
case NB_BTROUBLE:
DrawStringCentered(w->width>>1, 1, STR_7056_TRANSPORT_COMPANY_IN_TROUBLE, 0);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, p->index);
DrawStringMultiCenter(
((w->width - 101) >> 1) + 98,
@@ -540,10 +537,9 @@ void DrawNewsBankrupcy(Window *w)
DrawStringCentered(w->width>>1, 1, STR_7059_TRANSPORT_COMPANY_MERGER, 0);
COPY_IN_DPARAM(0,WP(w,news_d).ni->params, 2);
- SetDParam(2, p->name_1);
- SetDParam(3, p->name_2);
+ SetDParam(2, p->index);
price = WP(w,news_d).ni->params[2];
- SetDParam(4, price);
+ SetDParam(3, price);
DrawStringMultiCenter(
((w->width - 101) >> 1) + 98,
90,
@@ -564,9 +560,8 @@ void DrawNewsBankrupcy(Window *w)
case NB_BNEWCOMPANY:
DrawStringCentered(w->width>>1, 1, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED, 0);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- COPY_IN_DPARAM(2,WP(w,news_d).ni->params, 2);
+ SetDParam(0, p->index);
+ COPY_IN_DPARAM(1,WP(w,news_d).ni->params, 2);
DrawStringMultiCenter(
((w->width - 101) >> 1) + 98,
90,
@@ -587,16 +582,14 @@ StringID GetNewsStringBankrupcy(const NewsItem *ni)
case NB_BTROUBLE:
SetDParam(0, STR_7056_TRANSPORT_COMPANY_IN_TROUBLE);
SetDParam(1, STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED);
- SetDParam(2, p->name_1);
- SetDParam(3, p->name_2);
+ SetDParam(2, p->index);
return STR_02B6;
case NB_BMERGER:
SetDParam(0, STR_7059_TRANSPORT_COMPANY_MERGER);
SetDParam(1, STR_705A_HAS_BEEN_SOLD_TO_FOR);
COPY_IN_DPARAM(2,ni->params, 2);
- SetDParam(4, p->name_1);
- SetDParam(5, p->name_2);
- COPY_IN_DPARAM(6,ni->params + 2, 1);
+ SetDParam(4, p->index);
+ COPY_IN_DPARAM(5,ni->params + 2, 1);
return STR_02B6;
case NB_BBANKRUPT:
SetDParam(0, STR_705C_BANKRUPT);
@@ -606,9 +599,8 @@ StringID GetNewsStringBankrupcy(const NewsItem *ni)
case NB_BNEWCOMPANY:
SetDParam(0, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED);
SetDParam(1, STR_705F_STARTS_CONSTRUCTION_NEAR);
- SetDParam(2, p->name_1);
- SetDParam(3, p->name_2);
- COPY_IN_DPARAM(4,ni->params, 2);
+ SetDParam(2, p->index);
+ COPY_IN_DPARAM(3,ni->params, 2);
return STR_02B6;
default:
NOT_REACHED();
@@ -1302,8 +1294,7 @@ static bool CheckSubsidised(Station *from, Station *to, CargoID cargo_type)
InjectDParam(2);
p = GetPlayer(_current_player);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, p->index);
AddNewsItem(
STR_2031_SERVICE_SUBSIDY_AWARDED + _opt.diff.subsidy_multiplier,
NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_SUBSIDIES, 0),
@@ -1731,9 +1722,8 @@ static void DoAcquireCompany(Player *p)
int i;
Money value;
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, p->bankrupt_value);
+ SetDParam(0, p->index);
+ SetDParam(1, p->bankrupt_value);
AddNewsItem( (StringID)(_current_player | NB_BMERGER), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0);
/* original code does this a little bit differently */
diff --git a/src/functions.h b/src/functions.h
index 7c032b70c..de5faec9c 100644
--- a/src/functions.h
+++ b/src/functions.h
@@ -25,7 +25,6 @@ void SubtractMoneyFromPlayer(CommandCost cost);
void SubtractMoneyFromPlayerFract(PlayerID player, CommandCost cost);
bool CheckOwnership(Owner owner);
bool CheckTileOwnership(TileIndex tile);
-StringID GetPlayerNameString(PlayerID player, uint index);
/* standard */
void ShowInfo(const char *str);
diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp
index bf4b3aa52..1e5d84580 100644
--- a/src/graph_gui.cpp
+++ b/src/graph_gui.cpp
@@ -270,9 +270,8 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e)
DrawPlayerIcon(p->index, 4, 18 + p->index * 12);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, GetPlayerNameString(p->index, 3));
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
DrawString(21, 17 + p->index * 12, STR_7021, HASBIT(_legend_excluded_players, p->index) ? 0x10 : 0xC);
}
break;
@@ -875,10 +874,9 @@ static void CompanyLeagueWndProc(Window *w, WindowEvent *e)
for (uint i = 0; i != pl_num; i++) {
p = plist[i];
SetDParam(0, i + STR_01AC_1ST);
- SetDParam(1, p->name_1);
- SetDParam(2, p->name_2);
- SetDParam(3, GetPlayerNameString(p->index, 4));
- SetDParam(5, GetPerformanceTitleFromValue(p->old_economy[1].performance_history));
+ SetDParam(1, p->index);
+ SetDParam(2, p->index);
+ SetDParam(3, GetPerformanceTitleFromValue(p->old_economy[1].performance_history));
DrawString(2, 15 + i * 10, i == 0 ? STR_7054 : STR_7055, 0);
DrawPlayerIcon(p->index, 27, 16 + i * 10);
diff --git a/src/group_gui.cpp b/src/group_gui.cpp
index 2d1913b43..356407247 100644
--- a/src/group_gui.cpp
+++ b/src/group_gui.cpp
@@ -344,9 +344,8 @@ static void GroupWndProc(Window *w, WindowEvent *e)
/* If selected_group == DEFAULT_GROUP, draw the standard caption
We list all vehicles */
if (IsDefaultGroupID(gv->group_sel)) {
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, gv->l.list_length);
+ SetDParam(0, p->index);
+ SetDParam(1, gv->l.list_length);
switch (gv->vehicle_type) {
case VEH_TRAIN:
diff --git a/src/lang/english.txt b/src/lang/english.txt
index 748a35819..5edb81319 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -1714,7 +1714,7 @@ STR_2020_LOCAL_AUTHORITY :{BLACK}Local au
STR_2021_SHOW_INFORMATION_ON_LOCAL :{BLACK}Show information on local authority
STR_2022_LOCAL_AUTHORITY :{WHITE}{TOWN} local authority
STR_2023_TRANSPORT_COMPANY_RATINGS :{BLACK}Transport company ratings:
-STR_2024 :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
+STR_2024 :{YELLOW}{COMPANY}{COMPANYNUM}: {ORANGE}{STRING}
STR_2025_SUBSIDIES :{WHITE}Subsidies
STR_2026_SUBSIDIES_ON_OFFER_FOR :{BLACK}Subsidies on offer for services taking:
STR_2027_FROM_TO :{ORANGE}{STRING} from {STRING2} to {STRING2}
@@ -2162,7 +2162,7 @@ STR_683B_HOSTILE :Hostile
##id 0x7000
STR_7000 :
-STR_7001 :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
+STR_7001 :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
STR_7002_PLAYER :(Player {COMMA})
STR_7004_NEW_FACE :{BLACK}New Face
STR_7005_COLOR_SCHEME :{BLACK}Colour Scheme
@@ -2174,7 +2174,7 @@ STR_700A_COMPANY_NAME :Company Name
STR_700B_PRESIDENT_S_NAME :Manager's Name
STR_700C_CAN_T_CHANGE_COMPANY_NAME :{WHITE}Can't change company name...
STR_700D_CAN_T_CHANGE_PRESIDENT :{WHITE}Can't change manager's name...
-STR_700E_FINANCES :{WHITE}{COMPANY} Finances {BLACK}{PLAYERNAME}
+STR_700E_FINANCES :{WHITE}{COMPANY} Finances {BLACK}{COMPANYNUM}
STR_700F_EXPENDITURE_INCOME :{WHITE}Expenditure/Income
STR_7010 :{WHITE}{NUM}
STR_7011_CONSTRUCTION :{GOLD}Construction
@@ -2193,7 +2193,7 @@ STR_701D_OTHER :{GOLD}Other
STR_701E :{BLACK}-{CURRENCY}
STR_701F :{BLACK}+{CURRENCY}
STR_7020_TOTAL :{WHITE}Total:
-STR_7021 :{COMPANY}{PLAYERNAME}
+STR_7021 :{COMPANY}{COMPANYNUM}
STR_7022_INCOME_GRAPH :{WHITE}Income Graph
STR_CURRCOMPACT :{CURRCOMPACT}
STR_7024 :{COMMA}
@@ -2242,8 +2242,8 @@ STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Units of
STR_7051_COMPANY_PERFORMANCE_RATINGS :{WHITE}Company performance ratings (maximum rating=1000)
STR_7052_COMPANY_VALUES :{WHITE}Company values
STR_7053_COMPANY_LEAGUE_TABLE :{WHITE}Company League Table
-STR_7054 :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
-STR_7055 :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
+STR_7054 :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM} '{STRING}'
+STR_7055 :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM} '{STRING}'
STR_7056_TRANSPORT_COMPANY_IN_TROUBLE :{BLACK}{BIGFONT}Transport company in trouble!
STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED :{BLACK}{BIGFONT}{COMPANY} will be sold off or declared bankrupt unless performance increases soon!
STR_7058_PRESIDENT :{BLACK}{PLAYERNAME}{}(Manager)
@@ -3339,7 +3339,9 @@ STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLAC
STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Profit this year: {GREEN}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK})
STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Profit this year: {RED}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK})
+STR_COMPANY_NAME :{COMPANY}
STR_GROUP_NAME :{GROUP}
+STR_PLAYER_NAME :{PLAYERNAME}
STR_SIGN_NAME :{SIGN}
STR_VEHICLE_NAME :{VEHICLE}
diff --git a/src/main_gui.cpp b/src/main_gui.cpp
index bd97f17de..e5bbe934d 100644
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -605,9 +605,8 @@ static void PlayerMenuWndProc(Window *w, WindowEvent *e)
DrawPlayerIcon(p->index, x + 2, y + 1);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, GetPlayerNameString(p->index, 3));
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
color = (p->index == sel) ? 0xC : 0x10;
if (chk&1) color = 14;
@@ -2227,8 +2226,7 @@ static void StatusBarWndProc(Window *w, WindowEvent *e)
} else {
if (p != NULL) {
/* This is the default text */
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, p->index);
DrawStringCentered(320, 1, STR_02BA, 0);
}
}
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index b84e008a1..93397c0e0 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -1416,9 +1416,8 @@ static void GenerateFileName()
Let's use the name of player #0 for now. */
const Player *p = GetPlayer(IsValidPlayer(_local_player) ? _local_player : PLAYER_FIRST);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, _date);
+ SetDParam(0, p->index);
+ SetDParam(1, _date);
GetString(_edit_str_buf, STR_4004, lastof(_edit_str_buf));
SanitizeFilename(_edit_str_buf);
}
diff --git a/src/openttd.cpp b/src/openttd.cpp
index afbeaafe7..b3bd580c7 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1012,11 +1012,8 @@ static void DoAutosave()
#endif /* PSP */
if (_patches.keep_all_autosave && _local_player != PLAYER_SPECTATOR) {
- const Player *p = GetPlayer(_local_player);
-
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, _date);
+ SetDParam(0, _local_player);
+ SetDParam(1, _date);
GetString(buf, STR_4004, lastof(buf));
ttd_strlcpy(buf, ".sav", sizeof(buf));
} else {
diff --git a/src/player_gui.cpp b/src/player_gui.cpp
index ae9695dfa..9852f3b65 100644
--- a/src/player_gui.cpp
+++ b/src/player_gui.cpp
@@ -165,10 +165,9 @@ static void PlayerFinancesWndProc(Window *w, WindowEvent *e)
SetWindowWidgetDisabledState(w, 7, p->current_loan == 0);
}
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, GetPlayerNameString(player, 3));
- SetDParam(4, LOAN_INTERVAL);
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
+ SetDParam(2, LOAN_INTERVAL);
DrawWindowWidgets(w);
DrawPlayerEconomyStats(p, (byte)WP(w, def_d).data_1);
@@ -708,9 +707,8 @@ static void DrawCompanyOwnerText(const Player *p)
if (amt != 0) {
num++;
- SetDParam(num * 3 + 0, amt * 25);
- SetDParam(num * 3 + 1, p2->name_1);
- SetDParam(num * 3 + 2, p2->name_2);
+ SetDParam(num * 2 + 0, amt * 25);
+ SetDParam(num * 2 + 1, p2->index);
if (num != 0) break;
}
@@ -757,9 +755,8 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
}
}
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, GetPlayerNameString((PlayerID)w->window_number, 3));
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
DrawWindowWidgets(w);
@@ -774,8 +771,7 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
DrawPlayerFace(p->face, p->player_color, 2, 16);
- SetDParam(0, p->president_name_1);
- SetDParam(1, p->president_name_2);
+ SetDParam(0, p->index);
DrawStringMultiCenter(48, 141, STR_7037_PRESIDENT, 94);
SetDParam(0, CalculateCompanyValue(p));
@@ -812,16 +808,16 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
case PCW_WIDGET_PRESIDENT_NAME: {
const Player *p = GetPlayer((PlayerID)w->window_number);
WP(w, def_d).byte_1 = 0;
- SetDParam(0, p->president_name_2);
- ShowQueryString(p->president_name_1, STR_700B_PRESIDENT_S_NAME, 31, 94, w, CS_ALPHANUMERAL);
+ SetDParam(0, p->index);
+ ShowQueryString(STR_PLAYER_NAME, STR_700B_PRESIDENT_S_NAME, 31, 94, w, CS_ALPHANUMERAL);
break;
}
case PCW_WIDGET_COMPANY_NAME: {
Player *p = GetPlayer((PlayerID)w->window_number);
WP(w, def_d).byte_1 = 1;
- SetDParam(0, p->name_2);
- ShowQueryString(p->name_1, STR_700A_COMPANY_NAME, 31, 150, w, CS_ALPHANUMERAL);
+ SetDParam(0, p->index);
+ ShowQueryString(STR_COMPANY_NAME, STR_700A_COMPANY_NAME, 31, 150, w, CS_ALPHANUMERAL);
break;
}
@@ -939,15 +935,13 @@ static void BuyCompanyWndProc(Window *w, WindowEvent *e)
switch (e->event) {
case WE_PAINT: {
Player *p = GetPlayer((PlayerID)w->window_number);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, p->index);
DrawWindowWidgets(w);
DrawPlayerFace(p->face, p->player_color, 2, 16);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, p->bankrupt_value);
+ SetDParam(0, p->index);
+ SetDParam(1, p->bankrupt_value);
DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
break;
}
@@ -1028,16 +1022,13 @@ static void EndGameWndProc(Window *w, WindowEvent *e)
/* We need to get performance from last year because the image is shown
* at the start of the new year when these things have already been copied */
if (WP(w, highscore_d).background_img == SPR_TYCOON_IMG2_BEGIN) { // Tycoon of the century \o/
- SetDParam(0, p->president_name_1);
- SetDParam(1, p->president_name_2);
- SetDParam(2, p->name_1);
- SetDParam(3, p->name_2);
- SetDParam(4, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
+ SetDParam(2, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
DrawStringMultiCenter(x + (640 / 2), y + 107, STR_021C_OF_ACHIEVES_STATUS, 640);
} else {
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
+ SetDParam(0, p->index);
+ SetDParam(1, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
DrawStringMultiCenter(x + (640 / 2), y + 157, STR_021B_ACHIEVES_STATUS, 640);
}
} break;
diff --git a/src/players.cpp b/src/players.cpp
index f601514c2..109f5c71d 100644
--- a/src/players.cpp
+++ b/src/players.cpp
@@ -246,8 +246,8 @@ void GetNameOfOwner(Owner owner, TileIndex tile)
} else {
const Player* p = GetPlayer(owner);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, STR_COMPANY_NAME);
+ SetDParam(1, p->index);
}
} else {
const Town* t = ClosestTownFromTile(tile, (uint)-1);
@@ -414,15 +414,15 @@ restart:;
p->president_name_2 = Random();
p->president_name_1 = SPECSTR_PRESIDENT_NAME;
- SetDParam(0, p->president_name_2);
- GetString(buffer, p->president_name_1, lastof(buffer));
+ SetDParam(0, p->index);
+ GetString(buffer, STR_PLAYER_NAME, lastof(buffer));
if (strlen(buffer) >= 32 || GetStringBoundingBox(buffer).width >= 94)
continue;
FOR_ALL_PLAYERS(pp) {
if (pp->is_active && p != pp) {
- SetDParam(0, pp->president_name_2);
- GetString(buffer2, pp->president_name_1, lastof(buffer2));
+ SetDParam(0, pp->index);
+ GetString(buffer2, STR_PLAYER_NAME, lastof(buffer2));
if (strcmp(buffer2, buffer) == 0)
goto restart;
}
@@ -555,16 +555,6 @@ void OnTick_Players()
MaybeStartNewPlayer();
}
-/** index is the next parameter in _decode_parameters to set up */
-StringID GetPlayerNameString(PlayerID player, uint index)
-{
- if (IsHumanPlayer(player) && IsValidPlayer(player)) {
- SetDParam(index, player+1);
- return STR_7002_PLAYER;
- }
- return STR_EMPTY;
-}
-
extern void ShowPlayerFinances(PlayerID player);
void PlayersYearlyLoop()
@@ -917,8 +907,7 @@ CommandCost CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
DeletePlayerWindows(p->index);
/* Show the bankrupt news */
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
+ SetDParam(0, p->index);
AddNewsItem( (StringID)(p->index | NB_BBANKRUPT), NEWS_FLAGS(NM_CALLBACK, 0, NT_COMPANY_INFO, DNC_BANKRUPCY),0,0);
/* Remove the company */
@@ -1002,10 +991,8 @@ int8 SaveHighScoreValue(const Player *p)
if (hs[i].score <= score) {
/* move all elements one down starting from the replaced one */
memmove(&hs[i + 1], &hs[i], sizeof(HighScore) * (lengthof(_highscore_table[0]) - i - 1));
- SetDParam(0, p->president_name_1);
- SetDParam(1, p->president_name_2);
- SetDParam(2, p->name_1);
- SetDParam(3, p->name_2);
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
GetString(hs[i].company, STR_HIGHSCORE_NAME, lastof(hs[i].company)); // get manager/company name string
hs[i].score = score;
hs[i].title = EndGameGetPerformanceTitleFromValue(score);
@@ -1047,10 +1034,8 @@ int8 SaveHighScoreValueNetwork()
for (i = 0; i < lengthof(_highscore_table[LAST_HS_ITEM]) && i < count; i++) {
HighScore* hs = &_highscore_table[LAST_HS_ITEM][i];
- SetDParam(0, pl[i]->president_name_1);
- SetDParam(1, pl[i]->president_name_2);
- SetDParam(2, pl[i]->name_1);
- SetDParam(3, pl[i]->name_2);
+ SetDParam(0, pl[i]->index);
+ SetDParam(1, pl[i]->index);
GetString(hs->company, STR_HIGHSCORE_NAME, lastof(hs->company)); // get manager/company name string
hs->score = pl[i]->old_economy[0].performance_history;
hs->title = EndGameGetPerformanceTitleFromValue(hs->score);
diff --git a/src/screenshot.cpp b/src/screenshot.cpp
index 604d108dd..42dee3a8f 100644
--- a/src/screenshot.cpp
+++ b/src/screenshot.cpp
@@ -531,10 +531,8 @@ static char *MakeScreenshotName(const char *ext)
if (_game_mode == GM_EDITOR || _game_mode == GM_MENU || _local_player == PLAYER_SPECTATOR) {
ttd_strlcpy(_screenshot_name, "screenshot", lengthof(_screenshot_name));
} else {
- const Player* p = GetPlayer(_local_player);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, _date);
+ SetDParam(0, _local_player);
+ SetDParam(1, _date);
GetString(_screenshot_name, STR_4004, lastof(_screenshot_name));
}
diff --git a/src/station_gui.cpp b/src/station_gui.cpp
index e8b332704..3c3d96f17 100644
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -309,10 +309,8 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e)
SetVScrollCount(w, sl->list_length);
/* draw widgets, with player's name in the caption */
- const Player* p = GetPlayer(owner);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, w->vscroll.count);
+ SetDParam(0, owner);
+ SetDParam(1, w->vscroll.count);
DrawWindowWidgets(w);
/* draw sorting criteria string */
diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp
index ebb5ed26b..c1af6bbf0 100644
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -461,11 +461,6 @@ static const CmdStruct _cmd_structs[] = {
{"REV", EmitSingleChar, SCC_REVISION, 0, 0}, // openttd revision string
{"SHORTCARGO", EmitSingleChar, SCC_CARGO_SHORT, 2, 0}, // short cargo description, only ### tons, or ### litres
- // These are special versions of {STRING1}
- // The first string includes the second string.
- {"COMPANY", EmitSingleChar, SCC_STRING1, 2, 0},
- {"PLAYERNAME", EmitSingleChar, SCC_STRING1, 1, 0},
-
{"STRING1", EmitSingleChar, SCC_STRING1, 1, C_CASE}, // included string that consumes ONE argument
{"STRING2", EmitSingleChar, SCC_STRING2, 2, C_CASE}, // included string that consumes TWO arguments
{"STRING3", EmitSingleChar, SCC_STRING3, 3, C_CASE}, // included string that consumes THREE arguments
@@ -506,6 +501,9 @@ static const CmdStruct _cmd_structs[] = {
{"GROUP", EmitSingleChar, SCC_GROUP_NAME, 1, 0},
{"SIGN", EmitSingleChar, SCC_SIGN_NAME, 1, 0},
{"VEHICLE", EmitSingleChar, SCC_VEHICLE_NAME, 1, 0},
+ {"COMPANY", EmitSingleChar, SCC_COMPANY_NAME, 1, 0},
+ {"COMPANYNUM", EmitSingleChar, SCC_COMPANY_NUM, 1, 0},
+ {"PLAYERNAME", EmitSingleChar, SCC_PLAYER_NAME, 1, 0},
// 0x9D is used for the pseudo command SETCASE
// 0x9E is used for case switching
diff --git a/src/strings.cpp b/src/strings.cpp
index 24056b8c3..52401b9bd 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -880,6 +880,34 @@ static char* FormatString(char* buff, const char* str, const int64* argv, uint c
break;
}
+ case SCC_COMPANY_NAME: { // {COMPANY}
+ const Player *p = GetPlayer((PlayerID)GetInt32(&argv));
+ int64 args[1];
+ args[0] = p->name_2;
+ buff = GetStringWithArgs(buff, p->name_1, args, last);
+ break;
+ }
+
+ case SCC_COMPANY_NUM: { // {COMPANYNUM}
+ PlayerID player = (PlayerID)GetInt32(&argv);
+
+ /* Nothing is added for AI or inactive players */
+ if (IsHumanPlayer(player) && IsValidPlayer(player)) {
+ int64 args[1];
+ args[0] = player + 1;
+ buff = GetStringWithArgs(buff, STR_7002_PLAYER, args, last);
+ }
+ break;
+ }
+
+ case SCC_PLAYER_NAME: { // {PLAYERNAME}
+ const Player *p = GetPlayer((PlayerID)GetInt32(&argv));
+ int64 args[1];
+ args[0] = p->president_name_2;
+ buff = GetStringWithArgs(buff, p->president_name_1, args, last);
+ break;
+ }
+
case SCC_SETCASE: { // {SETCASE}
/* This is a pseudo command, it's outputted when someone does {STRING.ack}
* The modifier is added to all subsequent GetStringWithArgs that accept the modifier. */
diff --git a/src/subsidy_gui.cpp b/src/subsidy_gui.cpp
index ce3e48da0..5bd5178c2 100644
--- a/src/subsidy_gui.cpp
+++ b/src/subsidy_gui.cpp
@@ -122,14 +122,12 @@ static void DrawSubsidiesWindow(const Window *w)
for (s = _subsidies; s != endof(_subsidies); s++) {
if (s->cargo_type != CT_INVALID && s->age >= 12) {
- const Player *p;
int xt;
SetupSubsidyDecodeParam(s, 1);
- p = GetPlayer(GetStation(s->to)->owner);
- SetDParam(3, p->name_1);
- SetDParam(4, p->name_2);
+ PlayerID player = GetStation(s->to)->owner;
+ SetDParam(3, player);
xt = DrawString(x + 2, y, STR_202C_FROM_TO, 0);
diff --git a/src/table/control_codes.h b/src/table/control_codes.h
index 304767bf5..e841d2e27 100644
--- a/src/table/control_codes.h
+++ b/src/table/control_codes.h
@@ -29,6 +29,9 @@ enum {
SCC_GROUP_NAME,
SCC_VEHICLE_NAME,
SCC_SIGN_NAME,
+ SCC_COMPANY_NAME,
+ SCC_COMPANY_NUM,
+ SCC_PLAYER_NAME,
SCC_CURRENCY_COMPACT,
SCC_CURRENCY,
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index b0104910b..f19c2266b 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -1934,15 +1934,10 @@ static void TownActionAdvertiseLarge(Town* t)
static void TownActionRoadRebuild(Town* t)
{
- const Player* p;
-
t->road_build_months = 6;
SetDParam(0, t->index);
-
- p = GetPlayer(_current_player);
- SetDParam(1, p->name_1);
- SetDParam(2, p->name_2);
+ SetDParam(1, _current_player);
AddNewsItem(STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING,
NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_GENERAL, 0), t->xy, 0);
diff --git a/src/town_gui.cpp b/src/town_gui.cpp
index e4cc8a789..7e927e55c 100644
--- a/src/town_gui.cpp
+++ b/src/town_gui.cpp
@@ -127,9 +127,8 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e)
if (p->is_active && (HASBIT(t->have_ratings, p->index) || t->exclusivity == p->index)) {
DrawPlayerIcon(p->index, 2, y);
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, GetPlayerNameString(p->index, 3));
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
r = t->ratings[p->index];
(str = STR_3035_APPALLING, r <= RATING_APPALLING) || // Apalling
@@ -141,7 +140,7 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e)
(str++, r <= RATING_EXCELLENT) || // Excellent
(str++, true); // Outstanding
- SetDParam(4, str);
+ SetDParam(2, str);
if (t->exclusivity == p->index) { // red icon for player with exclusive rights
DrawSprite(SPR_BLOT, PALETTE_TO_RED, 18, y);
}
diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp
index a2c3d6936..c7579ec4a 100644
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -957,9 +957,8 @@ static void DrawVehicleListWindow(Window *w)
break;
case VLW_STANDARD: /* Company Name */
- SetDParam(0, p->name_1);
- SetDParam(1, p->name_2);
- SetDParam(2, w->vscroll.count);
+ SetDParam(0, p->index);
+ SetDParam(1, w->vscroll.count);
break;
case VLW_STATION_LIST: /* Station Name */