diff --git a/functions.h b/functions.h --- a/functions.h +++ b/functions.h @@ -83,7 +83,7 @@ void SubtractMoneyFromPlayer(int32 cost) void SubtractMoneyFromPlayerFract(byte player, int32 cost); bool CheckOwnership(byte owner); bool CheckTileOwnership(uint tile); -StringID GetPlayerNameString(byte player); +StringID GetPlayerNameString(byte player, byte index); /* standard */ void ShowInfo(const char *str); diff --git a/graph_gui.c b/graph_gui.c --- a/graph_gui.c +++ b/graph_gui.c @@ -212,7 +212,7 @@ static void GraphLegendWndProc(Window *w SET_DPARAM16(0, p->name_1); SET_DPARAM32(1, p->name_2); - SET_DPARAM16(2, GetPlayerNameString(p->index)); + SET_DPARAM16(2, GetPlayerNameString(p->index, 3)); DrawString(21,17+p->index*12,STR_7021,HASBIT(_legend_showbits, p->index) ? 0x10 : 0xC); } break; @@ -823,8 +823,8 @@ static void CompanyLeagueWndProc(Window SET_DPARAM16(1, p->name_1); SET_DPARAM32(2, p->name_2); - SET_DPARAM16(3, GetPlayerNameString(p->index)); - SET_DPARAM16(4, GetPerformanceTitleFromValue(p->old_economy[1].performance_history)); + SET_DPARAM16(3, GetPlayerNameString(p->index, 4)); + SET_DPARAM16(5, 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/lang/english.txt b/lang/english.txt --- a/lang/english.txt +++ b/lang/english.txt @@ -1724,8 +1724,7 @@ STR_683B_HOSTILE :Hostile ##id 0x7000 STR_7000 : STR_7001 :{WHITE}{STRING}{BLACK}{STRING} -STR_7002_PLAYER_1 : (Player 1) -STR_7003_PLAYER_2 : (Player 2) +STR_7002_PLAYER : (Player {COMMA16}) STR_7004_NEW_FACE :{BLACK}New Face STR_7005_COLOR_SCHEME :{BLACK}Color Scheme STR_7006_COLOR_SCHEME :{GOLD}Color Scheme: diff --git a/main_gui.c b/main_gui.c --- a/main_gui.c +++ b/main_gui.c @@ -504,7 +504,7 @@ static void PlayerMenuWndProc(Window *w, SET_DPARAM16(0, p->name_1); SET_DPARAM32(1, p->name_2); - SET_DPARAM16(2, GetPlayerNameString(p->index)); + SET_DPARAM16(2, GetPlayerNameString(p->index, 3)); color = (byte)((p->index==sel) ? 0xC : 0x10); if (chk&1) color = 14; diff --git a/player_gui.c b/player_gui.c --- a/player_gui.c +++ b/player_gui.c @@ -134,8 +134,8 @@ static void PlayerFinancesWndProc(Window SET_DPARAM16(0, p->name_1); SET_DPARAM32(1, p->name_2); - SET_DPARAM16(2, GetPlayerNameString((byte)w->window_number)); - SET_DPARAM32(3, 10000); + SET_DPARAM16(2, GetPlayerNameString((byte)w->window_number, 3)); + SET_DPARAM32(4, 10000); DrawWindowWidgets(w); DrawPlayerEconomyStats(p, (byte)WP(w,def_d).data_1); @@ -480,7 +480,7 @@ static void PlayerCompanyWndProc(Window SET_DPARAM16(0, p->name_1); SET_DPARAM32(1, p->name_2); - SET_DPARAM16(2, GetPlayerNameString((byte)w->window_number)); + SET_DPARAM16(2, GetPlayerNameString((byte)w->window_number, 3)); dis = 0; if (GetAmountOwnedBy(p, 0xFF) == 0) dis |= 1 << 8; diff --git a/players.c b/players.c --- a/players.c +++ b/players.c @@ -559,10 +559,13 @@ void RunOtherPlayersLoop() _current_player = 0; } -StringID GetPlayerNameString(byte player) +// index is the next parameter in _decode_parameters to set up +StringID GetPlayerNameString(byte player, byte index) { - if (IS_HUMAN_PLAYER(player) && player < 2) // temporarily fixes the names in the list. - return STR_7002_PLAYER_1+player; + if (IS_HUMAN_PLAYER(player) && player < MAX_PLAYERS) { + SET_DPARAM16(index, player+1); + return STR_7002_PLAYER; + } return STR_EMPTY; } diff --git a/town_gui.c b/town_gui.c --- a/town_gui.c +++ b/town_gui.c @@ -114,7 +114,7 @@ static void TownAuthorityWndProc(Window SET_DPARAM16(0, p->name_1); SET_DPARAM32(1, p->name_2); - SET_DPARAM16(2, GetPlayerNameString(p->index)); + SET_DPARAM16(2, GetPlayerNameString(p->index, 3)); r = t->ratings[p->index]; (str = STR_3035_APPALLING, r <= -400) || // Apalling @@ -126,7 +126,7 @@ static void TownAuthorityWndProc(Window (str++, r <= 800) || // Excellent (str++, true); // Outstanding - SET_DPARAM16(3, str); + SET_DPARAM16(4, str); DrawString(19, y, STR_2024, 0); y+=10; }