diff --git a/src/ai/ai.cpp b/src/ai/ai.cpp index 0654fcaa18..07b31f77d7 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 96e25ef547..7ecc975715 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 6d72f2043d..b9d0f2f922 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 934f96f22d..bbe84770f1 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 388a40b66d..44e03cb079 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 945691675a..d3dcc96c2d 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 8e08604325..7773934d3d 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 3f0cf58ba3..8a863142e9 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 c367867f58..43966f4231 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 75d64f4855..cdf58a2eb0 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 fe73681bfb..c9b733e76a 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 d83053ce38..a2a9e0a904 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 3ef22d687c..c06be60c94 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 cc1cdf194f..e640b84bc1 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 0a68db43ed..ce18ac7327 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 73f5392b17..036b43a574 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 3faa86d632..69cb432b06 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 60ea33aa42..afcdc268cc 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 95dde1d7fe..d48cc99069 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 a31a30717b..b5fbf83abb 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 #include diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index b47a6d5219..ede00c4c24 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 d9de5b5941..f628da3cb0 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 985ae8866d..146f7c98ea 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 6add0c47a4..a26a8a4977 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 02b928a424..30ebd96c6f 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 af65dcd111..0f7a532b9d 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 b551e1512d..9b12f43363 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 827ab2cd05..e0b158aea1 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 47d6ba047c..c0813f87b9 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 d4d0040075..08f1caf8a9 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 15c3f961bd..9359ac0146 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 4c78e612f0..ebac04e167 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 1b34fc4518..95f4567520 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 995e3a63f1..672ba51d06 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 08b354b005..caf58e0f98 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 967956b62d..16f3d5cb7b 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 bb5b25e2c6..7ec5287b60 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) { diff --git a/src/gui.h b/src/gui.h index 8ff80c1dc3..5987259d59 100644 --- a/src/gui.h +++ b/src/gui.h @@ -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 bd873ffbde..a8e5b2f2d8 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 696b93760e..3be6109b0a 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 3c0e52a7fb..c2acd0b707 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 diff --git a/src/livery.h b/src/livery.h index 51da83c51f..64d6deba5b 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 17a426043a..24a98c4ec6 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 853d41b769..c3d0783388 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 1f05f5fd10..efa1268aad 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 f403f06743..3e5ed96333 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 8314edc179..16a795e28c 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 cba0c3829e..7b44daa5c9 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 81075d137d..7fd5517045 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 0691cfabca..190f6b9441 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 33e594256f..f864fefd8c 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 20c5e8ca4d..ee7106bcfd 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 21f14356f4..bb56bba89c 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 741e83b40b..441b45b0a4 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 2ff8ed712a..acccbf467f 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 5a3de90e21..85af072ae7 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 191f918bf7..929e618903 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 be941f75f4..4fd63b79f5 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 e4b5cb02aa..13c6da683a 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 52731c48c2..86782a2635 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 7890c3cf63..426d857105 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 228fa5fa04..aea9a53363 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 : MakeEnumPropsT {}; -typedef TinyEnumT 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 : MakeEnumPropsT {}; typedef TinyEnumT TransportTypeByte; - /* Display Options */ enum { DO_SHOW_TOWN_NAMES = 0, diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index d2bd70db6c..c301da838e 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 f7a0b32e6f..d584896428 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 similarity index 53% rename from src/player.h rename to src/player_base.h index cc6133d722..ce068e9e45 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 0000000000..2017e2cc62 --- /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 22c9f4e281..afdb265861 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 0000000000..a1ed36fcb8 --- /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 0000000000..0e183fabe2 --- /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 : MakeEnumPropsT {}; +typedef TinyEnumT 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 3945b2424d..c2f587f9a8 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 f903098ced..99119ce09a 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 efe86595af..96a1cc1763 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 698bb37fe1..7fa9b43988 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 9094884a38..b8d5025d8b 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 59de2d0a5b..6cc9b6a94a 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 f5194c367c..5e793adc02 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 b445cdd031..83a9b15884 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 0a627a0dd2..9970c64585 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 822a3e0cfa..46e81fc621 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 af6999ed45..773cdd45b8 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 0d4dff71e2..161e7ea1ad 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 b4e0bcfb6f..d00931487e 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 7ae5d631f6..cc20cab6e9 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 87c1b860bd..6debec117c 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 ce583c9d54..0ca556a1e1 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 2a04a88c6e..404be9bbae 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 a57784b586..2b927645d2 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 1648adb005..d7a7684791 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 f5d063603a..0539845935 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 f88d288dde..bec2f7cdbf 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 79d7bc1242..a38ce3ddbf 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 dacdfc5718..cecb65e3b0 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 faf5f8dd6a..2723443fb9 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 ea6f5d4768..e46055f1d9 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 ca21d01028..cfecc3ed66 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 50dbb171ed..65de8e3e9e 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 ec7ca4e025..45151d4767 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 e0091cb268..99c68967bf 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 0a562c6419..3eeb4ba18a 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 aacfe21d2f..0c7a796591 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 26e43e872a..57a56a48a4 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 8a89ae775f..ec735edebe 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 11f5d3e904..253956d536 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 d865361319..6631a064a9 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 7341376675..9e630e0eac 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 3df4fb6c7e..5f35fa8dc7 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 97b53e87fd..0ba791c937 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 03fe84a09d..31f64163ad 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 2d31c7038b..76c69d59d2 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 b228b06718..116a401441 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 3e3dd2357c..e45e38653d 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 9d1b8f57de..5253244f30 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -6,7 +6,7 @@ #include #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 2af0283564..299f4fc960 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 cb1ffa02da..277ef3c276 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;