Merge branch 'reverse_at_waypoint' into jgrpp
Conflicts: src/order_gui.cpp src/saveload/extended_ver_sl.cpp src/saveload/extended_ver_sl.h src/train_cmd.cpp
This commit is contained in:
@@ -4221,6 +4221,9 @@ STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select w
|
|||||||
STR_ORDER_DROP_REFIT_AUTO :Fixed cargo
|
STR_ORDER_DROP_REFIT_AUTO :Fixed cargo
|
||||||
STR_ORDER_DROP_REFIT_AUTO_ANY :Available cargo
|
STR_ORDER_DROP_REFIT_AUTO_ANY :Available cargo
|
||||||
|
|
||||||
|
STR_ORDER_REVERSE :{BLACK}Reverse
|
||||||
|
STR_ORDER_REVERSE_TOOLTIP :{BLACK}Change the reversing behaviour of the highlighted order.
|
||||||
|
|
||||||
STR_ORDER_SERVICE :{BLACK}Service
|
STR_ORDER_SERVICE :{BLACK}Service
|
||||||
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Always go
|
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Always go
|
||||||
STR_ORDER_DROP_SERVICE_DEPOT :Service if needed
|
STR_ORDER_DROP_SERVICE_DEPOT :Service if needed
|
||||||
@@ -4299,6 +4302,8 @@ STR_ORDERS_OCCUPANCY_PERCENT :{NUM}%
|
|||||||
# String parts to build the order string
|
# String parts to build the order string
|
||||||
STR_ORDER_GO_TO_WAYPOINT :Go via {WAYPOINT}
|
STR_ORDER_GO_TO_WAYPOINT :Go via {WAYPOINT}
|
||||||
STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Go non-stop via {WAYPOINT}
|
STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Go non-stop via {WAYPOINT}
|
||||||
|
STR_ORDER_GO_TO_WAYPOINT_REVERSE :Go via and reverse at {WAYPOINT}
|
||||||
|
STR_ORDER_GO_NON_STOP_TO_WAYPOINT_REVERSE :Go non-stop via and reverse at {WAYPOINT}
|
||||||
|
|
||||||
STR_ORDER_SERVICE_AT :Service at
|
STR_ORDER_SERVICE_AT :Service at
|
||||||
STR_ORDER_SERVICE_NON_STOP_AT :Service non-stop at
|
STR_ORDER_SERVICE_NON_STOP_AT :Service non-stop at
|
||||||
|
@@ -2174,7 +2174,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :게임이 아
|
|||||||
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING})
|
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING})
|
||||||
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING}, {STRING})
|
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING}, {STRING})
|
||||||
STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :게임이 재개되었습니다. ({STRING})
|
STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :게임이 재개되었습니다. ({STRING})
|
||||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :충분한 플레이어가 없습니다
|
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :플레이하는 사람 수
|
||||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :접속자와 연결중
|
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :접속자와 연결중
|
||||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :수동
|
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :수동
|
||||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :게임 스크립트
|
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :게임 스크립트
|
||||||
|
@@ -434,7 +434,7 @@ STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Fundar nueva in
|
|||||||
|
|
||||||
############ range for railway construction menu starts
|
############ range for railway construction menu starts
|
||||||
STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcción de ferrocarril
|
STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcción de ferrocarril
|
||||||
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción ferrocarril eléctrico
|
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción de ferrocarril eléctrico
|
||||||
STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcción de monorraíl
|
STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcción de monorraíl
|
||||||
STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcción de maglev
|
STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcción de maglev
|
||||||
############ range ends here
|
############ range ends here
|
||||||
@@ -625,7 +625,7 @@ STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Préstam
|
|||||||
STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total:
|
STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total:
|
||||||
############ End of order list
|
############ End of order list
|
||||||
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Cantidad de vehículos que obtuvieron beneficios el año pasado. Incluye vehículos de carretera, trenes, barcos y aeronaves
|
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Cantidad de vehículos que obtuvieron beneficios el año pasado. Incluye vehículos de carretera, trenes, barcos y aeronaves
|
||||||
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobus, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación
|
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobús, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación
|
||||||
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Beneficio del vehículo con menores ingresos (de entre todos los vehículos con más de 2 años)
|
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Beneficio del vehículo con menores ingresos (de entre todos los vehículos con más de 2 años)
|
||||||
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más bajo de los pasados 12 trimestres
|
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más bajo de los pasados 12 trimestres
|
||||||
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más alto de los pasados 12 trimestres
|
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más alto de los pasados 12 trimestres
|
||||||
@@ -656,15 +656,15 @@ STR_MUSIC_TRACK :{TINY_FONT}{BLA
|
|||||||
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título
|
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título
|
||||||
STR_MUSIC_SHUFFLE :{TINY_FONT}{BLACK}Mezclar
|
STR_MUSIC_SHUFFLE :{TINY_FONT}{BLACK}Mezclar
|
||||||
STR_MUSIC_PROGRAM :{TINY_FONT}{BLACK}Programa
|
STR_MUSIC_PROGRAM :{TINY_FONT}{BLACK}Programa
|
||||||
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Pasar a pista anterior de la selección
|
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Saltar a la pista anterior de la selección
|
||||||
STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Pasar a siguiente pista de la selección
|
STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Saltar a la siguiente pista de la selección
|
||||||
STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detener música
|
STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detener música
|
||||||
STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comenzar música
|
STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comenzar música
|
||||||
STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Mueva los cursores para fijar volumen de música y efectos
|
STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Mueva los cursores para fijar volumen de música y efectos
|
||||||
STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Seleccionar programa 'todas las pistas'
|
STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Seleccionar programa 'todas las pistas'
|
||||||
STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo antiguo'
|
STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo antiguo'
|
||||||
STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo moderno'
|
STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo moderno'
|
||||||
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Elegir el programa musical de estilo 'Ezy Street'
|
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Seleccionar programa 'estilo Ezy Street'
|
||||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 1' (definido por el usuario)
|
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 1' (definido por el usuario)
|
||||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 2' (definido por el usuario)
|
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 2' (definido por el usuario)
|
||||||
STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Encender/apagar mezclador
|
STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Encender/apagar mezclador
|
||||||
@@ -717,7 +717,7 @@ STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Mostrar
|
|||||||
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostrar propietarios de terrenos en el mapa
|
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostrar propietarios de terrenos en el mapa
|
||||||
STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Click en un tipo de industria para mostrarlo/ocultarlo. Ctrl+Click oculta todos los tipos excepto el seleccionado. Ctrl+Click de nuevo en el mismo tipo muestra todos los tipos de industrias
|
STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Click en un tipo de industria para mostrarlo/ocultarlo. Ctrl+Click oculta todos los tipos excepto el seleccionado. Ctrl+Click de nuevo en el mismo tipo muestra todos los tipos de industrias
|
||||||
STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Click en una empresa para mostrar/ocultar sus propiedades. Ctrl+Click oculta todas las empresas excepto la seleccionada. Ctrl+Click de nuevo en la misma empresa muestra todas las empresas
|
STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Click en una empresa para mostrar/ocultar sus propiedades. Ctrl+Click oculta todas las empresas excepto la seleccionada. Ctrl+Click de nuevo en la misma empresa muestra todas las empresas
|
||||||
STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Un Click en una carga permite activar o desactivar su visualización. Ctrl+Click deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Click habilita la visualización de todos los tipos de carga
|
STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Click en una carga permite activar o desactivar su visualización. Ctrl+Click deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Click habilita la visualización de todos los tipos de carga
|
||||||
|
|
||||||
STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras
|
STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras
|
||||||
STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles
|
STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles
|
||||||
@@ -942,7 +942,7 @@ STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Francés
|
|||||||
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Alemán
|
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Alemán
|
||||||
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglés (Adicional)
|
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglés (Adicional)
|
||||||
STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Latinoamericano
|
STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Latinoamericano
|
||||||
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tontos
|
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Absurdos
|
||||||
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Sueco
|
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Sueco
|
||||||
STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Holandés
|
STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Holandés
|
||||||
STR_GAME_OPTIONS_TOWN_NAME_FINNISH :Finlandés
|
STR_GAME_OPTIONS_TOWN_NAME_FINNISH :Finlandés
|
||||||
@@ -991,7 +991,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádru
|
|||||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base
|
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base
|
||||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar
|
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar
|
||||||
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichero{P "" s} perdido{P "" s} o corrupto{P "" s}
|
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichero{P "" s} perdido{P "" s} o corrupto{P "" s}
|
||||||
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional acerca de este fichero de gráficos
|
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional sobre el set de gráficos base
|
||||||
|
|
||||||
STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunto de sonidos base
|
STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunto de sonidos base
|
||||||
STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Seleccionar conjunto de sonidos base a emplear
|
STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Seleccionar conjunto de sonidos base a emplear
|
||||||
@@ -1820,14 +1820,14 @@ STR_LIVERY_PANEL_TOOLTIP :{BLACK}Seleccio
|
|||||||
|
|
||||||
STR_LIVERY_DEFAULT :Estación normal
|
STR_LIVERY_DEFAULT :Estación normal
|
||||||
STR_LIVERY_STEAM :Locomotora a Vapor
|
STR_LIVERY_STEAM :Locomotora a Vapor
|
||||||
STR_LIVERY_DIESEL :Locomotora Diesel
|
STR_LIVERY_DIESEL :Locomotora Diésel
|
||||||
STR_LIVERY_ELECTRIC :Locomotora Eléctrica
|
STR_LIVERY_ELECTRIC :Locomotora Eléctrica
|
||||||
STR_LIVERY_MONORAIL :Locomotora Monorraíl
|
STR_LIVERY_MONORAIL :Locomotora Monorraíl
|
||||||
STR_LIVERY_MAGLEV :Locomotora Maglev
|
STR_LIVERY_MAGLEV :Locomotora Maglev
|
||||||
STR_LIVERY_DMU :DMU
|
STR_LIVERY_DMU :DMU
|
||||||
STR_LIVERY_EMU :EMU
|
STR_LIVERY_EMU :EMU
|
||||||
STR_LIVERY_PASSENGER_WAGON_STEAM :Vagón Pasajeros (Vapor)
|
STR_LIVERY_PASSENGER_WAGON_STEAM :Vagón Pasajeros (Vapor)
|
||||||
STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diesel)
|
STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diésel)
|
||||||
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagón Pasajeros (Eléctrico)
|
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagón Pasajeros (Eléctrico)
|
||||||
STR_LIVERY_PASSENGER_WAGON_MONORAIL :Vagón Pasajeros (Monorraíl)
|
STR_LIVERY_PASSENGER_WAGON_MONORAIL :Vagón Pasajeros (Monorraíl)
|
||||||
STR_LIVERY_PASSENGER_WAGON_MAGLEV :Vagón Pasajeros (Maglev)
|
STR_LIVERY_PASSENGER_WAGON_MAGLEV :Vagón Pasajeros (Maglev)
|
||||||
@@ -2248,7 +2248,7 @@ STR_CONTENT_TYPE_GS_LIBRARY :Librería SJ
|
|||||||
|
|
||||||
# Content downloading progress window
|
# Content downloading progress window
|
||||||
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Descargando contenido...
|
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Descargando contenido...
|
||||||
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando ficheros...
|
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando archivos...
|
||||||
STR_CONTENT_DOWNLOAD_FILE :{WHITE}Descargando {STRING} ({NUM} de {NUM})
|
STR_CONTENT_DOWNLOAD_FILE :{WHITE}Descargando {STRING} ({NUM} de {NUM})
|
||||||
STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Descarga completada
|
STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Descarga completada
|
||||||
STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} de {BYTES} descargadas ({NUM} %)
|
STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} de {BYTES} descargadas ({NUM} %)
|
||||||
@@ -2257,8 +2257,8 @@ STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES}
|
|||||||
STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}No es posible conectarse al servidor de contenidos...
|
STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}No es posible conectarse al servidor de contenidos...
|
||||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Descarga errónea...
|
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Descarga errónea...
|
||||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... conexión perdida
|
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... conexión perdida
|
||||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no se puede escribir en el fichero
|
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no se puede escribir en el archivo
|
||||||
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el fichero descargado
|
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el archivo descargado
|
||||||
|
|
||||||
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados
|
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados
|
||||||
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no se pudo encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos?
|
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no se pudo encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos?
|
||||||
@@ -2802,8 +2802,8 @@ STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Borrar
|
|||||||
STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Borrar la programación seleccionada
|
STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Borrar la programación seleccionada
|
||||||
STR_NEWGRF_SETTINGS_ADD :{BLACK}Añadir
|
STR_NEWGRF_SETTINGS_ADD :{BLACK}Añadir
|
||||||
STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Añade el NewGRF seleccionado a tu configuración
|
STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Añade el NewGRF seleccionado a tu configuración
|
||||||
STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar ficheros
|
STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar archivos
|
||||||
STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de ficheros NewGRF disponibles
|
STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de archivos NewGRF disponibles
|
||||||
STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Retirar
|
STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Retirar
|
||||||
STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Retirar el NewGRF seleccionado de la lista
|
STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Retirar el NewGRF seleccionado de la lista
|
||||||
STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mover Arriba
|
STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mover Arriba
|
||||||
@@ -2812,7 +2812,7 @@ STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mover Ab
|
|||||||
STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado abajo en la lista
|
STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado abajo en la lista
|
||||||
STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualiza
|
STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualiza
|
||||||
STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Utiliza las versiones más nuevas de los archivos NewGRF que dispongan de diversas versiones instaladas
|
STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Utiliza las versiones más nuevas de los archivos NewGRF que dispongan de diversas versiones instaladas
|
||||||
STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una lista de los ficheros NewGRF instalados
|
STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una lista de los archivos NewGRF instalados
|
||||||
|
|
||||||
STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros
|
STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros
|
||||||
STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros
|
STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros
|
||||||
@@ -2823,7 +2823,7 @@ STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Aplicar
|
|||||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Encontrar contenido que falta en línea
|
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Encontrar contenido que falta en línea
|
||||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comprobar si el contenido que falta puede ser encontrado en línea
|
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comprobar si el contenido que falta puede ser encontrado en línea
|
||||||
|
|
||||||
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Fichero: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Archivo: {SILVER}{STRING}
|
||||||
STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
|
||||||
STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versión: {SILVER}{NUM}
|
STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versión: {SILVER}{NUM}
|
||||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versión compatible: {SILVER}{NUM}
|
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versión compatible: {SILVER}{NUM}
|
||||||
@@ -2832,7 +2832,7 @@ STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta:
|
|||||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING}
|
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING}
|
||||||
|
|
||||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No tiene información disponible
|
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No tiene información disponible
|
||||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Fichero no encontrado
|
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Archivo no encontrado
|
||||||
STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivado
|
STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivado
|
||||||
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible con esta versión de OpenTTD
|
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible con esta versión de OpenTTD
|
||||||
|
|
||||||
@@ -2918,18 +2918,18 @@ STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Precau
|
|||||||
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van a modificar los NewGRF de una partida ya comenzada. Esto puede provocar un error fatal en OpenTTD o romper la partida.{}No se deben crear reportes de bugs por problemas causados por esta acción.{}¿Está completamente seguro de esto?
|
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van a modificar los NewGRF de una partida ya comenzada. Esto puede provocar un error fatal en OpenTTD o romper la partida.{}No se deben crear reportes de bugs por problemas causados por esta acción.{}¿Está completamente seguro de esto?
|
||||||
|
|
||||||
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}No se puede añadir: GRF ID duplicado
|
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}No se puede añadir: GRF ID duplicado
|
||||||
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Fichero no encontrado (GRF compatible cargado)
|
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado)
|
||||||
STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir fichero: Límite de ficheros NewGRF alcanzado
|
STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir fichero: Límite de ficheros NewGRF alcanzado
|
||||||
|
|
||||||
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para ficheros que faltan
|
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para archivos que faltan
|
||||||
STR_NEWGRF_DISABLED_WARNING :{WHITE}Fichero(s) GRF no encontrados han sido desactivados
|
STR_NEWGRF_DISABLED_WARNING :{WHITE}Archivo(s) GRF no encontrados han sido desactivados
|
||||||
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Fichero(s) GRF no encontrados
|
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados
|
||||||
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Quitar la pausa puede hacer que se cierre OpenTTD. No notifique este error.{}¿Desea realmente quitar la pausa?
|
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Quitar la pausa puede hacer que se cierre OpenTTD. No notifique este error.{}¿Desea realmente quitar la pausa?
|
||||||
|
|
||||||
# NewGRF status
|
# NewGRF status
|
||||||
STR_NEWGRF_LIST_NONE :Ninguno
|
STR_NEWGRF_LIST_NONE :Ninguno
|
||||||
STR_NEWGRF_LIST_ALL_FOUND :Todos los ficheros presentes
|
STR_NEWGRF_LIST_ALL_FOUND :Todos los ficheros presentes
|
||||||
STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Ficheros compatibles encontrados
|
STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Archivos compatibles encontrados
|
||||||
STR_NEWGRF_LIST_MISSING :{RED}Ficheros que faltan
|
STR_NEWGRF_LIST_MISSING :{RED}Ficheros que faltan
|
||||||
|
|
||||||
# NewGRF 'it's broken' warnings
|
# NewGRF 'it's broken' warnings
|
||||||
@@ -3921,7 +3921,7 @@ STR_TIMETABLE_STARTING_DATE :{BLACK}Fecha de
|
|||||||
STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Selecciona una fecha como punto de partida de este horario. Ctrl+Click permite fijar el punto de partida de este horario y distribuye todos los vehículos que lo compartan siempre y cuando el horario esté completo
|
STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Selecciona una fecha como punto de partida de este horario. Ctrl+Click permite fijar el punto de partida de este horario y distribuye todos los vehículos que lo compartan siempre y cuando el horario esté completo
|
||||||
|
|
||||||
STR_TIMETABLE_CHANGE_TIME :{BLACK}Cambiar Horario
|
STR_TIMETABLE_CHANGE_TIME :{BLACK}Cambiar Horario
|
||||||
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tomar una orden marcada
|
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tardar una orden marcada
|
||||||
|
|
||||||
STR_TIMETABLE_CLEAR_TIME :{BLACK}Limpiar Horario
|
STR_TIMETABLE_CLEAR_TIME :{BLACK}Limpiar Horario
|
||||||
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Limpiar la cantidad de tiempo para la orden seleccionada
|
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Limpiar la cantidad de tiempo para la orden seleccionada
|
||||||
@@ -4068,13 +4068,13 @@ STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}El guard
|
|||||||
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error en Autoguardado
|
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error en Autoguardado
|
||||||
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}No es posible leer la unidad
|
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}No es posible leer la unidad
|
||||||
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando juego{}{STRING}
|
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando juego{}{STRING}
|
||||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el fichero
|
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el archivo
|
||||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Carga de Juego Errónea{}{STRING}
|
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Carga de Juego Errónea{}{STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Error interno: {STRING}
|
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Error interno: {STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Partida guardada corrupta - {STRING}
|
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Partida guardada corrupta - {STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :La partida guardada ha sido realizada con una versión más nueva
|
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :La partida guardada ha sido realizada con una versión más nueva
|
||||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :No se puede leer fichero
|
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Archivo no legible
|
||||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el fichero
|
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el archivo
|
||||||
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Comprobación de integridad de los datos fallida
|
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Comprobación de integridad de los datos fallida
|
||||||
STR_GAME_SAVELOAD_NOT_AVAILABLE :<no disponible>
|
STR_GAME_SAVELOAD_NOT_AVAILABLE :<no disponible>
|
||||||
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}El juego ha sido guardado en una versión sin soporte para tranvías. Todos los tranvías serán eliminados
|
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}El juego ha sido guardado en una versión sin soporte para tranvías. Todos los tranvías serán eliminados
|
||||||
@@ -4084,7 +4084,7 @@ STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generaci
|
|||||||
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no hay municipios en el escenario
|
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no hay municipios en el escenario
|
||||||
|
|
||||||
STR_ERROR_PNGMAP :{WHITE}No se pudo cargar mapa de alturas PNG...
|
STR_ERROR_PNGMAP :{WHITE}No se pudo cargar mapa de alturas PNG...
|
||||||
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... fichero no encontrado
|
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... archivo no encontrado
|
||||||
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir tipo de imagen. Se requieren imágenes PNG de 8 o 24-bits
|
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir tipo de imagen. Se requieren imágenes PNG de 8 o 24-bits
|
||||||
STR_ERROR_PNGMAP_MISC :{WHITE}... algo ha salido mal (es probable que el fichero esté corrupto)
|
STR_ERROR_PNGMAP_MISC :{WHITE}... algo ha salido mal (es probable que el fichero esté corrupto)
|
||||||
|
|
||||||
@@ -4604,7 +4604,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CHANEY_JUBILEE_STEAM :Chaney 'Jubilee
|
|||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_GINZU_A4_STEAM :Ginzu 'A4' (Vapor)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_GINZU_A4_STEAM :Ginzu 'A4' (Vapor)
|
||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_8P_STEAM :SH '8P' (Vapor)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_8P_STEAM :SH '8P' (Vapor)
|
||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MANLEY_MOREL_DMU_DIESEL :Manley-Morel DMU (Diesel)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MANLEY_MOREL_DMU_DIESEL :Manley-Morel DMU (Diesel)
|
||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (Diesel)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (Diésel)
|
||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_HENDRY_25_DIESEL :SH/Hendry '25' (Diesel)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_HENDRY_25_DIESEL :SH/Hendry '25' (Diesel)
|
||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_UU_37_DIESEL :UU '37' (Diesel)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_UU_37_DIESEL :UU '37' (Diesel)
|
||||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_FLOSS_47_DIESEL :Floss '47' (Diesel)
|
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_FLOSS_47_DIESEL :Floss '47' (Diesel)
|
||||||
|
@@ -844,6 +844,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE
|
|||||||
STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} chưa có lệnh
|
STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} chưa có lệnh
|
||||||
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} có các lệnh trùng lặp
|
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} có các lệnh trùng lặp
|
||||||
STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} có trạm bất hợp lệ trong lệnh
|
STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} có trạm bất hợp lệ trong lệnh
|
||||||
|
STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} có trong lộ trình một sân bay có đường băng quá ngắn
|
||||||
|
|
||||||
STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} đang cũ đi
|
STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} đang cũ đi
|
||||||
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} đang xuống cấp
|
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} đang xuống cấp
|
||||||
@@ -1287,17 +1288,28 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Hiển thị d
|
|||||||
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Độ đậm của đường kẻ trong đồ thị: {STRING}
|
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Độ đậm của đường kẻ trong đồ thị: {STRING}
|
||||||
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Độ đậm của đường vẽ trên đồ thị. Một đường mảnh sẽ chính xác hơn, trong khi đó đường đậm sẽ dễ nhìn hơn và màu sắc dễ phân biệt hơn
|
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Độ đậm của đường vẽ trên đồ thị. Một đường mảnh sẽ chính xác hơn, trong khi đó đường đậm sẽ dễ nhìn hơn và màu sắc dễ phân biệt hơn
|
||||||
|
|
||||||
|
STR_CONFIG_SETTING_LANDSCAPE :Nền đất: {STRING}
|
||||||
|
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Nền đất là định nghĩa cơ bản của các màn chơi với các kiểu hàng hóa và yêu cầu cho sự phát triển đô thị khác nhau. NewGRF và kịch bản chơi cho phép các điều chỉnh nhỏ hơn.
|
||||||
STR_CONFIG_SETTING_LAND_GENERATOR :Tạo nền đất: {STRING}
|
STR_CONFIG_SETTING_LAND_GENERATOR :Tạo nền đất: {STRING}
|
||||||
|
STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Bộ khởi tạo nguyên bản chỉ dựa vào tập hợp đồ họa đối tượng cơ bản, rồi sinh ra các dạng địa hình cố đinh. Với TerraGenesis thì dựa trên có chế nhiễu loạn (noise) kiểu Perlin và cho phép các điều chỉnh nhỏ hơn.
|
||||||
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Nguyên Bản
|
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Nguyên Bản
|
||||||
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
|
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
|
||||||
|
STR_CONFIG_SETTING_TERRAIN_TYPE :Kiểu nền đất: {STRING}
|
||||||
|
STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Chỉ cho TerraGenesis) Địa hình nhiều đồi núi
|
||||||
|
STR_CONFIG_SETTING_INDUSTRY_DENSITY :Mật độ nhà máy: {STRING}
|
||||||
|
STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Thiết lập số nhà máy sẽ được tạo ra và mức độ dùy trì trong ván chơi
|
||||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Khoảng cách tối đa từ lề bản đồ tới nhà máy lọc dầu: {STRING}
|
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Khoảng cách tối đa từ lề bản đồ tới nhà máy lọc dầu: {STRING}
|
||||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Nhà máy hóa dầu chỉ có thể xây gần rìa bản đồ, tương ứng là ven biển với những bản đồ dạng đảo
|
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Nhà máy hóa dầu chỉ có thể xây gần rìa bản đồ, tương ứng là ven biển với những bản đồ dạng đảo
|
||||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Độ cao tuyết phủ: {STRING}
|
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Độ cao tuyết phủ: {STRING}
|
||||||
|
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Điều chỉnh độ cao của tuyết phủ đối với địa hình xứ lanh. Tuyết phủ có thể ảnh hưởng tới việc tạo ra nhà máy và các yêu cầu cho sự tăng trưởng đô thị
|
||||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Độ gồ ghề của địa chất: {STRING}
|
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Độ gồ ghề của địa chất: {STRING}
|
||||||
|
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Chỉ cho TerraGenesis) Chọn mức độ trùng điệp của núi: địa hình bằng phẳng thì ít hơn, địa hình đồi núi thì nhiều hơn. Địa hình gồ ghề có nhiều núi và trông có vẻ lặp lại
|
||||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Rất Phẳng
|
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Rất Phẳng
|
||||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Phẳng
|
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Phẳng
|
||||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Gồ Ghề
|
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Gồ Ghề
|
||||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Rất Gồ Ghề
|
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Rất Gồ Ghề
|
||||||
|
STR_CONFIG_SETTING_VARIETY :Phân bổ sự đa dạng: {STRING}
|
||||||
|
STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Chỉ cho TerraGenesis) Điều chỉnh liệu rằng bản đồ gồm cả vùng núi cao và vùng đồng bằng. Đây chỉ là điều chỉnh cho sự bằng phẳng hơn, các thiết lập khác sẽ điều chỉnh cho vùng núi.
|
||||||
STR_CONFIG_SETTING_RIVER_AMOUNT :Số lượng sông ngòi: {STRING}
|
STR_CONFIG_SETTING_RIVER_AMOUNT :Số lượng sông ngòi: {STRING}
|
||||||
STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Chọn số lượng sông ngòi được khởi tạo
|
STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Chọn số lượng sông ngòi được khởi tạo
|
||||||
STR_CONFIG_SETTING_TREE_PLACER :Thuật toán đặt cây: {STRING}
|
STR_CONFIG_SETTING_TREE_PLACER :Thuật toán đặt cây: {STRING}
|
||||||
@@ -2863,6 +2875,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite t
|
|||||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Xử lý sprite bình thường ở trước, bỏ qua các loại pseudo/recolour/font sprite căn theo điểm bắt đầu
|
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Xử lý sprite bình thường ở trước, bỏ qua các loại pseudo/recolour/font sprite căn theo điểm bắt đầu
|
||||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Theo những thông tin của sprite đã chọn. Thì việc căn chỉnh khi vẽ đối với sprite này sẽ bị bỏ qua
|
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Theo những thông tin của sprite đã chọn. Thì việc căn chỉnh khi vẽ đối với sprite này sẽ bị bỏ qua
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Di chuyển sprite xung quanh, thay đổi X và Y offsets
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Di chuyển sprite xung quanh, thay đổi X và Y offsets
|
||||||
|
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Đặt lại tương đối
|
||||||
|
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Đặt lại các dịch chuyển tương đối hiện tại
|
||||||
|
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK} dịch X: {NUM}, dịch Y: {NUM} (tuyệt đối)
|
||||||
|
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}toạ độ X: {NUM}, toạ độ Y: {NUM} (tương đối)
|
||||||
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Chọn sprite
|
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Chọn sprite
|
||||||
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Chọn sprite ở bất cứ đâu trên màn hình
|
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Chọn sprite ở bất cứ đâu trên màn hình
|
||||||
|
|
||||||
|
@@ -149,6 +149,8 @@ public:
|
|||||||
inline OrderDepotTypeFlags GetDepotOrderType() const { return (OrderDepotTypeFlags)GB(this->flags, 0, 3); }
|
inline OrderDepotTypeFlags GetDepotOrderType() const { return (OrderDepotTypeFlags)GB(this->flags, 0, 3); }
|
||||||
/** What are we going to do when in the depot. */
|
/** What are we going to do when in the depot. */
|
||||||
inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)GB(this->flags, 4, 3); }
|
inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)GB(this->flags, 4, 3); }
|
||||||
|
/** What waypoint flags? */
|
||||||
|
inline OrderWaypointFlags GetWaypointFlags() const { return (OrderWaypointFlags)GB(this->flags, 0, 8); }
|
||||||
/** What variable do we have to compare? */
|
/** What variable do we have to compare? */
|
||||||
inline OrderConditionVariable GetConditionVariable() const { return (OrderConditionVariable)GB(this->dest, 11, 5); }
|
inline OrderConditionVariable GetConditionVariable() const { return (OrderConditionVariable)GB(this->dest, 11, 5); }
|
||||||
/** What is the comparator to use? */
|
/** What is the comparator to use? */
|
||||||
@@ -170,6 +172,8 @@ public:
|
|||||||
inline void SetDepotOrderType(OrderDepotTypeFlags depot_order_type) { SB(this->flags, 0, 3, depot_order_type); }
|
inline void SetDepotOrderType(OrderDepotTypeFlags depot_order_type) { SB(this->flags, 0, 3, depot_order_type); }
|
||||||
/** Set what we are going to do in the depot. */
|
/** Set what we are going to do in the depot. */
|
||||||
inline void SetDepotActionType(OrderDepotActionFlags depot_service_type) { SB(this->flags, 4, 3, depot_service_type); }
|
inline void SetDepotActionType(OrderDepotActionFlags depot_service_type) { SB(this->flags, 4, 3, depot_service_type); }
|
||||||
|
/** Set waypoint flags. */
|
||||||
|
inline void SetWaypointFlags(OrderWaypointFlags waypoint_flags) { SB(this->flags, 0, 8, waypoint_flags); }
|
||||||
/** Set variable we have to compare. */
|
/** Set variable we have to compare. */
|
||||||
inline void SetConditionVariable(OrderConditionVariable condition_variable) { SB(this->dest, 11, 5, condition_variable); }
|
inline void SetConditionVariable(OrderConditionVariable condition_variable) { SB(this->dest, 11, 5, condition_variable); }
|
||||||
/** Set the comparator to use. */
|
/** Set the comparator to use. */
|
||||||
|
@@ -1377,7 +1377,7 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case OT_GOTO_WAYPOINT:
|
case OT_GOTO_WAYPOINT:
|
||||||
if (mof != MOF_NON_STOP) return CMD_ERROR;
|
if (mof != MOF_NON_STOP && mof != MOF_WAYPOINT_FLAGS) return CMD_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OT_CONDITIONAL:
|
case OT_CONDITIONAL:
|
||||||
@@ -1470,6 +1470,10 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
|||||||
case MOF_COND_DESTINATION:
|
case MOF_COND_DESTINATION:
|
||||||
if (data >= v->GetNumOrders()) return CMD_ERROR;
|
if (data >= v->GetNumOrders()) return CMD_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MOF_WAYPOINT_FLAGS:
|
||||||
|
if (data != (data & OWF_REVERSE)) return CMD_ERROR;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
@@ -1571,6 +1575,10 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
|||||||
order->SetConditionSkipToOrder(data);
|
order->SetConditionSkipToOrder(data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MOF_WAYPOINT_FLAGS:
|
||||||
|
order->SetWaypointFlags((OrderWaypointFlags)data);
|
||||||
|
break;
|
||||||
|
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -350,10 +350,13 @@ void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OT_GOTO_WAYPOINT:
|
case OT_GOTO_WAYPOINT: {
|
||||||
SetDParam(0, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_GO_NON_STOP_TO_WAYPOINT : STR_ORDER_GO_TO_WAYPOINT);
|
StringID str = (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_GO_NON_STOP_TO_WAYPOINT : STR_ORDER_GO_TO_WAYPOINT;
|
||||||
|
if (order->GetWaypointFlags() & OWF_REVERSE) str += STR_ORDER_GO_TO_WAYPOINT_REVERSE - STR_ORDER_GO_TO_WAYPOINT;
|
||||||
|
SetDParam(0, str);
|
||||||
SetDParam(1, order->GetDestination());
|
SetDParam(1, order->GetDestination());
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case OT_CONDITIONAL: {
|
case OT_CONDITIONAL: {
|
||||||
SetDParam(1, order->GetConditionSkipToOrder() + 1);
|
SetDParam(1, order->GetConditionSkipToOrder() + 1);
|
||||||
@@ -554,6 +557,7 @@ private:
|
|||||||
/* WID_O_SEL_TOP_LEFT */
|
/* WID_O_SEL_TOP_LEFT */
|
||||||
DP_LEFT_LOAD = 0, ///< Display 'load' in the left button of the top row of the train/rv order window.
|
DP_LEFT_LOAD = 0, ///< Display 'load' in the left button of the top row of the train/rv order window.
|
||||||
DP_LEFT_REFIT = 1, ///< Display 'refit' in the left button of the top row of the train/rv order window.
|
DP_LEFT_REFIT = 1, ///< Display 'refit' in the left button of the top row of the train/rv order window.
|
||||||
|
DP_LEFT_REVERSE = 2, ///< Display 'reverse' in the left button of the top row of the train/rv order window.
|
||||||
|
|
||||||
/* WID_O_SEL_TOP_MIDDLE */
|
/* WID_O_SEL_TOP_MIDDLE */
|
||||||
DP_MIDDLE_UNLOAD = 0, ///< Display 'unload' in the middle button of the top row of the train/rv order window.
|
DP_MIDDLE_UNLOAD = 0, ///< Display 'unload' in the middle button of the top row of the train/rv order window.
|
||||||
@@ -1125,13 +1129,14 @@ public:
|
|||||||
row_sel->SetDisplayedPlane(DP_ROW_LOAD);
|
row_sel->SetDisplayedPlane(DP_ROW_LOAD);
|
||||||
} else {
|
} else {
|
||||||
train_row_sel->SetDisplayedPlane(DP_GROUNDVEHICLE_ROW_NORMAL);
|
train_row_sel->SetDisplayedPlane(DP_GROUNDVEHICLE_ROW_NORMAL);
|
||||||
left_sel->SetDisplayedPlane(DP_LEFT_LOAD);
|
left_sel->SetDisplayedPlane(DP_LEFT_REVERSE);
|
||||||
middle_sel->SetDisplayedPlane(DP_MIDDLE_UNLOAD);
|
middle_sel->SetDisplayedPlane(DP_MIDDLE_UNLOAD);
|
||||||
right_sel->SetDisplayedPlane(DP_RIGHT_EMPTY);
|
right_sel->SetDisplayedPlane(DP_RIGHT_EMPTY);
|
||||||
this->EnableWidget(WID_O_NON_STOP);
|
this->EnableWidget(WID_O_NON_STOP);
|
||||||
this->SetWidgetLoweredState(WID_O_NON_STOP, order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
|
this->SetWidgetLoweredState(WID_O_NON_STOP, order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
|
||||||
|
this->EnableWidget(WID_O_REVERSE);
|
||||||
|
this->SetWidgetLoweredState(WID_O_REVERSE, order->GetWaypointFlags() & OWF_REVERSE);
|
||||||
}
|
}
|
||||||
this->DisableWidget(WID_O_FULL_LOAD);
|
|
||||||
this->DisableWidget(WID_O_UNLOAD);
|
this->DisableWidget(WID_O_UNLOAD);
|
||||||
this->DisableWidget(WID_O_REFIT_DROPDOWN);
|
this->DisableWidget(WID_O_REFIT_DROPDOWN);
|
||||||
break;
|
break;
|
||||||
@@ -1461,6 +1466,17 @@ public:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WID_O_REVERSE: {
|
||||||
|
VehicleOrderID sel_ord = this->OrderGetSel();
|
||||||
|
const Order *order = this->vehicle->GetOrder(sel_ord);
|
||||||
|
|
||||||
|
if (order == NULL) break;
|
||||||
|
|
||||||
|
DoCommandP(this->vehicle->tile, this->vehicle->index + (sel_ord << 20), MOF_WAYPOINT_FLAGS | (order->GetWaypointFlags() ^ OWF_REVERSE) << 4,
|
||||||
|
CMD_MODIFY_ORDER | CMD_MSG(STR_ERROR_CAN_T_MODIFY_THIS_ORDER));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case WID_O_COND_CARGO: {
|
case WID_O_COND_CARGO: {
|
||||||
uint value = this->vehicle->GetOrder(this->OrderGetSel())->GetConditionValue();
|
uint value = this->vehicle->GetOrder(this->OrderGetSel())->GetConditionValue();
|
||||||
ShowDropDownMenu(this, cargo_names_list, value, WID_O_COND_CARGO, 0, cargo_bitmask);
|
ShowDropDownMenu(this, cargo_names_list, value, WID_O_COND_CARGO, 0, cargo_bitmask);
|
||||||
@@ -1775,6 +1791,8 @@ static const NWidgetPart _nested_orders_train_widgets[] = {
|
|||||||
SetDataTip(STR_ORDER_TOGGLE_FULL_LOAD, STR_ORDER_TOOLTIP_FULL_LOAD), SetResize(1, 0),
|
SetDataTip(STR_ORDER_TOGGLE_FULL_LOAD, STR_ORDER_TOOLTIP_FULL_LOAD), SetResize(1, 0),
|
||||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_O_REFIT), SetMinimalSize(93, 12), SetFill(1, 0),
|
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_O_REFIT), SetMinimalSize(93, 12), SetFill(1, 0),
|
||||||
SetDataTip(STR_ORDER_REFIT, STR_ORDER_REFIT_TOOLTIP), SetResize(1, 0),
|
SetDataTip(STR_ORDER_REFIT, STR_ORDER_REFIT_TOOLTIP), SetResize(1, 0),
|
||||||
|
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_O_REVERSE), SetMinimalSize(93, 12), SetFill(1, 0),
|
||||||
|
SetDataTip(STR_ORDER_REVERSE, STR_ORDER_REVERSE_TOOLTIP), SetResize(1, 0),
|
||||||
EndContainer(),
|
EndContainer(),
|
||||||
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_O_SEL_TOP_MIDDLE),
|
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_O_SEL_TOP_MIDDLE),
|
||||||
NWidget(NWID_BUTTON_DROPDOWN, COLOUR_GREY, WID_O_UNLOAD), SetMinimalSize(93, 12), SetFill(1, 0),
|
NWidget(NWID_BUTTON_DROPDOWN, COLOUR_GREY, WID_O_UNLOAD), SetMinimalSize(93, 12), SetFill(1, 0),
|
||||||
|
@@ -114,6 +114,15 @@ enum OrderDepotActionFlags {
|
|||||||
};
|
};
|
||||||
DECLARE_ENUM_AS_BIT_SET(OrderDepotActionFlags)
|
DECLARE_ENUM_AS_BIT_SET(OrderDepotActionFlags)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flags for go to waypoint orders
|
||||||
|
*/
|
||||||
|
enum OrderWaypointFlags {
|
||||||
|
OWF_DEFAULT = 0, ///< Default waypoint behaviour
|
||||||
|
OWF_REVERSE = 1 << 0, ///< Reverse train at the waypoint
|
||||||
|
};
|
||||||
|
DECLARE_ENUM_AS_BIT_SET(OrderWaypointFlags)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Variables (of a vehicle) to 'cause' skipping on.
|
* Variables (of a vehicle) to 'cause' skipping on.
|
||||||
*/
|
*/
|
||||||
@@ -161,6 +170,7 @@ enum ModifyOrderFlags {
|
|||||||
MOF_COND_COMPARATOR, ///< A comparator changes.
|
MOF_COND_COMPARATOR, ///< A comparator changes.
|
||||||
MOF_COND_VALUE, ///< The value to set the condition to.
|
MOF_COND_VALUE, ///< The value to set the condition to.
|
||||||
MOF_COND_DESTINATION,///< Change the destination of a conditional order.
|
MOF_COND_DESTINATION,///< Change the destination of a conditional order.
|
||||||
|
MOF_WAYPOINT_FLAGS, ///< Change the waypoint flags
|
||||||
MOF_END
|
MOF_END
|
||||||
};
|
};
|
||||||
template <> struct EnumPropsT<ModifyOrderFlags> : MakeEnumPropsT<ModifyOrderFlags, byte, MOF_NON_STOP, MOF_END, MOF_END, 4> {};
|
template <> struct EnumPropsT<ModifyOrderFlags> : MakeEnumPropsT<ModifyOrderFlags, byte, MOF_NON_STOP, MOF_END, MOF_END, 4> {};
|
||||||
|
@@ -3074,6 +3074,13 @@ bool AfterLoadGame()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SlXvIsFeatureMissing(XSLFI_REVERSE_AT_WAYPOINT)) {
|
||||||
|
Train *t;
|
||||||
|
FOR_ALL_TRAINS(t) {
|
||||||
|
t->reverse_distance = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Only keep order-backups for network clients (and when replaying).
|
* Only keep order-backups for network clients (and when replaying).
|
||||||
* If we are a network server or not networking, then we just loaded a previously
|
* If we are a network server or not networking, then we just loaded a previously
|
||||||
|
@@ -64,6 +64,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
|
|||||||
{ XSLFI_ORDER_OCCUPANCY, XSCF_NULL, 2, 2, "order_occupancy", NULL, NULL, NULL },
|
{ XSLFI_ORDER_OCCUPANCY, XSCF_NULL, 2, 2, "order_occupancy", NULL, NULL, NULL },
|
||||||
{ XSLFI_MORE_COND_ORDERS, XSCF_NULL, 1, 1, "more_cond_orders", NULL, NULL, NULL },
|
{ XSLFI_MORE_COND_ORDERS, XSCF_NULL, 1, 1, "more_cond_orders", NULL, NULL, NULL },
|
||||||
{ XSLFI_EXTRA_LARGE_MAP, XSCF_NULL, 0, 1, "extra_large_map", NULL, NULL, NULL },
|
{ XSLFI_EXTRA_LARGE_MAP, XSCF_NULL, 0, 1, "extra_large_map", NULL, NULL, NULL },
|
||||||
|
{ XSLFI_REVERSE_AT_WAYPOINT, XSCF_NULL, 1, 1, "reverse_at_waypoint", NULL, NULL, NULL },
|
||||||
{ XSLFI_NULL, XSCF_NULL, 0, 0, NULL, NULL, NULL, NULL },// This is the end marker
|
{ XSLFI_NULL, XSCF_NULL, 0, 0, NULL, NULL, NULL, NULL },// This is the end marker
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -45,6 +45,7 @@ enum SlXvFeatureIndex {
|
|||||||
XSLFI_RAIL_AGEING, ///< This save game uses the rail aging patch
|
XSLFI_RAIL_AGEING, ///< This save game uses the rail aging patch
|
||||||
XSLFI_SPRINGPP, ///< This is a SpringPP game, use this for loading some settings
|
XSLFI_SPRINGPP, ///< This is a SpringPP game, use this for loading some settings
|
||||||
XSLFI_EXTRA_LARGE_MAP, ///< Extra large map
|
XSLFI_EXTRA_LARGE_MAP, ///< Extra large map
|
||||||
|
XSLFI_REVERSE_AT_WAYPOINT, ///< Reverse at waypoint orders
|
||||||
|
|
||||||
XSLFI_SIZE, ///< Total count of features, including null feature
|
XSLFI_SIZE, ///< Total count of features, including null feature
|
||||||
};
|
};
|
||||||
|
@@ -759,6 +759,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
|
|||||||
SLE_CONDNULL(2, 2, 19),
|
SLE_CONDNULL(2, 2, 19),
|
||||||
SLE_CONDVAR(Train, gv_flags, SLE_UINT16, 139, SL_MAX_VERSION),
|
SLE_CONDVAR(Train, gv_flags, SLE_UINT16, 139, SL_MAX_VERSION),
|
||||||
SLE_CONDNULL(11, 2, 143), // old reserved space
|
SLE_CONDNULL(11, 2, 143), // old reserved space
|
||||||
|
SLE_CONDVAR_X(Train, reverse_distance, SLE_UINT16, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_REVERSE_AT_WAYPOINT)),
|
||||||
|
|
||||||
SLE_END()
|
SLE_END()
|
||||||
};
|
};
|
||||||
|
@@ -3244,6 +3244,11 @@ static VehicleEnterTileStatus VehicleEnter_Station(Vehicle *v, TileIndex tile, i
|
|||||||
{
|
{
|
||||||
if (v->type == VEH_TRAIN) {
|
if (v->type == VEH_TRAIN) {
|
||||||
StationID station_id = GetStationIndex(tile);
|
StationID station_id = GetStationIndex(tile);
|
||||||
|
if (v->current_order.IsType(OT_GOTO_WAYPOINT) && v->current_order.GetDestination() == station_id && v->current_order.GetWaypointFlags() & OWF_REVERSE) {
|
||||||
|
Train *t = Train::From(v);
|
||||||
|
// reverse at waypoint
|
||||||
|
if (t->reverse_distance == 0) t->reverse_distance = t->gcache.cached_total_length;
|
||||||
|
}
|
||||||
if (!v->current_order.ShouldStopAtStation(v, station_id)) return VETSB_CONTINUE;
|
if (!v->current_order.ShouldStopAtStation(v, station_id)) return VETSB_CONTINUE;
|
||||||
if (!IsRailStation(tile) || !v->IsFrontEngine()) return VETSB_CONTINUE;
|
if (!IsRailStation(tile) || !v->IsFrontEngine()) return VETSB_CONTINUE;
|
||||||
|
|
||||||
|
@@ -113,6 +113,8 @@ struct Train FINAL : public GroundVehicle<Train, VEH_TRAIN> {
|
|||||||
/** Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals. */
|
/** Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals. */
|
||||||
uint16 wait_counter;
|
uint16 wait_counter;
|
||||||
|
|
||||||
|
uint16 reverse_distance;
|
||||||
|
|
||||||
/** We don't want GCC to zero our struct! It already is zeroed and has an index! */
|
/** We don't want GCC to zero our struct! It already is zeroed and has an index! */
|
||||||
Train() : GroundVehicleBase() {}
|
Train() : GroundVehicleBase() {}
|
||||||
/** We want to 'destruct' the right class. */
|
/** We want to 'destruct' the right class. */
|
||||||
|
@@ -671,6 +671,7 @@ static CommandCost CmdBuildRailWagon(TileIndex tile, DoCommandFlag flags, const
|
|||||||
v->owner = _current_company;
|
v->owner = _current_company;
|
||||||
v->track = TRACK_BIT_DEPOT;
|
v->track = TRACK_BIT_DEPOT;
|
||||||
v->vehstatus = VS_HIDDEN | VS_DEFPAL;
|
v->vehstatus = VS_HIDDEN | VS_DEFPAL;
|
||||||
|
v->reverse_distance = 0;
|
||||||
|
|
||||||
v->SetWagon();
|
v->SetWagon();
|
||||||
|
|
||||||
@@ -805,6 +806,7 @@ CommandCost CmdBuildRailVehicle(TileIndex tile, DoCommandFlag flags, const Engin
|
|||||||
v->refit_cap = 0;
|
v->refit_cap = 0;
|
||||||
v->last_station_visited = INVALID_STATION;
|
v->last_station_visited = INVALID_STATION;
|
||||||
v->last_loading_station = INVALID_STATION;
|
v->last_loading_station = INVALID_STATION;
|
||||||
|
v->reverse_distance = 0;
|
||||||
|
|
||||||
v->engine_type = e->index;
|
v->engine_type = e->index;
|
||||||
v->gcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
|
v->gcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
|
||||||
@@ -1902,6 +1904,8 @@ void ReverseTrainDirection(Train *v)
|
|||||||
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
|
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v->reverse_distance = 0;
|
||||||
|
|
||||||
/* Clear path reservation in front if train is not stuck. */
|
/* Clear path reservation in front if train is not stuck. */
|
||||||
if (!HasBit(v->flags, VRF_TRAIN_STUCK)) FreeTrainTrackReservation(v);
|
if (!HasBit(v->flags, VRF_TRAIN_STUCK)) FreeTrainTrackReservation(v);
|
||||||
|
|
||||||
@@ -3348,6 +3352,16 @@ static void HandleSignalBehindTrain(Train *v, uint signal_number)
|
|||||||
ClrBit(_m[v->tile].m2, signal_number);
|
ClrBit(_m[v->tile].m2, signal_number);
|
||||||
MarkTileDirtyByTile(tile);
|
MarkTileDirtyByTile(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16 ReversingDistanceTargetSpeed(const Train *v)
|
||||||
|
{
|
||||||
|
int target_speed;
|
||||||
|
if (_settings_game.vehicle.train_acceleration_model == AM_REALISTIC) {
|
||||||
|
target_speed = ((v->reverse_distance - 1) * 5) / 2;
|
||||||
|
} else {
|
||||||
|
target_speed = (v->reverse_distance - 1) * 10 - 5;
|
||||||
|
}
|
||||||
|
return max(0, target_speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3363,6 +3377,15 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
|
|||||||
Train *prev;
|
Train *prev;
|
||||||
bool direction_changed = false; // has direction of any part changed?
|
bool direction_changed = false; // has direction of any part changed?
|
||||||
|
|
||||||
|
if (reverse && v->reverse_distance == 1) {
|
||||||
|
goto reverse_train_direction;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (v->reverse_distance > 1) {
|
||||||
|
uint16 spd = ReversingDistanceTargetSpeed(v);
|
||||||
|
if (spd < v->cur_speed) v->cur_speed = spd;
|
||||||
|
}
|
||||||
|
|
||||||
/* For every vehicle after and including the given vehicle */
|
/* For every vehicle after and including the given vehicle */
|
||||||
for (prev = v->Previous(); v != nomove; prev = v, v = v->Next()) {
|
for (prev = v->Previous(); v != nomove; prev = v, v = v->Next()) {
|
||||||
DiagDirection enterdir = DIAGDIR_BEGIN;
|
DiagDirection enterdir = DIAGDIR_BEGIN;
|
||||||
@@ -3377,6 +3400,7 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
|
|||||||
/* Inside depot */
|
/* Inside depot */
|
||||||
gp.x = v->x_pos;
|
gp.x = v->x_pos;
|
||||||
gp.y = v->y_pos;
|
gp.y = v->y_pos;
|
||||||
|
v->reverse_distance = 0;
|
||||||
} else {
|
} else {
|
||||||
/* Not inside depot */
|
/* Not inside depot */
|
||||||
|
|
||||||
@@ -3688,6 +3712,9 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
|
|||||||
v->x_pos = gp.x;
|
v->x_pos = gp.x;
|
||||||
v->y_pos = gp.y;
|
v->y_pos = gp.y;
|
||||||
v->UpdatePosition();
|
v->UpdatePosition();
|
||||||
|
if (v->reverse_distance > 1) {
|
||||||
|
v->reverse_distance--;
|
||||||
|
}
|
||||||
|
|
||||||
/* update the Z position of the vehicle */
|
/* update the Z position of the vehicle */
|
||||||
int old_z = v->UpdateInclination(gp.new_tile != gp.old_tile, false);
|
int old_z = v->UpdateInclination(gp.new_tile != gp.old_tile, false);
|
||||||
|
@@ -1683,6 +1683,7 @@ void VehicleEnterDepot(Vehicle *v)
|
|||||||
t->force_proceed = TFP_NONE;
|
t->force_proceed = TFP_NONE;
|
||||||
ClrBit(t->flags, VRF_TOGGLE_REVERSE);
|
ClrBit(t->flags, VRF_TOGGLE_REVERSE);
|
||||||
t->ConsistChanged(CCF_ARRANGE);
|
t->ConsistChanged(CCF_ARRANGE);
|
||||||
|
t->reverse_distance = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2801,6 +2802,8 @@ static void SpawnAdvancedVisualEffect(const Vehicle *v)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16 ReversingDistanceTargetSpeed(const Train *v);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw visual effects (smoke and/or sparks) for a vehicle chain.
|
* Draw visual effects (smoke and/or sparks) for a vehicle chain.
|
||||||
* @pre this->IsPrimaryVehicle()
|
* @pre this->IsPrimaryVehicle()
|
||||||
@@ -2829,10 +2832,12 @@ void Vehicle::ShowVisualEffect() const
|
|||||||
/* For trains, do not show any smoke when:
|
/* For trains, do not show any smoke when:
|
||||||
* - the train is reversing
|
* - the train is reversing
|
||||||
* - is entering a station with an order to stop there and its speed is equal to maximum station entering speed
|
* - is entering a station with an order to stop there and its speed is equal to maximum station entering speed
|
||||||
|
* - is approaching a reversing point and its speed is equal to maximum approach speed
|
||||||
*/
|
*/
|
||||||
if (HasBit(t->flags, VRF_REVERSING) ||
|
if (HasBit(t->flags, VRF_REVERSING) ||
|
||||||
(IsRailStationTile(t->tile) && t->IsFrontEngine() && t->current_order.ShouldStopAtStation(t, GetStationIndex(t->tile)) &&
|
(IsRailStationTile(t->tile) && t->IsFrontEngine() && t->current_order.ShouldStopAtStation(t, GetStationIndex(t->tile)) &&
|
||||||
t->cur_speed >= max_speed)) {
|
t->cur_speed >= max_speed) ||
|
||||||
|
(t->reverse_distance >= 1 && t->cur_speed >= ReversingDistanceTargetSpeed(t))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,7 @@ enum OrderWidgets {
|
|||||||
WID_O_SERVICE, ///< Select service (at depot).
|
WID_O_SERVICE, ///< Select service (at depot).
|
||||||
WID_O_EMPTY, ///< Placeholder for refit dropdown when not owner.
|
WID_O_EMPTY, ///< Placeholder for refit dropdown when not owner.
|
||||||
WID_O_REFIT_DROPDOWN, ///< Open refit options.
|
WID_O_REFIT_DROPDOWN, ///< Open refit options.
|
||||||
|
WID_O_REVERSE, ///< Select waypoint reverse type
|
||||||
WID_O_COND_VARIABLE, ///< Choose condition variable.
|
WID_O_COND_VARIABLE, ///< Choose condition variable.
|
||||||
WID_O_COND_COMPARATOR, ///< Choose condition type.
|
WID_O_COND_COMPARATOR, ///< Choose condition type.
|
||||||
WID_O_COND_VALUE, ///< Choose condition value.
|
WID_O_COND_VALUE, ///< Choose condition value.
|
||||||
|
Reference in New Issue
Block a user