diff options
114 files changed, 295 insertions, 189 deletions
diff --git a/src/ai/ai.cpp b/src/ai/ai.cpp index 0654fcaa1..07b31f77d 100644 --- a/src/ai/ai.cpp +++ b/src/ai/ai.cpp @@ -2,11 +2,12 @@ #include "../stdafx.h" #include "../openttd.h" -#include "../player.h" #include "../variables.h" #include "../command_func.h" #include "../network/network.h" #include "../core/alloc_func.hpp" +#include "../player_func.h" +#include "../player_base.h" #include "ai.h" #include "default/default.h" diff --git a/src/ai/ai.h b/src/ai/ai.h index 96e25ef54..7ecc97571 100644 --- a/src/ai/ai.h +++ b/src/ai/ai.h @@ -4,7 +4,6 @@ #define AI_H #include "../network/network.h" -#include "../player.h" #include "../command_type.h" #include "../core/random_func.hpp" #include "../settings_type.h" diff --git a/src/ai/default/default.cpp b/src/ai/default/default.cpp index 6d72f2043..b9d0f2f92 100644 --- a/src/ai/default/default.cpp +++ b/src/ai/default/default.cpp @@ -10,7 +10,6 @@ #include "../../road_map.h" #include "../../roadveh.h" #include "../../station_map.h" -#include "../../player.h" #include "../../tunnel_map.h" #include "../../engine.h" #include "../../command_func.h" @@ -28,6 +27,8 @@ #include "../../vehicle_func.h" #include "../../functions.h" #include "../../saveload.h" +#include "../../player_func.h" +#include "../../player_base.h" #include "default.h" // remove some day perhaps? diff --git a/src/ai/default/default.h b/src/ai/default/default.h index 934f96f22..bbe84770f 100644 --- a/src/ai/default/default.h +++ b/src/ai/default/default.h @@ -4,6 +4,8 @@ #define DEFAULT_H #include "../../direction_type.h" +#include "../../vehicle_type.h" +#include "../../rail_type.h" void AiDoGameLoop(Player*); void SaveLoad_AI(PlayerID id); diff --git a/src/ai/trolly/build.cpp b/src/ai/trolly/build.cpp index 388a40b66..44e03cb07 100644 --- a/src/ai/trolly/build.cpp +++ b/src/ai/trolly/build.cpp @@ -12,6 +12,8 @@ #include "../../bridge.h" #include "../../vehicle_func.h" #include "../../vehicle_base.h" +#include "../../player_base.h" +#include "../../player_func.h" #include "../ai.h" // Build HQ diff --git a/src/ai/trolly/pathfinder.cpp b/src/ai/trolly/pathfinder.cpp index 945691675..d3dcc96c2 100644 --- a/src/ai/trolly/pathfinder.cpp +++ b/src/ai/trolly/pathfinder.cpp @@ -12,6 +12,8 @@ #include "../../tunnelbridge_map.h" #include "../ai.h" #include "../../variables.h" +#include "../../player_base.h" +#include "../../player_func.h" #define TEST_STATION_NO_DIR 0xFF diff --git a/src/ai/trolly/shared.cpp b/src/ai/trolly/shared.cpp index 8e0860432..7773934d3 100644 --- a/src/ai/trolly/shared.cpp +++ b/src/ai/trolly/shared.cpp @@ -5,6 +5,7 @@ #include "../../debug.h" #include "../../map_func.h" #include "../../vehicle_base.h" +#include "../../player_base.h" #include "trolly.h" int AiNew_GetRailDirection(TileIndex tile_a, TileIndex tile_b, TileIndex tile_c) diff --git a/src/ai/trolly/trolly.cpp b/src/ai/trolly/trolly.cpp index 3f0cf58ba..8a863142e 100644 --- a/src/ai/trolly/trolly.cpp +++ b/src/ai/trolly/trolly.cpp @@ -36,6 +36,8 @@ #include "../../date_func.h" #include "../ai.h" #include "../../order.h" +#include "../../player_base.h" +#include "../../player_func.h" PlayerAiNew _players_ainew[MAX_PLAYERS]; diff --git a/src/ai/trolly/trolly.h b/src/ai/trolly/trolly.h index c367867f5..43966f423 100644 --- a/src/ai/trolly/trolly.h +++ b/src/ai/trolly/trolly.h @@ -4,7 +4,9 @@ #define AI_TROLLY_H #include "../../aystar.h" -#include "../../player.h" +#include "../../player_type.h" +#include "../../vehicle_type.h" +#include "../../date_type.h" /* * These defines can be altered to change the behavoir of the AI diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 75d64f485..cdf58a2eb 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -15,7 +15,6 @@ #include "engine.h" #include "station.h" #include "news.h" -#include "player.h" #include "aircraft.h" #include "airport.h" #include "vehicle_gui.h" @@ -37,6 +36,7 @@ #include "autoreplace_func.h" #include "autoreplace_gui.h" #include "gfx_func.h" +#include "player_func.h" void Aircraft::UpdateDeltaXY(Direction direction) { diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index fe73681bf..c9b733e76 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -10,7 +10,6 @@ #include "table/strings.h" #include "gui.h" #include "engine.h" -#include "player.h" #include "depot.h" #include "vehicle_gui.h" #include "newgrf_engine.h" diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index d83053ce3..a2a9e0a90 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -19,7 +19,7 @@ #include "variables.h" #include "viewport_func.h" #include "gfx_func.h" -#include "player.h" +#include "player_func.h" static byte _selected_airport_type; diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index 3ef22d687..c06be60c9 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -6,7 +6,7 @@ #include "ship.h" #include "table/strings.h" #include "news.h" -#include "player.h" +#include "player_func.h" #include "engine.h" #include "debug.h" #include "vehicle_gui.h" diff --git a/src/autoreplace_func.h b/src/autoreplace_func.h index cc1cdf194..e640b84bc 100644 --- a/src/autoreplace_func.h +++ b/src/autoreplace_func.h @@ -6,7 +6,7 @@ #define AUTOREPLACE_FUNC_H #include "autoreplace_type.h" -#include "player.h" +#include "player_base.h" /** * Remove all engine replacement settings for the player. diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 0a68db43e..ce18ac732 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -19,6 +19,7 @@ #include "vehicle_func.h" #include "autoreplace_func.h" #include "gfx_func.h" +#include "player_func.h" static RailType _railtype_selected_in_replace_gui; diff --git a/src/autoslope.h b/src/autoslope.h index 73f5392b1..036b43a57 100644 --- a/src/autoslope.h +++ b/src/autoslope.h @@ -7,7 +7,7 @@ #include "depot.h" #include "settings_type.h" -#include "player.h" +#include "player_func.h" /** * Autoslope check for tiles with an entrance on an edge. diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 3faa86d63..69cb432b0 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -17,7 +17,7 @@ #include "station.h" #include "command_func.h" #include "engine.h" -#include "player.h" +#include "player_func.h" #include "depot.h" #include "airport.h" #include "vehicle_gui.h" diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 60ea33aa4..afcdc268c 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "clear_map.h" #include "table/strings.h" -#include "player.h" #include "command_func.h" #include "bridge.h" #include "landscape.h" diff --git a/src/command.cpp b/src/command.cpp index 95dde1d7f..d48cc9906 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -9,7 +9,6 @@ #include "tile_map.h" #include "gui.h" #include "command_func.h" -#include "player.h" #include "network/network.h" #include "variables.h" #include "genworld.h" @@ -20,6 +19,8 @@ #include "town.h" #include "date_func.h" #include "debug.h" +#include "player_func.h" +#include "player_base.h" const char *_cmd_text = NULL; diff --git a/src/console.cpp b/src/console.cpp index a31a30717..b5fbf83ab 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -8,7 +8,6 @@ #include "gui.h" #include "textbuf_gui.h" #include "window_gui.h" -#include "player.h" #include "variables.h" #include <stdarg.h> #include <string.h> diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index b47a6d521..ede00c4c2 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -30,6 +30,8 @@ #include "date_func.h" #include "vehicle_func.h" #include "string_func.h" +#include "player_func.h" +#include "player_base.h" // ** scriptfile handling ** // static FILE *_script_file; diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index d9de5b594..f628da3cb 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -23,7 +23,7 @@ #include "strings_func.h" #include "window_func.h" #include "vehicle_func.h" -#include "player.h" +#include "player_func.h" /* * Since all depot window sizes aren't the same, we need to modify sizes a little. diff --git a/src/disaster_cmd.cpp b/src/disaster_cmd.cpp index 985ae8866..146f7c98e 100644 --- a/src/disaster_cmd.cpp +++ b/src/disaster_cmd.cpp @@ -30,7 +30,7 @@ #include "waypoint.h" #include "town.h" #include "industry.h" -#include "player.h" +#include "player_func.h" #include "airport.h" #include "variables.h" #include "table/sprites.h" diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index 6add0c47a..a26a8a497 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -20,7 +20,7 @@ #include "sound_func.h" #include "viewport_func.h" #include "gfx_func.h" -#include "player.h" +#include "player_func.h" static void ShowBuildDockStationPicker(); static void ShowBuildDocksDepotPicker(); diff --git a/src/economy.cpp b/src/economy.cpp index 02b928a42..30ebd96c6 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -9,7 +9,8 @@ #include "table/strings.h" #include "table/sprites.h" #include "news.h" -#include "player.h" +#include "player_base.h" +#include "player_func.h" #include "station.h" #include "command_func.h" #include "saveload.h" diff --git a/src/economy_func.h b/src/economy_func.h index af65dcd11..0f7a532b9 100644 --- a/src/economy_func.h +++ b/src/economy_func.h @@ -12,6 +12,7 @@ #include "tile_type.h" #include "town_type.h" #include "industry_type.h" +#include "player_type.h" struct Player; diff --git a/src/economy_type.h b/src/economy_type.h index b551e1512..9b12f4336 100644 --- a/src/economy_type.h +++ b/src/economy_type.h @@ -127,4 +127,10 @@ enum ExpensesType { INVALID_EXPENSES = 0xFF, }; +/* The "steps" in loan size, in British Pounds! */ +enum { + LOAN_INTERVAL = 10000, + LOAN_INTERVAL_OLD_AI = 50000, +}; + #endif /* ECONOMY_TYPE_H */ diff --git a/src/elrail.cpp b/src/elrail.cpp index 827ab2cd0..e0b158aea 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -65,7 +65,7 @@ #include "transparency.h" #include "tunnelbridge_map.h" #include "vehicle_func.h" -#include "player.h" +#include "player_base.h" static inline TLG GetTLG(TileIndex t) diff --git a/src/engine.cpp b/src/engine.cpp index 47d6ba047..c0813f87b 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -7,7 +7,8 @@ #include "debug.h" #include "table/strings.h" #include "engine.h" -#include "player.h" +#include "player_base.h" +#include "player_func.h" #include "command_func.h" #include "news.h" #include "saveload.h" diff --git a/src/engine.h b/src/engine.h index d4d004007..08f1caf8a 100644 --- a/src/engine.h +++ b/src/engine.h @@ -11,6 +11,7 @@ #include "gfx_type.h" #include "date_type.h" #include "sound_type.h" +#include "player_type.h" enum RailVehicleTypes { RAILVEH_SINGLEHEAD, ///< indicates a "standalone" locomotive diff --git a/src/genworld.cpp b/src/genworld.cpp index 15c3f961b..9359ac014 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -5,7 +5,7 @@ #include "stdafx.h" #include "openttd.h" #include "landscape.h" -#include "player.h" +#include "player_func.h" #include "table/sprites.h" #include "variables.h" #include "thread.h" @@ -22,6 +22,7 @@ #include "map_func.h" #include "date_func.h" #include "core/random_func.hpp" +#include "engine.h" void GenerateClearTile(); void GenerateIndustries(); diff --git a/src/genworld.h b/src/genworld.h index 4c78e612f..ebac04e16 100644 --- a/src/genworld.h +++ b/src/genworld.h @@ -15,6 +15,8 @@ #define OTTDThread void #endif +#include "player_type.h" + /* * Order of these enums has to be the same as in lang/english.txt * Otherwise you will get inconsistent behaviour. diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 1b34fc451..95f456752 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -11,7 +11,6 @@ #include "window_gui.h" #include "textbuf_gui.h" #include "gfxinit.h" -#include "player.h" #include "command_func.h" #include "variables.h" #include "settings_func.h" diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 995e3a63f..672ba51d0 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -8,7 +8,8 @@ #include "table/sprites.h" #include "gui.h" #include "window_gui.h" -#include "player.h" +#include "player_base.h" +#include "player_gui.h" #include "economy_func.h" #include "variables.h" #include "cargotype.h" diff --git a/src/group.h b/src/group.h index 08b354b00..caf58e0f9 100644 --- a/src/group.h +++ b/src/group.h @@ -6,6 +6,9 @@ #define GROUP_H #include "oldpool.h" +#include "player_type.h" +#include "vehicle_type.h" +#include "engine.h" enum { ALL_GROUP = 0xFFFD, diff --git a/src/group_cmd.cpp b/src/group_cmd.cpp index 967956b62..16f3d5cb7 100644 --- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "variables.h" -#include "player.h" #include "table/strings.h" #include "command_func.h" #include "saveload.h" @@ -22,6 +21,7 @@ #include "autoreplace_base.h" #include "autoreplace_func.h" #include "string_func.h" +#include "player_func.h" /** * Update the num engines of a groupID. Decrease the old one and increase the new one diff --git a/src/group_gui.cpp b/src/group_gui.cpp index bb5b25e2c..7ec5287b6 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -24,7 +24,7 @@ #include "string_func.h" #include "viewport_func.h" #include "gfx_func.h" -#include "player.h" +#include "player_func.h" struct Sorting { @@ -289,7 +289,6 @@ static void UpdateGroupActionDropdown(Window *w, GroupID gid, bool refresh = tru static void GroupWndProc(Window *w, WindowEvent *e) { const PlayerID owner = (PlayerID)GB(w->window_number, 0, 8); - const Player *p = GetPlayer(owner); groupveh_d *gv = &WP(w, groupveh_d); grouplist_d *gl = &WP(w, groupveh_d).gl; @@ -369,7 +368,7 @@ static void GroupWndProc(Window *w, WindowEvent *e) /* If selected_group == DEFAULT_GROUP || ALL_GROUP, draw the standard caption We list all vehicles or ungrouped vehicles */ if (IsDefaultGroupID(gv->group_sel) || IsAllGroupID(gv->group_sel)) { - SetDParam(0, p->index); + SetDParam(0, owner); SetDParam(1, gv->l.list_length); switch (gv->vehicle_type) { @@ -85,9 +85,6 @@ void ShowBuildTreesScenToolbar(); void ShowTownDirectory(); void ShowIndustryDirectory(); void ShowSubsidiesList(); -void ShowPlayerStations(PlayerID player); -void ShowPlayerFinances(PlayerID player); -void ShowPlayerCompany(PlayerID player); void ShowEstimatedCostOrIncome(Money cost, int x, int y); void ShowErrorMessage(StringID msg_1, StringID msg_2, int x, int y); diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index bd873ffbd..a8e5b2f2d 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -23,7 +23,7 @@ #include "newgrf_text.h" #include "strings_func.h" #include "map_func.h" -#include "player.h" +#include "player_func.h" bool _ignore_restrictions; diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index 696b93760..3be6109b0 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -9,7 +9,6 @@ #include "gui.h" #include "window_gui.h" #include "textbuf_gui.h" -#include "player.h" #include "network/network.h" #include "variables.h" #include "heightmap.h" diff --git a/src/landscape.cpp b/src/landscape.cpp index 3c0e52a7f..c2acd0b70 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -5,7 +5,6 @@ #include "bridge_map.h" #include "heightmap.h" #include "clear_map.h" -#include "player.h" #include "spritecache.h" #include "table/sprites.h" #include <stdarg.h> diff --git a/src/livery.h b/src/livery.h index 51da83c51..64d6deba5 100644 --- a/src/livery.h +++ b/src/livery.h @@ -5,6 +5,7 @@ #ifndef LIVERY_H #define LIVERY_H +#include "player_type.h" /* List of different livery schemes. */ enum LiveryScheme { @@ -63,4 +64,11 @@ struct Livery { byte colour2; ///< Second colour, for vehicles with 2CC support. }; +/** + * Reset the livery schemes to the player's primary colour. + * This is used on loading games without livery information and on new player start up. + * @param p Player to reset. + */ +void ResetPlayerLivery(Player *p); + #endif /* LIVERY_H */ diff --git a/src/main_gui.cpp b/src/main_gui.cpp index 17a426043..24a98c4ec 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -14,7 +14,6 @@ #include "window_func.h" #include "textbuf_gui.h" #include "viewport_func.h" -#include "player.h" #include "command_func.h" #include "news.h" #include "town.h" @@ -49,6 +48,9 @@ #include "strings_func.h" #include "zoom_func.h" #include "string_func.h" +#include "player_base.h" +#include "player_func.h" +#include "player_gui.h" static int _rename_id = 1; static int _rename_what = -1; diff --git a/src/misc.cpp b/src/misc.cpp index 853d41b76..c3d078338 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -7,7 +7,6 @@ #include "currency.h" #include "landscape.h" #include "news.h" -#include "player.h" #include "table/strings.h" #include "table/sprites.h" #include "saveload.h" diff --git a/src/misc_cmd.cpp b/src/misc_cmd.cpp index 1f05f5fd1..efa1268aa 100644 --- a/src/misc_cmd.cpp +++ b/src/misc_cmd.cpp @@ -7,7 +7,6 @@ #include "table/strings.h" #include "command_func.h" #include "economy_func.h" -#include "player.h" #include "gui.h" #include "window_func.h" #include "textbuf_gui.h" @@ -20,6 +19,9 @@ #include "functions.h" #include "vehicle_func.h" #include "string_func.h" +#include "player_func.h" +#include "player_base.h" +#include "player_gui.h" /** Change the player's face. * @param tile unused diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index f403f0674..3e5ed9633 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -22,7 +22,8 @@ #include "gfx_func.h" #include "station.h" #include "command_func.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "town.h" #include "network/network.h" #include "variables.h" @@ -40,6 +41,7 @@ #include "date_func.h" #include "sound_func.h" #include "string_func.h" +#include "player_gui.h" /* Variables to display file lists */ FiosItem *_fios_list; diff --git a/src/network/core/tcp.h b/src/network/core/tcp.h index 8314edc17..16a795e28 100644 --- a/src/network/core/tcp.h +++ b/src/network/core/tcp.h @@ -12,6 +12,7 @@ #include "os_abstraction.h" #include "core.h" #include "packet.h" +#include "../../tile_type.h" /** * Enum with all types of UDP packets. diff --git a/src/network/network.cpp b/src/network/network.cpp index cba0c3829..7b44daa5c 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -32,6 +32,7 @@ extern const char _openttd_revision[]; #include "../core/random_func.hpp" #include "../window_func.h" #include "../string_func.h" +#include "../player_func.h" #ifdef DEBUG_DUMP_COMMANDS #include "../core/alloc_func.hpp" #endif /* DEBUG_DUMP_COMMANDS */ diff --git a/src/network/network.h b/src/network/network.h index 81075d137..7fd551704 100644 --- a/src/network/network.h +++ b/src/network/network.h @@ -5,7 +5,8 @@ #ifdef ENABLE_NETWORK -#include "../player.h" +#include "../player_type.h" +#include "../economy_type.h" #include "core/config.h" #include "core/game.h" diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 0691cfabc..190f6b944 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -22,6 +22,9 @@ #include "../strings_func.h" #include "../window_func.h" #include "../string_func.h" +#include "../player_func.h" +#include "../player_base.h" +#include "../player_gui.h" // This file handles all the client-commands diff --git a/src/network/network_data.cpp b/src/network/network_data.cpp index 33e594256..f864fefd8 100644 --- a/src/network/network_data.cpp +++ b/src/network/network_data.cpp @@ -11,6 +11,7 @@ #include "../core/alloc_func.hpp" #include "../string_func.h" #include "../date_func.h" +#include "../player_func.h" // Add a command to the local command queue void NetworkAddCommandQueue(NetworkTCPSocketHandler *cs, CommandPacket *cp) diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 20c5e8ca4..ee7106bcf 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -27,6 +27,7 @@ #include "../core/alloc_func.hpp" #include "../string_func.h" #include "../gfx_func.h" +#include "../player_func.h" #define BGC 5 #define BTC 15 diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 21f14356f..bb56bba89 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -23,6 +23,9 @@ #include "../core/alloc_func.hpp" #include "../fileio.h" #include "../string_func.h" +#include "../player_base.h" +#include "../player_func.h" +#include "../player_gui.h" // This file handles all the server-commands diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index 741e83b40..441b45b0a 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -20,6 +20,8 @@ #include "../newgrf_config.h" #include "../core/endian_func.hpp" #include "../string_func.h" +#include "../player_base.h" +#include "../player_func.h" #include "core/udp.h" diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 2ff8ed712..acccbf467 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -47,7 +47,7 @@ #include "sound_func.h" #include "string_func.h" #include "road_func.h" -#include "player.h" +#include "player_base.h" /* TTDPatch extended GRF format codec * (c) Petr Baudis 2004 (GPL'd) diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index 5a3de90e2..85af072ae 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -8,7 +8,8 @@ #include "debug.h" #include "engine.h" #include "train.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "station.h" #include "airport.h" #include "newgrf.h" diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index 191f918bf..929e61890 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -23,7 +23,7 @@ #include "newgrf_commons.h" #include "transparency.h" #include "functions.h" -#include "player.h" +#include "player_func.h" static BuildingCounts _building_counts; static HouseClassMapping _class_mapping[HOUSE_CLASS_MAX]; diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index be941f75f..4fd63b79f 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -20,7 +20,8 @@ #include "newgrf_town.h" #include "window_func.h" #include "town.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" /* Since the industry IDs defined by the GRF file don't necessarily correlate * to those used by the game, the IDs used for overriding old industries must be diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index e4b5cb02a..13c6da683 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -23,7 +23,7 @@ #include "newgrf_town.h" #include "gfx_func.h" #include "date_func.h" -#include "player.h" +#include "player_func.h" static StationClass station_classes[STAT_CLASS_MAX]; diff --git a/src/oldloader.cpp b/src/oldloader.cpp index 52731c48c..86782a263 100644 --- a/src/oldloader.cpp +++ b/src/oldloader.cpp @@ -9,7 +9,8 @@ #include "town.h" #include "industry.h" #include "station.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "engine.h" #include "aircraft.h" #include "roadveh.h" diff --git a/src/openttd.cpp b/src/openttd.cpp index 7890c3cf6..426d85710 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -24,7 +24,8 @@ #include "gfx_func.h" #include "window_func.h" #include "window_gui.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "command_func.h" #include "town.h" #include "industry.h" diff --git a/src/openttd.h b/src/openttd.h index 228fa5fa0..aea9a5336 100644 --- a/src/openttd.h +++ b/src/openttd.h @@ -45,8 +45,6 @@ assert_compile(sizeof(DestinationID) == sizeof(DepotID)); assert_compile(sizeof(DestinationID) == sizeof(WaypointID)); assert_compile(sizeof(DestinationID) == sizeof(StationID)); -typedef uint32 PlayerFace; ///< player face bits, info see in player_face.h - enum GameModes { GM_MENU, GM_NORMAL, @@ -82,33 +80,6 @@ enum InitializeGameModes { IG_DATE_RESET = 1, /* Reset the date when initializing a game */ }; -enum Owner { - PLAYER_INACTIVE_CLIENT = 253, - PLAYER_NEW_COMPANY = 254, - PLAYER_SPECTATOR = 255, - OWNER_BEGIN = 0x00, - PLAYER_FIRST = 0x00, - MAX_PLAYERS = 8, - OWNER_TOWN = 0x0F, // a town owns the tile - OWNER_NONE = 0x10, // nobody owns the tile - OWNER_WATER = 0x11, // "water" owns the tile - OWNER_END = 0x12, - INVALID_OWNER = 0xFF, - INVALID_PLAYER = 0xFF, - /* Player identifiers All players below MAX_PLAYERS are playable - * players, above, they are special, computer controlled players */ -}; - -typedef Owner PlayerID; - -DECLARE_POSTFIX_INCREMENT(Owner); - -/** Define basic enum properties */ -template <> struct EnumPropsT<Owner> : MakeEnumPropsT<Owner, byte, OWNER_BEGIN, OWNER_END, INVALID_OWNER> {}; -typedef TinyEnumT<Owner> OwnerByte; -typedef OwnerByte PlayerByte; - - enum TransportType { /* These constants are for now linked to the representation of bridges * and tunnels, so they can be used by GetTileTrackStatus_TunnelBridge. @@ -128,7 +99,6 @@ enum TransportType { template <> struct EnumPropsT<TransportType> : MakeEnumPropsT<TransportType, byte, TRANSPORT_BEGIN, TRANSPORT_END, INVALID_TRANSPORT> {}; typedef TinyEnumT<TransportType> TransportTypeByte; - /* Display Options */ enum { DO_SHOW_TOWN_NAMES = 0, diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index d2bd70db6..c301da838 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -11,7 +11,7 @@ #include "waypoint.h" #include "command_func.h" #include "station.h" -#include "player.h" +#include "player_func.h" #include "news.h" #include "saveload.h" #include "vehicle_gui.h" diff --git a/src/order_gui.cpp b/src/order_gui.cpp index f7a0b32e6..d58489642 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -27,7 +27,7 @@ #include "window_func.h" #include "vehicle_func.h" #include "settings_type.h" -#include "player.h" +#include "player_func.h" enum OrderWindowWidgets { ORDER_WIDGET_CLOSEBOX = 0, diff --git a/src/player.h b/src/player_base.h index cc6133d72..ce068e9e4 100644 --- a/src/player.h +++ b/src/player_base.h @@ -1,9 +1,9 @@ /* $Id$ */ -/** @file player.h */ +/** @file player_base.h Definition of stuff that is very close to a player, like the player struct itself. */ -#ifndef PLAYER_H -#define PLAYER_H +#ifndef PLAYER_BASE_H +#define PLAYER_BASE_H #include "road_type.h" #include "rail_type.h" @@ -22,12 +22,6 @@ struct PlayerEconomyEntry { Money company_value; }; -/* The "steps" in loan size, in British Pounds! */ -enum { - LOAN_INTERVAL = 10000, - LOAN_INTERVAL_OLD_AI = 50000, -}; - struct Player { uint32 name_2; uint16 name_1; @@ -77,22 +71,9 @@ struct Player { uint16 num_engines[TOTAL_NUM_ENGINES]; ///< caches the number of engines of each type the player owns (no need to save this) }; -uint16 GetDrawStringPlayerColor(PlayerID player); - -void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player); -void GetNameOfOwner(Owner owner, TileIndex tile); -Money CalculateCompanyValue(const Player *p); -void InvalidatePlayerWindows(const Player *p); -void SetLocalPlayer(PlayerID new_player); +extern Player _players[MAX_PLAYERS]; #define FOR_ALL_PLAYERS(p) for (p = _players; p != endof(_players); p++) -VARDEF PlayerByte _local_player; -VARDEF PlayerByte _current_player; - -VARDEF Player _players[MAX_PLAYERS]; -/* NOSAVE: can be determined from player structs */ -VARDEF byte _player_colors[MAX_PLAYERS]; - static inline byte ActivePlayerCount() { const Player *p; @@ -111,45 +92,6 @@ static inline Player *GetPlayer(PlayerID i) return &_players[i]; } -static inline bool IsLocalPlayer() -{ - return _local_player == _current_player; -} - -static inline bool IsValidPlayer(PlayerID pi) -{ - return IsInsideBS(pi, PLAYER_FIRST, MAX_PLAYERS); -} - -static inline bool IsHumanPlayer(PlayerID pi) -{ - return !GetPlayer(pi)->is_ai; -} - -static inline bool IsInteractivePlayer(PlayerID pi) -{ - return pi == _local_player; -} - -void DrawPlayerIcon(PlayerID p, int x, int y); - -struct HighScore { - char company[100]; - StringID title; ///< NO_SAVE, has troubles with changing string-numbers. - uint16 score; ///< do NOT change type, will break hs.dat -}; - -VARDEF HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5 -void SaveToHighScore(); -void LoadFromHighScore(); -int8 SaveHighScoreValue(const Player *p); -int8 SaveHighScoreValueNetwork(); - -/** - * Reset the livery schemes to the player's primary colour. - * This is used on loading games without livery information and on new player start up. - * @param p Player to reset. - */ -void ResetPlayerLivery(Player *p); +Money CalculateCompanyValue(const Player *p); -#endif /* PLAYER_H */ +#endif /* PLAYER_BASE_H */ diff --git a/src/player_func.h b/src/player_func.h new file mode 100644 index 000000000..2017e2cc6 --- /dev/null +++ b/src/player_func.h @@ -0,0 +1,53 @@ +/* $Id$ */ + +/** @file player_func.h Functions related to players. */ + +#ifndef PLAYER_FUNC_H +#define PLAYER_FUNC_H + +#include "core/math_func.hpp" +#include "player_type.h" +#include "tile_type.h" + +void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player); +void GetNameOfOwner(Owner owner, TileIndex tile); +void SetLocalPlayer(PlayerID new_player); + +extern PlayerByte _local_player; +extern PlayerByte _current_player; +/* NOSAVE: can be determined from player structs */ +extern byte _player_colors[MAX_PLAYERS]; +extern PlayerFace _player_face; ///< for player face storage in openttd.cfg + +bool IsHumanPlayer(PlayerID pi); + +static inline bool IsLocalPlayer() +{ + return _local_player == _current_player; +} + +static inline bool IsValidPlayer(PlayerID pi) +{ + return IsInsideBS(pi, PLAYER_FIRST, MAX_PLAYERS); +} + +static inline bool IsInteractivePlayer(PlayerID pi) +{ + return pi == _local_player; +} + + + +struct HighScore { + char company[100]; + StringID title; ///< NO_SAVE, has troubles with changing string-numbers. + uint16 score; ///< do NOT change type, will break hs.dat +}; + +extern HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5 +void SaveToHighScore(); +void LoadFromHighScore(); +int8 SaveHighScoreValue(const Player *p); +int8 SaveHighScoreValueNetwork(); + +#endif /* PLAYER_FUNC_H */ diff --git a/src/player_gui.cpp b/src/player_gui.cpp index 22c9f4e28..afdb26586 100644 --- a/src/player_gui.cpp +++ b/src/player_gui.cpp @@ -11,7 +11,8 @@ #include "textbuf_gui.h" #include "viewport_func.h" #include "gfx_func.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "command_func.h" #include "network/network.h" #include "variables.h" @@ -29,6 +30,13 @@ #include "date_func.h" #include "string_func.h" +/* player face selection window */ +struct facesel_d { + PlayerFace face; // player face bits + bool advanced; // advance player face selection window +}; +assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(facesel_d)); + static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied); static void DoSelectPlayerFace(PlayerID player, bool show_big); diff --git a/src/player_gui.h b/src/player_gui.h new file mode 100644 index 000000000..a1ed36fcb --- /dev/null +++ b/src/player_gui.h @@ -0,0 +1,20 @@ +/* $Id$ */ + +/** @file player_gui.h GUI Functions related to players. */ + +#ifndef PLAYER_GUI_H +#define PLAYER_GUI_H + +#include "player_type.h" + +uint16 GetDrawStringPlayerColor(PlayerID player); +void DrawPlayerIcon(PlayerID p, int x, int y); + +void ShowPlayerStations(PlayerID player); +void ShowPlayerFinances(PlayerID player); +void ShowPlayerCompany(PlayerID player); + +void InvalidatePlayerWindows(const Player *p); +void DeletePlayerWindows(PlayerID pi); + +#endif /* PLAYER_GUI_H */ diff --git a/src/player_type.h b/src/player_type.h new file mode 100644 index 000000000..0e183fabe --- /dev/null +++ b/src/player_type.h @@ -0,0 +1,41 @@ +/* $Id$ */ + +/** @file player_type.h Types related to players. */ + +#ifndef PLAYER_TYPE_H +#define PLAYER_TYPE_H + +/** + * Enum for all players/owners. + */ +enum Owner { + /* Player identifiers All players below MAX_PLAYERS are playable + * players, above, they are special, computer controlled players */ + OWNER_BEGIN = 0x00, ///< First Owner + PLAYER_FIRST = 0x00, ///< First Player, same as owner + MAX_PLAYERS = 0x08, ///< Maximum numbe rof players + OWNER_TOWN = 0x0F, ///< A town owns the tile, or a town is expanding + OWNER_NONE = 0x10, ///< The tile has no ownership + OWNER_WATER = 0x11, ///< The tile/execution is done by "water" + OWNER_END, ///< Last + 1 owner + INVALID_OWNER = 0xFF, ///< An invalid owner + INVALID_PLAYER = 0xFF, ///< And a valid owner + + /* 'Fake' Players used for networks */ + PLAYER_INACTIVE_CLIENT = 253, ///< The client is joining + PLAYER_NEW_COMPANY = 254, ///< The client wants a new company + PLAYER_SPECTATOR = 255, ///< The client is spectating +}; +DECLARE_POSTFIX_INCREMENT(Owner); + +/** Define basic enum properties */ +template <> struct EnumPropsT<Owner> : MakeEnumPropsT<Owner, byte, OWNER_BEGIN, OWNER_END, INVALID_OWNER> {}; +typedef TinyEnumT<Owner> OwnerByte; + +typedef Owner PlayerID; +typedef OwnerByte PlayerByte; + +struct Player; +typedef uint32 PlayerFace; ///< player face bits, info see in player_face.h + +#endif /* PLAYER_TYPE_H */ diff --git a/src/players.cpp b/src/players.cpp index 3945b2424..c2f587f9a 100644 --- a/src/players.cpp +++ b/src/players.cpp @@ -7,7 +7,8 @@ #include "engine.h" #include "table/strings.h" #include "table/sprites.h" -#include "player.h" +#include "player_func.h" +#include "player_gui.h" #include "town.h" #include "station.h" #include "news.h" @@ -35,6 +36,14 @@ #include "road_func.h" #include "rail.h" +Player _players[MAX_PLAYERS]; +PlayerByte _local_player; +PlayerByte _current_player; +/* NOSAVE: can be determined from player structs */ +byte _player_colors[MAX_PLAYERS]; +PlayerFace _player_face; ///< for player face storage in openttd.cfg +HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5 + /** * Sets the local player and updates the patch settings that are set on a * per-company (player) basis to reflect the core's state in the GUI. @@ -58,6 +67,11 @@ void SetLocalPlayer(PlayerID new_player) } } +bool IsHumanPlayer(PlayerID pi) +{ + return !GetPlayer(pi)->is_ai; +} + uint16 GetDrawStringPlayerColor(PlayerID player) { diff --git a/src/rail.cpp b/src/rail.cpp index f903098ce..99119ce09 100644 --- a/src/rail.cpp +++ b/src/rail.cpp @@ -11,7 +11,8 @@ #include "tunnelbridge_map.h" #include "settings_type.h" #include "date_func.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" /* XXX: Below 3 tables store duplicate data. Maybe remove some? */ diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index efe86595a..96a1cc176 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -27,7 +27,7 @@ #include "window_func.h" #include "date_func.h" #include "sound_func.h" -#include "player.h" +#include "player_func.h" #include "bridge_map.h" #include "rail_map.h" diff --git a/src/road.cpp b/src/road.cpp index 698bb37fe..7fa9b4398 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -7,7 +7,8 @@ #include "road_internal.h" #include "water_map.h" #include "genworld.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "engine.h" #include "settings_type.h" #include "date_func.h" diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 9094884a3..b8d5025d8 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -18,7 +18,6 @@ #include "town_map.h" #include "viewport_func.h" #include "command_func.h" -#include "player.h" #include "town.h" #include "yapf/yapf.h" #include "depot.h" diff --git a/src/road_func.h b/src/road_func.h index 59de2d0a5..6cc9b6a94 100644 --- a/src/road_func.h +++ b/src/road_func.h @@ -8,6 +8,7 @@ #include "core/bitmath_func.hpp" #include "road_type.h" #include "direction_func.h" +#include "player_type.h" /** * Whether the given roadtype is valid. diff --git a/src/road_gui.cpp b/src/road_gui.cpp index f5194c367..5e793adc0 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -23,7 +23,7 @@ #include "window_func.h" #include "vehicle_func.h" #include "sound_func.h" -#include "player.h" +#include "player_func.h" static void ShowRVStationPicker(RoadStop::Type rs); diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index b445cdd03..83a9b1588 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -18,7 +18,8 @@ #include "news.h" #include "pathfind.h" #include "npf.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "depot.h" #include "bridge.h" #include "tunnel_map.h" diff --git a/src/saveload.cpp b/src/saveload.cpp index 0a627a0dd..9970c6458 100644 --- a/src/saveload.cpp +++ b/src/saveload.cpp @@ -19,7 +19,6 @@ #include "station.h" #include "thread.h" #include "town.h" -#include "player.h" #include "saveload.h" #include "network/network.h" #include "variables.h" diff --git a/src/screenshot.cpp b/src/screenshot.cpp index 822a3e0cf..46e81fc62 100644 --- a/src/screenshot.cpp +++ b/src/screenshot.cpp @@ -7,7 +7,7 @@ #include "fileio.h" #include "viewport_func.h" #include "gfx_func.h" -#include "player.h" +#include "core/math_func.hpp" #include "screenshot.h" #include "variables.h" #include "blitter/factory.hpp" @@ -18,6 +18,7 @@ #include "core/endian_func.hpp" #include "map_func.h" #include "date_func.h" +#include "player_func.h" char _screenshot_format_name[8]; uint _num_screenshot_formats; diff --git a/src/settings.cpp b/src/settings.cpp index af6999ed4..773cdd45b 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -42,6 +42,7 @@ #include "vehicle_func.h" #include "sound_func.h" #include "core/alloc_func.hpp" +#include "player_func.h" #ifdef WITH_FREETYPE #include "fontcache.h" #endif diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 0d4dff71e..161e7ea1a 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -15,7 +15,8 @@ #include "station.h" #include "news.h" #include "engine.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "npf.h" #include "depot.h" #include "vehicle_gui.h" diff --git a/src/signal.cpp b/src/signal.cpp index b4e0bcfb6..d00931487 100644 --- a/src/signal.cpp +++ b/src/signal.cpp @@ -17,7 +17,7 @@ #include "track_type.h" #include "track_func.h" #include "signal_func.h" -#include "player.h" +#include "player_func.h" /** these are the maximums used for updating signal blocks */ diff --git a/src/signs.cpp b/src/signs.cpp index 7ae5d631f..cc20cab6e 100644 --- a/src/signs.cpp +++ b/src/signs.cpp @@ -6,7 +6,7 @@ #include "openttd.h" #include "table/strings.h" #include "landscape.h" -#include "player.h" +#include "player_func.h" #include "signs.h" #include "saveload.h" #include "command_func.h" diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index 87c1b860b..6debec117 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -9,7 +9,7 @@ #include "gui.h" #include "textbuf_gui.h" #include "window_gui.h" -#include "player.h" +#include "player_gui.h" #include "signs.h" #include "debug.h" #include "variables.h" diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index ce583c9d5..0ca556a1e 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -18,7 +18,7 @@ #include "tunnel_map.h" #include "viewport_func.h" #include "gfx_func.h" -#include "player.h" +#include "player_base.h" #include "town.h" #include "variables.h" #include "blitter/factory.hpp" diff --git a/src/station.cpp b/src/station.cpp index 2a04a88c6..404be9bba 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -13,7 +13,7 @@ #include "town.h" #include "news.h" #include "saveload.h" -#include "player.h" +#include "player_func.h" #include "airport.h" #include "sprite.h" #include "depot.h" diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index a57784b58..2b927645d 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -19,7 +19,6 @@ #include "town.h" #include "news.h" #include "saveload.h" -#include "player.h" #include "airport.h" #include "sprite.h" #include "depot.h" diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 1648adb00..d7a768479 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -10,7 +10,7 @@ #include "window_gui.h" #include "textbuf_gui.h" #include "station.h" -#include "player.h" +#include "player_func.h" #include "economy_func.h" #include "town.h" #include "command_func.h" diff --git a/src/strings.cpp b/src/strings.cpp index f5d063603..053984593 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -34,7 +34,8 @@ #include "date_func.h" #include "vehicle_base.h" #include "string_func.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" /* for opendir/readdir/closedir */ # include "fios.h" diff --git a/src/subsidy_gui.cpp b/src/subsidy_gui.cpp index f88d288dd..bec2f7cdb 100644 --- a/src/subsidy_gui.cpp +++ b/src/subsidy_gui.cpp @@ -8,7 +8,6 @@ #include "station.h" #include "industry.h" #include "town.h" -#include "player.h" #include "economy_func.h" #include "variables.h" #include "cargotype.h" diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index 79d7bc124..a38ce3ddb 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -8,7 +8,8 @@ #include "clear_map.h" #include "table/sprites.h" #include "table/strings.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "gui.h" #include "window_gui.h" #include "viewport_func.h" diff --git a/src/tile_cmd.h b/src/tile_cmd.h index dacdfc571..cecb65e3b 100644 --- a/src/tile_cmd.h +++ b/src/tile_cmd.h @@ -12,6 +12,7 @@ #include "cargo_type.h" #include "strings_type.h" #include "date_type.h" +#include "player_type.h" /** The returned bits of VehicleEnterTile. */ enum VehicleEnterTileStatus { diff --git a/src/tile_map.h b/src/tile_map.h index faf5f8dd6..2723443fb 100644 --- a/src/tile_map.h +++ b/src/tile_map.h @@ -7,6 +7,7 @@ #include "tile_type.h" #include "slope_type.h" +#include "player_type.h" #include "map_func.h" #include "core/bitmath_func.hpp" diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index ea6f5d476..e46055f1d 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -7,7 +7,6 @@ #include "variables.h" #include "table/strings.h" #include "command_func.h" -#include "player.h" #include "functions.h" #include "window_func.h" #include "vehicle_func.h" diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index ca21d0102..cfecc3ed6 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -17,7 +17,7 @@ #include "vehicle_base.h" #include "string_func.h" #include "gfx_func.h" -#include "player.h" +#include "player_func.h" static int GetOrderFromTimetableWndPt(Window *w, int y, const Vehicle *v) { diff --git a/src/town.h b/src/town.h index 50dbb171e..65de8e3e9 100644 --- a/src/town.h +++ b/src/town.h @@ -11,6 +11,7 @@ #include "tile_type.h" #include "date_type.h" #include "town_type.h" +#include "player_type.h" enum { HOUSE_NO_CLASS = 0, diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index ec7ca4e02..45151d476 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -18,7 +18,7 @@ #include "command_func.h" #include "industry.h" #include "station.h" -#include "player.h" +#include "player_base.h" #include "news.h" #include "saveload.h" #include "gui.h" diff --git a/src/town_gui.cpp b/src/town_gui.cpp index e0091cb26..99c68967b 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -14,7 +14,9 @@ #include "window_gui.h" #include "textbuf_gui.h" #include "command_func.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" +#include "player_gui.h" #include "network/network.h" #include "variables.h" #include "strings_func.h" diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 0a562c641..3eeb4ba18 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -21,7 +21,8 @@ #include "table/train_cmd.h" #include "news.h" #include "engine.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "depot.h" #include "waypoint.h" #include "vehicle_gui.h" diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index aacfe21d2..0c7a79659 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -20,7 +20,7 @@ #include "genworld.h" #include "transparency.h" #include "functions.h" -#include "player.h" +#include "player_func.h" #include "sound_func.h" /** diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 26e43e872..57a56a48a 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -18,7 +18,6 @@ #include "unmovable_map.h" #include "viewport_func.h" #include "command_func.h" -#include "player.h" #include "town.h" #include "variables.h" #include "bridge.h" diff --git a/src/unmovable_cmd.cpp b/src/unmovable_cmd.cpp index 8a89ae775..ec735edeb 100644 --- a/src/unmovable_cmd.cpp +++ b/src/unmovable_cmd.cpp @@ -10,7 +10,8 @@ #include "landscape.h" #include "command_func.h" #include "viewport_func.h" -#include "player.h" +#include "player_func.h" +#include "player_base.h" #include "gui.h" #include "station.h" #include "town.h" @@ -26,6 +27,7 @@ #include "functions.h" #include "window_func.h" #include "vehicle_func.h" +#include "player_gui.h" /** Destroy a HQ. * During normal gameplay you can only implicitely destroy a HQ when you are diff --git a/src/variables.h b/src/variables.h index 11f5d3e90..253956d53 100644 --- a/src/variables.h +++ b/src/variables.h @@ -86,8 +86,6 @@ VARDEF StringID _error_message; VARDEF bool _rightclick_emulate; -VARDEF PlayerFace _player_face; ///< for player face storage in openttd.cfg - /* IN/OUT parameters to commands */ VARDEF TileIndex _build_tunnel_endtile; VARDEF bool _generating_world; diff --git a/src/vehicle.cpp b/src/vehicle.cpp index d86536131..6631a064a 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -18,7 +18,7 @@ #include "news.h" #include "command_func.h" #include "saveload.h" -#include "player.h" +#include "player_func.h" #include "engine.h" #include "debug.h" #include "vehicle_gui.h" diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 734137667..9e630e0ea 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -15,6 +15,7 @@ #include "gfx_type.h" #include "command_type.h" #include "date_type.h" +#include "player_type.h" #include "oldpool.h" #include "order.h" #include "cargopacket.h" diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 3df4fb6c7..5f35fa8dc 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -5,7 +5,7 @@ #include "stdafx.h" #include "openttd.h" #include "debug.h" -#include "player.h" +#include "player_func.h" #include "station.h" #include "table/sprites.h" #include "table/strings.h" @@ -939,7 +939,6 @@ static void DrawVehicleListWindow(Window *w) int max; int i; const PlayerID owner = (PlayerID)w->caption_color; - const Player *p = GetPlayer(owner); const uint16 window_type = w->window_number & VLW_MASK; const uint16 index = GB(w->window_number, 16, 16); @@ -959,7 +958,7 @@ static void DrawVehicleListWindow(Window *w) break; case VLW_STANDARD: /* Company Name */ - SetDParam(0, p->index); + SetDParam(0, owner); SetDParam(1, w->vscroll.count); break; diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index 97b53e87f..0ba791c93 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -15,6 +15,7 @@ #include "../fios.h" #include "../blitter/factory.hpp" #include "../core/alloc_func.hpp" +#include "../player_func.h" #include "dedicated_v.h" #ifdef BEOS_NET_SERVER diff --git a/src/viewport.cpp b/src/viewport.cpp index 03fe84a09..31f64163a 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -25,7 +25,7 @@ #include "strings_func.h" #include "zoom_func.h" #include "vehicle_func.h" -#include "player.h" +#include "player_func.h" #define VIEWPORT_DRAW_MEM (65536 * 2) diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index 2d31c7038..76c69d59d 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -33,7 +33,7 @@ #include "vehicle_func.h" #include "sound_func.h" #include "variables.h" -#include "player.h" +#include "player_func.h" static Vehicle *FindFloodableVehicleOnTile(TileIndex tile); diff --git a/src/waypoint.cpp b/src/waypoint.cpp index b228b0671..116a40144 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -30,7 +30,7 @@ #include "vehicle_base.h" #include "string_func.h" #include "signal_func.h" -#include "player.h" +#include "player_func.h" enum { diff --git a/src/widget.cpp b/src/widget.cpp index 3e3dd2357..e45e38653 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -4,7 +4,8 @@ #include "stdafx.h" #include "openttd.h" -#include "player.h" +#include "core/math_func.hpp" +#include "player_func.h" #include "table/sprites.h" #include "table/strings.h" #include "gfx_func.h" diff --git a/src/window.cpp b/src/window.cpp index 9d1b8f57d..5253244f3 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -6,7 +6,7 @@ #include <stdarg.h> #include "openttd.h" #include "debug.h" -#include "player.h" +#include "player_func.h" #include "gfx_func.h" #include "console.h" #include "viewport_func.h" diff --git a/src/window_func.h b/src/window_func.h index 2af028356..299f4fc96 100644 --- a/src/window_func.h +++ b/src/window_func.h @@ -6,6 +6,7 @@ #define WINDOW_FUNC_H #include "window_type.h" +#include "player_type.h" /** * Marks the window as dirty for repaint. @@ -18,7 +19,6 @@ void SendWindowMessageClass(WindowClass wnd_class, int msg, int wparam, int lpar Window *FindWindowById(WindowClass cls, WindowNumber number); void DeleteWindow(Window *w); -void DeletePlayerWindows(PlayerID pi); void ChangeWindowOwner(PlayerID old_player, PlayerID new_player); void ResizeWindow(Window *w, int x, int y); diff --git a/src/window_gui.h b/src/window_gui.h index cb1ffa02d..277ef3c27 100644 --- a/src/window_gui.h +++ b/src/window_gui.h @@ -8,6 +8,7 @@ #include "core/bitmath_func.hpp" #include "vehicle_type.h" #include "viewport_type.h" +#include "player_type.h" /** * The maximum number of windows that can be opened. @@ -367,13 +368,6 @@ struct smallmap_d { }; assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(smallmap_d)); -/* player face selection window */ -struct facesel_d { - PlayerFace face; // player face bits - bool advanced; // advance player face selection window -}; -assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(facesel_d)); - struct refit_d { int sel; struct RefitOption *cargo; |