diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index aaad423097..81b3da1d97 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -10,7 +10,6 @@ #include "functions.h" #include "landscape.h" #include "station_map.h" -#include "strings.h" #include "table/strings.h" #include "map.h" #include "vehicle.h" @@ -33,6 +32,7 @@ #include "date.h" #include "spritecache.h" #include "cargotype.h" +#include "strings_func.h" void Aircraft::UpdateDeltaXY(Direction direction) { diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index 750db29eec..e095b8a38c 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -9,7 +9,6 @@ #include "functions.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "map.h" #include "gui.h" #include "vehicle.h" @@ -21,6 +20,7 @@ #include "depot.h" #include "vehicle_gui.h" #include "newgrf_engine.h" +#include "strings_func.h" /** * Draw the details for the given vehicle at the position (x,y) diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index d87468f161..a7d1f77a46 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -17,8 +17,8 @@ #include "aircraft.h" #include "cargotype.h" #include "group.h" -#include "strings.h" #include "order.h" +#include "strings_func.h" /* * move the cargo from one engine to another if possible diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 9d4acfeaa2..a912747f2e 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -8,7 +8,6 @@ #include "functions.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "gui.h" #include "command.h" #include "variables.h" @@ -16,7 +15,7 @@ #include "newgrf_engine.h" #include "group.h" #include "rail.h" - +#include "strings_func.h" static RailType _railtype_selected_in_replace_gui; diff --git a/src/bridge_gui.cpp b/src/bridge_gui.cpp index 8affc28d2c..8736daf492 100644 --- a/src/bridge_gui.cpp +++ b/src/bridge_gui.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "map.h" #include "gui.h" @@ -16,6 +15,7 @@ #include "sound.h" #include "variables.h" #include "bridge.h" +#include "strings_func.h" static struct BridgeData { uint8 last_size; diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 185ddd53d2..d91b25e930 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -26,10 +26,10 @@ #include "vehicle_gui.h" #include "newgrf_engine.h" #include "date.h" -#include "strings.h" #include "cargotype.h" #include "group.h" #include "road_map.h" +#include "strings_func.h" enum BuildVehicleWidgets { diff --git a/src/command.cpp b/src/command.cpp index 9b34bc0abd..68f80c7b53 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "landscape.h" #include "map.h" @@ -17,6 +16,7 @@ #include "variables.h" #include "genworld.h" #include "newgrf_storage.h" +#include "strings_func.h" const char *_cmd_text = NULL; diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 96b6a97352..62082ea97d 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -22,11 +22,11 @@ #include "fileio.h" #include "vehicle.h" #include "station.h" -#include "strings.h" #include "screenshot.h" #include "genworld.h" #include "date.h" #include "network/network.h" +#include "strings_func.h" // ** scriptfile handling ** // static FILE *_script_file; diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index c6a9b6e3b7..7f168c380d 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -10,7 +10,6 @@ #include "ship.h" #include "aircraft.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "gui.h" #include "textbuf_gui.h" @@ -23,6 +22,7 @@ #include "station_map.h" #include "newgrf_engine.h" #include "spritecache.h" +#include "strings_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 242dd08617..4769c88ab1 100644 --- a/src/disaster_cmd.cpp +++ b/src/disaster_cmd.cpp @@ -23,7 +23,6 @@ #include "industry_map.h" #include "station_map.h" #include "table/strings.h" -#include "strings.h" #include "map.h" #include "vehicle.h" #include "command.h" @@ -38,6 +37,7 @@ #include "variables.h" #include "table/sprites.h" #include "date.h" +#include "strings_func.h" enum DisasterSubType { ST_Zeppeliner, diff --git a/src/economy.cpp b/src/economy.cpp index eae326ddbd..d2a4f8878a 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -7,7 +7,6 @@ #include "currency.h" #include "functions.h" #include "landscape.h" -#include "strings.h" // XXX InjectDParam() #include "table/strings.h" #include "table/sprites.h" #include "map.h" @@ -41,6 +40,7 @@ #include "cargotype.h" #include "player_face.h" #include "group.h" +#include "strings_func.h" /** * Multiply two integer values and shift the results to right. diff --git a/src/engine.cpp b/src/engine.cpp index 9c54efd48b..6d8806b141 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -22,8 +22,8 @@ #include "table/engines.h" #include "group.h" #include "string.h" -#include "strings.h" #include "misc/autoptr.hpp" +#include "strings_func.h" EngineInfo _engine_info[TOTAL_NUM_ENGINES]; RailVehicleInfo _rail_vehicle_info[NUM_TRAIN_ENGINES]; diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index cfe9f86098..08d4775ae6 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "functions.h" #include "gui.h" @@ -17,6 +16,7 @@ #include "news.h" #include "variables.h" #include "newgrf_engine.h" +#include "strings_func.h" static StringID GetEngineCategoryName(EngineID engine) diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index a886b4290d..cd0e6fa63f 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -12,7 +12,6 @@ #include "window_gui.h" #include "textbuf_gui.h" #include "gfx.h" -#include "strings.h" #include "gfxinit.h" #include "player.h" #include "command.h" @@ -26,6 +25,7 @@ #include "thread.h" #include "date.h" #include "newgrf_config.h" +#include "strings_func.h" /** * In what 'mode' the GenerateLandscapeWindowProc is. diff --git a/src/gfx.cpp b/src/gfx.cpp index f81b5e5045..d5c4d5a75c 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "functions.h" #include "spritecache.h" -#include "strings.h" #include "string.h" #include "gfx.h" #include "table/palettes.h" @@ -20,6 +19,7 @@ #include "texteff.hpp" #include "blitter/factory.hpp" #include "video/video_driver.hpp" +#include "strings_func.h" byte _dirkeys; ///< 1 = left, 2 = up, 4 = right, 8 = down bool _fullscreen; diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 8c9c7ffeb5..5e93d547c0 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "functions.h" #include "gui.h" @@ -17,6 +16,7 @@ #include "date.h" #include "helpers.hpp" #include "cargotype.h" +#include "strings_func.h" /* Bitmasks of player and cargo indices that shouldn't be drawn. */ static uint _legend_excluded_players; diff --git a/src/group_cmd.cpp b/src/group_cmd.cpp index f0e4de372f..0839a46786 100644 --- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -17,8 +17,8 @@ #include "aircraft.h" #include "string.h" #include "vehicle_gui.h" -#include "strings.h" #include "misc/autoptr.hpp" +#include "strings_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 803511d42b..27baf2d2d8 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -21,8 +21,8 @@ #include "group.h" #include "helpers.hpp" #include "viewport.h" -#include "strings.h" #include "debug.h" +#include "strings_func.h" struct Sorting { diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 6197131654..8177f2ff83 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -9,7 +9,6 @@ #include "industry_map.h" #include "station_map.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "map.h" #include "train.h" @@ -40,6 +39,7 @@ #include "autoslope.h" #include "transparency.h" #include "water.h" +#include "strings_func.h" void ShowIndustryViewWindow(int industry); void BuildOilRig(TileIndex tile); diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 3dab823fd1..79330ba1dc 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "debug.h" #include "functions.h" -#include "strings.h" #include "table/strings.h" #include "table/sprites.h" #include "map.h" @@ -26,6 +25,7 @@ #include "newgrf_industries.h" #include "newgrf_text.h" #include "date.h" +#include "strings_func.h" bool _ignore_restrictions; diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index af577e394b..220299238a 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "functions.h" #include "gui.h" @@ -20,6 +19,7 @@ #include "genworld.h" #include "network/network_gui.h" #include "newgrf.h" +#include "strings_func.h" static const Widget _select_game_widgets[] = { { WWT_CAPTION, RESIZE_NONE, 13, 0, 335, 0, 13, STR_0307_OPENTTD, STR_NULL}, diff --git a/src/main_gui.cpp b/src/main_gui.cpp index f451170a5a..b0b67bad29 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -9,7 +9,6 @@ #include "functions.h" #include "spritecache.h" #include "station.h" -#include "strings.h" #include "table/sprites.h" #include "table/strings.h" #include "map.h" @@ -51,6 +50,7 @@ #include "network/network_gui.h" #include "industry.h" #include "transparency.h" +#include "strings_func.h" static int _rename_id = 1; static int _rename_what = -1; diff --git a/src/misc_cmd.cpp b/src/misc_cmd.cpp index 318f00cdba..fa8a2384d0 100644 --- a/src/misc_cmd.cpp +++ b/src/misc_cmd.cpp @@ -18,7 +18,7 @@ #include "variables.h" #include "livery.h" #include "player_face.h" -#include "strings.h" +#include "strings_func.h" /** Change the player's face. * @param tile unused diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index a27044b848..c2a833d3cd 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -11,10 +11,8 @@ #include "newgrf.h" #include "newgrf_text.h" #include "saveload.h" -#include "strings.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "table/tree_land.h" #include "map.h" #include "tile_map.h" @@ -39,8 +37,7 @@ #include "date.h" #include "cargotype.h" #include "player_face.h" -#include "fileio.h" - +#include "strings_func.h" #include "fileio.h" #include "fios.h" /* Variables to display file lists */ diff --git a/src/music_gui.cpp b/src/music_gui.cpp index 2f8dbda909..0cdd9ce851 100644 --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "table/strings.h" #include "table/sprites.h" -#include "strings.h" #include "functions.h" #include "fileio.h" #include "gfx.h" @@ -15,6 +14,7 @@ #include "music.h" #include "music/music_driver.hpp" #include "window_gui.h" +#include "strings_func.h" static byte _music_wnd_cursong; static bool _song_is_active; diff --git a/src/network/network.cpp b/src/network/network.cpp index 5b3b04a1cd..8503e35a8d 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -11,7 +11,7 @@ extern const char _openttd_revision[]; #include "../debug.h" #include "../functions.h" #include "../string.h" -#include "../strings.h" +#include "../strings_func.h" #include "../map.h" #include "../command.h" #include "../variables.h" diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index fcc2824e9c..d4c20d904e 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -6,7 +6,6 @@ #include "../debug.h" #include "../string.h" #include "../openttd.h" -#include "../strings.h" #include "network_data.h" #include "core/tcp.h" #include "../date.h" @@ -23,6 +22,7 @@ #include "../helpers.hpp" #include "../fileio.h" #include "../md5.h" +#include "../strings_func.h" // This file handles all the client-commands diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index c9b6c5211f..0617b1dc44 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -4,7 +4,7 @@ #include "../stdafx.h" #include "../openttd.h" #include "../string.h" -#include "../strings.h" +#include "../strings_func.h" #include "../table/sprites.h" #include "network.h" #include "../date.h" diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 1c10996dbd..85fc72f5fc 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -6,7 +6,7 @@ #include "../openttd.h" // XXX StringID #include "../debug.h" #include "../string.h" -#include "../strings.h" +#include "../strings_func.h" #include "network_data.h" #include "core/tcp.h" #include "../train.h" diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 6c7a367a63..08979a6e47 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -18,7 +18,6 @@ #include "newgrf.h" #include "variables.h" #include "string.h" -#include "strings.h" #include "table/strings.h" #include "bridge.h" #include "town.h" @@ -49,6 +48,7 @@ #include "gfxinit.h" #include "fios.h" #include "rail.h" +#include "strings_func.h" /* TTDPatch extended GRF format codec * (c) Petr Baudis 2004 (GPL'd) diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 43df068e3b..d99c23d0c2 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -14,8 +14,8 @@ #include "table/sprites.h" #include "newgrf.h" #include "newgrf_config.h" -#include "strings.h" #include "helpers.hpp" +#include "strings_func.h" /** Parse an integerlist string and set each found value * @param p the string to be parsed. Each element in the list is seperated by a diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index 169396245e..f3c2c182b2 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -14,7 +14,6 @@ #include "town_map.h" #include "sound.h" #include "sprite.h" -#include "strings.h" #include "table/strings.h" #include "table/sprites.h" #include "table/town_land.h" diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 205ccee355..cd241632f9 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -13,7 +13,6 @@ #include "debug.h" #include "openttd.h" #include "string.h" -#include "strings.h" #include "variables.h" #include "table/strings.h" #include "newgrf.h" @@ -21,6 +20,7 @@ #include "table/control_codes.h" #include "helpers.hpp" #include "date.h" +#include "strings_func.h" #define GRFTAB 28 #define TABSIZE 11 diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 44a9934ba7..246f861207 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -4,7 +4,6 @@ #include "stdafx.h" #include "openttd.h" #include "functions.h" -#include "strings.h" #include "table/sprites.h" #include "table/strings.h" #include "gui.h" @@ -18,6 +17,7 @@ #include "date.h" #include "string.h" #include "transparency.h" +#include "strings_func.h" /** @file news_gui.cpp * diff --git a/src/openttd.cpp b/src/openttd.cpp index df0cb80bb0..c8a88a3b77 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -13,12 +13,10 @@ #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "bridge_map.h" #include "functions.h" #include "mixer.h" #include "spritecache.h" -#include "strings.h" #include "gfx.h" #include "gfxinit.h" #include "gui.h" @@ -67,6 +65,7 @@ #include "sound/sound_driver.hpp" #include "music/music_driver.hpp" #include "video/video_driver.hpp" +#include "strings_func.h" #include "bridge_map.h" #include "clear_map.h" diff --git a/src/openttd.h b/src/openttd.h index a128cbb619..2eaff53f9a 100644 --- a/src/openttd.h +++ b/src/openttd.h @@ -9,6 +9,7 @@ #endif #include "helpers.hpp" +#include "strings_type.h" struct Oblong { int x, y; @@ -49,8 +50,6 @@ struct PalSpriteID { }; typedef uint16 EngineID; typedef uint16 UnitID; -typedef uint16 StringID; -static const StringID INVALID_STRING_ID = 0xFFFF; typedef EngineID *EngineList; ///< engine list type placeholder acceptable for C code (see helpers.cpp) @@ -514,69 +513,6 @@ enum ExpensesType { EXPENSES_OTHER = 12, }; -enum { - MAX_LANG = 64, -}; - -// special string constants -enum SpecialStrings { - - // special strings for town names. the town name is generated dynamically on request. - SPECSTR_TOWNNAME_START = 0x20C0, - SPECSTR_TOWNNAME_ENGLISH = SPECSTR_TOWNNAME_START, - SPECSTR_TOWNNAME_FRENCH, - SPECSTR_TOWNNAME_GERMAN, - SPECSTR_TOWNNAME_AMERICAN, - SPECSTR_TOWNNAME_LATIN, - SPECSTR_TOWNNAME_SILLY, - SPECSTR_TOWNNAME_SWEDISH, - SPECSTR_TOWNNAME_DUTCH, - SPECSTR_TOWNNAME_FINNISH, - SPECSTR_TOWNNAME_POLISH, - SPECSTR_TOWNNAME_SLOVAKISH, - SPECSTR_TOWNNAME_NORWEGIAN, - SPECSTR_TOWNNAME_HUNGARIAN, - SPECSTR_TOWNNAME_AUSTRIAN, - SPECSTR_TOWNNAME_ROMANIAN, - SPECSTR_TOWNNAME_CZECH, - SPECSTR_TOWNNAME_SWISS, - SPECSTR_TOWNNAME_DANISH, - SPECSTR_TOWNNAME_TURKISH, - SPECSTR_TOWNNAME_ITALIAN, - SPECSTR_TOWNNAME_CATALAN, - SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_CATALAN, - - // special strings for player names on the form "TownName transport". - SPECSTR_PLAYERNAME_START = 0x70EA, - SPECSTR_PLAYERNAME_ENGLISH = SPECSTR_PLAYERNAME_START, - SPECSTR_PLAYERNAME_FRENCH, - SPECSTR_PLAYERNAME_GERMAN, - SPECSTR_PLAYERNAME_AMERICAN, - SPECSTR_PLAYERNAME_LATIN, - SPECSTR_PLAYERNAME_SILLY, - SPECSTR_PLAYERNAME_LAST = SPECSTR_PLAYERNAME_SILLY, - - SPECSTR_ANDCO_NAME = 0x70E6, - SPECSTR_PRESIDENT_NAME = 0x70E7, - SPECSTR_SONGNAME = 0x70E8, - - // reserve MAX_LANG strings for the *.lng files - SPECSTR_LANGUAGE_START = 0x7100, - SPECSTR_LANGUAGE_END = SPECSTR_LANGUAGE_START + MAX_LANG - 1, - - // reserve 32 strings for various screen resolutions - SPECSTR_RESOLUTION_START = SPECSTR_LANGUAGE_END + 1, - SPECSTR_RESOLUTION_END = SPECSTR_RESOLUTION_START + 0x1F, - - // reserve 32 strings for screenshot formats - SPECSTR_SCREENSHOT_START = SPECSTR_RESOLUTION_END + 1, - SPECSTR_SCREENSHOT_END = SPECSTR_SCREENSHOT_START + 0x1F, - - // Used to implement SetDParamStr - STR_SPEC_DYNSTRING = 0xF800, - STR_SPEC_USERSTRING = 0xF808, -}; - typedef void PlaceProc(TileIndex tile); enum { diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 644b249524..67e4d57b76 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -18,8 +18,8 @@ #include "saveload.h" #include "vehicle_gui.h" #include "cargotype.h" -#include "strings.h" #include "aircraft.h" +#include "strings_func.h" DEFINE_OLD_POOL_GENERIC(Order, Order) diff --git a/src/order_gui.cpp b/src/order_gui.cpp index d84182a002..b334c446d0 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -8,7 +8,6 @@ #include "station_map.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "map.h" #include "gui.h" @@ -27,6 +26,7 @@ #include "timetable.h" #include "cargotype.h" #include "order.h" +#include "strings_func.h" enum OrderWindowWidgets { ORDER_WIDGET_CLOSEBOX = 0, diff --git a/src/player_gui.cpp b/src/player_gui.cpp index 38a4bb9b53..85461d3520 100644 --- a/src/player_gui.cpp +++ b/src/player_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "gui.h" #include "window_gui.h" @@ -28,6 +27,7 @@ #include "network/network_client.h" #include "network/network_gui.h" #include "player_face.h" +#include "strings_func.h" static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied); static void DoSelectPlayerFace(PlayerID player, bool show_big); diff --git a/src/players.cpp b/src/players.cpp index db368c6860..e4cab08ad9 100644 --- a/src/players.cpp +++ b/src/players.cpp @@ -7,7 +7,6 @@ #include "engine.h" #include "functions.h" #include "string.h" -#include "strings.h" #include "table/strings.h" #include "table/sprites.h" #include "map.h" @@ -30,6 +29,7 @@ #include "settings.h" #include "window_func.h" #include "tile_map.h" +#include "strings_func.h" /** * Sets the local player and updates the patch settings that are set on a diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 41dd83babd..8404e7eeb0 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "landscape.h" #include "date.h" @@ -26,6 +25,7 @@ #include "newgrf_callbacks.h" #include "newgrf_station.h" #include "train.h" +#include "strings_func.h" #include "bridge_map.h" #include "rail_map.h" diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 7318889dee..675148d229 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -13,7 +13,6 @@ #include "sprite.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "map.h" #include "landscape.h" @@ -35,6 +34,7 @@ #include "transparency.h" #include "tunnelbridge_map.h" #include "window_func.h" +#include "strings_func.h" #define M(x) (1 << (x)) diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 85b63dca11..8f895aa010 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "map.h" #include "gui.h" diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index e01568137c..5914dadd4c 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -11,7 +11,6 @@ #include "roadveh.h" #include "station_map.h" #include "table/strings.h" -#include "strings.h" #include "map.h" #include "vehicle.h" #include "timetable.h" @@ -36,6 +35,7 @@ #include "yapf/yapf.h" #include "date.h" #include "cargotype.h" +#include "strings_func.h" #include "tunnelbridge_map.h" diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp index 658bdae64f..e5496998ca 100644 --- a/src/roadveh_gui.cpp +++ b/src/roadveh_gui.cpp @@ -11,13 +11,13 @@ #include "table/strings.h" #include "gui.h" #include "window_gui.h" -#include "strings.h" #include "vehicle.h" #include "viewport.h" #include "command.h" #include "depot.h" #include "vehicle_gui.h" #include "newgrf_engine.h" +#include "strings_func.h" void DrawRoadVehDetails(const Vehicle *v, int x, int y) diff --git a/src/saveload.cpp b/src/saveload.cpp index 165d268027..bbf9dda06b 100644 --- a/src/saveload.cpp +++ b/src/saveload.cpp @@ -26,8 +26,8 @@ #include "network/network.h" #include "variables.h" #include "table/strings.h" -#include "strings.h" #include "window_func.h" +#include "strings_func.h" #include extern const uint16 SAVEGAME_VERSION = 83; diff --git a/src/screenshot.cpp b/src/screenshot.cpp index f0ee882e90..0bef9135f8 100644 --- a/src/screenshot.cpp +++ b/src/screenshot.cpp @@ -4,7 +4,6 @@ #include "openttd.h" #include "debug.h" #include "functions.h" -#include "strings.h" #include "table/strings.h" #include "gfx.h" #include "fileio.h" @@ -17,6 +16,7 @@ #include "helpers.hpp" #include "blitter/factory.hpp" #include "fileio.h" +#include "strings_func.h" char _screenshot_format_name[8]; uint _num_screenshot_formats; diff --git a/src/settings.cpp b/src/settings.cpp index b393f6d41f..c172c8519d 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -28,7 +28,6 @@ #include "string.h" #include "variables.h" #include "network/network.h" -#include "strings.h" #include "settings.h" #include "command.h" #include "console.h" @@ -44,6 +43,7 @@ #include "helpers.hpp" #include "news.h" #include "window_func.h" +#include "strings_func.h" #ifdef WITH_FREETYPE #include "gfx.h" #include "fontcache.h" diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 6976287691..c1f9c7f4f7 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -7,7 +7,6 @@ #include "currency.h" #include "functions.h" #include "string.h" -#include "strings.h" // XXX GetCurrentCurrencyRate() #include "table/sprites.h" #include "table/strings.h" #include "gui.h" @@ -26,6 +25,7 @@ #include "date.h" #include "helpers.hpp" #include "newgrf_townname.h" +#include "strings_func.h" static uint32 _difficulty_click_a; static uint32 _difficulty_click_b; diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index b29dd78b34..5fcace62ad 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "ship.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "landscape.h" #include "map.h" @@ -33,6 +32,7 @@ #include "date.h" #include "spritecache.h" #include "misc/autoptr.hpp" +#include "strings_func.h" static const uint16 _ship_sprites[] = {0x0E5D, 0x0E55, 0x0E65, 0x0E6D}; diff --git a/src/ship_gui.cpp b/src/ship_gui.cpp index a28910a44c..ef2e0ee52f 100644 --- a/src/ship_gui.cpp +++ b/src/ship_gui.cpp @@ -8,7 +8,6 @@ #include "functions.h" #include "ship.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "gui.h" #include "window_gui.h" @@ -18,6 +17,7 @@ #include "depot.h" #include "vehicle_gui.h" #include "newgrf_engine.h" +#include "strings_func.h" void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection) { diff --git a/src/signs.cpp b/src/signs.cpp index d4ef7f7635..021e4f025c 100644 --- a/src/signs.cpp +++ b/src/signs.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "landscape.h" #include "player.h" @@ -15,6 +14,7 @@ #include "variables.h" #include "string.h" #include "misc/autoptr.hpp" +#include "strings_func.h" SignID _new_sign_id; uint _total_signs; diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index cd56352d80..5a75ee4126 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -13,11 +13,11 @@ #include "gfx.h" #include "player.h" #include "signs.h" -#include "strings.h" #include "debug.h" #include "variables.h" #include "helpers.hpp" #include "command.h" +#include "strings_func.h" static const Sign **_sign_sort; static uint _num_sign_sort; diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index eaf016cb4d..1371dd84bb 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -11,7 +11,6 @@ #include "industry.h" #include "station_map.h" #include "table/strings.h" -#include "strings.h" #include "table/sprites.h" #include "landscape.h" #include "map.h" @@ -28,6 +27,7 @@ #include "variables.h" #include "blitter/factory.hpp" #include "tunnelbridge_map.h" +#include "strings_func.h" static const Widget _smallmap_widgets[] = { diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index ecaf1707f5..f36822c02a 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -41,11 +41,11 @@ #include "road_type.h" #include "road_internal.h" /* For drawing catenary/checking road removal */ #include "cargotype.h" -#include "strings.h" #include "autoslope.h" #include "transparency.h" #include "water.h" #include "station_gui.h" +#include "strings_func.h" DEFINE_OLD_POOL_GENERIC(Station, Station) DEFINE_OLD_POOL_GENERIC(RoadStop, RoadStop) diff --git a/src/station_gui.cpp b/src/station_gui.cpp index dfde1a6a25..e2563eb252 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "debug.h" #include "functions.h" -#include "strings.h" #include "table/strings.h" #include "gui.h" #include "window_gui.h" @@ -26,6 +25,7 @@ #include "cargotype.h" #include "station_gui.h" #include "station.h" +#include "strings_func.h" typedef int CDECL StationSortListingTypeFunction(const void*, const void*); diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 54ea8544eb..342678ba73 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -1,7 +1,6 @@ /* $Id$ */ #include "../stdafx.h" -#include "../macros.h" #include "../string.h" #include "../table/control_codes.h" #include "../helpers.hpp" diff --git a/src/strings.cpp b/src/strings.cpp index 9a5f72e395..e6951633c3 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -7,7 +7,6 @@ #include "currency.h" #include "functions.h" #include "string.h" -#include "strings.h" #include "table/strings.h" #include "namegen.h" #include "station.h" @@ -35,6 +34,7 @@ #include "spritecache.h" #include "fontcache.h" #include "gui.h" +#include "strings_func.h" /* for opendir/readdir/closedir */ # include "fios.h" diff --git a/src/strings.h b/src/strings_func.h similarity index 68% rename from src/strings.h rename to src/strings_func.h index 2307afc78e..e75ce8c678 100644 --- a/src/strings.h +++ b/src/strings_func.h @@ -1,9 +1,11 @@ /* $Id$ */ -/** @file strings.h */ +/** @file strings_func.h Functions related to OTTD's strings. */ -#ifndef STRINGS_H -#define STRINGS_H +#ifndef STRINGS_FUNC_H +#define STRINGS_FUNC_H + +#include "strings_type.h" char *InlineString(char *buf, StringID string); char *GetString(char *buffr, StringID string, const char *last); @@ -60,22 +62,6 @@ static inline void CopyOutDParam(uint64 *dst, int offs, int num) memcpy(dst, _decode_parameters + offs, sizeof(uint64) * (num)); } - -/** Information about a language */ -struct Language { - char *name; ///< The internal name of the language - char *file; ///< The name of the language as it appears on disk -}; - -/** Used for dynamic language support */ -struct DynamicLanguages { - int num; ///< Number of languages - int curr; ///< Currently selected language index - char curr_file[MAX_PATH]; ///< Currently selected language file name without path (needed for saving the filename of the loaded language). - StringID dropdown[MAX_LANG + 1]; ///< List of languages in the settings gui - Language ent[MAX_LANG]; ///< Information about the languages -}; - extern DynamicLanguages _dynlang; // defined in strings.cpp bool ReadLanguagePack(int index); @@ -85,4 +71,4 @@ int CDECL StringIDSorter(const void *a, const void *b); void CheckForMissingGlyphsInLoadedLanguagePack(); -#endif /* STRINGS_H */ +#endif /* STRINGS_TYPE_H */ diff --git a/src/strings_type.h b/src/strings_type.h new file mode 100644 index 0000000000..c5c90810a1 --- /dev/null +++ b/src/strings_type.h @@ -0,0 +1,89 @@ +/* $Id$ */ + +/** @file strings_type.h Types related to strings. */ + +#ifndef STRINGS_TYPE_H +#define STRINGS_TYPE_H + +typedef uint16 StringID; +static const StringID INVALID_STRING_ID = 0xFFFF; + +enum { + MAX_LANG = 64, +}; + +/** Information about a language */ +struct Language { + char *name; ///< The internal name of the language + char *file; ///< The name of the language as it appears on disk +}; + +/** Used for dynamic language support */ +struct DynamicLanguages { + int num; ///< Number of languages + int curr; ///< Currently selected language index + char curr_file[MAX_PATH]; ///< Currently selected language file name without path (needed for saving the filename of the loaded language). + StringID dropdown[MAX_LANG + 1]; ///< List of languages in the settings gui + Language ent[MAX_LANG]; ///< Information about the languages +}; + +// special string constants +enum SpecialStrings { + + // special strings for town names. the town name is generated dynamically on request. + SPECSTR_TOWNNAME_START = 0x20C0, + SPECSTR_TOWNNAME_ENGLISH = SPECSTR_TOWNNAME_START, + SPECSTR_TOWNNAME_FRENCH, + SPECSTR_TOWNNAME_GERMAN, + SPECSTR_TOWNNAME_AMERICAN, + SPECSTR_TOWNNAME_LATIN, + SPECSTR_TOWNNAME_SILLY, + SPECSTR_TOWNNAME_SWEDISH, + SPECSTR_TOWNNAME_DUTCH, + SPECSTR_TOWNNAME_FINNISH, + SPECSTR_TOWNNAME_POLISH, + SPECSTR_TOWNNAME_SLOVAKISH, + SPECSTR_TOWNNAME_NORWEGIAN, + SPECSTR_TOWNNAME_HUNGARIAN, + SPECSTR_TOWNNAME_AUSTRIAN, + SPECSTR_TOWNNAME_ROMANIAN, + SPECSTR_TOWNNAME_CZECH, + SPECSTR_TOWNNAME_SWISS, + SPECSTR_TOWNNAME_DANISH, + SPECSTR_TOWNNAME_TURKISH, + SPECSTR_TOWNNAME_ITALIAN, + SPECSTR_TOWNNAME_CATALAN, + SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_CATALAN, + + // special strings for player names on the form "TownName transport". + SPECSTR_PLAYERNAME_START = 0x70EA, + SPECSTR_PLAYERNAME_ENGLISH = SPECSTR_PLAYERNAME_START, + SPECSTR_PLAYERNAME_FRENCH, + SPECSTR_PLAYERNAME_GERMAN, + SPECSTR_PLAYERNAME_AMERICAN, + SPECSTR_PLAYERNAME_LATIN, + SPECSTR_PLAYERNAME_SILLY, + SPECSTR_PLAYERNAME_LAST = SPECSTR_PLAYERNAME_SILLY, + + SPECSTR_ANDCO_NAME = 0x70E6, + SPECSTR_PRESIDENT_NAME = 0x70E7, + SPECSTR_SONGNAME = 0x70E8, + + // reserve MAX_LANG strings for the *.lng files + SPECSTR_LANGUAGE_START = 0x7100, + SPECSTR_LANGUAGE_END = SPECSTR_LANGUAGE_START + MAX_LANG - 1, + + // reserve 32 strings for various screen resolutions + SPECSTR_RESOLUTION_START = SPECSTR_LANGUAGE_END + 1, + SPECSTR_RESOLUTION_END = SPECSTR_RESOLUTION_START + 0x1F, + + // reserve 32 strings for screenshot formats + SPECSTR_SCREENSHOT_START = SPECSTR_RESOLUTION_END + 1, + SPECSTR_SCREENSHOT_END = SPECSTR_SCREENSHOT_START + 0x1F, + + // Used to implement SetDParamStr + STR_SPEC_DYNSTRING = 0xF800, + STR_SPEC_USERSTRING = 0xF808, +}; + +#endif /* STRINGS_TYPE_H */ diff --git a/src/subsidy_gui.cpp b/src/subsidy_gui.cpp index 91cfceb812..5338bc9adb 100644 --- a/src/subsidy_gui.cpp +++ b/src/subsidy_gui.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "station.h" #include "industry.h" @@ -17,6 +16,7 @@ #include "date.h" #include "cargotype.h" #include "window_gui.h" +#include "strings_func.h" static void HandleSubsidyClick(int y) { diff --git a/src/texteff.cpp b/src/texteff.cpp index ca1902b1fc..3d1d0250db 100644 --- a/src/texteff.cpp +++ b/src/texteff.cpp @@ -5,7 +5,6 @@ #include "stdafx.h" #include "openttd.h" #include "functions.h" -#include "strings.h" #include "gfx.h" #include "landscape.h" #include "viewport.h" @@ -20,6 +19,7 @@ #include "texteff.hpp" #include "video/video_driver.hpp" #include "transparency.h" +#include "strings_func.h" enum { MAX_TEXTMESSAGE_LENGTH = 200, diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index a71810b17f..e83e8595e5 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -7,7 +7,6 @@ #include "functions.h" #include "variables.h" #include "table/strings.h" -#include "strings.h" #include "command.h" #include "date.h" #include "engine.h" @@ -18,6 +17,7 @@ #include "vehicle.h" #include "cargotype.h" #include "depot.h" +#include "strings_func.h" static int GetOrderFromTimetableWndPt(Window *w, int y, const Vehicle *v) { diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 34ea6a5aa1..6888658176 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "functions.h" #include "debug.h" -#include "strings.h" #include "road_map.h" #include "road_internal.h" /* Cleaning up road bits */ #include "table/strings.h" @@ -45,6 +44,7 @@ #include "waypoint.h" #include "transparency.h" #include "tunnelbridge_map.h" +#include "strings_func.h" /* Initialize the town-pool */ diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 9ec3d07abc..21123f24c3 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -6,7 +6,6 @@ #include "openttd.h" #include "debug.h" #include "functions.h" -#include "strings.h" #include "table/sprites.h" #include "table/strings.h" #include "town.h" @@ -20,6 +19,7 @@ #include "network/network.h" #include "variables.h" #include "helpers.hpp" +#include "strings_func.h" enum TownAuthorityWidget { TWA_CLOSEBOX = 0, diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index c0c7e8d053..4c6ca0a90e 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -11,7 +11,6 @@ #include "gui.h" #include "station_map.h" #include "table/strings.h" -#include "strings.h" #include "map.h" #include "tunnel_map.h" #include "vehicle.h" @@ -42,6 +41,7 @@ #include "group.h" #include "table/sprites.h" #include "tunnelbridge_map.h" +#include "strings_func.h" static bool TrainCheckIfLineEnds(Vehicle *v); diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 7e6f511a25..e3d2c787b1 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -8,7 +8,6 @@ #include "functions.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "gui.h" #include "window_gui.h" #include "vehicle.h" @@ -18,6 +17,7 @@ #include "depot.h" #include "train.h" #include "newgrf_engine.h" +#include "strings_func.h" void CcBuildWagon(bool success, TileIndex tile, uint32 p1, uint32 p2) { diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 9dd44cd232..84afffefdf 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -12,7 +12,6 @@ #include "road_map.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "map.h" #include "landscape.h" @@ -35,6 +34,7 @@ #include "transparency.h" #include "tunnelbridge_map.h" #include "table/bridge_land.h" +#include "strings_func.h" const Bridge orig_bridge[] = { diff --git a/src/vehicle.cpp b/src/vehicle.cpp index cd839d98fd..9d74d4bb8c 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -42,8 +42,8 @@ #include "helpers.hpp" #include "group.h" #include "economy.h" -#include "strings.h" #include "order.h" +#include "strings_func.h" #define INVALID_COORD (0x7fffffff) #define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6)) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index a6d77c60f7..398a03803c 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -8,7 +8,6 @@ #include "functions.h" #include "player.h" #include "station.h" -#include "strings.h" #include "table/sprites.h" #include "table/strings.h" #include "vehicle.h" @@ -34,6 +33,7 @@ #include "cargotype.h" #include "group.h" #include "group_gui.h" +#include "strings_func.h" struct Sorting { Listing aircraft; diff --git a/src/viewport.cpp b/src/viewport.cpp index 1021a6cd94..1ef7b9ccbf 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -8,7 +8,6 @@ #include "functions.h" #include "gui.h" #include "spritecache.h" -#include "strings.h" #include "table/sprites.h" #include "table/strings.h" #include "landscape.h" @@ -26,6 +25,7 @@ #include "vehicle_gui.h" #include "blitter/factory.hpp" #include "transparency.h" +#include "strings_func.h" #define VIEWPORT_DRAW_MEM (65536 * 2) diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index ea123d05c6..72e1cad127 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -10,7 +10,6 @@ #include "station_map.h" #include "table/sprites.h" #include "table/strings.h" -#include "strings.h" #include "functions.h" #include "landscape.h" #include "map.h" @@ -31,6 +30,7 @@ #include "newgrf_canal.h" #include "misc/autoptr.hpp" #include "transparency.h" +#include "strings_func.h" /** Array for the shore sprites */ static const SpriteID _water_shore_sprites[] = { diff --git a/src/waypoint.cpp b/src/waypoint.cpp index aadf04c7fe..00b62a8fc8 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -24,8 +24,8 @@ #include "date.h" #include "newgrf.h" #include "string.h" -#include "strings.h" #include "misc/autoptr.hpp" +#include "strings_func.h" enum { MAX_WAYPOINTS_PER_TOWN = 64,