mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
-Codechange: remove all BindCString and related functions and replace it by RAW_STRING which prints the C-string raw pointer that is on the 'print stack'.
This commit is contained in:
parent
c913be73d8
commit
ab234cf90c
@ -332,7 +332,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
|
||||
DrawString( 12, 91, STR_HEIGHTMAP_NAME, TC_BLACK);
|
||||
SetDParamStr(0, this->name);
|
||||
DrawStringTruncated(114, 91, STR_ORANGE, TC_BLACK, 326 - 114 - GetStringBoundingBox(buffer).width - 5);
|
||||
DrawStringTruncated(114, 91, STR_JUST_RAW_STRING, TC_ORANGE, 326 - 114 - GetStringBoundingBox(buffer).width - 5);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1350,7 +1350,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Kliente
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Kliente oplyn / Kliente maks{}Maatskappye oplyn / Maatskappye maks
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPEL INFORMASIE
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Kliente: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Taal: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Blokkiestel: {WHITE}{STRING}
|
||||
|
@ -1385,7 +1385,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clientes
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clientes ligados / max. clientes{}Empresas ligados / max, empresas
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFORMAÇÃO DO JOGO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clientes: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Idioma: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Tileset: {WHITE}{STRING}
|
||||
|
@ -1410,7 +1410,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Играчи
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Онлайн играчи / макс. брой играчи{}Онлайн компании / макс. компании
|
||||
STR_NETWORK_GAME_INFO :{SILVER}ИНФО ЗА ИГРАТА
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Играчи: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Език: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Терен: {WHITE}{STRING}
|
||||
|
@ -1384,7 +1384,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clients
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clients en línia / clients màxim
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFORMACIÓ DEL JOC
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clients: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Idioma: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Grup de cel·les: {WHITE}{STRING}
|
||||
|
@ -1372,7 +1372,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klijenti
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klijenata online / klijenata maks{}Tvrtki online / tvrki maks.
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFO O IGRI
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klijenti: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Jezik: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Set pločica: {WHITE}{STRING}
|
||||
|
@ -1442,7 +1442,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Hráčů
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Hráčů online / maximálně
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFO O HŘE
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klientů: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Jazyk: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Prostředí: {WHITE}{STRING}
|
||||
|
@ -1377,7 +1377,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klienter
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klienter online / maks. klienter{}Selskaber online / maks. selskaber
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPIL INFO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klienter: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Sprog: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Klima: {WHITE}{STRING}
|
||||
|
@ -1384,7 +1384,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Spelers
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Spelers online / spelers maximaal
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPEL INFORMATIE
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Spelers: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Taal: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Klimaat: {WHITE}{STRING}
|
||||
|
@ -862,13 +862,14 @@ STR_0313_FUND_NEW_INDUSTRY :Fund new indust
|
||||
|
||||
STR_0314_FUND_NEW_INDUSTRY :{WHITE}Fund new industry
|
||||
STR_JUST_STRING :{STRING}
|
||||
STR_JUST_RAW_STRING :{RAW_STRING}
|
||||
STR_JUST_INT :{NUM}
|
||||
STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...can only be built in towns
|
||||
STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}...can only be built in rainforest areas
|
||||
STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}...can only be built in desert areas
|
||||
STR_0319_PAUSED :{YELLOW}* * PAUSED * *
|
||||
|
||||
STR_031B_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot successfully saved as '{STRING}'
|
||||
STR_031B_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot successfully saved as '{RAW_STRING}'
|
||||
STR_031C_SCREENSHOT_FAILED :{WHITE}Screenshot failed!
|
||||
|
||||
STR_0329_PURCHASE_LAND_FOR_FUTURE :{BLACK}Purchase land for future use
|
||||
@ -1296,7 +1297,7 @@ STR_LANDINFO_RIVER :River
|
||||
|
||||
STR_BUOY_IS_IN_USE :{WHITE}...buoy is in use!
|
||||
|
||||
STR_LANDINFO_COORDS :{BLACK}Coordinates: {LTBLUE}{NUM}x{NUM}x{NUM} ({STRING})
|
||||
STR_LANDINFO_COORDS :{BLACK}Coordinates: {LTBLUE}{NUM}x{NUM}x{NUM} ({RAW_STRING})
|
||||
|
||||
STR_CANT_REMOVE_PART_OF_STATION :{WHITE}Can't remove part of station...
|
||||
STR_CANT_CONVERT_RAIL :{WHITE}Can't convert railtype here...
|
||||
@ -1384,13 +1385,12 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clients
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clients online / clients max{}Companies online / companies max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}GAME INFO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clients: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Language: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Tileset: {WHITE}{STRING}
|
||||
STR_NETWORK_MAP_SIZE :{SILVER}Map size: {WHITE}{COMMA}x{COMMA}
|
||||
STR_NETWORK_SERVER_VERSION :{SILVER}Server version: {WHITE}{STRING}
|
||||
STR_NETWORK_SERVER_ADDRESS :{SILVER}Server address: {WHITE}{STRING} : {NUM}
|
||||
STR_NETWORK_SERVER_VERSION :{SILVER}Server version: {WHITE}{RAW_STRING}
|
||||
STR_NETWORK_SERVER_ADDRESS :{SILVER}Server address: {WHITE}{RAW_STRING} : {NUM}
|
||||
STR_NETWORK_START_DATE :{SILVER}Start date: {WHITE}{DATE_SHORT}
|
||||
STR_NETWORK_CURRENT_DATE :{SILVER}Current date: {WHITE}{DATE_SHORT}
|
||||
STR_NETWORK_PASSWORD :{SILVER}Password protected!
|
||||
@ -1474,7 +1474,7 @@ STR_NETWORK_LANG_LATVIAN :Latvian
|
||||
|
||||
STR_NETWORK_GAME_LOBBY :{WHITE}Multiplayer game lobby
|
||||
|
||||
STR_NETWORK_PREPARE_TO_JOIN :{BLACK}Preparing to join: {ORANGE}{STRING}
|
||||
STR_NETWORK_PREPARE_TO_JOIN :{BLACK}Preparing to join: {ORANGE}{RAW_STRING}
|
||||
STR_NETWORK_COMPANY_LIST_TIP :{BLACK}A list of all companies currently in this game. You can either join one or start a new one if there is a free company slot
|
||||
STR_NETWORK_NEW_COMPANY :{BLACK}New company
|
||||
STR_NETWORK_NEW_COMPANY_TIP :{BLACK}Create a new company
|
||||
@ -1487,7 +1487,7 @@ STR_NETWORK_REFRESH_TIP :{BLACK}Refresh
|
||||
|
||||
STR_NETWORK_COMPANY_INFO :{SILVER}COMPANY INFO
|
||||
|
||||
STR_NETWORK_COMPANY_NAME :{SILVER}Company name: {WHITE}{STRING}
|
||||
STR_NETWORK_COMPANY_NAME :{SILVER}Company name: {WHITE}{RAW_STRING}
|
||||
STR_NETWORK_INAUGURATION_YEAR :{SILVER}Inauguration: {WHITE}{NUM}
|
||||
STR_NETWORK_VALUE :{SILVER}Company value: {WHITE}{CURRENCY}
|
||||
STR_NETWORK_CURRENT_BALANCE :{SILVER}Current balance: {WHITE}{CURRENCY}
|
||||
@ -1496,7 +1496,7 @@ STR_NETWORK_PERFORMANCE :{SILVER}Perform
|
||||
|
||||
STR_NETWORK_VEHICLES :{SILVER}Vehicles: {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
|
||||
STR_NETWORK_STATIONS :{SILVER}Stations: {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
|
||||
STR_NETWORK_PLAYERS :{SILVER}Players: {WHITE}{STRING}
|
||||
STR_NETWORK_PLAYERS :{SILVER}Players: {WHITE}{RAW_STRING}
|
||||
|
||||
STR_NETWORK_CONNECTING :{WHITE}Connecting...
|
||||
|
||||
@ -1559,15 +1559,15 @@ STR_NETWORK_ERR_CLIENT_SERVER_FULL :server full
|
||||
############ End of leave-in-this-order
|
||||
STR_NETWORK_CLIENT_JOINED :has joined the game
|
||||
STR_NETWORK_GIVE_MONEY :gave your company some money ({CURRENCY})
|
||||
STR_NETWORK_GAVE_MONEY_AWAY :you gave {STRING} some money ({CURRENCY})
|
||||
STR_NETWORK_GAVE_MONEY_AWAY :you gave {RAW_STRING} some money ({CURRENCY})
|
||||
STR_NETWORK_CHAT_COMPANY_CAPTION :[Team] :
|
||||
STR_NETWORK_CHAT_COMPANY :[Team] {STRING}: {GRAY}{STRING}
|
||||
STR_NETWORK_CHAT_TO_COMPANY :[Team] To {STRING}: {GRAY}{STRING}
|
||||
STR_NETWORK_CHAT_COMPANY :[Team] {RAW_STRING}: {GRAY}{RAW_STRING}
|
||||
STR_NETWORK_CHAT_TO_COMPANY :[Team] To {RAW_STRING}: {GRAY}{RAW_STRING}
|
||||
STR_NETWORK_CHAT_CLIENT_CAPTION :[Private] :
|
||||
STR_NETWORK_CHAT_CLIENT :[Private] {STRING}: {GRAY}{STRING}
|
||||
STR_NETWORK_CHAT_TO_CLIENT :[Private] To {STRING}: {GRAY}{STRING}
|
||||
STR_NETWORK_CHAT_CLIENT :[Private] {RAW_STRING}: {GRAY}{RAW_STRING}
|
||||
STR_NETWORK_CHAT_TO_CLIENT :[Private] To {RAW_STRING}: {GRAY}{RAW_STRING}
|
||||
STR_NETWORK_CHAT_ALL_CAPTION :[All] :
|
||||
STR_NETWORK_CHAT_ALL :[All] {STRING}: {GRAY}{STRING}
|
||||
STR_NETWORK_CHAT_ALL :[All] {RAW_STRING}: {GRAY}{RAW_STRING}
|
||||
STR_NETWORK_CHAT_OSKTITLE :{BLACK}Enter text for network chat
|
||||
STR_NETWORK_NAME_CHANGE :has changed his/her name to
|
||||
STR_NETWORK_SERVER_SHUTDOWN :{WHITE} The server closed the session
|
||||
@ -1958,11 +1958,11 @@ STR_4003_DELETE :{BLACK}Delete
|
||||
STR_4004 :{COMPANY}, {DATE_LONG}
|
||||
STR_4005_BYTES_FREE :{BLACK}{COMMA} megabyte{P "" s} free
|
||||
STR_4006_UNABLE_TO_READ_DRIVE :{BLACK}Unable to read drive
|
||||
STR_4007_GAME_SAVE_FAILED :{WHITE}Game Save Failed{}{STRING}
|
||||
STR_4007_GAME_SAVE_FAILED :{WHITE}Game Save Failed{}{RAW_STRING}
|
||||
STR_4008_UNABLE_TO_DELETE_FILE :{WHITE}Unable to delete file
|
||||
STR_4009_GAME_LOAD_FAILED :{WHITE}Game Load Failed{}{STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Internal error: {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Broken savegame - {STRING}
|
||||
STR_4009_GAME_LOAD_FAILED :{WHITE}Game Load Failed{}{RAW_STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Internal error: {RAW_STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Broken savegame - {RAW_STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Savegame is made with newer version
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :File not readable
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :File not writeable
|
||||
@ -3150,25 +3150,25 @@ STR_NEWGRF_APPLY_CHANGES :{BLACK}Apply ch
|
||||
STR_NEWGRF_SET_PARAMETERS :{BLACK}Set parameters
|
||||
STR_NEWGRF_TIP :{BLACK}A list of all the Newgrf sets that you have installed. Click a set to change the settings
|
||||
STR_NEWGRF_NO_FILES_INSTALLED :{BLACK}There are currently no newgrf files installed! Please refer to the manual for instructions on installing new graphics
|
||||
STR_NEWGRF_FILENAME :{BLACK}Filename: {SILVER}{STRING}
|
||||
STR_NEWGRF_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
|
||||
STR_NEWGRF_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
|
||||
STR_NEWGRF_FILENAME :{BLACK}Filename: {SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_GRF_ID :{BLACK}GRF ID: {SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_MD5SUM :{BLACK}MD5sum: {SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}You are about to make changes to a running game; this can crash OpenTTD.{}Are you absolutely sure about this?
|
||||
|
||||
STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING}
|
||||
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Warning: {SILVER}{STRING}
|
||||
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{STRING}
|
||||
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{STRING}
|
||||
STR_NEWGRF_ERROR_VERSION_NUMBER :{STRING} will not work with the TTDPatch version reported by OpenTTD.
|
||||
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{STRING} is for the {STRING} version of TTD.
|
||||
STR_NEWGRF_ERROR_UNSET_SWITCH :{STRING} is designed to be used with {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_PARAMETER :Invalid parameter for {STRING}: parameter {STRING} ({NUM})
|
||||
STR_NEWGRF_ERROR_LOAD_BEFORE :{STRING} must be loaded before {STRING}.
|
||||
STR_NEWGRF_ERROR_LOAD_AFTER :{STRING} must be loaded after {STRING}.
|
||||
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{STRING} requires OpenTTD version {STRING} or better.
|
||||
STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Warning: {SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{RAW_STRING}
|
||||
STR_NEWGRF_ERROR_VERSION_NUMBER :{RAW_STRING} will not work with the TTDPatch version reported by OpenTTD.
|
||||
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{RAW_STRING} is for the {RAW_STRING} version of TTD.
|
||||
STR_NEWGRF_ERROR_UNSET_SWITCH :{RAW_STRING} is designed to be used with {RAW_STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_PARAMETER :Invalid parameter for {RAW_STRING}: parameter {RAW_STRING} ({NUM})
|
||||
STR_NEWGRF_ERROR_LOAD_BEFORE :{RAW_STRING} must be loaded before {RAW_STRING}.
|
||||
STR_NEWGRF_ERROR_LOAD_AFTER :{RAW_STRING} must be loaded after {RAW_STRING}.
|
||||
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{RAW_STRING} requires OpenTTD version {RAW_STRING} or better.
|
||||
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :the GRF file it was designed to translate
|
||||
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Too many NewGRFs are loaded.
|
||||
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Loading {STRING} as static NewGRF with {STRING} could cause desyncs.
|
||||
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Loading {RAW_STRING} as static NewGRF with {RAW_STRING} could cause desyncs.
|
||||
|
||||
STR_NEWGRF_ADD :{BLACK}Add
|
||||
STR_NEWGRF_ADD_TIP :{BLACK}Add a NewGRF file to the list
|
||||
@ -3179,7 +3179,7 @@ STR_NEWGRF_MOVEUP_TIP :{BLACK}Move the
|
||||
STR_NEWGRF_MOVEDOWN :{BLACK}Move Down
|
||||
STR_NEWGRF_MOVEDOWN_TIP :{BLACK}Move the selected NewGRF file down the list
|
||||
STR_NEWGRF_FILE_TIP :{BLACK}A list of the NewGRF files that are installed. Click a file to change its parameters
|
||||
STR_NEWGRF_PARAMETER :{BLACK}Parameters: {SILVER}{STRING}
|
||||
STR_NEWGRF_PARAMETER :{BLACK}Parameters: {SILVER}{STRING1}
|
||||
STR_NEWGRF_PARAMETER_QUERY :{BLACK}Enter NewGRF parameters
|
||||
STR_NEWGRF_NO_INFO :{BLACK}No information available
|
||||
|
||||
@ -3412,7 +3412,7 @@ STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Length:
|
||||
STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Area: {NUM} x {NUM}{}Height difference: {NUM} m
|
||||
|
||||
############ Date formatting
|
||||
STR_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_DATE_TINY :{RAW_STRING}-{RAW_STRING}-{NUM}
|
||||
STR_DATE_SHORT :{STRING} {NUM}
|
||||
STR_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
|
||||
|
@ -1354,7 +1354,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clients
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clients online / clients max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}GAME INFO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clients: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Language: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Tileset: {WHITE}{STRING}
|
||||
|
@ -1315,7 +1315,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klientoj
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klientoj surrete / maksimume{}Kompanioj surrete / maksimume
|
||||
STR_NETWORK_GAME_INFO :{SILVER}LUDINFORMOJ
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klientoj: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Lingvo: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Tegolaro: {WHITE}{STRING}
|
||||
|
@ -1465,7 +1465,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Kliendid
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Kliente sees / enim kliente{}Ettevõtteid sees / enim ettevõtteid
|
||||
STR_NETWORK_GAME_INFO :{SILVER}MÄNGU ANDMED
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Kliendid: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Keel: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Ruudustik: {WHITE}{STRING}
|
||||
|
@ -1349,7 +1349,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Pelaajia
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Pelaajia pelissä/enintään.
|
||||
STR_NETWORK_GAME_INFO :{SILVER}PELITIEDOT
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Pelaajat: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Kieli: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Ruudusto: {WHITE}{STRING}
|
||||
|
@ -1385,7 +1385,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clients
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clients en ligne / clients max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFOS SUR LE SERVEUR
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clients: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Langue: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Terrain: {WHITE}{STRING}
|
||||
|
@ -1250,7 +1250,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clientes
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clientes conectador / clients máximos
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFORMACIÓN DA PARTIDA
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clientes: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Idioma: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Set de Terreo: {WHITE}{STRING}
|
||||
|
@ -1372,7 +1372,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Teilnehmer
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Teilnehmer anwesend / max.
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPIEL-INFO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Teilnehmer: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Sprache: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Landschaft: {WHITE}{STRING}
|
||||
|
@ -1438,7 +1438,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Kliens
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Kliens online / kliens max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}JÁTÉK INFÓ
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Játékos: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Nyelv: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Tájtípus: {WHITE}{STRING}
|
||||
|
@ -1382,7 +1382,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Notendur
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Tengdir notendur / hámarksfjöldi notenda
|
||||
STR_NETWORK_GAME_INFO :{SILVER}UPPLÝSINGAR UM LEIK
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Notendur: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Tungumál: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Landslag: {WHITE}{STRING}
|
||||
|
@ -1386,7 +1386,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Client
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Client online / client max{}Compagnie online / compagnie max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFORMAZIONI PARTITA
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Client: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Lingua: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Paesaggio: {WHITE}{STRING}
|
||||
|
@ -1370,7 +1370,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}クライアント
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}オンラインのクライアント人数/最高クライアント人数{}オンラインの会社数/最高会社数
|
||||
STR_NETWORK_GAME_INFO :{SILVER}ゲーム情報
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}クライアント:{WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}国語: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}タイルセット:{WHITE}{STRING}
|
||||
|
@ -1384,7 +1384,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}클라이언트
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}클라이언트 온라인 / 최대 접속자수{}회사 온라인 / 최대 회사수
|
||||
STR_NETWORK_GAME_INFO :{SILVER}게임 정보
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}클라이언트: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}언어: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}기후: {WHITE}{STRING}
|
||||
|
@ -1324,7 +1324,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Zaidejai
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Zaidzia / maksimaliai zaideju
|
||||
STR_NETWORK_GAME_INFO :{SILVER}Zaidimo informacija
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Zaidejai: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Kalba: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Pavadinimas: {WHITE}{STRING}
|
||||
|
@ -1356,7 +1356,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klienter
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klienter på nett / maks. antall klienter{}Firmaer på nett / maks. antall firmaer
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPILLOVERSIKT
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klienter: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Språk: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Brikkesett: {WHITE}{STRING}
|
||||
|
@ -1355,7 +1355,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klientar
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klientar på nett / maks. antal klientar{}Firma på nett / maks. antal firma
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPELOVERSIKT
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klientar: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Språk: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Brikkesett: {WHITE}{STRING}
|
||||
|
@ -1345,7 +1345,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Ientsclay
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Ientsclay onlineway / ientsclay axmay{}Ompaniescay onlineway / ompaniescay axmay
|
||||
STR_NETWORK_GAME_INFO :{SILVER}EGAMay INFOWAY
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Ientsclay: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Anguagelay: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Ilesettay: {WHITE}{STRING}
|
||||
|
@ -1441,7 +1441,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klientów
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klientów podłączonych / maks.{}Firm podłączonych / maks.
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFO O GRZE
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klienci: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Język: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Krajobraz: {WHITE}{STRING}
|
||||
|
@ -1371,7 +1371,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clientes
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clientes ligados / max. clientes
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFORMAÇÃO DE JOGO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clientes: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Idioma: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Conjunto de blocos: {WHITE}{STRING}
|
||||
|
@ -1380,7 +1380,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clienţi
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clienţi online / Nr. max. clienţi{}Companii online / Nr. max. companii
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFO JOC
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clienţi: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Limba: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Tileset: {WHITE}{STRING}
|
||||
|
@ -1386,7 +1386,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Клиенты
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Клиентов сейчас/макс. {}Компаний сейчас/макс.
|
||||
STR_NETWORK_GAME_INFO :{SILVER}ИНФОРМАЦИЯ ОБ ИГРЕ
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Клиенты: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Язык: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Климат: {WHITE}{STRING}
|
||||
|
@ -1305,7 +1305,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}客户端
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}在线客户端 / 最多 - 在线公司 / 最多
|
||||
STR_NETWORK_GAME_INFO :{SILVER}游戏信息
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}客 户 端: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}语 言: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}场景类型: {WHITE}{STRING}
|
||||
|
@ -1438,7 +1438,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klienti
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klienti online / klienti max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFO O HRE
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klienti: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Jazyk: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Prostredie: {WHITE}{STRING}
|
||||
|
@ -1426,7 +1426,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Gosti
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Gosti na zvezi / največ gostov{}Podjetja na zvezi / največ podjetij
|
||||
STR_NETWORK_GAME_INFO :{SILVER}IGRA - INFO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Gosti: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Jezik: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Nabor ploščic: {WHITE}{STRING}
|
||||
|
@ -1385,7 +1385,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Clientes
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Clientes online / máx clientes{}Compañías online / máximo compañías
|
||||
STR_NETWORK_GAME_INFO :{SILVER}INFO JUEGO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Clientes: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Idioma: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Escenario: {WHITE}{STRING}
|
||||
|
@ -1384,7 +1384,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Klienter
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Klienter online / Klienter max
|
||||
STR_NETWORK_GAME_INFO :{SILVER}SPELINFO
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Klienter: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Språk: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Klimat: {WHITE}{STRING}
|
||||
|
@ -1382,7 +1382,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}客戶端
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}線上客戶端 / 客戶端上限{}線上公司 / 公司上限
|
||||
STR_NETWORK_GAME_INFO :{SILVER}遊戲資訊
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}客戶端:{WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}語言:{WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}網格組:{WHITE}{STRING}
|
||||
|
@ -1371,7 +1371,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Oyuncular
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Bağlı oyuncular / en fazla oyuncu
|
||||
STR_NETWORK_GAME_INFO :{SILVER}OYUN BİLGİSİ
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}İstemciler: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Dil: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Set: {WHITE}{STRING}
|
||||
|
@ -1509,7 +1509,6 @@ STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/
|
||||
STR_NETWORK_CLIENTS_CAPTION :{BLACK}Клієнти
|
||||
STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Клієнти в мережі/макс.клієнтів{}Компанії в мережі/макс.компаній
|
||||
STR_NETWORK_GAME_INFO :{SILVER}Інформація про гру
|
||||
STR_ORANGE :{ORANGE}{STRING}
|
||||
STR_NETWORK_CLIENTS :{SILVER}Клієнт: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
|
||||
STR_NETWORK_LANGUAGE :{SILVER}Мова: {WHITE}{STRING}
|
||||
STR_NETWORK_TILESET :{SILVER}Шаблон: {WHITE}{STRING}
|
||||
|
@ -96,7 +96,10 @@ public:
|
||||
|
||||
y += 6;
|
||||
|
||||
if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) DrawStringMultiCenter(140, y, BindCString(this->landinfo_data[LAND_INFO_MULTICENTER_LINE]), this->width - 4);
|
||||
if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) {
|
||||
SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]);
|
||||
DrawStringMultiCenter(140, y, STR_JUST_RAW_STRING, this->width - 4);
|
||||
}
|
||||
}
|
||||
|
||||
LandInfoWindow(TileIndex tile) : Window(&_land_info_desc) {
|
||||
@ -157,11 +160,12 @@ public:
|
||||
line_nr++;
|
||||
|
||||
/* Location */
|
||||
snprintf(_userstring, lengthof(_userstring), "0x%.4X", tile);
|
||||
char tmp[16];
|
||||
snprintf(tmp, lengthof(tmp), "0x%.4X", tile);
|
||||
SetDParam(0, TileX(tile));
|
||||
SetDParam(1, TileY(tile));
|
||||
SetDParam(2, TileHeight(tile));
|
||||
SetDParam(3, STR_SPEC_USERSTRING);
|
||||
SetDParamStr(3, tmp);
|
||||
GetString(this->landinfo_data[line_nr], STR_LANDINFO_COORDS, lastof(this->landinfo_data[line_nr]));
|
||||
line_nr++;
|
||||
|
||||
@ -652,10 +656,11 @@ static int DrawStationCoverageText(const AcceptedCargo cargo,
|
||||
{
|
||||
bool first = true;
|
||||
|
||||
char *b = InlineString(_userstring, supplies ? STR_SUPPLIES : STR_000D_ACCEPTS);
|
||||
char string[512];
|
||||
char *b = InlineString(string, supplies ? STR_SUPPLIES : STR_000D_ACCEPTS);
|
||||
|
||||
for (CargoID i = 0; i < NUM_CARGO; i++) {
|
||||
if (b >= lastof(_userstring) - (1 + 2 * 4)) break; // ',' or ' ' and two calls to Utf8Encode()
|
||||
if (b >= lastof(string) - (1 + 2 * 4)) break; // ',' or ' ' and two calls to Utf8Encode()
|
||||
switch (sct) {
|
||||
case SCT_PASSENGERS_ONLY: if (!IsCargoInClass(i, CC_PASSENGERS)) continue; break;
|
||||
case SCT_NON_PASSENGERS_ONLY: if (IsCargoInClass(i, CC_PASSENGERS)) continue; break;
|
||||
@ -680,9 +685,10 @@ static int DrawStationCoverageText(const AcceptedCargo cargo,
|
||||
*b = '\0';
|
||||
|
||||
/* Make sure we detect any buffer overflow */
|
||||
assert(b < endof(_userstring));
|
||||
assert(b < endof(string));
|
||||
|
||||
return DrawStringMultiLine(str_x, str_y, STR_SPEC_USERSTRING, 144);
|
||||
SetDParamStr(0, string);
|
||||
return DrawStringMultiLine(str_x, str_y, STR_JUST_RAW_STRING, 144);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -216,7 +216,7 @@ protected:
|
||||
if (highlight) GfxFillRect(this->widget[NGWW_NAME].left + 1, y - 2, this->widget[NGWW_INFO].right - 1, y + 9, 10);
|
||||
|
||||
SetDParamStr(0, cur_item->info.server_name);
|
||||
DrawStringTruncated(this->widget[NGWW_NAME].left + 5, y, STR_02BD, TC_BLACK, this->widget[NGWW_NAME].right - this->widget[NGWW_NAME].left - 5);
|
||||
DrawStringTruncated(this->widget[NGWW_NAME].left + 5, y, STR_JUST_RAW_STRING, TC_BLACK, this->widget[NGWW_NAME].right - this->widget[NGWW_NAME].left - 5);
|
||||
|
||||
SetDParam(0, cur_item->info.clients_on);
|
||||
SetDParam(1, cur_item->info.clients_max);
|
||||
@ -325,7 +325,7 @@ public:
|
||||
DrawStringCentered(this->widget[NGWW_DETAILS].left + 115, 58, STR_NETWORK_GAME_INFO, TC_FROMSTRING);
|
||||
} else if (!sel->online) {
|
||||
SetDParamStr(0, sel->info.server_name);
|
||||
DrawStringCentered(this->widget[NGWW_DETAILS].left + 115, 68, STR_ORANGE, TC_FROMSTRING); // game name
|
||||
DrawStringCentered(this->widget[NGWW_DETAILS].left + 115, 68, STR_JUST_RAW_STRING, TC_ORANGE); // game name
|
||||
|
||||
DrawStringCentered(this->widget[NGWW_DETAILS].left + 115, 132, STR_NETWORK_SERVER_OFFLINE, TC_FROMSTRING); // server offline
|
||||
} else { // show game info
|
||||
@ -336,10 +336,10 @@ public:
|
||||
|
||||
|
||||
SetDParamStr(0, sel->info.server_name);
|
||||
DrawStringCenteredTruncated(this->widget[NGWW_DETAILS].left, this->widget[NGWW_DETAILS].right, 62, STR_ORANGE, TC_BLACK); // game name
|
||||
DrawStringCenteredTruncated(this->widget[NGWW_DETAILS].left, this->widget[NGWW_DETAILS].right, 62, STR_JUST_RAW_STRING, TC_ORANGE); // game name
|
||||
|
||||
SetDParamStr(0, sel->info.map_name);
|
||||
DrawStringCenteredTruncated(this->widget[NGWW_DETAILS].left, this->widget[NGWW_DETAILS].right, 74, STR_02BD, TC_BLACK); // map name
|
||||
DrawStringCenteredTruncated(this->widget[NGWW_DETAILS].left, this->widget[NGWW_DETAILS].right, 74, STR_JUST_RAW_STRING, TC_BLACK); // map name
|
||||
|
||||
SetDParam(0, sel->info.clients_on);
|
||||
SetDParam(1, sel->info.clients_max);
|
||||
@ -447,8 +447,9 @@ public:
|
||||
break;
|
||||
|
||||
case NGWW_ADD: // Add a server
|
||||
SetDParamStr(0, _settings_client.network.connect_to_ip);
|
||||
ShowQueryString(
|
||||
BindCString(_settings_client.network.connect_to_ip),
|
||||
STR_JUST_RAW_STRING,
|
||||
STR_NETWORK_ENTER_IP,
|
||||
31 | 0x1000, // maximum number of characters OR
|
||||
250, // characters up to this width pixels, whichever is satisfied first
|
||||
@ -734,7 +735,8 @@ struct NetworkStartServerWindow : public QueryStringBaseWindow {
|
||||
|
||||
case NSSW_SETPWD: // Set password button
|
||||
this->widget_id = NSSW_SETPWD;
|
||||
ShowQueryString(BindCString(_settings_client.network.server_password), STR_NETWORK_SET_PASSWORD, 20, 250, this, CS_ALPHANUMERAL);
|
||||
SetDParamStr(0, _settings_client.network.server_password);
|
||||
ShowQueryString(STR_JUST_RAW_STRING, STR_NETWORK_SET_PASSWORD, 20, 250, this, CS_ALPHANUMERAL);
|
||||
break;
|
||||
|
||||
case NSSW_SELMAP: { // Select map
|
||||
|
@ -50,19 +50,24 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, uint bott
|
||||
char buff[256];
|
||||
|
||||
if (c->error != NULL) {
|
||||
SetDParamStr(0, c->filename);
|
||||
SetDParamStr(1, c->error->data);
|
||||
for (uint i = 0; i < c->error->num_params; i++) {
|
||||
uint32 param = 0;
|
||||
byte param_number = c->error->param_number[i];
|
||||
|
||||
if (param_number < c->num_params) param = c->param[param_number];
|
||||
|
||||
SetDParam(2 + i, param);
|
||||
}
|
||||
|
||||
char message[512];
|
||||
GetString(message, c->error->custom_message != NULL ? BindCString(c->error->custom_message) : c->error->message, lastof(message));
|
||||
if (c->error->custom_message == NULL) {
|
||||
SetDParamStr(0, c->filename);
|
||||
SetDParamStr(1, c->error->data);
|
||||
for (uint i = 0; i < c->error->num_params; i++) {
|
||||
uint32 param = 0;
|
||||
byte param_number = c->error->param_number[i];
|
||||
|
||||
if (param_number < c->num_params) param = c->param[param_number];
|
||||
|
||||
SetDParam(2 + i, param);
|
||||
}
|
||||
|
||||
GetString(message, c->error->message, lastof(message));
|
||||
} else {
|
||||
SetDParamStr(0, c->error->custom_message);
|
||||
GetString(message, STR_JUST_RAW_STRING, lastof(message));
|
||||
}
|
||||
|
||||
SetDParamStr(0, message);
|
||||
y += DrawStringMultiLine(x, y, c->error->severity, w, bottom - y);
|
||||
@ -88,7 +93,8 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, uint bott
|
||||
if (show_params) {
|
||||
if (c->num_params > 0) {
|
||||
GRFBuildParamList(buff, c, lastof(buff));
|
||||
SetDParamStr(0, buff);
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, buff);
|
||||
} else {
|
||||
SetDParam(0, STR_01A9_NONE);
|
||||
}
|
||||
@ -102,7 +108,8 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, uint bott
|
||||
|
||||
/* Draw GRF info if it exists */
|
||||
if (c->info != NULL && !StrEmpty(c->info)) {
|
||||
SetDParamStr(0, c->info);
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, c->info);
|
||||
y += DrawStringMultiLine(x, y, STR_02BD, w, bottom - y);
|
||||
} else {
|
||||
y += DrawStringMultiLine(x, y, STR_NEWGRF_NO_INFO, w, bottom - y);
|
||||
@ -487,9 +494,10 @@ struct NewGRFWindow : public Window {
|
||||
case SNGRFS_SET_PARAMETERS: { // Edit parameters
|
||||
if (this->sel == NULL) break;
|
||||
|
||||
char buff[512];
|
||||
static char buff[512];
|
||||
GRFBuildParamList(buff, this->sel, lastof(buff));
|
||||
ShowQueryString(BindCString(buff), STR_NEWGRF_PARAMETER_QUERY, 63, 250, this, CS_ALPHANUMERAL);
|
||||
SetDParamStr(0, buff);
|
||||
ShowQueryString(STR_JUST_RAW_STRING, STR_NEWGRF_PARAMETER_QUERY, 63, 250, this, CS_ALPHANUMERAL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -758,7 +758,8 @@ static void StartScenario()
|
||||
/* invalid type */
|
||||
if (_file_to_saveload.mode == SL_INVALID) {
|
||||
DEBUG(sl, 0, "Savegame is obsolete or invalid format: '%s'", _file_to_saveload.name);
|
||||
SetDParamStr(0, GetSaveLoadErrorString());
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, GetSaveLoadErrorString());
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
|
||||
_game_mode = GM_MENU;
|
||||
return;
|
||||
@ -774,7 +775,8 @@ static void StartScenario()
|
||||
/* Load game */
|
||||
if (SaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, SCENARIO_DIR) != SL_OK) {
|
||||
LoadIntroGame();
|
||||
SetDParamStr(0, GetSaveLoadErrorString());
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, GetSaveLoadErrorString());
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
|
||||
}
|
||||
|
||||
@ -886,7 +888,8 @@ void SwitchMode(int new_mode)
|
||||
|
||||
if (!SafeSaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_NORMAL, NO_DIRECTORY)) {
|
||||
LoadIntroGame();
|
||||
SetDParamStr(0, GetSaveLoadErrorString());
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, GetSaveLoadErrorString());
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
|
||||
} else {
|
||||
if (_saveload_mode == SLD_LOAD_SCENARIO) {
|
||||
@ -927,7 +930,8 @@ void SwitchMode(int new_mode)
|
||||
SetLocalPlayer(OWNER_NONE);
|
||||
_settings_newgame.game_creation.starting_year = _cur_year;
|
||||
} else {
|
||||
SetDParamStr(0, GetSaveLoadErrorString());
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, GetSaveLoadErrorString());
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
|
||||
}
|
||||
break;
|
||||
@ -941,7 +945,8 @@ void SwitchMode(int new_mode)
|
||||
/* Make network saved games on pause compatible to singleplayer */
|
||||
if (_networking && _pause_game == 1) _pause_game = 2;
|
||||
if (SaveOrLoad(_file_to_saveload.name, SL_SAVE, NO_DIRECTORY) != SL_OK) {
|
||||
SetDParamStr(0, GetSaveLoadErrorString());
|
||||
SetDParam(0, STR_JUST_RAW_STRING);
|
||||
SetDParamStr(1, GetSaveLoadErrorString());
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
|
||||
} else {
|
||||
DeleteWindowById(WC_SAVELOAD, 0);
|
||||
|
@ -59,7 +59,7 @@ void DrawRoadVehDetails(const Vehicle *v, int x, int y)
|
||||
}
|
||||
|
||||
SetDParamStr(0, capacity);
|
||||
DrawStringTruncated(x, y + 10 + y_offset, STR_JUST_STRING, TC_BLUE, 380 - x);
|
||||
DrawStringTruncated(x, y + 10 + y_offset, STR_JUST_RAW_STRING, TC_BLUE, 380 - x);
|
||||
|
||||
for (const Vehicle *u = v; u != NULL; u = u->Next()) {
|
||||
if (u->cargo_cap == 0) continue;
|
||||
|
@ -1115,7 +1115,8 @@ struct CustomCurrencyWindow : Window {
|
||||
if (IsInsideMM(x, 10, 30)) { // clicked button
|
||||
this->click = 1 << (line * 2 + 1);
|
||||
}
|
||||
str = BindCString(this->separator);
|
||||
SetDParamStr(0, this->separator);
|
||||
str = STR_JUST_RAW_STRING;
|
||||
len = 1;
|
||||
break;
|
||||
|
||||
@ -1123,7 +1124,8 @@ struct CustomCurrencyWindow : Window {
|
||||
if (IsInsideMM(x, 10, 30)) { // clicked button
|
||||
this->click = 1 << (line * 2 + 1);
|
||||
}
|
||||
str = BindCString(_custom_currency.prefix);
|
||||
SetDParamStr(0, _custom_currency.prefix);
|
||||
str = STR_JUST_RAW_STRING;
|
||||
len = 12;
|
||||
break;
|
||||
|
||||
@ -1131,7 +1133,8 @@ struct CustomCurrencyWindow : Window {
|
||||
if (IsInsideMM(x, 10, 30)) { // clicked button
|
||||
this->click = 1 << (line * 2 + 1);
|
||||
}
|
||||
str = BindCString(_custom_currency.suffix);
|
||||
SetDParamStr(0, _custom_currency.suffix);
|
||||
str = STR_JUST_RAW_STRING;
|
||||
len = 12;
|
||||
break;
|
||||
|
||||
|
@ -810,13 +810,14 @@ struct StationViewWindow : public Window {
|
||||
}
|
||||
|
||||
if (this->widget[SVW_ACCEPTS].data == STR_3032_RATINGS) { // small window with list of accepted cargo
|
||||
char *b = _userstring;
|
||||
char string[512];
|
||||
char *b = string;
|
||||
bool first = true;
|
||||
|
||||
b = InlineString(b, STR_000C_ACCEPTS);
|
||||
|
||||
for (CargoID i = 0; i < NUM_CARGO; i++) {
|
||||
if (b >= lastof(_userstring) - (1 + 2 * 4)) break; // ',' or ' ' and two calls to Utf8Encode()
|
||||
if (b >= lastof(string) - (1 + 2 * 4)) break; // ',' or ' ' and two calls to Utf8Encode()
|
||||
if (HasBit(st->goods[i].acceptance_pickup, GoodsEntry::ACCEPTANCE)) {
|
||||
if (first) {
|
||||
first = false;
|
||||
@ -835,9 +836,10 @@ struct StationViewWindow : public Window {
|
||||
*b = '\0';
|
||||
|
||||
/* Make sure we detect any buffer overflow */
|
||||
assert(b < endof(_userstring));
|
||||
assert(b < endof(string));
|
||||
|
||||
DrawStringMultiLine(2, this->widget[SVW_ACCEPTLIST].top + 1, STR_SPEC_USERSTRING, this->widget[SVW_ACCEPTLIST].right - this->widget[SVW_ACCEPTLIST].left);
|
||||
SetDParamStr(0, string);
|
||||
DrawStringMultiLine(2, this->widget[SVW_ACCEPTLIST].top + 1, STR_JUST_RAW_STRING, this->widget[SVW_ACCEPTLIST].right - this->widget[SVW_ACCEPTLIST].left);
|
||||
} else { // extended window with list of cargo ratings
|
||||
y = this->widget[SVW_RATINGLIST].top + 1;
|
||||
|
||||
|
@ -490,6 +490,7 @@ static const CmdStruct _cmd_structs[] = {
|
||||
{"SKIP", EmitSingleChar, SCC_SKIP, 1, 0},
|
||||
|
||||
{"STRING", EmitSingleChar, SCC_STRING, 1, C_CASE},
|
||||
{"RAW_STRING", EmitSingleChar, SCC_RAW_STRING_POINTER, 1, 0},
|
||||
|
||||
// Numbers
|
||||
{"COMMA", EmitSingleChar, SCC_COMMA, 1, 0}, // Number with comma
|
||||
@ -717,7 +718,8 @@ static const CmdStruct *TranslateCmdForCompare(const CmdStruct *a)
|
||||
strcmp(a->cmd, "STRING2") == 0 ||
|
||||
strcmp(a->cmd, "STRING3") == 0 ||
|
||||
strcmp(a->cmd, "STRING4") == 0 ||
|
||||
strcmp(a->cmd, "STRING5") == 0) {
|
||||
strcmp(a->cmd, "STRING5") == 0 ||
|
||||
strcmp(a->cmd, "RAW_STRING") == 0){
|
||||
return FindCmd("STRING", 6);
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,6 @@
|
||||
#include "table/control_codes.h"
|
||||
|
||||
DynamicLanguages _dynlang;
|
||||
char _userstring[128];
|
||||
uint64 _decode_parameters[20];
|
||||
|
||||
static char *StationGetSpecialString(char *buff, int x, const char* last);
|
||||
@ -96,17 +95,6 @@ static inline const int64 *GetArgvPtr(const int64 **argv, int n)
|
||||
}
|
||||
|
||||
|
||||
#define NUM_BOUND_STRINGS 8
|
||||
|
||||
/* Array to hold the bound strings. */
|
||||
static const char *_bound_strings[NUM_BOUND_STRINGS];
|
||||
|
||||
/* This index is used to implement a "round-robin" allocating of
|
||||
* slots for BindCString. NUM_BOUND_STRINGS slots are reserved.
|
||||
* Which means that after NUM_BOUND_STRINGS calls to BindCString,
|
||||
* the indices will be reused. */
|
||||
static int _bind_index;
|
||||
|
||||
const char *GetStringPtr(StringID string)
|
||||
{
|
||||
switch (GB(string, 11, 5)) {
|
||||
@ -167,13 +155,7 @@ static char *GetStringWithArgs(char *buffr, uint string, const int64 *argv, cons
|
||||
return FormatString(buffr, GetGRFStringPtr(index + 0x1000), argv, 0, last);
|
||||
|
||||
case 31:
|
||||
/* dynamic strings. These are NOT to be passed through the formatter,
|
||||
* but passed through verbatim. */
|
||||
if (index < (STR_SPEC_USERSTRING & 0x7FF)) {
|
||||
return strecpy(buffr, _bound_strings[index], last);
|
||||
}
|
||||
|
||||
return FormatString(buffr, _userstring, NULL, 0, last);
|
||||
NOT_REACHED();
|
||||
}
|
||||
|
||||
if (index >= _langtab_num[tab]) {
|
||||
@ -200,32 +182,13 @@ char *InlineString(char *buf, StringID string)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This function takes a C-string and allocates a temporary string ID.
|
||||
* The StringID of the bound string is valid until BindCString is called
|
||||
* another NUM_BOUND_STRINGS times. So be careful when using it.
|
||||
* @param str temp string to add
|
||||
* @return the id of that temp string
|
||||
* @note formatting a DATE_TINY calls BindCString twice, thus reduces the
|
||||
* amount of 'user' bound strings by 2.
|
||||
* @todo rewrite the BindCString system to make the limit flexible and
|
||||
* non-round-robin. For example by using smart pointers that free
|
||||
* the allocated StringID when they go out-of-scope/are freed.
|
||||
*/
|
||||
StringID BindCString(const char *str)
|
||||
{
|
||||
int idx = (++_bind_index) & (NUM_BOUND_STRINGS - 1);
|
||||
_bound_strings[idx] = str;
|
||||
return idx + STR_SPEC_DYNSTRING;
|
||||
}
|
||||
|
||||
/** This function is used to "bind" a C string to a OpenTTD dparam slot.
|
||||
* @param n slot of the string
|
||||
* @param str string to bind
|
||||
*/
|
||||
void SetDParamStr(uint n, const char *str)
|
||||
{
|
||||
SetDParam(n, BindCString(str));
|
||||
SetDParam(n, (uint64)str);
|
||||
}
|
||||
|
||||
void InjectDParam(int amount)
|
||||
@ -334,7 +297,7 @@ static char *FormatTinyDate(char *buff, Date date, const char* last)
|
||||
snprintf(day, lengthof(day), "%02i", ymd.day);
|
||||
snprintf(month, lengthof(month), "%02i", ymd.month + 1);
|
||||
|
||||
int64 args[3] = { BindCString(day), BindCString(month), ymd.year };
|
||||
int64 args[3] = { (int64)day, (int64)month, ymd.year };
|
||||
return FormatString(buff, GetStringPtr(STR_DATE_TINY), args, 0, last);
|
||||
}
|
||||
|
||||
@ -592,6 +555,12 @@ static char* FormatString(char* buff, const char* str, const int64* argv, uint c
|
||||
buff = GetStringWithArgs(buff, Utf8Consume(&str), argv, last);
|
||||
break;
|
||||
|
||||
case SCC_RAW_STRING_POINTER: { // {RAW_STRING}
|
||||
const char *str = (const char*)GetInt64(&argv);
|
||||
buff = FormatString(buff, str, argv, casei, last);
|
||||
break;
|
||||
}
|
||||
|
||||
case SCC_DATE_LONG: // {DATE_LONG}
|
||||
buff = FormatYmdString(buff, GetInt32(&argv), last);
|
||||
break;
|
||||
@ -1519,8 +1488,8 @@ void CheckForMissingGlyphsInLoadedLanguagePack()
|
||||
*/
|
||||
static char *err_str = strdup("XXXThe current font is missing some of the characters used in the texts for this language. Read the readme to see how to solve this.");
|
||||
Utf8Encode(err_str, SCC_YELLOW);
|
||||
StringID err_msg = BindCString(err_str);
|
||||
ShowErrorMessage(INVALID_STRING_ID, err_msg, 0, 0);
|
||||
SetDParamStr(0, err_str);
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_JUST_RAW_STRING, 0, 0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -11,8 +11,6 @@ char *InlineString(char *buf, StringID string);
|
||||
char *GetString(char *buffr, StringID string, const char *last);
|
||||
const char *GetStringPtr(StringID string);
|
||||
|
||||
extern char _userstring[128];
|
||||
|
||||
void InjectDParam(int amount);
|
||||
|
||||
static inline void SetDParamX(uint64 *s, uint n, uint64 v)
|
||||
@ -28,16 +26,8 @@ static inline void SetDParam(uint n, uint64 v)
|
||||
_decode_parameters[n] = v;
|
||||
}
|
||||
|
||||
/* Used to bind a C string name to a dparam number.
|
||||
* NOTE: This has a short lifetime. You can't
|
||||
* use this string much later or it will be gone. */
|
||||
void SetDParamStr(uint n, const char *str);
|
||||
|
||||
/** This function takes a C-string and allocates a temporary string ID.
|
||||
* The duration of the bound string is valid only until the next call to GetString,
|
||||
* so be careful. */
|
||||
StringID BindCString(const char *str);
|
||||
|
||||
static inline uint64 GetDParamX(const uint64 *s, uint n)
|
||||
{
|
||||
return s[n];
|
||||
|
@ -79,10 +79,6 @@ enum SpecialStrings {
|
||||
// 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 */
|
||||
|
@ -66,6 +66,7 @@ enum StringControlCode {
|
||||
SCC_NUM,
|
||||
|
||||
SCC_STRING_ID,
|
||||
SCC_RAW_STRING_POINTER,
|
||||
SCC_PLURAL_LIST,
|
||||
SCC_GENDER_LIST,
|
||||
SCC_GENDER_INDEX,
|
||||
|
@ -453,7 +453,8 @@ uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine)
|
||||
uint32 cmask = EngInfo(engine)->refit_mask;
|
||||
/* List of cargo types available in this climate */
|
||||
uint32 lmask = _cargo_mask;
|
||||
char *b = _userstring;
|
||||
char string[512];
|
||||
char *b = string;
|
||||
|
||||
/* Draw nothing if the engine is not refittable */
|
||||
if (CountBits(cmask) <= 1) return 0;
|
||||
@ -477,9 +478,9 @@ uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine)
|
||||
for (CargoID cid = 0; cid < NUM_CARGO; cid++) {
|
||||
if (!HasBit(cmask, cid)) continue;
|
||||
|
||||
if (b >= lastof(_userstring) - (2 + 2 * 4)) break; // ", " and two calls to Utf8Encode()
|
||||
if (b >= lastof(string) - (2 + 2 * 4)) break; // ", " and two calls to Utf8Encode()
|
||||
|
||||
if (!first) b = strecpy(b, ", ", lastof(_userstring));
|
||||
if (!first) b = strecpy(b, ", ", lastof(string));
|
||||
first = false;
|
||||
|
||||
b = InlineString(b, GetCargo(cid)->name);
|
||||
@ -490,9 +491,9 @@ uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine)
|
||||
*b = '\0';
|
||||
|
||||
/* Make sure we detect any buffer overflow */
|
||||
assert(b < endof(_userstring));
|
||||
assert(b < endof(string));
|
||||
|
||||
return DrawStringMultiLine(x, y, STR_SPEC_USERSTRING, w);
|
||||
return DrawStringMultiLine(x, y, STR_JUST_RAW_STRING, w);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user