Merge branch 'master' into jgrpp-beta

# Conflicts:
#	src/lang/chuvash.txt
#	src/lang/czech.txt
#	src/lang/english_AU.txt
#	src/lang/english_US.txt
#	src/lang/german.txt
#	src/lang/japanese.txt
#	src/lang/korean.txt
#	src/lang/latvian.txt
#	src/lang/russian.txt
#	src/tree_gui.cpp
#	src/vehicle.cpp
pull/332/head
Jonathan G Rennison 3 years ago
commit 3ef1a0943b

@ -1,225 +1,207 @@
# Multiplayer manual for OpenTTD
Last updated: 2011-02-16
## Table of contents
- 1.0) [Starting a server](#10-starting-a-server)
- 2.0) [Connecting to a server](#20-connecting-to-a-server)
- 2.1) [Connecting to a server over the console](#21-connecting-to-a-server-over-the-console)
- 2.1) [Connecting to a server over the console](#21-connecting-to-a-server-over-the-console)
- 3.0) [Playing internet games](#30-playing-internet-games)
- 4.0) [Tips for servers](#40-tips-for-servers)
- 4.1)[Imposing landscaping limits](#41-imposing-landscaping-limits)
- 4.1)[Imposing landscaping limits](#41-imposing-landscaping-limits)
- 5.0) [Some useful things](#50-some-useful-things)
- 6.0) [Troubleshooting](#60-troubleshooting)
## 1.0) Starting a server
- Make sure that you have your firewall of the computer as well as possible
routers or modems of the server configured such that:
- port 3979 is free for both UDP and TCP connections in- and outgoing
- port 3978 is free outbound for UDP in order to advertise with the master
server (if desired). Otherwise you'll have to tell players your IP.
- port 3977 if use of the admin interface is desired (see admin_network.txt)
- Click "multiplayer" on the startup screen
- Click "start server"
- Type in a game name
- Select the type of game ('LAN/Internet' or 'Internet (advertise)'. With the
last one other people are able to see you online. Else they need your IP and
port to join)
- Click "start game", "load game" or "load scenario"
- Start playing
- Click on "Multiplayer" in the Start Menu.
- Click on "Start Server".
- Give your server a name.
- Select the visibility of your server:
- "Public": your server will be publicly listed.
- "Invite Only": only players who have the invite code for your server can
join.
- "Local": only players on your local network can join.
- (optional) Set a password for your server.
- Click "New Game", "Load Game", or "Play Scenario".
- Start playing.
## 2.0) Connecting to a server
- Click "multiplayer" on the startup screen
- If you want to connect to any network game in your LAN click on 'LAN', then
on 'Find Server'
- If you want to see which servers all online on the Internet, click on
'Internet' and 'Find Server'
- If there were more than one server
- select one in the list below the buttons
- click on 'join game'
- If you want to play and you have the ip or hostname of the game server you
want connect to.
- click add server
- type in the ip address or hostname
- if you want to add a port use :<port>
- If you want to play and you have the invite code of the game server you
want connect to.
- click add server
- type in the invite code
- Now you can select a company and press: "Join company", to help that company
- Or you can press "Spectate game", to spectate the game
- Or you can press "New company", and start your own company (if there are
slots free)
- You see a progressbar how far you are with joining the server.
- Happy playing
- Click on "Multiplayer" in the Start Menu.
- There are three ways to join a server:
- If you want to connect to a local server, click "Search LAN".
- If you want to connect to a public game, click "Search internet".
- If the server-owner shared an invite code with you:
- Click "Add Server".
- Fill in the invite code, which always starts with a `+`.
- Click "OK".
- Click on the server you want to join.
- Click "Join Game".
- If the server has a password, it will ask you for this.
- You see a progressbar how far you are with joining the server.
- Happy playing.
## 2.1) Connecting to a server over the console
- Open the console and type in the following command:
connect `<ip/host>:<port>#<company-no>`
- Open the console and type `connect` for help how to connect via the console.
## 3.0) Playing internet games
- Servers with a red dot behind it have a different version then you have. You
will not be able to join those servers.
- Servers with a red dot behind it have a different version then you have. You
will not be able to join those servers.
- Servers with a yellow dot behind it have NewGRFs that you do not have. You
will not be able to join those servers. However, via "NewGRF Settings" and
"Find missing content online" you might be able to download the needed
NewGRFs after which you can join the server.
- It can happen that a connection is that slow, or you have that many clients
connected to your server, that your clients start to loose their connection.
Some things you can do about it:
- `[network] frame_freq`:
change it in console with: `set network.frame_freq <number>`
the number should be between the 0 and 10, not much higher. It indicates
the delay between clicking and showing up. The higher, the more you notice
it, but the less bandwidth you use.
A good value for Internet-games is 2 or 3.
- `[network] sync_freq`:
change it in console with: `set network.sync_freq <number>`
the number should be between the 50 and 1000, not much lower, not much
higher. It indicates the time between sync-frames. A sync-frame is a frame
which checks if all clients are still in sync. When the value it too high,
clients can desync in 1960, but the server detects it in 1970. Not really
handy. The lower the value, the more bandwidth it uses.
NB: changing `frame_freq` has more effect on the bandwidth then `sync_freq`.
- Servers with a yellow dot behind it have NewGRFs that you do not have. You
will not be able to join those servers. However, via "NewGRF Settings" and
"Find missing content online" you might be able to download the needed
NewGRFs after which you can join the server.
- It can happen that a connection is that slow, or you have that many clients
connected to your server, that your clients start to loose their connection.
Some things you can do about it:
- [network] frame_freq:
change it in console with: 'set network.frame_freq <number>'
the number should be between the 0 and 10, not much higher. It indicates
the delay between clicking and showing up. The higher, the more you notice
it, but the less bandwidth you use.
A good value for Internet-games is 2 or 3.
- [network] sync_freq:
change it in console with: 'set network.sync_freq <number>'
the number should be between the 50 and 1000, not much lower, not much
higher. It indicates the time between sync-frames. A sync-frame is a frame
which checks if all clients are still in sync. When the value it too high,
clients can desync in 1960, but the server detects it in 1970. Not really
handy. The lower the value, the more bandwidth it uses.
## 4.0) Tips for servers
NB: changing frame_freq has more effect on the bandwidth then sync_freq.
- You can launch a dedicated server by adding `-D` as parameter.
- In UNIX like systems, you can fork your dedicated server by adding `-f` as
parameter.
- You can automatically clean companies that do not have a client connected to
them, for, let's say, 3 years. You can do this via: `set autoclean_companies`
and `set autoclean_protected` and `set autoclean_unprotected`. Unprotected
removes a password from a company when it is not used for more then the
defined amount of months. `set autoclean_novehicles` can be used to remove
companies without any vehicles quickly.
- You can also do this manually via the console: `reset_company`.
- You can let your server automatically restart a map when, let's say,
year 2030 is reached. See `set restart_game_date` for detail.
- If you want to be on the server-list, make your server public. You can do
this either from the Start Server window, via the in-game Online Players
window, or by typing in the console: `set server_game_type public`.
- You can protect your server with a password via the console: `set server_pw`,
or via the Start Server menu.
- When you have many clients connected to your server via Internet, watch your
bandwidth (if you have any limit on it, set by your ISP). One client uses
about 1.5 kilobytes per second up and down. To decrease this amount, setting
`frame_freq` to 1 will reduce it to roughly 1 kilobyte per second per client.
- OpenTTD's default settings for maximum number of clients, and amount of data
from clients to process are chosen to not influence the normal playing of
people, but to prevent or at least make it less likely that someone can
perform a (distributed) denial-of-service attack on your server by causing
an out-of-memory event by flooding the server with data to send to all
clients. The major factor in this is the maximum number of clients; with
32 clients "only" sending one chat message causes 1024 messages to be
distributed in total, with 64 clients that already quadruples to 4096. Given
that upstream bandwidth is usually the limiting factor, a queue of packets
that need to be sent will be created.
To prevent clients from exploiting this "explosion" of packets to send we
limit the number of incoming data, resulting in effectively limiting the
amount of data that OpenTTD will send to the clients. Even with the default
limits it is possible to generate about 70.000 packets per second, or about
7 megabit per second of traffic.
Given that OpenTTD kicks clients after they have not reacted within about 9
seconds from sending a frame update packet it would be possible that OpenTTD
keeps about 600.000 packets in memory, using about 50 megabytes of memory.
Given that OpenTTD allows short bursts of packets, you can have slightly
more packets in memory in case of a distributed denial of service attack.
When increasing the amount of incoming data, or the maximum number of
clients the amount of memory OpenTTD needs in case of a distributed denial
of service attack is linearly related to the amount of incoming data and
quadratic to the amount of clients. In short, a rule of thumb for, the
maximum memory usage for packets is:
`#max_clients * #max_clients * bytes_per_frame * 10 KiB`.
### 4.1) Imposing landscaping limits
## 4.0) Tips for servers
- You can impose limits on companies by the following 4 settings:
- `terraform_per_64k_frames`
- `terraform_frame_burst`
- `clear_per_64k_frames`
- `clear_frame_burst`
- You can launch a dedicated server by adding -D as parameter.
- In UNIX like systems, you can fork your dedicated server by adding -f as
parameter.
- You can automatically clean companies that do not have a client connected to
them, for, let's say, 3 years. You can do this via: 'set autoclean_companies'
and 'set autoclean_protected' and 'set autoclean_unprotected'. Unprotected
removes a password from a company when it is not used for more then the
defined amount of months. 'set autoclean_novehicles' can be used to remove
companies without any vehicles quickly.
- You can also do this manually via the console: 'reset_company'.
- You can let your server automatically restart a map when, let's say, year 2030
is reached. See 'set restart_game_date' for detail.
- If you want to be on the server-list, make your server public. You can do
this either from the Start Server GUI, via the in-game Online Players GUI,
or by typing in the console:
'set server_game_type public'.
- You can protect your server with a password via the console: 'set server_pw',
or via the Start Server menu.
- When you have many clients connected to your server via Internet, watch your
bandwidth (if you have any limit on it, set by your ISP). One client uses
about 1.5 kilobytes per second up and down. To decrease this amount, setting
'frame_freq' to 1 will reduce it to roughly 1 kilobyte per second per client.
- OpenTTD's default settings for maximum number of clients, and amount of data
from clients to process are chosen to not influence the normal playing of
people, but to prevent or at least make it less likely that someone can
perform a (distributed) denial-of-service attack on your server by causing
an out-of-memory event by flooding the server with data to send to all
clients. The major factor in this is the maximum number of clients; with
32 clients "only" sending one chat message causes 1024 messages to be
distributed in total, with 64 clients that already quadruples to 4096. Given
that upstream bandwidth is usually the limiting factor, a queue of packets
that need to be sent will be created.
To prevent clients from exploiting this "explosion" of packets to send we
limit the number of incoming data, resulting in effectively limiting the
amount of data that OpenTTD will send to the clients. Even with the default
limits it is possible to generate about 70.000 packets per second, or about
7 megabit per second of traffic.
Given that OpenTTD kicks clients after they have not reacted within about 9
seconds from sending a frame update packet it would be possible that OpenTTD
keeps about 600.000 packets in memory, using about 50 megabytes of memory.
Given that OpenTTD allows short bursts of packets, you can have slightly
more packets in memory in case of a distributed denial of service attack.
When increasing the amount of incoming data, or the maximum number of
clients the amount of memory OpenTTD needs in case of a distributed denial
of service attack is linearly related to the amount of incoming data and
quadratic to the amount of clients. In short, a rule of thumb for, the
maximum memory usage for packets is:
#max_clients * #max_clients * bytes_per_frame * 10 KiB.
- Explaining `NNN_burst` and `NNN_per_64K_frames`
- `NNN_burst` defines 3 things, the maximum limit, the limit of a single
action, and the initial value for the limit assigned to a new company.
This setting is fairly simple and requires no math.
### 4.1) Imposing landscaping limits
A value of 1 means a single tile can be affected by a single action.
This results in having to click 400 times when wanting to cover an area
of 20 x 20 tiles.
- You can impose limits on companies by the following 4 settings:
- terraform_per_64k_frames
- terraform_frame_burst
- clear_per_64k_frames
- clear_frame_burst
The default value 4096 covers an area of 64 x 64 tiles.
- Explaining 'per_64K_frames' and 'burst'
- 'burst' defines 3 things, the maximum limit, the limit of a single action,
and the initial value for the limit assigned to a new company.
This setting is fairly simple and requires no math.
- `NNN_per_64K_frames` defines the number of tiles added to each companies
limit per frame (however not past the possible maximum value,the
`NNN_burst`). 64k rather resembles the exact number of 65536 frames. So
setting this variable to 65536 means: `65536 / 65536 = 1 tile per frame`.
A value of 1 means a single tile can be affected by a single action.
This results in having to click 400 times when wanting to cover an area
of 20 x 20 tiles.
As a day consists of 74 frames, a company's limit is increased by 74
tiles during the course of a single day (2.22 seconds).
To achieve a 1 tile per day increase the following calculation is needed:
`1 / 74 (frames per day) * 65536 (per_64k_frames) = 885.62...`.
After rounding: a value of 886 means adding a bit over 1 tile per day.
The default value 4096 covers an area of 64 x 64 tiles.
There is still enough space to scale this value downwards:
decreasing this value to 127 results in a bit over 1 tile added to the
allowance per week (7 days).
- 'per_64k_frames' defines the number of tiles added to each companies limit
per frame (however not past the possible maximum value,the 'burst').
64k rather resembles the exact number of 65536 frames. So setting this
variable to 65536 means: 65536 / 65536 = 1 tile per frame.
As a day consists of 74 frames, a company's limit is increased by 74
tiles during the course of a single day (2.22 seconds).
To create a setup in which a company gets an initial allowance only,
set the value to 0 - no increase of the allowance per frame.
To achieve a 1 tile per day increase the following calculation is needed:
1 / 74 (frames per day) * 65536 (per_64k_frames) = 885.62...
after rounding: a value of 886 means adding a bit over 1 tile per day.
- Even though construction actions include a clear tile action, they are not
affected by the above settings.
There is still enough space to scale this value downwards:
decreasing this value to 127 results in a bit over 1 tile added to the
allowance per week (7 days).
## 5.0) Some useful things
To create a setup in which a company gets an initial allowance only,
set the value to 0 - no increase of the allowance per frame.
- You can protect your company so nobody else can join uninvited. To do this,
set a password in your Company window.
- Even though construction actions include a clear tile action, they are not
affected by the above settings.
- You can chat with other players via ENTER or via SHIFT+T or via the Online
Players window
- Servers can kick players, so don't make them use it!
## 5.0) Some useful things
## 6.0) Troubleshooting
- You can protect your company so nobody else can join uninvited. To do this,
set a password in your Company Screen
### My server does not show up in the serverlist
- You can give other players some money via the ClientList (under the 'head'
in the mainbar).
Check if the visibility of your server is set to `public`.
- You can chat with other players via ENTER or via SHIFT+T or via the ClientList
If it is, and your server still isn't showing up, start OpenTTD with
`-d net=4` as extra argument. This will show debug message related to the
network, including communication to/from the Game Coordinator.
- Servers can now kick players, so don't make them use it!
### My server warns a lot about getaddrinfo taking N seconds
This could be a transient issue with your (local) DNS server, but if the
problem persists there is likely a configuration issue in DNS resolving on
your computer.
## 6.0) Troubleshooting
#### Running OpenTTD in a Docker container?
- My advertising server does not show up in list at servers.openttd.org
Run openttd with the '-d net=2' parameter. That will show which incoming
communication is received, whether the replies from the master server or
communication from an admin tool reach the programme. See section 1
'Starting a server' further up for the ports and protocols used by OpenTTD.
The ports can be configured in the config file.
- My advertising server warns a lot about getaddrinfo taking N seconds
This could be a transient issue with your (local) DNS server, but if the
problem persists there is likely a configuration issue in DNS resolving
on your computer. This seems to be a common configuration issue for
Docker instances, where the DNS resolving waits for a time out of usually
5 seconds.
This is an issue with dual-stack Docker containers. If there is no default
IPv6 resolver and IPv6 traffic is preferred, DNS requests will time out after
5 seconds. To resolve this, use an IPv4 DNS server for your Docker container,
for example by adding `--dns 1.1.1.1` to your `docker run` command.

@ -547,6 +547,8 @@ function Regression::Prices()
print(" BT_DOCK: " + AIMarine.GetBuildCost(AIMarine.BT_DOCK));
print(" BT_DEPOT: " + AIMarine.GetBuildCost(AIMarine.BT_DEPOT));
print(" BT_BUOY: " + AIMarine.GetBuildCost(AIMarine.BT_BUOY));
print(" BT_LOCK: " + AIMarine.GetBuildCost(AIMarine.BT_LOCK));
print(" BT_CANAL: " + AIMarine.GetBuildCost(AIMarine.BT_CANAL));
print(" -Tile-");
print(" BT_FOUNDATION: " + AITile.GetBuildCost(AITile.BT_FOUNDATION));
print(" BT_TERRAFORM: " + AITile.GetBuildCost(AITile.BT_TERRAFORM));
@ -556,6 +558,7 @@ function Regression::Prices()
print(" BT_CLEAR_ROCKY: " + AITile.GetBuildCost(AITile.BT_CLEAR_ROCKY));
print(" BT_CLEAR_FIELDS: " + AITile.GetBuildCost(AITile.BT_CLEAR_FIELDS));
print(" BT_CLEAR_HOUSE: " + AITile.GetBuildCost(AITile.BT_CLEAR_HOUSE));
print(" BT_CLEAR_WATER: " + AITile.GetBuildCost(AITile.BT_CLEAR_WATER));
}
function cost_callback(old_path, new_tile, new_direction, self) { if (old_path == null) return 0; return old_path.GetCost() + 1; }
@ -919,6 +922,9 @@ function Regression::Marine()
print(" BuildWaterDepot(): " + AIMarine.BuildWaterDepot(28479, 28480));
print(" BuildDock(): " + AIMarine.BuildDock(29253, AIStation.STATION_JOIN_ADJACENT));
print(" BuildBuoy(): " + AIMarine.BuildBuoy(28481));
print(" BuildLock(): " + AIMarine.BuildLock(28487));
print(" BuildCanal(): " + AIMarine.BuildCanal(28744));
}
function Regression::Order()
@ -1470,9 +1476,41 @@ function Regression::TileList()
print(" " + i + " => " + list.GetValue(i));
}
list.AddRectangle(54421 - 256 * 2, 256 * 2 + 54421 + 8);
list.AddRectangle(0x6F3F, 0x7248);
list.Valuate(AITile.IsWaterTile);
print(" Water(): done");
print(" IsWaterTile(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.IsSeaTile);
print(" IsSeaTile(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.IsRiverTile);
print(" IsRiverTile() done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIMarine.IsCanalTile);
print(" IsCanalTile() done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.IsCoastTile);
print(" IsCoastTile() done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {

@ -7365,6 +7365,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetBankBalance(): 1999959285
BuildWaterDepot(): true
BuildDock(): true
BuildBuoy(): true
BuildLock(): true
BuildCanal(): true
--Prices--
-Rail-
@ -7391,6 +7394,8 @@ ERROR: IsEnd() is invalid as Begin() is never called
BT_DOCK: 262
BT_DEPOT: 525
BT_BUOY: 262
BT_LOCK: 5625
BT_CANAL: 3750
-Tile-
BT_FOUNDATION: 187
BT_TERRAFORM: 187
@ -7400,6 +7405,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
BT_CLEAR_ROCKY: 150
BT_CLEAR_FIELDS: 375
BT_CLEAR_HOUSE: 1200
BT_CLEAR_WATER: 7500
--Rail--
IsRailTile(): false
@ -8450,54 +8456,221 @@ ERROR: IsEnd() is invalid as Begin() is never called
KeepValue(1): done
Count(): 0
ListDump:
Water(): done
Count(): 45
IsWaterTile(): done
Count(): 40
ListDump:
29251 => 1
29250 => 1
29249 => 1
29248 => 1
29247 => 1
28996 => 1
28995 => 1
28994 => 1
28993 => 1
28992 => 1
28991 => 1
28744 => 1
28741 => 1
28740 => 1
28739 => 1
28738 => 1
28737 => 1
28736 => 1
28735 => 1
28488 => 1
28487 => 1
28486 => 1
28485 => 1
28484 => 1
28483 => 1
28482 => 1
28480 => 1
28479 => 1
29256 => 0
29255 => 0
29254 => 0
29253 => 0
29252 => 0
29000 => 0
28999 => 0
28998 => 0
28997 => 0
28743 => 0
28742 => 0
28481 => 0
IsSeaTile(): done
Count(): 40
ListDump:
29251 => 1
29250 => 1
29249 => 1
29248 => 1
29247 => 1
28996 => 1
28995 => 1
28994 => 1
28993 => 1
28992 => 1
28991 => 1
28741 => 1
28740 => 1
28739 => 1
28738 => 1
28737 => 1
28736 => 1
28735 => 1
28485 => 1
28484 => 1
28483 => 1
28482 => 1
29256 => 0
29255 => 0
29254 => 0
29253 => 0
29252 => 0
29000 => 0
28999 => 0
28998 => 0
28997 => 0
28744 => 0
28743 => 0
28742 => 0
28488 => 0
28487 => 0
28486 => 0
28481 => 0
28480 => 0
28479 => 0
IsRiverTile() done
Count(): 40
ListDump:
54941 => 1
54940 => 1
54939 => 1
54938 => 1
54937 => 1
54936 => 1
54935 => 1
54934 => 1
54933 => 1
54685 => 1
54684 => 1
54683 => 1
54682 => 1
54681 => 1
54680 => 1
54679 => 1
54678 => 1
54677 => 1
54429 => 1
54428 => 1
54427 => 1
54426 => 1
54425 => 1
54424 => 1
54423 => 1
54422 => 1
54421 => 1
54173 => 1
54172 => 1
54171 => 1
54170 => 1
54169 => 1
54168 => 0
54167 => 0
54166 => 0
54165 => 0
53917 => 0
53916 => 0
53915 => 0
53914 => 0
53913 => 0
53912 => 0
53911 => 0
53910 => 0
53909 => 0
29256 => 0
29255 => 0
29254 => 0
29253 => 0
29252 => 0
29251 => 0
29250 => 0
29249 => 0
29248 => 0
29247 => 0
29000 => 0
28999 => 0
28998 => 0
28997 => 0
28996 => 0
28995 => 0
28994 => 0
28993 => 0
28992 => 0
28991 => 0
28744 => 0
28743 => 0
28742 => 0
28741 => 0
28740 => 0
28739 => 0
28738 => 0
28737 => 0
28736 => 0
28735 => 0
28488 => 0
28487 => 0
28486 => 0
28485 => 0
28484 => 0
28483 => 0
28482 => 0
28481 => 0
28480 => 0
28479 => 0
IsCanalTile() done
Count(): 40
ListDump:
28744 => 1
29256 => 0
29255 => 0
29254 => 0
29253 => 0
29252 => 0
29251 => 0
29250 => 0
29249 => 0
29248 => 0
29247 => 0
29000 => 0
28999 => 0
28998 => 0
28997 => 0
28996 => 0
28995 => 0
28994 => 0
28993 => 0
28992 => 0
28991 => 0
28743 => 0
28742 => 0
28741 => 0
28740 => 0
28739 => 0
28738 => 0
28737 => 0
28736 => 0
28735 => 0
28488 => 0
28487 => 0
28486 => 0
28485 => 0
28484 => 0
28483 => 0
28482 => 0
28481 => 0
28480 => 0
28479 => 0
IsCoastTile() done
Count(): 40
ListDump:
28998 => 1
28997 => 1
28743 => 1
28742 => 1
29256 => 0
29255 => 0
29254 => 0
29253 => 0
29252 => 0
29251 => 0
29250 => 0
29249 => 0
29248 => 0
29247 => 0
29000 => 0
28999 => 0
28996 => 0
28995 => 0
28994 => 0
28993 => 0
28992 => 0
28991 => 0
28744 => 0
28741 => 0
28740 => 0
28739 => 0
28738 => 0
28737 => 0
28736 => 0
28735 => 0
28488 => 0
28487 => 0
28486 => 0
28485 => 0
28484 => 0
28483 => 0
28482 => 0
28481 => 0
28480 => 0
28479 => 0
--TileList_IndustryAccepting--
Count(): 47
@ -9099,12 +9272,12 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetLocation(): 33417
GetEngineType(): 153
GetUnitNumber(): 1
GetAge(): 0
GetAge(): 1
GetMaxAge(): 5490
GetAgeLeft(): 5490
GetAgeLeft(): 5489
GetCurrentSpeed(): 7
GetRunningCost(): 421
GetProfitThisYear(): 0
GetProfitThisYear(): -1
GetProfitLastYear(): 0
GetCurrentValue(): 5947
GetVehicleType(): 1
@ -9114,7 +9287,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsInDepot(): false
GetNumWagons(): 1
GetWagonEngineType(): 153
GetWagonAge(): 0
GetWagonAge(): 1
GetLength(): 8
GetOwner(): 1
BuildVehicle(): 14
@ -9139,9 +9312,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetNumWagons(): 3
GetLength(): 24
GetWagonEngineType(): 9
GetWagonAge(): 1
GetWagonAge(): 0
GetWagonEngineType(): 27
GetWagonAge(): 1
GetWagonAge(): 0
GetWagonEngineType(): 27
GetWagonAge(): 0
GetWagonEngineType(): 65535
@ -9187,11 +9360,11 @@ ERROR: IsEnd() is invalid as Begin() is never called
14 => 1
12 => 1
Age ListDump:
17 => 1
16 => 1
14 => 1
13 => 1
12 => 1
17 => 0
16 => 0
14 => 0
MaxAge ListDump:
16 => 10980
14 => 10980
@ -9199,9 +9372,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
13 => 5490
12 => 5490
AgeLeft ListDump:
16 => 10979
14 => 10979
17 => 7319
16 => 10980
14 => 10980
17 => 7320
13 => 5489
12 => 5489
CurrentSpeed ListDump:

@ -11,12 +11,14 @@
#include "error.h"
#include "gui.h"
#include "window_gui.h"
#include "window_func.h"
#include "textbuf_gui.h"
#include "network/network.h"
#include "genworld.h"
#include "network/network_gui.h"
#include "network/network_content.h"
#include "landscape_type.h"
#include "landscape.h"
#include "strings_func.h"
#include "fios.h"
#include "ai/ai_gui.hpp"
@ -25,6 +27,10 @@
#include "language.h"
#include "rev.h"
#include "highscore.h"
#include "signs_base.h"
#include "viewport_func.h"
#include "vehicle_base.h"
#include <regex>
#include "widgets/intro_widget.h"
@ -33,13 +39,203 @@
#include "safeguards.h"
/**
* A viewport command for the main menu background (intro game).
*/
struct IntroGameViewportCommand {
/** Horizontal alignment value. */
enum AlignmentH : byte {
LEFT,
CENTRE,
RIGHT,
};
/** Vertical alignment value. */
enum AlignmentV : byte {
TOP,
MIDDLE,
BOTTOM,
};
int command_index = 0; ///< Sequence number of the command (order they are performed in).
Point position{ 0, 0 }; ///< Calculated world coordinate to position viewport top-left at.
VehicleID vehicle = INVALID_VEHICLE; ///< Vehicle to follow, or INVALID_VEHICLE if not following a vehicle.
uint delay = 0; ///< Delay until next command.
int zoom_adjust = 0; ///< Adjustment to zoom level from base zoom level.
bool pan_to_next = false; ///< If true, do a smooth pan from this position to the next.
AlignmentH align_h = CENTRE; ///< Horizontal alignment.
AlignmentV align_v = MIDDLE; ///< Vertical alignment.
/**
* Calculate effective position.
* This will update the position field if a vehicle is followed.
* @param vp Viewport to calculate position for.
* @return Calculated position in the viewport.
*/
Point PositionForViewport(const Viewport *vp)
{
if (this->vehicle != INVALID_VEHICLE) {
const Vehicle *v = Vehicle::Get(this->vehicle);
this->position = RemapCoords(v->x_pos, v->y_pos, v->z_pos);
}
Point p;
switch (this->align_h) {
case LEFT: p.x = this->position.x; break;
case CENTRE: p.x = this->position.x - vp->virtual_width / 2; break;
case RIGHT: p.x = this->position.x - vp->virtual_width; break;
}
switch (this->align_v) {
case TOP: p.y = this->position.y; break;
case MIDDLE: p.y = this->position.y - vp->virtual_height / 2; break;
case BOTTOM: p.y = this->position.y - vp->virtual_height; break;
}
return p;
}
};
struct SelectGameWindow : public Window {
/** Vector of viewport commands parsed. */
std::vector<IntroGameViewportCommand> intro_viewport_commands;
/** Index of currently active viewport command. */
size_t cur_viewport_command_index;
/** Time spent (milliseconds) on current viewport command. */
uint cur_viewport_command_time;
/**
* Find and parse all viewport command signs.
* Fills the intro_viewport_commands vector and deletes parsed signs from the world.
*/
void ReadIntroGameViewportCommands()
{
intro_viewport_commands.clear();
/* Regular expression matching the commands: T, spaces, integer, spaces, flags, spaces, integer */
const char *sign_langauge = "^T\\s*([0-9]+)\\s*([-+A-Z0-9]+)\\s*([0-9]+)";
std::regex re(sign_langauge, std::regex_constants::icase);
/* List of signs successfully parsed to delete afterwards. */
std::vector<SignID> signs_to_delete;
for (const Sign *sign : Sign::Iterate()) {
std::smatch match;
if (std::regex_search(sign->name, match, re)) {
IntroGameViewportCommand vc;
/* Sequence index from the first matching group. */
vc.command_index = std::stoi(match[1].str());
/* Sign coordinates for positioning. */
vc.position = RemapCoords(sign->x, sign->y, sign->z);
/* Delay from the third matching group. */
vc.delay = std::stoi(match[3].str()) * 1000; // milliseconds
/* Parse flags from second matching group. */
enum IdType {
ID_NONE, ID_VEHICLE
} id_type = ID_NONE;
for (char c : match[2].str()) {
if (isdigit(c)) {
if (id_type == ID_VEHICLE) {
vc.vehicle = vc.vehicle * 10 + (c - '0');
}
} else {
id_type = ID_NONE;
switch (toupper(c)) {
case '-': vc.zoom_adjust = +1; break;
case '+': vc.zoom_adjust = -1; break;
case 'T': vc.align_v = IntroGameViewportCommand::TOP; break;
case 'M': vc.align_v = IntroGameViewportCommand::MIDDLE; break;
case 'B': vc.align_v = IntroGameViewportCommand::BOTTOM; break;
case 'L': vc.align_h = IntroGameViewportCommand::LEFT; break;
case 'C': vc.align_h = IntroGameViewportCommand::CENTRE; break;
case 'R': vc.align_h = IntroGameViewportCommand::RIGHT; break;
case 'P': vc.pan_to_next = true; break;
case 'V': id_type = ID_VEHICLE; vc.vehicle = 0; break;
}
}
}
/* Successfully parsed, store. */
intro_viewport_commands.push_back(vc);
signs_to_delete.push_back(sign->index);
}
}
/* Sort the commands by sequence index. */
std::sort(intro_viewport_commands.begin(), intro_viewport_commands.end(), [](const IntroGameViewportCommand &a, const IntroGameViewportCommand &b) { return a.command_index < b.command_index; });
/* Delete all the consumed signs, from last ID to first ID. */
std::sort(signs_to_delete.begin(), signs_to_delete.end(), [](SignID a, SignID b) { return a > b; });
for (SignID sign_id : signs_to_delete) {
delete Sign::Get(sign_id);
}
}
SelectGameWindow(WindowDesc *desc) : Window(desc)
{
this->CreateNestedTree();
this->FinishInitNested(0);
this->OnInvalidateData();
this->ReadIntroGameViewportCommands();
this->cur_viewport_command_index = (size_t)-1;
this->cur_viewport_command_time = 0;
}
void OnRealtimeTick(uint delta_ms) override
{
/* Move the main game viewport according to intro viewport commands. */
if (intro_viewport_commands.empty()) return;
/* Determine whether to move to the next command or stay at current. */
bool changed_command = false;
if (this->cur_viewport_command_index >= intro_viewport_commands.size()) {
/* Reached last, rotate back to start of the list. */
this->cur_viewport_command_index = 0;
changed_command = true;
} else {
/* Check if current command has elapsed and switch to next. */
this->cur_viewport_command_time += delta_ms;
if (this->cur_viewport_command_time >= intro_viewport_commands[this->cur_viewport_command_index].delay) {
this->cur_viewport_command_index = (this->cur_viewport_command_index + 1) % intro_viewport_commands.size();
this->cur_viewport_command_time = 0;
changed_command = true;
}
}
IntroGameViewportCommand &vc = intro_viewport_commands[this->cur_viewport_command_index];
Window *mw = FindWindowByClass(WC_MAIN_WINDOW);
Viewport *vp = mw->viewport;
/* Early exit if the current command hasn't elapsed and isn't animated. */
if (!changed_command && !vc.pan_to_next && vc.vehicle == INVALID_VEHICLE) return;
/* Reset the zoom level. */
if (changed_command) FixTitleGameZoom(vc.zoom_adjust);
/* Calculate current command position (updates followed vehicle coordinates). */
Point pos = vc.PositionForViewport(vp);
/* Calculate panning (linear interpolation between current and next command position). */
if (vc.pan_to_next) {
size_t next_command_index = (this->cur_viewport_command_index + 1) % intro_viewport_commands.size();
IntroGameViewportCommand &nvc = intro_viewport_commands[next_command_index];
Point pos2 = nvc.PositionForViewport(vp);
const double t = this->cur_viewport_command_time / (double)vc.delay;
pos.x = pos.x + (int)(t * (pos2.x - pos.x));
pos.y = pos.y + (int)(t * (pos2.y - pos.y));
}
/* Update the viewport position. */
mw->viewport->dest_scrollpos_x = mw->viewport->scrollpos_x = pos.x;
mw->viewport->dest_scrollpos_y = mw->viewport->scrollpos_y = pos.y;
UpdateViewportPosition(mw);
mw->SetDirty(); // Required during panning, otherwise logo graphics disappears
/* If there is only one command, we just executed it and don't need to do any more */
if (intro_viewport_commands.size() == 1 && vc.vehicle == INVALID_VEHICLE) intro_viewport_commands.clear();
}
/**

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -134,7 +134,7 @@ STR_ABBREV_ALL :{TINY_FONT}ПӖ
# 'Mode' of transport for cargoes
STR_PASSENGERS :{COMMA} пассажир{P "" сем}
# Colours, do not shuffle
###length 17
STR_COLOUR_DARK_BLUE :Тӗттӗм кӑвак
STR_COLOUR_PALE_GREEN :Шупка симӗс
STR_COLOUR_PINK :Кӗрен
@ -174,7 +174,9 @@ STR_BUTTON_RENAME :{BLACK}Ята
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Чӳречене хуп
# Show engines button
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Query window
STR_BUTTON_DEFAULT :{BLACK}Пӳрнӗ пек
@ -210,6 +212,7 @@ STR_SORT_BY_POPULATION :Ҫынисем
# Group by options for vehicle list
# Tooltips for the main toolbar
###length 31
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Вӑййи тӑхтав
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Вӑййи хӑвӑртлат
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Майлаштару
@ -219,69 +222,71 @@ STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Аэро
STR_SCENEDIT_TOOLBAR_OPENTTD :{YELLOW}OpenTTD
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Объект вырӑнӗ
############ range for SE file menu starts
# Scenario editor file menu
###length 7
STR_SCENEDIT_FILE_MENU_SEPARATOR :
STR_SCENEDIT_FILE_MENU_QUIT :Вӗҫле
############ range for SE file menu starts
############ range for settings menu starts
# Settings menu
###length 14
STR_SETTINGS_MENU_GAME_OPTIONS :Вӑййи майлаштару
STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF майлаштару
############ range ends here
############ range for file menu starts
# File menu
###length 5
STR_FILE_MENU_SEPARATOR :
STR_FILE_MENU_EXIT :Тух
############ range ends here
# map menu
# Map menu
###length 4
############ range for town menu starts
############ range ends here
# Town menu
###length 2
############ range for subsidies menu starts
# Subsidies menu
###length 1
STR_SUBSIDIES_MENU_SUBSIDIES :Грантсем
############ range ends here
############ range for graph menu starts
############ range ends here
# Graph menu
###length 6
############ range for company league menu starts
############ range ends here
# Company league menu
###length 3
############ range for industry menu starts
############ range ends here
# Industry menu
###length 3
############ range for railway construction menu starts
############ range ends here
# URailway construction menu
###length 4
############ range for road construction menu starts
############ range ends here
# Road construction menu
###length 2
############ range for waterways construction menu starts
############ range ends here
# Waterways construction menu
###length 1
############ range for airport construction menu starts
# Aairport construction menu
###length 1
STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION :Аэропорт ҫурт
############ range ends here
############ range for landscaping menu starts
############ range ends here
# Landscaping menu
###length 3
############ range for music menu starts
# Music menu
###length 1
STR_TOOLBAR_SOUND_MUSIC :Сасӑ/Юрӑ-кӗвӗ
############ range ends here
############ range for message menu starts
############ range ends here
# Message menu
###length 3
############ range for about menu starts
# About menu
###length 10
STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_SCREENSHOT :Экран сӑнӗ
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD' çинчен
############ range ends here
############ range for ordinal numbers used for the place in the highscore window
# Place in highscore window
###length 15
STR_ORDINAL_NUMBER_1ST :1мӗш
STR_ORDINAL_NUMBER_2ND :2мӗш
STR_ORDINAL_NUMBER_3RD :3-мӗш
@ -297,9 +302,8 @@ STR_ORDINAL_NUMBER_12TH :12-мӗш
STR_ORDINAL_NUMBER_13TH :13-мӗш
STR_ORDINAL_NUMBER_14TH :14-мӗш
STR_ORDINAL_NUMBER_15TH :15-мӗш
############ range for ordinal numbers ends
############ range for days starts
###length 31
STR_DAY_NUMBER_1ST :1мӗш
STR_DAY_NUMBER_2ND :2мӗш
STR_DAY_NUMBER_3RD :3-мӗш
@ -331,9 +335,8 @@ STR_DAY_NUMBER_28TH :28-мӗш
STR_DAY_NUMBER_29TH :29-мӗш
STR_DAY_NUMBER_30TH :30-мӗш
STR_DAY_NUMBER_31ST :31-мӗш
############ range for days ends
############ range for months starts
###length 12
STR_MONTH_ABBREV_JAN :Кӑр
STR_MONTH_ABBREV_FEB :Нар
STR_MONTH_ABBREV_MAR :Пуш
@ -347,6 +350,7 @@ STR_MONTH_ABBREV_OCT :Юпа
STR_MONTH_ABBREV_NOV :Чӳк
STR_MONTH_ABBREV_DEC :Раш
###length 12
STR_MONTH_JAN :Кӑрлач
STR_MONTH_FEB :Нарӑс
STR_MONTH_MAR :Пуш
@ -359,7 +363,6 @@ STR_MONTH_SEP :Авӑн
STR_MONTH_OCT :Юпа
STR_MONTH_NOV :Чӳк
STR_MONTH_DEC :Раштав
############ range for months ends
# Graph window
STR_GRAPH_KEY_BUTTON :{BLACK}Уҫӑ
@ -386,14 +389,16 @@ STR_PERFORMANCE_DETAIL_KEY :{BLACK}Вакк
STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT})
STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA})
STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
############ Those following lines need to be in this order!!
###length 10
STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Ҫул-йӗр:
STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Станцисем:
STR_PERFORMANCE_DETAIL_CARGO :{BLACK}Тиев:
STR_PERFORMANCE_DETAIL_MONEY :{BLACK}Укҫӑ:
STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Кивҫен:
STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Пурӗ:
############ End of order list
###length 10
# Music window
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
@ -415,10 +420,12 @@ STR_HIGHSCORE_STATS :{BIG_FONT}'{STR
# Smallmap window
STR_SMALLMAP_CAPTION :{WHITE}Карттӑ - {STRING}
###length 7
STR_SMALLMAP_TYPE_VEHICLES :Ҫул-йӗр
STR_SMALLMAP_TYPE_VEGETATION :Йывăç-курӑк
STR_SMALLMAP_TYPE_OWNERS :Хуҫасем
STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Ҫулсем
STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Чукун ҫулсем
STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Станцисем/Аэропортсем/Портсем
@ -460,6 +467,8 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Пӗлт
###length VEHICLE_TYPES
###next-name-looks-similar
# Order review system / warnings
@ -468,19 +477,20 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Пӗлт
###length 4
# Extra view window
# Game options window
############ start of currency region
###length 42
STR_GAME_OPTIONS_CURRENCY_RUR :Вырӑсла тенкӗ (RUR)
############ end of currency region
###length 2
############ start of townname region
###length 21
STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Акӑлчан
STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Францири
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Нимӗҫ
@ -500,13 +510,12 @@ STR_GAME_OPTIONS_TOWN_NAME_DANISH :Датчан
STR_GAME_OPTIONS_TOWN_NAME_TURKISH :Турккӑла
STR_GAME_OPTIONS_TOWN_NAME_ITALIAN :Итали
STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Катталун
############ end of townname region
STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Хӑй управ
############ start of autosave dropdown
# Autosave dropdown
###length 5
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Сӳнтер
############ end of autosave dropdown
STR_GAME_OPTIONS_LANGUAGE :{BLACK}Чӗлхи
@ -544,66 +553,232 @@ STR_NUM_CUSTOM_NUMBER :Харпӑр х
STR_VARIETY_NONE :Ҫук
###length 5
###length 6
STR_SEA_LEVEL_CUSTOM :Харпӑр хӑй
STR_SEA_LEVEL_CUSTOM_PERCENTAGE :Харпӑр хӑй ({NUM}%)
###length 4
###length 3
STR_DISASTER_NONE :Ҫук
###length 4
STR_SUBSIDY_X1_5 :x1.5
STR_SUBSIDY_X2 :x2
STR_SUBSIDY_X3 :x3
STR_SUBSIDY_X4 :x4
###length 7
###length 3
# Settings tree window
###length 3
###length 3
STR_CONFIG_SETTING_OFF :Сӳнтер
STR_CONFIG_SETTING_ON :Ҫут
STR_CONFIG_SETTING_DISABLED :хастар мар
###length 3
STR_CONFIG_SETTING_COMPANIES_OFF :Сӳнтер
###length 3
STR_CONFIG_SETTING_NONE :Ҫук
STR_CONFIG_SETTING_ORIGINAL :Чӑн
STR_CONFIG_SETTING_REALISTIC :Реалисмлӑ
###length 3
STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Сулахайра
STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Варринче
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Сылтӑмра
###setting-zero-is-special
###setting-zero-is-special
###length 3
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :ҫук
###length 3
###length 3
###length 4
###length 3
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :ҫук
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Аэропорт кивел мар: {STRING}
###length 3
###length 2
###setting-zero-is-special
###length 2
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Чӑн
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
###length 4
###length 3
STR_CONFIG_SETTING_TREE_PLACER_NONE :Ҫук
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Чӑн
###length 2
###length 2
###length 3
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Симĕс
###length 4
###length 3
STR_CONFIG_SETTING_LIVERIES_NONE :Ҫук
###length 3
STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Сӳнтер
###length 4
###length 3
###length 3
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Сӳнтер
###length 3
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :вӑрӑм (2008 раш 31меш)
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :кӗске (2008-12-31)
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31)
###length 4
###length 3
###setting-zero-is-special
###length 3
###setting-zero-is-special
@ -612,28 +787,71 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31
STR_CONFIG_SETTING_NEWS_SUBSIDIES :Грантсем: {STRING}
###length 3
STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Сӳнтер
STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Кӗске
STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Тулли
###setting-zero-is-special
###length 3
###length 2
###length 2
###length 5
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :чӑн
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2x2
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3
###length 3
###length 2
###length 4
###setting-zero-is-special
###setting-zero-is-special
###length 6
###length 3
###length 5
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Ҫук
STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Вӑрах
STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Виҫеллӗ
STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Хӑвӑрт
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Питӗ хӑвӑрт
###setting-zero-is-special
###length 3
###length 4
###length 3
###length 3
###length 3
###length 3
###length 3
STR_CONFIG_SETTING_INTERFACE :{ORANGE}Интерфейс
STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Лартӑм
@ -641,10 +859,10 @@ STR_CONFIG_SETTING_VEHICLES :{ORANGE}Ҫул-
STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Хуласем
STR_CONFIG_SETTING_AI :{ORANGE}Ӑмӑртуҫӑсем
###length 2
STR_CONFIG_SETTING_PATHFINDER_NPF :NPF
# Config errors
# Video initalization errors
@ -671,15 +889,18 @@ STR_QUIT_NO :{BLACK}Ҫук
STR_ABANDON_GAME_CAPTION :{WHITE}Вӑййи ан килӗш
# Cheat window
STR_CHEAT_CHANGE_DATE :{LTBLUE}Тӳрлет кун: {ORANGE}{DATE_SHORT}
###length 4
STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Виҫеллӗ климат
STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Сивӗ климат
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Тропик климат
STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Вӑйӑ пахчи
STR_CHEAT_CHANGE_DATE :{LTBLUE}Тӳрлет кун: {ORANGE}{DATE_SHORT}
# Livery window
###length 23
STR_LIVERY_DEFAULT :Яланхи тӗс
STR_LIVERY_STEAM :Пӑравус
STR_LIVERY_DIESEL :Ӑшӑвус(Diesel Engine)
@ -733,8 +954,8 @@ STR_FACE_COLLAR :Ҫуха:
STR_FACE_TIE :Галстук:
STR_FACE_EARRING :Алка:
############ Next lines match ServerGameType
############ End of leave-in-this-order
# Matches ServerGameType
###length 3
# Network server list
STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Вӑйӑҫӑ ят:
@ -780,9 +1001,8 @@ STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Вырн
# Network connecting window
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 8
@ -790,8 +1010,8 @@ STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Вырн
# Network client list
############ Begin of ConnectionType
############ End of ConnectionType
# Matches ConnectionType
###length 5
@ -806,17 +1026,20 @@ STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Вырн
# Network messages
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 21
# Network related errors
STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 12
# Content downloading window
###length 5
STR_CONTENT_DETAIL_VERSION :{SILVER}Верси: {WHITE}{STRING}
# Order of these is important!
@ -970,10 +1193,10 @@ STR_LAI_OBJECT_DESCRIPTION_LIGHTHOUSE :Маяк
STR_ABOUT_VERSION :{BLACK}OpenTTD верси {REV}
# Framerate display window
############ Leave those lines in this order!!
############ End of leave-in-this-order
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 15
###length 15
# Save/load game/scenario
@ -1026,6 +1249,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
# NewGRF status
STR_NEWGRF_LIST_NONE :Ҫук
###length 3
# NewGRF 'it's broken' warnings
@ -1053,15 +1277,17 @@ STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
# Town local authority window
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
###length 8
###length 8
# Goal window
STR_GOALS_TEXT :{ORANGE}{STRING}
# Goal question window
############ Start of Goal Question button list
############ End of Goal Question button list
# Goal Question button list
###length 18
# Subsidies window
STR_SUBSIDIES_NONE :{ORANGE}- Ҫук -
@ -1082,8 +1308,7 @@ STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_L
############ range for rating starts
############ range for rating ends
###length 8
@ -1095,6 +1320,9 @@ STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOIN
# Finances window
STR_FINANCES_YEAR :{WHITE}{NUM}
###length 13
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
@ -1118,16 +1346,20 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу
# Vehicle lists
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Group window
###length VEHICLE_TYPES
###length VEHICLE_TYPES
@ -1136,22 +1368,34 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу
# Build vehicle window
###length 4
############ range for vehicle availability starts
############ range for vehicle availability ends
# Vehicle availability
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Depot window
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
@ -1161,18 +1405,29 @@ STR_DEPOT_NO_ENGINE :{BLACK}-
STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING}
STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT})
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Engine preview window
@ -1184,8 +1439,13 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Autoreplace window
###length VEHICLE_TYPES
###length 2
###next-name-looks-similar
@ -1193,24 +1453,34 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Messages in the start stop button in the vehicle view
# Vehicle stopped/started animations
###length 2
###length 2
# Vehicle details
###length VEHICLE_TYPES
# The next two need to stay in this order
@ -1219,6 +1489,7 @@ STR_VEHICLE_INFO_NO_CAPACITY :{BLACK}Савӑ
###length VEHICLE_TYPES
# Extra buttons for train details windows
@ -1228,8 +1499,11 @@ STR_VEHICLE_INFO_NO_CAPACITY :{BLACK}Савӑ
# Vehicle refit
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Order view
@ -1245,6 +1519,8 @@ STR_ORDER_TEXT :{STRING} {STRIN
# Conditional order variables, must follow order of OrderConditionVariable enum
###length 8
###next-name-looks-similar
@ -1255,6 +1531,9 @@ STR_ORDER_TEXT :{STRING} {STRIN
# String parts to build the order string
###length 3
###next-name-looks-similar
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
@ -1265,6 +1544,7 @@ STR_ORDER_GO_TO_STATION :{STRING} {STATI
###length 3
@ -1308,6 +1588,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN
# Textfile window
###length 3
# Vehicle loading indicators
@ -1389,13 +1670,23 @@ STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Ҫул
# Generic vehicle errors
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
@ -1412,8 +1703,10 @@ STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Ҫул
# Sign related errors
# Translatable comment for OpenTTD's desktop shortcut
###external 1
# Translatable descriptions in media/baseset/*.ob* files
###external 10
##id 0x2000
# Town building names
@ -1426,19 +1719,29 @@ STR_TOWN_BUILDING_NAME_STATUE_1 :Палӑк
############ WARNING, using range 0x6000 for strings that are stored in the savegame
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
###length 27
STR_SV_STNAME :{STRING}
STR_SV_STNAME_AIRPORT :{STRING} Аэропорт
STR_SV_STNAME_BUOY :{STRING}
STR_SV_STNAME_WAYPOINT :{STRING}
##id 0x6020
############ end of savegame specific region!
##id 0x8000
###length 116
# Vehicle names
###length 88
###length 11
###length 41
##id 0x8800
# Formatting of some strings
STR_FORMAT_DATE_TINY :{STRING}.{STRING}.{NUM}
@ -1447,6 +1750,14 @@ STR_FORMAT_DATE_LONG :{STRING} {STRIN
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
###length 2
###length 2
###length 6
###next-name-looks-similar
# _SERIAL version of AIRACRAFT doesn't exist
STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STRING}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -5170,6 +5170,11 @@ STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL :{ORANGE}Heading
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SELL_VEL :{CREAM}Heading for {PUSH_COLOUR}{RED}sale{POP_COLOUR} at {DEPOT}, {VELOCITY}
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}Service at {DEPOT}, {VELOCITY}
STR_VEHICLE_STATUS_CANNOT_REACH_STATION_VEL :{LTBLUE}Cannot reach {STATION}, {VELOCITY}
STR_VEHICLE_STATUS_CANNOT_REACH_WAYPOINT_VEL :{LTBLUE}Cannot reach {WAYPOINT}, {VELOCITY}
STR_VEHICLE_STATUS_CANNOT_REACH_DEPOT_VEL :{ORANGE}Cannot reach {DEPOT}, {VELOCITY}
STR_VEHICLE_STATUS_CANNOT_REACH_DEPOT_SERVICE_VEL :{LTBLUE}Cannot reach {DEPOT}, {VELOCITY}
# Vehicle stopped/started animations
###length 2
STR_VEHICLE_COMMAND_STOPPED_SMALL :{TINY_FONT}{RED}Stopped

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -57,7 +57,7 @@ STR_ABBREV_COAL :{TINY_FONT}क
# 'Mode' of transport for cargoes
# Colours, do not shuffle
###length 17
STR_COLOUR_PINK :गुलाबी
STR_COLOUR_RED :लाल
@ -77,7 +77,9 @@ STR_UNITS_POWER_METRIC :{COMMA}{NBSP}hp
STR_TOOLTIP_RESIZE :{BLACK}खिड़की का आकार बदलने के लिये क्लिक करके खींचें
# Show engines button
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Query window
@ -98,85 +100,86 @@ STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :पिछले
# Group by options for vehicle list
# Tooltips for the main toolbar
###length 31
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}ध्वनि/संगीत विकल्प
# Extra tooltips for the scenario editor toolbar
STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}मानचित्र, नगर निर्देशिका दिखायें
############ range for SE file menu starts
# Scenario editor file menu
###length 7
STR_SCENEDIT_FILE_MENU_SEPARATOR :
STR_SCENEDIT_FILE_MENU_QUIT :निकास
############ range for SE file menu starts
############ range for settings menu starts
# Settings menu
###length 14
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :समायोजन
STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :पथ-संकेतों के नाम दिखायें
############ range ends here
############ range for file menu starts
# File menu
###length 5
STR_FILE_MENU_SEPARATOR :
############ range ends here
# map menu
# Map menu
###length 4
############ range for town menu starts
############ range ends here
# Town menu
###length 2
############ range for subsidies menu starts
############ range ends here
# Subsidies menu
###length 1
############ range for graph menu starts
############ range ends here
# Graph menu
###length 6
############ range for company league menu starts
############ range ends here
# Company league menu
###length 3
############ range for industry menu starts
# Industry menu
###length 3
STR_INDUSTRY_MENU_INDUSTRY_CHAIN :औद्योगिक शृंखला
############ range ends here
############ range for railway construction menu starts
# URailway construction menu
###length 4
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :विद्युतिकृत रेलवे निर्माण
############ range ends here
############ range for road construction menu starts
############ range ends here
# Road construction menu
###length 2
############ range for waterways construction menu starts
############ range ends here
# Waterways construction menu
###length 1
############ range for airport construction menu starts
############ range ends here
# Aairport construction menu
###length 1
############ range for landscaping menu starts
############ range ends here
# Landscaping menu
###length 3
############ range for music menu starts
############ range ends here
# Music menu
###length 1
############ range for message menu starts
############ range ends here
# Message menu
###length 3
############ range for about menu starts
# About menu
###length 10
STR_ABOUT_MENU_SEPARATOR :
############ range ends here
############ range for ordinal numbers used for the place in the highscore window
# Place in highscore window
###length 15
STR_ORDINAL_NUMBER_2ND :द्वितीय
############ range for ordinal numbers ends
############ range for days starts
###length 31
STR_DAY_NUMBER_14TH :१४
STR_DAY_NUMBER_15TH :१५
STR_DAY_NUMBER_23RD :२३
############ range for days ends
############ range for months starts
###length 12
STR_MONTH_ABBREV_JAN :जन
STR_MONTH_ABBREV_NOV :नव
###length 12
STR_MONTH_AUG :अगस्त
############ range for months ends
# Graph window
STR_GRAPH_X_LABEL_MONTH :{TINY_FONT}{STRING}
@ -193,10 +196,12 @@ STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLA
STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPANY} {BLACK}{COMPANY_NUM} '{STRING}'
# Performance detail window
############ Those following lines need to be in this order!!
###length 10
STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}वाहन:
STR_PERFORMANCE_DETAIL_CARGO :{BLACK}माल :
############ End of order list
###length 10
# Music window
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
@ -208,6 +213,8 @@ STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{WHIT
# Smallmap window
###length 7
STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY :{TINY_FONT}{BLACK}ट्रक लदान वीथी
STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}रिक्त भूमि
@ -237,6 +244,8 @@ STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLAC
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}{STRING}{INDUSTRY} के उत्पादन में {COMMA}% कमी आयी!
###length VEHICLE_TYPES
###next-name-looks-similar
# Order review system / warnings
@ -246,32 +255,32 @@ STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLAC
###length 4
# Extra view window
# Game options window
############ start of currency region
###length 42
STR_GAME_OPTIONS_CURRENCY_FIM :फिनलैंड मार्का (FIM)
STR_GAME_OPTIONS_CURRENCY_ISK :आइसलैंडिक क्रोना (ISK)
STR_GAME_OPTIONS_CURRENCY_HKD :हाँग काँग डॉलर (एचकेडी)
############ end of currency region
###length 2
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :दाईं ओर वाहन चलाएँ
############ start of townname region
###length 21
STR_GAME_OPTIONS_TOWN_NAME_FRENCH :फ़्रेंच
STR_GAME_OPTIONS_TOWN_NAME_POLISH :पोलिश
STR_GAME_OPTIONS_TOWN_NAME_TURKISH :तुर्की
STR_GAME_OPTIONS_TOWN_NAME_ITALIAN :इटैलियन
############ end of townname region
############ start of autosave dropdown
# Autosave dropdown
###length 5
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :प्रत्येक माह
############ end of autosave dropdown
STR_GAME_OPTIONS_LANGUAGE_PERCENTAGE :{STRING} ({NUM}% पूर्ण)
@ -302,51 +311,185 @@ STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}एक
STR_VARIETY_MEDIUM :मध्यम
###length 5
STR_AI_SPEED_SLOW :धीमा
###length 6
###length 4
###length 3
###length 4
###length 7
###length 3
# Settings tree window
###length 3
###length 3
###length 3
STR_CONFIG_SETTING_COMPANIES_OFF :बन्द
###length 3
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :मानचित्र के भूभाग की अधिकतम ऊंचाई निर्धारित करें। "(स्वतः)" चुनने पर भूभाग जनन के बाद एक उपयुक्त संख्या चुन ली जायेगी।
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
###setting-zero-is-special
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :ट्रेन के लिये ढलान की तेजी की स्थापना। ऊँची संख्या से चढ़ान पर चढ़ना अधिक कठिन हो जाता है।
###length 3
###length 3
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :निर्दिष्ट करें कि ट्रेनों को स्टेशन पर कहाँ रुकना चाहिये। स्टेशन में प्रवेश के पास 'समीप का छोर', स्टेशन के बीच में 'मध्य', और प्रवेश की उलटी ओर 'दूर का छोर' है। ध्यान दें कि यह विन्यास केवल नये निर्देशों के लिये मानक स्थापित करता है। प्रत्येक निर्देश को अलग से किसी अन्य व्यवहार के लिये स्थापित किया जा सकता है।
###length 3
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :समीप का छोर
STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :मध्य
STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :दूर का छोर
###length 4
STR_CONFIG_SETTING_BRIBE_HELPTEXT :कंपनियों को स्थानीय नगर प्रशासन को रिश्वत देने की अनुमति दें। यदि रिश्वत पर किसी निरीक्षक की दृष्टि पड़ती है तो कंपनी छः महीने के लिये नगर में काम नहीं कर पायेगी।
###length 3
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :सक्षम होने पर वाहनों के निर्देशों की आवधिक जाँच की जाती है, और कुछ सुस्पष्ट मामलों का पता चलते ही एक संदेश द्वारा बताया जाता है।
###length 3
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :नहीं
###length 2
###setting-zero-is-special
###length 2
###length 4
###length 3
###length 2
###length 2
STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :एक स्टेशन के हिस्सों के विस्तार हेतु अधिकतम क्षेत्र निर्धारित करें। ऊंची संख्या खेल को धीमा कर सकती है।
###length 3
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :बैंगनी
###length 4
###length 3
###length 3
###length 4
STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :अक्षम
###length 3
###length 3
###length 3
###length 4
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :सीमाहीन (आपके कंप्यूटर द्वारा सीमित)
STR_CONFIG_SETTING_SOUND_NEWS :समाचार पत्र: {STRING}
@ -354,29 +497,104 @@ STR_CONFIG_SETTING_SOUND_NEWS :समाचा
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :दुर्घटनायें / आपदायें : {STRING}
###length 3
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
###setting-zero-is-special
###length 3
###length 2
###length 2
###length 5
###length 3
STR_CONFIG_SETTING_TOWN_CARGOGENMODE :नगर में माल उत्पादन: {STRING}
###length 2
###length 4
###setting-zero-is-special
STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA}
###setting-zero-is-special
###length 6
###length 3
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :२x
###length 5
###setting-zero-is-special
###length 3
###length 4
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :अंतर्राष्ट्रीय मानक (m/s)
###length 3
###length 3
###length 3
###length 3
###length 3
STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}सामान्य
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :नौकाओं द्वारा उपयोग किया जाने वाला पथान्वेषी
###length 2
# Config errors
@ -405,17 +623,20 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}क्
# Cheat window
###length 4
# Livery window
###length 23
# Face selection window
STR_FACE_LOAD_DONE :{WHITE}ओपनटीटीडी प्रारूप पत्र से आपका प्रिय चेहरा भर लिया गया है
STR_FACE_COLLAR_TOOLTIP :{BLACK}कॉलर बदलें
############ Next lines match ServerGameType
############ End of leave-in-this-order
# Matches ServerGameType
###length 3
# Network server list
@ -434,9 +655,8 @@ STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}सर
# Network connecting window
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 8
@ -444,8 +664,8 @@ STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}सर
# Network client list
############ Begin of ConnectionType
############ End of ConnectionType
# Matches ConnectionType
###length 5
@ -460,23 +680,26 @@ STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}सर
# Network messages
############ Leave those lines in this order!!
############ End of leave-in-this-order
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}संपर्क विच्छेद संभावित
###length 21
# Network related errors
############ Leave those lines in this order!!
###length 12
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :खेल अभी भी ठहरा हुआ है ({STRING}, {STRING}, {STRING})
############ End of leave-in-this-order
STR_NETWORK_MESSAGE_CLIENT_LEAVING :छोड़ रहा है
# Content downloading window
STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}खोजी गयी सामग्री OpenTTD की सामग्री सेवा में उपलब्ध नहीं है, आप OpenTTD से असंबद्ध वेबसाइटों पर खोज सकते हैं
###length 5
STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}यह आपके पास पहले से मौजूद है
STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}यह सामग्री अज्ञात है और इसे ओपनटीटीडी में प्राप्त नहीं किया जा सकता है
# Order of these is important!
# Content downloading progress window
@ -596,11 +819,11 @@ STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :इस्पा
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
############ Leave those lines in this order!!
############ End of leave-in-this-order
############ Leave those lines in this order!!
###length 15
###length 15
STR_FRAMETIME_CAPTION_GL_ECONOMY :माल प्रबंधन
############ End of leave-in-this-order
# Save/load game/scenario
@ -647,6 +870,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
# NewGRF status
###length 3
# NewGRF 'it's broken' warnings
@ -676,8 +900,10 @@ STR_TOWN_VIEW_EXPAND_BUTTON :{BLACK}फै
# Town local authority window
###length 8
STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :लघु विज्ञापन अभियान
###length 8
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}नगरों के सड़क तंत्र के पुनर्निर्माण में निवेश करें।{}इससे अधिकतम ६ महीने तक यातायात में बहुत विघ्न पड़ता है।{}मूल्य : {CURRENCY_LONG}
# Goal window
@ -687,8 +913,8 @@ STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
# Goal question window
############ Start of Goal Question button list
############ End of Goal Question button list
# Goal Question button list
###length 18
# Subsidies window
STR_SUBSIDIES_OFFERED_TITLE :{BLACK}इन सेवाओं के लिये अनुदान प्रस्तावित :
@ -712,8 +938,7 @@ STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_L
STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT} {STATION} द्वारा
############ range for rating starts
############ range for rating ends
###length 8
@ -725,7 +950,10 @@ STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOIN
# Finances window
STR_FINANCES_YEAR :{WHITE}{NUM}
###length 13
STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}संपत्ति का रखरखाव
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
STR_FINANCES_BORROW_BUTTON :{BLACK}{CURRENCY_LONG} उधार
@ -757,16 +985,20 @@ STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING
# Vehicle lists
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Group window
###length VEHICLE_TYPES
###length VEHICLE_TYPES
@ -775,27 +1007,39 @@ STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING
# Build vehicle window
###length 4
############ range for vehicle availability starts
# Vehicle availability
###length VEHICLE_TYPES
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :नई ट्रेनें
############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}मूल्य : {GOLD}{CURRENCY_LONG}{BLACK} भार : {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}भार : {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}छिपायें
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}नौका प्रकार को छिपायें/दिखायें
###length VEHICLE_TYPES
# Depot window
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
@ -803,18 +1047,29 @@ STR_DEPOT_CAPTION :{WHITE}{DEPOT}
STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Engine preview window
@ -827,36 +1082,50 @@ STR_ENGINE_PREVIEW_SHIP :जहाज
# Autoreplace window
###length VEHICLE_TYPES
STR_REPLACE_VEHICLES_STOP :वाहन प्रतिस्थापित करना बन्द करें
###length 2
###next-name-looks-similar
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP :{BLACK}वर्तमान ट्रेन व्यवहार - ट्रेन रोकने/चलाने के लिये क्लिक करें
# Messages in the start stop button in the vehicle view
# Vehicle stopped/started animations
###length 2
###length 2
# Vehicle details
###length VEHICLE_TYPES
# The next two need to stay in this order
@ -864,6 +1133,7 @@ STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP :{BLACK}वर
###length VEHICLE_TYPES
# Extra buttons for train details windows
STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE}{BLACK} निर्माण: {LTBLUE}{NUM}{BLACK} मूल्य: {LTBLUE}{CURRENCY_LONG}
@ -874,8 +1144,11 @@ STR_VEHICLE_DETAILS_TRAIN_ENGINE_BUILT_AND_VALUE :{LTBLUE}{ENGINE
# Vehicle refit
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Order view
@ -892,6 +1165,8 @@ STR_ORDER_REFIT_TOOLTIP :{BLACK}इस
# Conditional order variables, must follow order of OrderConditionVariable enum
###length 8
###next-name-looks-similar
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :के बराबर है
@ -904,6 +1179,9 @@ STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :के बर
STR_ORDER_NEAREST_DEPOT :निकटतम
###length 3
###next-name-looks-similar
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
@ -914,6 +1192,7 @@ STR_ORDER_GO_TO_STATION :{STRING} {STATI
###length 3
@ -958,6 +1237,7 @@ STR_AI_CONFIG_CHANGE_NONE :
# Textfile window
###length 3
# Vehicle loading indicators
@ -1044,19 +1324,29 @@ STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... प
# Generic vehicle errors
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_ERROR_CAN_T_RENAME_SHIP :{WHITE}जहाज का नामकरण नहीं कर सकते...
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}रेल वाहन नहीं बेच सकते...
# Specific vehicle errors
@ -1070,8 +1360,10 @@ STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... व
# Sign related errors
# Translatable comment for OpenTTD's desktop shortcut
###external 1
# Translatable descriptions in media/baseset/*.ob* files
###external 10
STR_BASESOUNDS_WIN_DESCRIPTION :ट्रांस्पोर्ट टायिकून डीलक्स के विंडोज संस्करण की मूल ध्वनियां।
##id 0x2000
@ -1085,9 +1377,11 @@ STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC :बैंक
############ WARNING, using range 0x6000 for strings that are stored in the savegame
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
###length 27
STR_SV_STNAME :{STRING}
STR_SV_STNAME_NORTH :{STRING} उत्तर
STR_SV_STNAME_CENTRAL :{STRING} केंद्रीय
@ -1095,9 +1389,11 @@ STR_SV_STNAME_AIRPORT :{STRING} हव
STR_SV_STNAME_BUOY :{STRING}
STR_SV_STNAME_WAYPOINT :{STRING}
##id 0x6020
############ end of savegame specific region!
##id 0x8000
###length 116
# Vehicle names
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :कोयला वाहन
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :फल वाहन
@ -1105,10 +1401,16 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (वि
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :खिलौनों का डब्बा
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :पानी का टैंकर
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BUBBLE_VAN :बबल वैन
###length 88
STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKIII_BUS :प्लॉडीपीहट एमके३ बस
STR_VEHICLE_NAME_ROAD_VEHICLE_MORELAND_WOOD_TRUCK :मोरलैंड काष्ठ ट्रक
STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_ARMORED_TRUCK :फोस्टर कवचयुक्त ट्रक
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_CANDY_TRUCK :पावरनोट मिष्ठान्न ट्रक
###length 11
###length 41
STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_COTSWALD_LB_3 :बेकवेल कॉट्सवॉल्ड एलबी-३
STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB_9 :बेकवेल लकेट एलबी-९
STR_VEHICLE_NAME_AIRCRAFT_BAKEWELL_LUCKETT_LB80 :बेकवेल लकेट एलबी८०
@ -1123,6 +1425,14 @@ STR_FORMAT_DATE_LONG :{STRING} {STRIN
STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING}
###length 2
###length 2
###length 6
###next-name-looks-similar
# _SERIAL version of AIRACRAFT doesn't exist

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -169,7 +169,7 @@ STR_LITERS :{COMMA} litri
STR_ITEMS :{COMMA} artikli
STR_CRATES :{COMMA} kesti
# Colours, do not shuffle
###length 17
STR_COLOUR_DARK_BLUE :Obskur-blua
STR_COLOUR_PALE_GREEN :Pal-verda
STR_COLOUR_PINK :Rozea
@ -226,7 +226,9 @@ STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Klozas f
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Baskulas granda/mikra fenestro grandeso
# Show engines button
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Query window
STR_BUTTON_CANCEL :{BLACK}Anular
@ -261,6 +263,7 @@ STR_SORT_BY_POPULATION :Populo
# Group by options for vehicle list
# Tooltips for the main toolbar
###length 31
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pauzas ludo
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Selekti
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Salvas ludo, abandonas ludo, ekiras
@ -281,77 +284,77 @@ STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plantaca
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Situas signalo
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Pozez objekto
############ range for SE file menu starts
# Scenario editor file menu
###length 7
STR_SCENEDIT_FILE_MENU_SEPARATOR :
############ range for SE file menu starts
############ range for settings menu starts
# Settings menu
###length 14
STR_SETTINGS_MENU_FULL_DETAIL :Plene detaloza
STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS :Diafana konstrukturi
############ range ends here
############ range for file menu starts
# File menu
###length 5
STR_FILE_MENU_SAVE_GAME :Salvas ludo
STR_FILE_MENU_LOAD_GAME :Kargas ludo
STR_FILE_MENU_QUIT_GAME :Abandonas ludo
STR_FILE_MENU_SEPARATOR :
STR_FILE_MENU_EXIT :Ekiras
############ range ends here
# map menu
# Map menu
###length 4
STR_MAP_MENU_MAP_OF_WORLD :Mapo di mondo
STR_MAP_MENU_SIGN_LIST :Listo di signi
############ range for town menu starts
############ range ends here
# Town menu
###length 2
############ range for subsidies menu starts
############ range ends here
# Subsidies menu
###length 1
############ range for graph menu starts
# Graph menu
###length 6
STR_GRAPH_MENU_INCOME_GRAPH :Revenuo grafiko
STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :Livrita kargajo grafiko
############ range ends here
############ range for company league menu starts
############ range ends here
# Company league menu
###length 3
############ range for industry menu starts
############ range ends here
# Industry menu
###length 3
############ range for railway construction menu starts
############ range ends here
# URailway construction menu
###length 4
############ range for road construction menu starts
############ range ends here
# Road construction menu
###length 2
############ range for waterways construction menu starts
############ range ends here
# Waterways construction menu
###length 1
############ range for airport construction menu starts
############ range ends here
# Aairport construction menu
###length 1
############ range for landscaping menu starts
############ range ends here
# Landscaping menu
###length 3
############ range for music menu starts
############ range ends here
# Music menu
###length 1
############ range for message menu starts
############ range ends here
# Message menu
###length 3
############ range for about menu starts
############ range ends here
# About menu
###length 10
############ range for ordinal numbers used for the place in the highscore window
############ range for ordinal numbers ends
# Place in highscore window
###length 15
############ range for days starts
############ range for days ends
###length 31
############ range for months starts
###length 12
############ range for months ends
###length 12
# Graph window
STR_GRAPH_X_LABEL_MONTH :{TINY_FONT}{STRING}
@ -370,8 +373,10 @@ STR_GRAPH_Y_LABEL_NUMBER :{TINY_FONT}{COM
STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT})
STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA})
STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
############ Those following lines need to be in this order!!
############ End of order list
###length 10
###length 10
# Music window
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
@ -389,12 +394,14 @@ STR_HIGHSCORE_STATS :{BIG_FONT}'{STR
# Smallmap window
STR_SMALLMAP_CAPTION :{WHITE}Mapo - {STRING}
###length 7
STR_SMALLMAP_TYPE_CONTOURS :Konturi
STR_SMALLMAP_TYPE_VEHICLES :Vehili
STR_SMALLMAP_TYPE_INDUSTRIES :Industrii
STR_SMALLMAP_TYPE_ROUTES :Voyi
STR_SMALLMAP_TYPE_VEGETATION :Vejetado
STR_SMALLMAP_TYPE_OWNERS :Proprietanto
STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Montras transport-voyi sur la mapo
STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Montrar vejetado ad la mapo
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Montrar proprietanti ad la mapo
@ -448,6 +455,8 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Sendajo
###length VEHICLE_TYPES
###next-name-looks-similar
# Order review system / warnings
@ -456,6 +465,7 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Sendajo
###length 4
# Extra view window
@ -463,17 +473,16 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Sendajo
# Game options window
STR_GAME_OPTIONS_CAPTION :{WHITE}Ludo Selekti
############ start of currency region
############ end of currency region
###length 42
###length 2
############ start of townname region
############ end of townname region
###length 21
############ start of autosave dropdown
############ end of autosave dropdown
# Autosave dropdown
###length 5
@ -511,32 +520,96 @@ STR_VARIETY_MEDIUM :Mezgrada
STR_VARIETY_HIGH :Alta
STR_VARIETY_VERY_HIGH :Tre Alta
###length 5
STR_AI_SPEED_SLOW :Lenta
STR_AI_SPEED_MEDIUM :Meza
STR_AI_SPEED_FAST :Rapida
###length 6
STR_SEA_LEVEL_LOW :Basa
STR_SEA_LEVEL_MEDIUM :Meza
STR_SEA_LEVEL_HIGH :Alta
STR_SEA_LEVEL_CUSTOM :Kustumigita
STR_SEA_LEVEL_CUSTOM_PERCENTAGE :Kustumigita ({NUM}%)
###length 4
###length 3
###length 4
###length 7
###length 3
# Settings tree window
###length 3
###length 3
###length 3
###length 3
STR_CONFIG_SETTING_NONE :Nulo
###length 3
###setting-zero-is-special
###setting-zero-is-special
###length 3
###length 3
###length 3
###length 4
###length 3
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :nulo
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normala
@ -544,23 +617,84 @@ STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normala
###length 3
###length 2
###setting-zero-is-special
###length 2
###length 4
###length 3
###length 2
###length 2
###length 3
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Verda
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Obskur-verda
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora
###length 4
###length 3
###length 3
###length 4
###length 3
###length 3
###length 3
###length 4
###length 3
###setting-zero-is-special
@ -577,6 +711,90 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora
###length 3
###setting-zero-is-special
###length 3
###setting-zero-is-special
###length 3
###length 2
###length 2
###length 5
###length 3
###length 2
###length 4
###setting-zero-is-special
###setting-zero-is-special
###length 6
###length 3
###length 5
###setting-zero-is-special
###length 3
###length 4
###length 3
###length 3
###length 3
###length 3
###length 3
###length 2
# Config errors
# Video initalization errors
@ -602,15 +820,18 @@ STR_QUIT_NO :{BLACK}Ne
# Cheat window
###length 4
# Livery window
###length 23
# Face selection window
############ Next lines match ServerGameType
############ End of leave-in-this-order
# Matches ServerGameType
###length 3
# Network server list
@ -629,9 +850,8 @@ STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x
# Network connecting window
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 8
@ -639,8 +859,8 @@ STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x
# Network client list
############ Begin of ConnectionType
############ End of ConnectionType
# Matches ConnectionType
###length 5
@ -656,19 +876,22 @@ STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x
# Network messages
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Tu sendis tro multa imperi ad la servero
############ Leave those lines in this order!!
STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :sendinta tro multa imperi
############ End of leave-in-this-order
###length 21
STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :sendinta tro multa imperi
# Network related errors
STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 12
# Content downloading window
###length 5
# Order of these is important!
# Content downloading progress window
@ -791,10 +1014,10 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} La kruo OpenTTD
# Framerate display window
############ Leave those lines in this order!!
############ End of leave-in-this-order
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 15
###length 15
# Save/load game/scenario
@ -850,6 +1073,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
# NewGRF status
STR_NEWGRF_LIST_NONE :Nulo
###length 3
# NewGRF 'it's broken' warnings
@ -877,15 +1101,17 @@ STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
# Town local authority window
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
###length 8
###length 8
# Goal window
STR_GOALS_TEXT :{ORANGE}{STRING}
# Goal question window
############ Start of Goal Question button list
############ End of Goal Question button list
# Goal Question button list
###length 18
# Subsidies window
@ -905,8 +1131,7 @@ STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Aceptas:
############ range for rating starts
############ range for rating ends
###length 8
@ -918,6 +1143,9 @@ STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOIN
# Finances window
STR_FINANCES_YEAR :{WHITE}{NUM}
###length 13
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
STR_FINANCES_LOAN_TITLE :{WHITE}Prest-ajo
@ -941,23 +1169,25 @@ STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehili:
# Vehicle lists
###length VEHICLE_TYPES
STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Tren{P o i}
STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} Voyo-Vehil{P o i}
STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} Nav{P o i}
STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronavo
###length VEHICLE_TYPES
STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Treni - klikigas sur treno por informeso
STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Voy-vehili - klikigas sur vehilo por informeso
STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Navi - klikigas sur navo por informeso
STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Aeronavi - klikigas sur aeronavo por informeso
STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Profito to yaro: {CURRENCY_LONG} (lasta yaro: {CURRENCY_LONG})
###length VEHICLE_TYPES
STR_VEHICLE_LIST_AVAILABLE_TRAINS :Disponebla Treni
STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Disponebla Vehili
STR_VEHICLE_LIST_AVAILABLE_SHIPS :Disponebla Navi
STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Disponebla Aeronavi
STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Profito to yaro: {CURRENCY_LONG} (lasta yaro: {CURRENCY_LONG})
STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Sendas ad Depozeyo
STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Sendas ad Depozeyo
@ -967,11 +1197,13 @@ STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Sendas ad Hanga
# Group window
###length VEHICLE_TYPES
STR_GROUP_ALL_TRAINS :Omna treni
STR_GROUP_ALL_ROAD_VEHICLES :Omna voy-vehili
STR_GROUP_ALL_SHIPS :Omna navi
STR_GROUP_ALL_AIRCRAFTS :Omna aeronavi
###length VEHICLE_TYPES
STR_GROUP_DEFAULT_TRAINS :Negrupigita treni
STR_GROUP_DEFAULT_ROAD_VEHICLES :Negrupigita voy-vehili
STR_GROUP_DEFAULT_SHIPS :Negrupigita navi
@ -984,22 +1216,34 @@ STR_GROUP_DEFAULT_AIRCRAFTS :Negrupigita aer
# Build vehicle window
###length 4
############ range for vehicle availability starts
############ range for vehicle availability ends
# Vehicle availability
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Depot window
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
@ -1011,18 +1255,29 @@ STR_DEPOT_NO_ENGINE :{BLACK}-
STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING}
STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT})
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Engine preview window
@ -1032,6 +1287,9 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Autoreplace window
###length VEHICLE_TYPES
STR_REPLACE_VEHICLE_TRAIN :Treno
STR_REPLACE_VEHICLE_ROAD_VEHICLE :Voy-vehilo
STR_REPLACE_VEHICLE_SHIP :Navo
@ -1040,6 +1298,8 @@ STR_REPLACE_VEHICLE_AIRCRAFT :Aeronavo
###length 2
###next-name-looks-similar
@ -1047,30 +1307,39 @@ STR_REPLACE_VEHICLE_AIRCRAFT :Aeronavo
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Messages in the start stop button in the vehicle view
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}Servado ad {DEPOT}, {VELOCITY}
# Vehicle stopped/started animations
###length 2
STR_VEHICLE_COMMAND_STOPPED_SMALL :{TINY_FONT}{RED}Haltinta
STR_VEHICLE_COMMAND_STOPPED :{RED}Haltinta
###length 2
STR_VEHICLE_COMMAND_STARTED_SMALL :{TINY_FONT}{GREEN}Komencinta
STR_VEHICLE_COMMAND_STARTED :{GREEN}Komencinta
# Vehicle details
###length VEHICLE_TYPES
# The next two need to stay in this order
@ -1078,6 +1347,7 @@ STR_VEHICLE_COMMAND_STARTED :{GREEN}Komencin
###length VEHICLE_TYPES
# Extra buttons for train details windows
@ -1090,8 +1360,11 @@ STR_VEHICLE_DETAIL_TAB_CAPACITIES :{BLACK}Kapacesi
# Vehicle refit
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Order view
@ -1107,6 +1380,8 @@ STR_ORDER_TEXT :{STRING} {STRIN
# Conditional order variables, must follow order of OrderConditionVariable enum
###length 8
###next-name-looks-similar
@ -1117,6 +1392,9 @@ STR_ORDER_TEXT :{STRING} {STRIN
# String parts to build the order string
###length 3
###next-name-looks-similar
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
@ -1127,6 +1405,7 @@ STR_ORDER_GO_TO_STATION :{STRING} {STATI
###length 3
@ -1170,6 +1449,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN
# Textfile window
###length 3
# Vehicle loading indicators
@ -1263,13 +1543,23 @@ STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}Ne povas
# Generic vehicle errors
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Tro multa vehili en la ludo
@ -1287,8 +1577,10 @@ STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Tro mult
# Sign related errors
# Translatable comment for OpenTTD's desktop shortcut
###external 1
# Translatable descriptions in media/baseset/*.ob* files
###external 10
##id 0x2000
# Town building names
@ -1298,18 +1590,28 @@ STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Tro mult
############ WARNING, using range 0x6000 for strings that are stored in the savegame
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
###length 27
STR_SV_STNAME :{STRING}
STR_SV_STNAME_BUOY :{STRING}
STR_SV_STNAME_WAYPOINT :{STRING}
##id 0x6020
############ end of savegame specific region!
##id 0x8000
###length 116
# Vehicle names
###length 88
###length 11
###length 41
##id 0x8800
# Formatting of some strings
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
@ -1318,11 +1620,19 @@ STR_FORMAT_DATE_LONG :{STRING} {STRIN
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
###length 2
###length 2
###length 6
STR_FORMAT_DEPOT_NAME_TRAIN :{TOWN} Treno-Depozeyo
STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :{TOWN} Treno-Depozeyo #{COMMA}
STR_FORMAT_DEPOT_NAME_SHIP :{TOWN} Navo-Depozeyo
STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :{TOWN} Navo-Depozeyo #{COMMA}
###next-name-looks-similar
STR_FORMAT_DEPOT_NAME_AIRCRAFT :{STATION} Hangaro
# _SERIAL version of AIRACRAFT doesn't exist
STR_COMPANY_SOMEONE :ulu

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -123,7 +123,7 @@ STR_LITERS :{COMMA} litr{P
STR_ITEMS :{COMMA} oġġett{P "" i i i}
STR_CRATES :{COMMA} kaxx{P a i i i}
# Colours, do not shuffle
###length 17
STR_COLOUR_DARK_BLUE :Blu Skur
STR_COLOUR_PALE_GREEN :Aħdar ċar
STR_COLOUR_PINK :Roża
@ -193,7 +193,9 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Faxxa bi
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Waqqa bini, etc.., Ctrl tagħzel zona dijagonali. Shift taqleb bejn bini/turija ta' stima ta' l-ispiza
# Show engines button
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Query window
STR_BUTTON_DEFAULT :{BLACK}Default
@ -247,6 +249,7 @@ STR_SORT_BY_POPULATION :Popolazzjoni
# Group by options for vehicle list
# Tooltips for the main toolbar
###length 31
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Waqfa temporanja mil-logħba
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Għaġġel il-loghba
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Preferenzi
@ -260,67 +263,67 @@ STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Ibni ind
# Extra tooltips for the scenario editor toolbar
############ range for SE file menu starts
# Scenario editor file menu
###length 7
STR_SCENEDIT_FILE_MENU_SEPARATOR :
############ range for SE file menu starts
############ range for settings menu starts
############ range ends here
# Settings menu
###length 14
############ range for file menu starts
# File menu
###length 5
STR_FILE_MENU_SEPARATOR :
############ range ends here
# map menu
# Map menu
###length 4
############ range for town menu starts
############ range ends here
# Town menu
###length 2
############ range for subsidies menu starts
############ range ends here
# Subsidies menu
###length 1
############ range for graph menu starts
############ range ends here
# Graph menu
###length 6
############ range for company league menu starts
############ range ends here
# Company league menu
###length 3
############ range for industry menu starts
############ range ends here
# Industry menu
###length 3
############ range for railway construction menu starts
############ range ends here
# URailway construction menu
###length 4
############ range for road construction menu starts
############ range ends here
# Road construction menu
###length 2
############ range for waterways construction menu starts
############ range ends here
# Waterways construction menu
###length 1
############ range for airport construction menu starts
############ range ends here
# Aairport construction menu
###length 1
############ range for landscaping menu starts
############ range ends here
# Landscaping menu
###length 3
############ range for music menu starts
############ range ends here
# Music menu
###length 1
############ range for message menu starts
############ range ends here
# Message menu
###length 3
############ range for about menu starts
############ range ends here
# About menu
###length 10
############ range for ordinal numbers used for the place in the highscore window
############ range for ordinal numbers ends
# Place in highscore window
###length 15
############ range for days starts
############ range for days ends
###length 31
############ range for months starts
###length 12
############ range for months ends
###length 12
# Graph window
STR_GRAPH_X_LABEL_MONTH :{TINY_FONT}{STRING}
@ -339,8 +342,10 @@ STR_GRAPH_Y_LABEL_NUMBER :{TINY_FONT}{COM
STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT})
STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA})
STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
############ Those following lines need to be in this order!!
############ End of order list
###length 10
###length 10
# Music window
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
@ -357,6 +362,8 @@ STR_HIGHSCORE_STATS :{BIG_FONT}'{STR
# Smallmap window
###length 7
STR_SMALLMAP_COMPANY :{TINY_FONT}{COMPANY}
@ -381,6 +388,8 @@ STR_STATUSBAR_COMPANY_NAME :{SILVER}- - {C
###length VEHICLE_TYPES
###next-name-looks-similar
# Order review system / warnings
@ -390,23 +399,23 @@ STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE
###length 4
# Extra view window
# Game options window
############ start of currency region
############ end of currency region
###length 42
###length 2
############ start of townname region
############ end of townname region
###length 21
############ start of autosave dropdown
############ end of autosave dropdown
# Autosave dropdown
###length 5
@ -434,54 +443,175 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :oħrajn
###length 5
###length 6
###length 4
###length 3
###length 4
###length 7
###length 3
# Settings tree window
###length 3
###length 3
###length 3
###length 3
###length 3
STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Stabbilixxi l-kosti għal manutenzjoni u servizzi fuq vetturi u infrastruttura
STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Veloċita' tal-kostruzzjoni: {STRING}
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Illimita l-ammont massimu ta' kostruzzjonijiet għall-AI
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Ħsarat fil-vetturi: {STRING}
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Ikkontrolla kemm-il darba vettura li ma ingħatatx servizz riċentament tieqaf
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Multiplikatur tas-sussidju: {STRING}
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Stabbilixxi kemm jiġi mħallas għal konnessjonijiet sussidjati
###setting-zero-is-special
STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Kosti tal-kostruzzjoni: {STRING}
STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Stabbilixxi l-livell ta' kostruzzjoni u l-prezz tax-xiri
STR_CONFIG_SETTING_RECESSIONS :Riċessjonijiet: {STRING}
STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Jekk mixgħula kull ftit snin tista' sseħħ riċessjoni. Waqt riċessjoni, il-produzzjoni ta' kollox tonqos (tirritorna għal kemm kienet qabel kif tgħaddi r-riċessjoni)
STR_CONFIG_SETTING_TRAIN_REVERSING :Tħallix li ferrovija ddur lura fi stazzjon: {STRING}
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Jekk tinxtegħel, ferroviji ma jdurux lura fi stazzjonijiet li mhumiex fit-tarf, jekk teżisti rotta iqsar għad-destinazzjoni li jmiss
STR_CONFIG_SETTING_DISASTERS :Diżastri: {STRING}
STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ixgħel jew itfi diżastri li xi drabi jistgħu jaffetwaw jew ikissru vetturi jew infrastrutturi
STR_CONFIG_SETTING_CITY_APPROVAL :L-attitudni tal-kunsill lokali lejn bidliet fil-viċinanzi: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Iddeċiedi kemm l-ammont ta storbju u danni lill-ambjent ta' kumpanija jaffetwaw il-klassifikazzjoni tagħhom mar-raħal u proġetti oħra tal-futur
###setting-zero-is-special
###length 3
###length 3
###length 3
###length 4
###length 3
STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avza jekk jintilef il-vehikolu: {STRING}
###length 3
###length 2
###setting-zero-is-special
###length 2
###length 4
###length 3
###length 2
###length 2
###length 3
###length 4
###length 3
###length 3
###length 4
###length 3
###length 3
###length 3
###length 4
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :L-ebda azzjoni
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :L-azzjonijiet kollha
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Uza l-lista avvanzata tal-vetturi: {STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uzu tal-listi avvanzati tal-vetturi biex tghaqqad il-vetturi fi gruppi
@ -489,6 +619,16 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz
###length 3
###setting-zero-is-special
@ -503,10 +643,88 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz
###length 3
###setting-zero-is-special
###length 3
###setting-zero-is-special
###length 3
###length 2
###length 2
###length 5
###length 3
###length 2
###length 4
###setting-zero-is-special
###setting-zero-is-special
###length 6
###length 3
###length 5
###setting-zero-is-special
###length 3
###length 4
###length 3
###length 3
###length 3
###length 3
###length 3
###length 2
# Config errors
@ -528,15 +746,18 @@ STR_INTRO_CAPTION :{WHITE}OpenTTD
# Cheat window
STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ibdel is-sena
###length 4
# Livery window
###length 23
# Face selection window
############ Next lines match ServerGameType
############ End of leave-in-this-order
# Matches ServerGameType
###length 3
# Network server list
@ -555,20 +776,19 @@ STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x
# Network connecting window
############ Leave those lines in this order!!
############ End of leave-in-this-order
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} imnizzlin s'issa
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} imnizzlin s'issa
###length 8
# Network company list added strings
# Network client list
############ Begin of ConnectionType
############ End of ConnectionType
# Matches ConnectionType
###length 5
@ -583,21 +803,24 @@ STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES}
# Network messages
############ Leave those lines in this order!!
###length 21
STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :reviżjoni ħażina
STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :isem diġa qed jintuża
STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :password ħażin
############ End of leave-in-this-order
# Network related errors
STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 12
# Content downloading window
###length 5
# Order of these is important!
# Content downloading progress window
@ -698,10 +921,10 @@ STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Aghzel i
# About OpenTTD window
# Framerate display window
############ Leave those lines in this order!!
############ End of leave-in-this-order
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 15
###length 15
# Save/load game/scenario
@ -751,6 +974,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
# NewGRF status
###length 3
# NewGRF 'it's broken' warnings
@ -779,15 +1003,17 @@ STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
# Town local authority window
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
###length 8
###length 8
# Goal window
STR_GOALS_TEXT :{ORANGE}{STRING}
# Goal question window
############ Start of Goal Question button list
############ End of Goal Question button list
# Goal Question button list
###length 18
# Subsidies window
@ -806,8 +1032,7 @@ STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_L
############ range for rating starts
############ range for rating ends
###length 8
@ -819,6 +1044,9 @@ STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOIN
# Finances window
STR_FINANCES_YEAR :{WHITE}{NUM}
###length 13
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
@ -840,16 +1068,20 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN
# Vehicle lists
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Group window
###length VEHICLE_TYPES
###length VEHICLE_TYPES
@ -858,22 +1090,34 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN
# Build vehicle window
###length 4
############ range for vehicle availability starts
############ range for vehicle availability ends
# Vehicle availability
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Depot window
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
@ -885,18 +1129,29 @@ STR_DEPOT_NO_ENGINE :{BLACK}-
STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING}
STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT})
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Engine preview window
@ -908,34 +1163,48 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Autoreplace window
###length VEHICLE_TYPES
###length 2
###next-name-looks-similar
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Messages in the start stop button in the vehicle view
# Vehicle stopped/started animations
###length 2
###length 2
# Vehicle details
###length VEHICLE_TYPES
# The next two need to stay in this order
@ -943,6 +1212,7 @@ STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE
###length VEHICLE_TYPES
# Extra buttons for train details windows
@ -952,8 +1222,11 @@ STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE
# Vehicle refit
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Order view
@ -969,6 +1242,8 @@ STR_ORDER_TEXT :{STRING} {STRIN
# Conditional order variables, must follow order of OrderConditionVariable enum
###length 8
###next-name-looks-similar
@ -980,6 +1255,9 @@ STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Hassar l
# String parts to build the order string
###length 3
###next-name-looks-similar
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
@ -991,6 +1269,7 @@ STR_ORDER_IMPLICIT :(Awtomatiku)
###length 3
@ -1040,10 +1319,11 @@ STR_AI_CONFIG_CHANGE_NONE :
# Textfile window
STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} лиценца за {STRING}
STR_TEXTFILE_VIEW_README :{BLACK}Прикажи ги чита-ми
STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Промени се најавите
STR_TEXTFILE_VIEW_LICENCE :{BLACK}Лиценца
###length 3
STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} лиценца за {STRING}
# Vehicle loading indicators
@ -1121,24 +1401,34 @@ STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}Il-pont
# Generic vehicle errors
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Din il-vettura mhix disponibbli
STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Din il-vettura mhix disponibbli
STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Dan il-vapur mhux disponibbli
STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Dan l-ajruplan mhux disponibbli
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_ERROR_CAN_T_RENAME_SHIP_TYPE :{WHITE}Ma tistax tbiddel l-isem ta' dan it-tip ta' vapur...
STR_ERROR_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}Ma tistax tbiddel l-isem ta' dan it-tip t' ajruplan...
###length VEHICLE_TYPES
STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}Ma tistax tbigħ din il-ferrovija...
STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Ma tistax tbigħ din il-karozza...
STR_ERROR_CAN_T_SELL_SHIP :{WHITE}Ma tistax tbigħ dan il-vapur...
STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}Ma tistax tbigħ dan l-ajruplan...
STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Din il-vettura mhix disponibbli
STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Din il-vettura mhix disponibbli
STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Dan il-vapur mhux disponibbli
STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Dan l-ajruplan mhux disponibbli
STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Hemm wisq vetturi fil-logħba
@ -1164,9 +1454,11 @@ STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Ma tista
# Sign related errors
# Translatable comment for OpenTTD's desktop shortcut
###external 1
STR_DESKTOP_SHORTCUT_COMMENT :Logħba simulazzjoni bbażata fuq Transport Tycoon Deluxe
# Translatable descriptions in media/baseset/*.ob* files
###external 10
STR_TRADITIONAL_TRAIN_NAME :Ferrovija {COMMA}
STR_TRADITIONAL_ROAD_VEHICLE_NAME :Vettura tat-triq {COMMA}
@ -1217,6 +1509,7 @@ STR_INDUSTRY_NAME_SUGAR_MINE :Minjiera taz-zo
############ WARNING, using range 0x6000 for strings that are stored in the savegame
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
STR_SV_UNNAMED :Bla isem
@ -1225,6 +1518,7 @@ STR_SV_ROAD_VEHICLE_NAME :Vettura tat-tri
STR_SV_SHIP_NAME :Vapur {COMMA}
STR_SV_AIRCRAFT_NAME :Ajruplan {COMMA}
###length 27
STR_SV_STNAME :{STRING}
STR_SV_STNAME_NORTH :{STRING} Tramuntana
STR_SV_STNAME_SOUTH :{STRING} Nofsinhar
@ -1251,9 +1545,11 @@ STR_SV_STNAME_LOWER :{STRING} t' isf
STR_SV_STNAME_HELIPORT :Ħeliport {STRING}
STR_SV_STNAME_FOREST :Foresta {STRING}
STR_SV_STNAME_FALLBACK :{STRING}, Stazzjon #{NUM}
############ end of savegame specific region!
##id 0x8000
###length 116
# Vehicle names
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KIRBY_PAUL_TANK_STEAM :Kirby Paul Tank (Fwar)
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MJS_250_DIESEL :MJS 250 (Diesel)
@ -1307,6 +1603,10 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :Karru għall-pa
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :Karru għall-posta
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :Karru għall-faħam
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Trakk tax-Xarbiet Karbonati
###length 88
###length 11
STR_VEHICLE_NAME_SHIP_MPS_OIL_TANKER :Tanker taż-żejt MPS
STR_VEHICLE_NAME_SHIP_CS_INC_OIL_TANKER :Tanker taż-żejt CS-Inc.
STR_VEHICLE_NAME_SHIP_MPS_PASSENGER_FERRY :Vapur tal-passiġġieri MPS
@ -1318,6 +1618,8 @@ STR_VEHICLE_NAME_SHIP_YATE_CARGO_SHIP :Vapur tal-merka
STR_VEHICLE_NAME_SHIP_BAKEWELL_CARGO_SHIP :Vapur tal-merkanzija Bakewell
STR_VEHICLE_NAME_SHIP_MIGHTYMOVER_CARGO_SHIP :Vapur tal-merkanzija MightyMover
STR_VEHICLE_NAME_SHIP_POWERNAUT_CARGO_SHIP :Vapur tal-merkanzija Powernaut
###length 41
STR_VEHICLE_NAME_AIRCRAFT_SAMPSON_U52 :Sampson U52
STR_VEHICLE_NAME_AIRCRAFT_COLEMAN_COUNT :Coleman Count
STR_VEHICLE_NAME_AIRCRAFT_FFP_DART :FFP Dart
@ -1369,6 +1671,14 @@ STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRI
STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING}
###length 2
###length 2
###length 6
###next-name-looks-similar
# _SERIAL version of AIRACRAFT doesn't exist
STR_UNKNOWN_STATION :stazzjon mhux magħruf
STR_DEFAULT_SIGN_NAME :Sinjal

@ -170,7 +170,7 @@ STR_LITERS :{COMMA} लि
STR_ITEMS :{COMMA}
STR_CRATES :{COMMA} खो{P कं की}
# Colours, do not shuffle
###length 17
STR_COLOUR_DARK_BLUE :गडद निळा
STR_COLOUR_PALE_GREEN :फिकट हिरवा
STR_COLOUR_PINK :गुलाबी
@ -240,7 +240,9 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}स्
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}जमिनीच्या एका चौकोनावरील इमारत नष्ट करणे इ. Ctrl ने तिरका प्रदेश निवडता येतो. Shift नं इमारती किंवा किंमतीचा अंदाज दिसणं चालू/बंद होतं.
# Show engines button
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Query window
STR_BUTTON_DEFAULT :{BLACK}स्थिर
@ -297,6 +299,7 @@ STR_SORT_BY_RATING :धारा
# Group by options for vehicle list
# Tooltips for the main toolbar
###length 31
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK} खेळ स्थगित करा
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}जलद खेळ अग्रेषित
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}पर्याय
@ -338,14 +341,15 @@ STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}इं
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}रस्तेबांधणी
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}चिन्ह लावा
############ range for SE file menu starts
# Scenario editor file menu
###length 7
STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO :उद्देश जतन
STR_SCENEDIT_FILE_MENU_LOAD_SCENARIO :उद्देश उघडा
STR_SCENEDIT_FILE_MENU_SEPARATOR :
STR_SCENEDIT_FILE_MENU_QUIT :बंद करा
############ range for SE file menu starts
############ range for settings menu starts
# Settings menu
###length 14
STR_SETTINGS_MENU_GAME_OPTIONS :खेळाचे पर्याय
STR_SETTINGS_MENU_SCRIPT_SETTINGS :ए.आय. / गेम स्क्रिप्ट सेटिंग्ज
STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF पर्याय
@ -359,92 +363,93 @@ STR_SETTINGS_MENU_FULL_ANIMATION :पूर्ण
STR_SETTINGS_MENU_FULL_DETAIL :पूर्ण तपशील
STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS :इमारती पारदर्शक
STR_SETTINGS_MENU_TRANSPARENT_SIGNS :स्थानकांची नावे पारदर्शक
############ range ends here
############ range for file menu starts
# File menu
###length 5
STR_FILE_MENU_SAVE_GAME :खेळ वाचवणे
STR_FILE_MENU_LOAD_GAME :खेळ उघडा
STR_FILE_MENU_QUIT_GAME :खेळ सोडून द्या
STR_FILE_MENU_SEPARATOR :
STR_FILE_MENU_EXIT :बाहेर पडा
############ range ends here
# map menu
# Map menu
###length 4
STR_MAP_MENU_MAP_OF_WORLD :वैश्विक नकाशा
STR_MAP_MENU_SIGN_LIST :चिन्हांची यादी
############ range for town menu starts
# Town menu
###length 2
STR_TOWN_MENU_TOWN_DIRECTORY :शहरांची यादी
STR_TOWN_MENU_FOUND_TOWN :सापडलेलं शहर
############ range ends here
############ range for subsidies menu starts
# Subsidies menu
###length 1
STR_SUBSIDIES_MENU_SUBSIDIES :अनुदान
############ range ends here
############ range for graph menu starts
# Graph menu
###length 6
STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :चालू असले नफा आलेख
STR_GRAPH_MENU_INCOME_GRAPH :आवक आलेख
STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :वितरित मालवाहू आलेख
STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :कामगिरी इतिहास आलेख
STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :कंपनी मूल्य आलेख
STR_GRAPH_MENU_CARGO_PAYMENT_RATES :मालवाहू देयक दर
############ range ends here
############ range for company league menu starts
# Company league menu
###length 3
STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :कंपनी लीग तक्ता
STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :तपशीलावर कामगिरी रेटिंग
STR_GRAPH_MENU_HIGHSCORE :उच्च स्कोअर तक्ता
############ range ends here
############ range for industry menu starts
# Industry menu
###length 3
STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :उद्योग निर्देशिका
STR_INDUSTRY_MENU_INDUSTRY_CHAIN :इंडस्ट्री बंदिवासात
STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :नवीन उद्योग फंड
############ range ends here
############ range for railway construction menu starts
# URailway construction menu
###length 4
STR_RAIL_MENU_RAILROAD_CONSTRUCTION :लोहमार्ग बांधणी
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :विद्युत लोहमार्ग बांधणी
STR_RAIL_MENU_MONORAIL_CONSTRUCTION :मोनोरेल बांधणी
STR_RAIL_MENU_MAGLEV_CONSTRUCTION :मॅग्लेव बांधणी
############ range ends here
############ range for road construction menu starts
# Road construction menu
###length 2
STR_ROAD_MENU_ROAD_CONSTRUCTION :रस्तेबांधणी
STR_ROAD_MENU_TRAM_CONSTRUCTION :ट्रामगाडी बांधणी
############ range ends here
############ range for waterways construction menu starts
# Waterways construction menu
###length 1
STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION :जलमार्ग बांधणी
############ range ends here
############ range for airport construction menu starts
# Aairport construction menu
###length 1
STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION :विमानतळ बांधणी
############ range ends here
############ range for landscaping menu starts
# Landscaping menu
###length 3
STR_LANDSCAPING_MENU_PLANT_TREES :झाडे लावा
STR_LANDSCAPING_MENU_PLACE_SIGN :चिन्ह लावा
############ range ends here
############ range for music menu starts
# Music menu
###length 1
STR_TOOLBAR_SOUND_MUSIC :ध्वनी/संगीत
############ range ends here
############ range for message menu starts
# Message menu
###length 3
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :शेवटचा संदेश/बातम्या अहवाल
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :निरोपांचा इतिहास
############ range ends here
############ range for about menu starts
# About menu
###length 10
STR_ABOUT_MENU_LAND_BLOCK_INFO :जागाची माहिती
STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_SCREENSHOT :द्श्य
STR_ABOUT_MENU_ABOUT_OPENTTD :ओपेन टीटीडी बद्दल
############ range ends here
############ range for ordinal numbers used for the place in the highscore window
# Place in highscore window
###length 15
STR_ORDINAL_NUMBER_1ST :१
STR_ORDINAL_NUMBER_2ND :२
STR_ORDINAL_NUMBER_3RD :३
@ -460,9 +465,8 @@ STR_ORDINAL_NUMBER_12TH :१२
STR_ORDINAL_NUMBER_13TH :१३
STR_ORDINAL_NUMBER_14TH :१४
STR_ORDINAL_NUMBER_15TH :१५
############ range for ordinal numbers ends
############ range for days starts
###length 31
STR_DAY_NUMBER_1ST :१
STR_DAY_NUMBER_2ND :२
STR_DAY_NUMBER_3RD :३
@ -494,9 +498,8 @@ STR_DAY_NUMBER_28TH :२८
STR_DAY_NUMBER_29TH :२९
STR_DAY_NUMBER_30TH :३०
STR_DAY_NUMBER_31ST :३१
############ range for days ends
############ range for months starts
###length 12
STR_MONTH_ABBREV_JAN :जाने
STR_MONTH_ABBREV_FEB :फेब्रु
STR_MONTH_ABBREV_MAR :मार्च
@ -510,6 +513,7 @@ STR_MONTH_ABBREV_OCT :ऑक्टो
STR_MONTH_ABBREV_NOV :नोव्हें
STR_MONTH_ABBREV_DEC :डिसें
###length 12
STR_MONTH_JAN :जानेवारी
STR_MONTH_FEB :फेब्रूवारी
STR_MONTH_MAR :मार्च
@ -522,7 +526,6 @@ STR_MONTH_SEP :सप्टे
STR_MONTH_OCT :ऑक्टोबर
STR_MONTH_NOV :नोव्हेंबर
STR_MONTH_DEC :डिसेंबर
############ range for months ends
# Graph window
STR_GRAPH_KEY_BUTTON :{BLACK}किल्ली
@ -572,7 +575,8 @@ STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURREN
STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA})
STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}या कंपनी बद्दल तपशील पहा
############ Those following lines need to be in this order!!
###length 10
STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}वाहने:
STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}स्टेशन:
STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}किमान नफा:
@ -583,7 +587,8 @@ STR_PERFORMANCE_DETAIL_CARGO :{BLACK}मा
STR_PERFORMANCE_DETAIL_MONEY :{BLACK}पैसा:
STR_PERFORMANCE_DETAIL_LOAN :{BLACK}कर्ज:
STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}एकूण:
############ End of order list
###length 10
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}गेल्या वर्षी नफा दिल्या वाहनांची संख्या. या वाहने, गाड्या, जहाजे, विमानाची समावेश आहे.
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}सर्वात कमी उत्पन्न वाहनाच्या नफा (दोन वर्षे पेक्षा फक्त वाहने जुन्या मानले जातात)
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}गेल्या 12 मात्रेत सर्वात कमी नफा तिमाहीत केली रोख
@ -640,6 +645,8 @@ STR_HIGHSCORE_STATS :{BIG_FONT}'{STR
# Smallmap window
STR_SMALLMAP_CAPTION :{WHITE}नक्षा - {STRING}
###length 7
STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}रस्ते
STR_SMALLMAP_LEGENDA_AIRCRAFT :{TINY_FONT}{BLACK}विमान
@ -672,6 +679,8 @@ STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDE
###length VEHICLE_TYPES
###next-name-looks-similar
# Order review system / warnings
@ -684,13 +693,14 @@ STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLAC
###length 4
# Extra view window
# Game options window
############ start of currency region
###length 42
STR_GAME_OPTIONS_CURRENCY_GBP :पौंड (£)
STR_GAME_OPTIONS_CURRENCY_USD :डोल्लर ($)
STR_GAME_OPTIONS_CURRENCY_EUR :युरो (€)
@ -716,11 +726,11 @@ STR_GAME_OPTIONS_CURRENCY_SIT :स्लोव
STR_GAME_OPTIONS_CURRENCY_SEK :स्वीडीश क्रोना (SEK)
STR_GAME_OPTIONS_CURRENCY_TRY :तुर्की लिरा (TRY)
STR_GAME_OPTIONS_CURRENCY_SKK :स्लोवाक कोरुना (SKK)
############ end of currency region
###length 2
############ start of townname region
###length 21
STR_GAME_OPTIONS_TOWN_NAME_FRENCH :फ्रेंच
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :जर्मन
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :स्वीडीश
@ -737,15 +747,14 @@ STR_GAME_OPTIONS_TOWN_NAME_SWISS :स्विस
STR_GAME_OPTIONS_TOWN_NAME_DANISH :डेनिष
STR_GAME_OPTIONS_TOWN_NAME_TURKISH :तुर्की
STR_GAME_OPTIONS_TOWN_NAME_ITALIAN :ईटेलिअन
############ end of townname region
############ start of autosave dropdown
# Autosave dropdown
###length 5
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :दर महिने
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :दर ३ महिने
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :दर ६ महिने
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :दर १२ महिने
############ end of autosave dropdown
STR_GAME_OPTIONS_LANGUAGE :{BLACK}भाषा
@ -774,43 +783,163 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :अन्य
###length 5
###length 6
###length 4
###length 3
###length 4
STR_SUBSIDY_X1_5 :x१.५
STR_SUBSIDY_X2 :x२
STR_SUBSIDY_X3 :x३
STR_SUBSIDY_X4 :x४
###length 7
###length 3
# Settings tree window
###length 3
###length 3
###length 3
###length 3
STR_CONFIG_SETTING_NONE :नाही
STR_CONFIG_SETTING_ORIGINAL :मुळ
STR_CONFIG_SETTING_REALISTIC :खरेखुरे
###length 3
###setting-zero-is-special
###setting-zero-is-special
STR_CONFIG_SETTING_SMOKE_AMOUNT :वाहनांचा धूर/ठिणग्या: {STRING}
###length 3
###length 3
###length 3
###length 4
###length 3
STR_CONFIG_SETTING_WARN_LOST_VEHICLE : वाहन हरवल्यास सूचित करा: {STRING}
###length 3
###length 2
###setting-zero-is-special
###length 2
###length 4
###length 3
###length 2
###length 2
###length 3
###length 4
###length 3
###length 3
###length 4
###length 3
###length 3
###length 3
###length 4
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :कोणतीही कृती नाही
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :सर्व कृत्या
@ -819,23 +948,112 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :सर्व
###length 3
###setting-zero-is-special
###length 3
###setting-zero-is-special
###length 3
###setting-zero-is-special
###length 3
###length 2
###length 2
###length 5
###length 3
###length 2
###length 4
STR_CONFIG_SETTING_STATUSBAR_POS :स्टेटसबार वरचं स्थान: {STRING}
###setting-zero-is-special
###setting-zero-is-special
###length 6
###length 3
###length 5
###setting-zero-is-special
###length 3
###length 4
###length 3
###length 3
###length 3
###length 3
###length 3
###length 2
# Config errors
@ -858,9 +1076,12 @@ STR_INTRO_CAPTION :{WHITE}ओप
# Cheat window
STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}चालू वर्ष बदला
###length 4
# Livery window
###length 23
STR_LIVERY_SMALL_PLANE :लहान विमान
STR_LIVERY_LARGE_PLANE :मोठं विमान
@ -899,8 +1120,8 @@ STR_FACE_LIPS_MOUSTACHE_TOOLTIP :{BLACK}ओठ
STR_FACE_CHIN :हनुवटी:
STR_FACE_CHIN_TOOLTIP :{BLACK}हनुवटी बदला
############ Next lines match ServerGameType
############ End of leave-in-this-order
# Matches ServerGameType
###length 3
# Network server list
@ -922,20 +1143,19 @@ STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}वर
# Network connecting window
############ Leave those lines in this order!!
############ End of leave-in-this-order
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}आत्तापर्यंत {BYTES} डाऊनलोड झाल्या आहेत.
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} डाऊनलोड झालं आहे
###length 8
# Network company list added strings
# Network client list
############ Begin of ConnectionType
############ End of ConnectionType
# Matches ConnectionType
###length 5
@ -950,20 +1170,23 @@ STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES}
# Network messages
############ Leave those lines in this order!!
############ End of leave-in-this-order
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE} संपर्क तुटला असण्याची शक्यता
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION :{WHITE} गेल्या {NUM} सेकंदांत सर्वरकडून काहीच माहिती आलेली नाही
###length 21
# Network related errors
STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 12
# Content downloading window
###length 5
# Order of these is important!
# Content downloading progress window
@ -1088,10 +1311,10 @@ STR_LAI_WATER_DESCRIPTION_RIVER :नदी
STR_ABOUT_OPENTTD :{WHITE}ओपेन टीटीडी बद्दल
# Framerate display window
############ Leave those lines in this order!!
############ End of leave-in-this-order
############ Leave those lines in this order!!
############ End of leave-in-this-order
###length 15
###length 15
# Save/load game/scenario
@ -1143,6 +1366,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
# NewGRF status
###length 3
# NewGRF 'it's broken' warnings
@ -1173,15 +1397,17 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING
# Town local authority window
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
###length 8
###length 8
# Goal window
STR_GOALS_TEXT :{ORANGE}{STRING}
# Goal question window
############ Start of Goal Question button list
############ End of Goal Question button list
# Goal Question button list
###length 18
# Subsidies window
@ -1200,7 +1426,7 @@ STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_L
############ range for rating starts
###length 8
STR_CARGO_RATING_APPALLING :धक्कादायक
STR_CARGO_RATING_VERY_POOR :अतिशय दरिद्र
STR_CARGO_RATING_POOR :दरिद्र
@ -1209,7 +1435,6 @@ STR_CARGO_RATING_GOOD :चांगल
STR_CARGO_RATING_VERY_GOOD :अतिशय चांगल
STR_CARGO_RATING_EXCELLENT :अव्वल
STR_CARGO_RATING_OUTSTANDING :उत्कृष्ट
############ range for rating ends
@ -1222,9 +1447,12 @@ STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOIN
# Finances window
STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}खर्च/कमाई
STR_FINANCES_YEAR :{WHITE}{NUM}
###length 13
STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}विमान चालवण्याचा खर्च
STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}विमानाची कमाई
STR_FINANCES_SECTION_OTHER :{GOLD}अन्य
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
STR_FINANCES_TOTAL_CAPTION :{WHITE}संपूर्ण:
@ -1261,10 +1489,12 @@ STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTR
# Vehicle lists
###length VEHICLE_TYPES
STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} विमान
###length VEHICLE_TYPES
###length VEHICLE_TYPES
STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :उपलब्ध वाहन
STR_VEHICLE_LIST_AVAILABLE_SHIPS :उपलब्ध जहाज
STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :उपलब्ध विमान
@ -1274,10 +1504,12 @@ STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :उपलब्
# Group window
###length VEHICLE_TYPES
STR_GROUP_ALL_ROAD_VEHICLES :सर्व रस्त्यावरचे वाहन
STR_GROUP_ALL_SHIPS :सर्व जहाज
STR_GROUP_ALL_AIRCRAFTS :सर्व विमान
###length VEHICLE_TYPES
@ -1287,13 +1519,14 @@ STR_GROUP_REMOVE_ALL_VEHICLES :सगळे
# Build vehicle window
###length 4
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :नवीन रस्त्यावरचे वाहन
############ range for vehicle availability starts
# Vehicle availability
###length VEHICLE_TYPES
STR_BUY_VEHICLE_SHIP_CAPTION :नवीन जहाज
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :नवीन विमान
############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}किंमत: {GOLD}{CURRENCY_LONG}{BLACK} वजन: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}गती: {GOLD}{VELOCITY}{BLACK} शक्ती: {GOLD}{POWER}
@ -1302,16 +1535,27 @@ STR_PURCHASE_INFO_COST :{BLACK}कि
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}वजन: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}किंमत: {GOLD}{CURRENCY_LONG}{BLACK} गती: {GOLD}{VELOCITY}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Depot window
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
@ -1321,18 +1565,29 @@ STR_DEPOT_NO_ENGINE :{BLACK}-
STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING}
STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT})
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Engine preview window
@ -1344,12 +1599,17 @@ STR_ENGINE_PREVIEW_SHIP :जहाज
# Autoreplace window
###length VEHICLE_TYPES
STR_REPLACE_VEHICLE_SHIP :जहाज
STR_REPLACE_VEHICLE_AIRCRAFT :विमान
###length 2
###next-name-looks-similar
@ -1357,25 +1617,34 @@ STR_REPLACE_VEHICLE_AIRCRAFT :विमान
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Messages in the start stop button in the vehicle view
# Vehicle stopped/started animations
###length 2
###length 2
# Vehicle details
###length VEHICLE_TYPES
# The next two need to stay in this order
@ -1383,6 +1652,7 @@ STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE
###length VEHICLE_TYPES
# Extra buttons for train details windows
@ -1392,8 +1662,11 @@ STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE
# Vehicle refit
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
# Order view
@ -1409,6 +1682,8 @@ STR_ORDER_TEXT :{STRING} {STRIN
# Conditional order variables, must follow order of OrderConditionVariable enum
###length 8
###next-name-looks-similar
@ -1420,6 +1695,9 @@ STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}सर
# String parts to build the order string
###length 3
###next-name-looks-similar
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
@ -1431,6 +1709,7 @@ STR_ORDER_IMPLICIT :(आपोआ
###length 3
@ -1474,6 +1753,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN
# Textfile window
###length 3
# Vehicle loading indicators
@ -1562,13 +1842,23 @@ STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}पू
# Generic vehicle errors
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
###length VEHICLE_TYPES
@ -1585,8 +1875,10 @@ STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}पू
# Sign related errors
# Translatable comment for OpenTTD's desktop shortcut
###external 1
# Translatable descriptions in media/baseset/*.ob* files
###external 10
STR_TRADITIONAL_TRAIN_NAME :रेल्वे {COMMA}
STR_TRADITIONAL_ROAD_VEHICLE_NAME :रस्त्यावरील वाहन {COMMA}
@ -1645,6 +1937,7 @@ STR_INDUSTRY_NAME_SUGAR_MINE :साखरे
############ WARNING, using range 0x6000 for strings that are stored in the savegame
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
STR_SV_UNNAMED :निनावी
@ -1653,6 +1946,7 @@ STR_SV_ROAD_VEHICLE_NAME :रस्त्
STR_SV_SHIP_NAME :जहाज {COMMA}
STR_SV_AIRCRAFT_NAME :विमान {COMMA}
###length 27
STR_SV_STNAME :{STRING}
STR_SV_STNAME_NORTH :{STRING} उत्तर
STR_SV_STNAME_SOUTH :{STRING} दक्षिण
@ -1675,10 +1969,16 @@ STR_SV_STNAME_UPPER :वरचं {S
STR_SV_STNAME_LOWER :खालचं {STRING}
STR_SV_STNAME_FOREST :{STRING} वन
STR_SV_STNAME_FALLBACK :{STRING} स्थानक #{NUM}
############ end of savegame specific region!
##id 0x8000
###length 116
# Vehicle names
###length 88
###length 11
STR_VEHICLE_NAME_SHIP_MPS_OIL_TANKER :एम् पी एस् तेलवाहू जहाज
STR_VEHICLE_NAME_SHIP_CS_INC_OIL_TANKER :सी एस् इंक. तेलवाहू जहाज
STR_VEHICLE_NAME_SHIP_MPS_PASSENGER_FERRY :एम पी एस् प्रवासी नौका
@ -1690,6 +1990,8 @@ STR_VEHICLE_NAME_SHIP_YATE_CARGO_SHIP :येट म
STR_VEHICLE_NAME_SHIP_BAKEWELL_CARGO_SHIP :बॅकवेल मालवाहू जहाज
STR_VEHICLE_NAME_SHIP_MIGHTYMOVER_CARGO_SHIP :मायटीमूव्हर मालवाहू जहाज
STR_VEHICLE_NAME_SHIP_POWERNAUT_CARGO_SHIP :पॉवरनॉट मालवाहू जहाज
###length 41
STR_VEHICLE_NAME_AIRCRAFT_SAMPSON_U52 :सॅम्पसन यु ५२
STR_VEHICLE_NAME_AIRCRAFT_COLEMAN_COUNT :कोलमेन कौंट
STR_VEHICLE_NAME_AIRCRAFT_FFP_DART :एफ एफ पी डार्ट
@ -1742,11 +2044,19 @@ STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRI
STR_FORMAT_GROUP_NAME :गट्टा {COMMA}
STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING}
###length 2
###length 2
###length 6
STR_FORMAT_DEPOT_NAME_TRAIN :{TOWN} रेल्वे डेपो
STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :{TOWN} रेल्वे डेपो #{COMMA}
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :{TOWN}रस्त्यावरील वाहनांचा डेपो
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :{TOWN}रस्त्यावरील वाहनांचा डेपो #{COMMA}
###next-name-looks-similar
STR_FORMAT_DEPOT_NAME_AIRCRAFT :{STATION} हॅंगर
# _SERIAL version of AIRACRAFT doesn't exist
STR_UNKNOWN_STATION :अज्ञात स्थानक
STR_DEFAULT_SIGN_NAME :चिन्ह

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -178,12 +178,24 @@ void ZoomInOrOutToCursorWindow(bool in, Window *w)
}
}
void FixTitleGameZoom()
void FixTitleGameZoom(int zoom_adjust)
{
if (_game_mode != GM_MENU) return;
Viewport *vp = FindWindowByClass(WC_MAIN_WINDOW)->viewport;
/* Adjust the zoom in/out.
* Can't simply add, since operator+ is not defined on the ZoomLevel type. */
vp->zoom = _gui_zoom;
while (zoom_adjust < 0 && vp->zoom != ZOOM_LVL_MIN) {
vp->zoom--;
zoom_adjust++;
}
while (zoom_adjust > 0 && vp->zoom != ZOOM_LVL_MAX) {
vp->zoom++;
zoom_adjust--;
}
vp->virtual_width = ScaleByZoom(vp->width, vp->zoom);
vp->virtual_height = ScaleByZoom(vp->height, vp->zoom);
UpdateViewportSizeZoom(vp);

@ -4234,8 +4234,8 @@ static ChangeInfoResult ObjectChangeInfo(uint id, int numinfo, int prop, const G
case 0x0C: // Size
spec->size = buf->ReadByte();
if ((spec->size & 0xF0) == 0 || (spec->size & 0x0F) == 0) {
grfmsg(1, "ObjectChangeInfo: Invalid object size requested (%u) for object id %u. Ignoring.", spec->size, id + i);
if (GB(spec->size, 0, 4) == 0 || GB(spec->size, 4, 4) == 0) {
grfmsg(0, "ObjectChangeInfo: Invalid object size requested (0x%x) for object id %u. Ignoring.", spec->size, id + i);
spec->size = 0x11; // 1x1
}
break;

@ -21,6 +21,11 @@
* \li AINewGRF
* \li AINewGRFList
* \li AIGroup::GetNumVehicles
* \li AIMarine::BT_LOCK
* \li AIMarine::BT_CANAL
* \li AITile::IsSeaTile
* \li AITile::IsRiverTile
* \li AITile::BT_CLEAR_WATER
*
* \b 1.11.0
*

@ -20,6 +20,11 @@
* API additions:
* \li GSNewGRF
* \li GSNewGRFList
* \li GSMarine::BT_LOCK
* \li GSMarine::BT_CANAL
* \li GSTile::IsSeaTile
* \li GSTile::IsRiverTile
* \li GSTile::BT_CLEAR_WATER
*
* \b 1.11.0
*

@ -174,6 +174,8 @@
case BT_DOCK: return ::GetPrice(PR_BUILD_STATION_DOCK, 1, nullptr);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_SHIP, 1, nullptr);
case BT_BUOY: return ::GetPrice(PR_BUILD_WAYPOINT_BUOY, 1, nullptr);
case BT_LOCK: return ::GetPrice(PR_BUILD_LOCK, 1, nullptr);
case BT_CANAL: return ::GetPrice(PR_BUILD_CANAL, 1, nullptr);
default: return -1;
}
}

@ -36,6 +36,8 @@ public:
BT_DOCK, ///< Build a dock
BT_DEPOT, ///< Build a ship depot
BT_BUOY, ///< Build a buoy
BT_LOCK, ///< Build a lock
BT_CANAL, ///< Build a canal
};
/**

@ -58,6 +58,20 @@
return true;
}
/* static */ bool ScriptTile::IsSeaTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::IsSea(tile);
}
/* static */ bool ScriptTile::IsRiverTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::IsRiver(tile);
}
/* static */ bool ScriptTile::IsWaterTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
@ -320,6 +334,7 @@
case BT_CLEAR_ROCKY: return ::GetPrice(PR_CLEAR_ROCKS, 1, nullptr);
case BT_CLEAR_FIELDS: return ::GetPrice(PR_CLEAR_FIELDS, 1, nullptr);
case BT_CLEAR_HOUSE: return ::GetPrice(PR_CLEAR_HOUSE, 1, nullptr);
case BT_CLEAR_WATER: return ::GetPrice(PR_CLEAR_WATER, 1, nullptr);
default: return -1;
}
}

@ -119,6 +119,7 @@ public:
BT_CLEAR_ROCKY, ///< Clear a tile with rocks
BT_CLEAR_FIELDS, ///< Clear a tile with farm fields
BT_CLEAR_HOUSE, ///< Clear a tile with a house
BT_CLEAR_WATER, ///< Clear a tile with either river or sea
};
/**
@ -158,11 +159,28 @@ public:
*/
static bool IsBuildableRectangle(TileIndex tile, uint width, uint height);
/**
* Checks whether the given tile is actually a sea tile.
* @param tile The tile to check on.
* @pre ScriptMap::IsValidTile(tile).
* @return True if and only if the tile is a sea tile.
*/
static bool IsSeaTile(TileIndex tile);
/**
* Checks whether the given tile is actually a river tile.
* @param tile The tile to check on.
* @pre ScriptMap::IsValidTile(tile).
* @return True if and only if the tile is a river tile.
*/
static bool IsRiverTile(TileIndex tile);
/**
* Checks whether the given tile is actually a water tile.
* @param tile The tile to check on.
* @pre ScriptMap::IsValidTile(tile).
* @return True if and only if the tile is a water tile.
* @note Returns false when a buoy is on the tile.
*/
static bool IsWaterTile(TileIndex tile);

@ -926,13 +926,6 @@ static void StationSpreadChanged(int32 new_value)
InvalidateWindowData(WC_BUILD_STATION, 0);
}
static void CloseSignalGUI(int32 new_value)
{
if (new_value == 0) {
DeleteWindowByClass(WC_BUILD_SIGNAL);
}
}
static void UpdateConsists(int32 new_value)
{
for (Train *t : Train::Iterate()) {

@ -117,6 +117,20 @@ static IXAudio2MasteringVoice* _mastering_voice = nullptr;
static ComPtr<IXAudio2> _xaudio2;
static StreamingVoiceContext* _voice_context = nullptr;
/** Create XAudio2 context with SEH exception checking. */
static HRESULT CreateXAudio(API_XAudio2Create xAudio2Create)
{
HRESULT hr;
__try {
UINT32 flags = 0;
hr = xAudio2Create(_xaudio2.GetAddressOf(), flags, XAUDIO2_DEFAULT_PROCESSOR);
} __except (EXCEPTION_EXECUTE_HANDLER) {
hr = GetExceptionCode();
}
return hr;
}
/**
* Initialises the XAudio2 driver.
*
@ -156,8 +170,7 @@ const char *SoundDriver_XAudio2::Start(const StringList &parm)
}
// Create the XAudio engine
UINT32 flags = 0;
hr = xAudio2Create(_xaudio2.GetAddressOf(), flags, XAUDIO2_DEFAULT_PROCESSOR);
hr = CreateXAudio(xAudio2Create);
if (FAILED(hr))
{

@ -449,9 +449,10 @@ void RemoveAllTrees()
* @param treetype Type of trees to place. Must be a valid tree type for the climate.
* @param radius Maximum distance (on each axis) from tile to place trees.
* @param count Maximum number of trees to place.
* @param set_zone Whether to create a rainforest zone when placing rainforest trees.
* @return Number of trees actually placed.
*/
uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, uint count)
uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, uint count, bool set_zone)
{
assert(treetype < TREE_TOYLAND + TREE_COUNT_TOYLAND);
const bool allow_desert = treetype == TREE_CACTUS;
@ -482,6 +483,12 @@ uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, ui
}
}
if (set_zone && IsInsideMM(treetype, TREE_RAINFOREST, TREE_CACTUS)) {
for (TileIndex t : TileArea(tile).Expand(radius)) {
if (GetTileType(t) != MP_VOID && DistanceSquare(tile, t) < radius * radius) SetTropicZone(t, TROPICZONE_RAINFOREST);
}
}
return planted;
}

@ -31,7 +31,7 @@
void PlaceTreesRandomly();
void RemoveAllTrees();
uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, uint count);
uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, uint count, bool set_zone);
/** Tree Sprites with their palettes */
const PalSpriteID tree_sprites[] = {
@ -135,7 +135,8 @@ class BuildTreesWindow : public Window
}
const uint radius = this->mode == PM_FOREST_LG ? 12 : 5;
const uint count = this->mode == PM_FOREST_LG ? 12 : 5;
PlaceTreeGroupAroundTile(tile, treetype, radius, count);
// Create tropic zones only when the tree type is selected by the user and not picked randomly.
PlaceTreeGroupAroundTile(tile, treetype, radius, count, this->tree_to_plant != TREE_INVALID);
}
public:

@ -1053,11 +1053,20 @@ void Vehicle::HandlePathfindingResult(bool path_found)
if (this->type == VEH_SHIP) {
Ship::From(this)->lost_count = 0;
}
SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, WID_VV_START_STOP);
DirtyVehicleListWindowForVehicle(this);
/* Delete the news item. */
DeleteVehicleNews(this->index, STR_NEWS_VEHICLE_IS_LOST);
return;
}
if (!HasBit(this->vehicle_flags, VF_PATHFINDER_LOST)) {
SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, WID_VV_START_STOP);
DirtyVehicleListWindowForVehicle(this);
}
if (this->type == VEH_SHIP) {
SetBit(this->vehicle_flags, VF_PATHFINDER_LOST);
if (Ship::From(this)->lost_count == 255) return;

@ -1976,6 +1976,10 @@ void BaseVehicleListWindow::DrawVehicleListItems(VehicleID selected_vehicle, int
case GB_NONE: {
const Vehicle *v = vehgroup.GetSingleVehicle();
if (HasBit(v->vehicle_flags, VF_PATHFINDER_LOST)) {
DrawSprite(SPR_WARNING_SIGN, PAL_NONE, vehicle_button_x, y + FONT_HEIGHT_NORMAL + 3 + GetSpriteSize(SPR_PROFIT_LOT).height);
}
DrawVehicleImage(v, image_left, image_right, y + FONT_HEIGHT_SMALL - 1, selected_vehicle, EIT_IN_LIST, 0);
if (!v->name.empty()) {
@ -3553,7 +3557,7 @@ public:
const Vehicle *v = Vehicle::Get(this->window_number);
switch (widget) {
case WID_VV_START_STOP:
size->height = std::max(size->height, std::max(GetSpriteSize(SPR_FLAG_VEH_STOPPED).height, GetSpriteSize(SPR_FLAG_VEH_RUNNING).height) + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM);
size->height = std::max({size->height, GetSpriteSize(SPR_WARNING_SIGN).height, GetSpriteSize(SPR_FLAG_VEH_STOPPED).height, GetSpriteSize(SPR_FLAG_VEH_RUNNING).height}) + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM;
break;
case WID_VV_FORCE_PROCEED:
@ -3688,7 +3692,7 @@ public:
case OT_GOTO_STATION: {
SetDParam(0, v->current_order.GetDestination());
SetDParam(1, v->GetDisplaySpeed());
str = STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL;
str = HasBit(v->vehicle_flags, VF_PATHFINDER_LOST) ? STR_VEHICLE_STATUS_CANNOT_REACH_STATION_VEL : STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL;
break;
}
@ -3707,9 +3711,9 @@ public:
} else if (v->current_order.GetDepotActionType() & ODATFB_SELL) {
str = STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SELL_VEL;
} else if (v->current_order.GetDepotActionType() & ODATFB_HALT) {
str = STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL;
str = HasBit(v->vehicle_flags, VF_PATHFINDER_LOST) ? STR_VEHICLE_STATUS_CANNOT_REACH_DEPOT_VEL : STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL;
} else {
str = STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL;
str = HasBit(v->vehicle_flags, VF_PATHFINDER_LOST) ? STR_VEHICLE_STATUS_CANNOT_REACH_DEPOT_SERVICE_VEL : STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL;
}
break;
}
@ -3727,7 +3731,7 @@ public:
case OT_GOTO_WAYPOINT: {
assert(v->type == VEH_TRAIN || v->type == VEH_SHIP);
SetDParam(0, v->current_order.GetDestination());
str = STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL;
str = HasBit(v->vehicle_flags, VF_PATHFINDER_LOST) ? STR_VEHICLE_STATUS_CANNOT_REACH_WAYPOINT_VEL : STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL;
SetDParam(1, v->GetDisplaySpeed());
break;
}
@ -3756,12 +3760,12 @@ public:
/* Draw the flag plus orders. */
bool rtl = (_current_text_dir == TD_RTL);
uint text_offset = std::max(GetSpriteSize(SPR_FLAG_VEH_STOPPED).width, GetSpriteSize(SPR_FLAG_VEH_RUNNING).width) + WD_IMGBTN_LEFT + WD_IMGBTN_RIGHT;
uint text_offset = std::max({GetSpriteSize(SPR_WARNING_SIGN).width, GetSpriteSize(SPR_FLAG_VEH_STOPPED).width, GetSpriteSize(SPR_FLAG_VEH_RUNNING).width}) + WD_IMGBTN_LEFT + WD_IMGBTN_RIGHT;
int height = r.bottom - r.top;
int text_left = r.left + (rtl ? (uint)WD_FRAMERECT_LEFT : text_offset);
int text_right = r.right - (rtl ? text_offset : (uint)WD_FRAMERECT_RIGHT);
int text_top = r.top + WD_FRAMERECT_TOP + (height - WD_FRAMERECT_TOP - WD_FRAMERECT_BOTTOM - FONT_HEIGHT_NORMAL) / 2;
int image = ((v->vehstatus & VS_STOPPED) != 0) ? SPR_FLAG_VEH_STOPPED : SPR_FLAG_VEH_RUNNING;
int image = ((v->vehstatus & VS_STOPPED) != 0) ? SPR_FLAG_VEH_STOPPED : (HasBit(v->vehicle_flags, VF_PATHFINDER_LOST)) ? SPR_WARNING_SIGN : SPR_FLAG_VEH_RUNNING;
int image_left = (rtl ? text_right + 1 : r.left) + WD_IMGBTN_LEFT;
int image_top = r.top + WD_IMGBTN_TOP + (height - WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM - GetSpriteSize(image).height) / 2;
int lowered = this->IsWidgetLowered(WID_VV_START_STOP) ? 1 : 0;

@ -49,7 +49,7 @@ void CheckMarkDirtyFocusedRoutePaths(const Vehicle *veh);
bool DoZoomInOutWindow(ZoomStateChange how, Window *w);
void ZoomInOrOutToCursorWindow(bool in, Window * w);
Point GetTileZoomCenterWindow(bool in, Window * w);
void FixTitleGameZoom();
void FixTitleGameZoom(int zoom_adjust = 0);
void HandleZoomMessage(Window *w, const Viewport *vp, byte widget_zoom_in, byte widget_zoom_out);
/**

Loading…
Cancel
Save