summaryrefslogtreecommitdiff
path: root/openttd-svn/everything.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openttd-svn/everything.patch')
-rw-r--r--openttd-svn/everything.patch148
1 files changed, 74 insertions, 74 deletions
diff --git a/openttd-svn/everything.patch b/openttd-svn/everything.patch
index fc6671331..394bc581d 100644
--- a/openttd-svn/everything.patch
+++ b/openttd-svn/everything.patch
@@ -11,10 +11,10 @@ index cb1e9d1..e6d4893 100644
!bin/baseset/orig_*.obg
!bin/baseset/orig_*.obs
diff --git a/config.lib b/config.lib
-index 021f95c..767a42e 100644
+index a144b9e..9eda6de 100644
--- a/config.lib
+++ b/config.lib
-@@ -1746,7 +1746,8 @@ make_cflags_and_ldflags() {
+@@ -1753,7 +1753,8 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS `$freetype_config --cflags | tr '\n\r' ' '`"
if [ "$enable_static" != "0" ]; then
@@ -2681,7 +2681,7 @@ index 74c6974..c2e4d9b 100644
#endif /* BRIDGE_MAP_H */
diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp
-index 2e9589a..a28d841 100644
+index f9eb88d..a32806c 100644
--- a/src/clear_cmd.cpp
+++ b/src/clear_cmd.cpp
@@ -126,6 +126,7 @@ static void DrawTile_Clear(TileInfo *ti)
@@ -5197,7 +5197,7 @@ index df91424..cb6c989 100644
*
* @note n must be a power of 2
diff --git a/src/crashlog.cpp b/src/crashlog.cpp
-index 4000cfb..a8f099f 100644
+index 53a85e4..c441321 100644
--- a/src/crashlog.cpp
+++ b/src/crashlog.cpp
@@ -380,7 +380,7 @@ bool CrashLog::WriteSavegame(char *filename, const char *filename_last) const
@@ -5401,7 +5401,7 @@ index 79eaa89..3d37071 100644
/* Determine the watery part of the dock. */
DiagDirection dir = GetInclinedSlopeDirection(GetTileSlope(tile));
diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp
-index ad64ae8..0bc0d70 100644
+index 359709e..896ecd9 100644
--- a/src/genworld_gui.cpp
+++ b/src/genworld_gui.cpp
@@ -20,6 +20,7 @@
@@ -5412,7 +5412,7 @@ index ad64ae8..0bc0d70 100644
#include "widgets/dropdown_type.h"
#include "widgets/dropdown_func.h"
#include "querystring_gui.h"
-@@ -281,12 +282,37 @@ static void LandscapeGenerationCallback(Window *w, bool confirmed)
+@@ -282,12 +283,37 @@ static void LandscapeGenerationCallback(Window *w, bool confirmed)
if (confirmed) StartGeneratingLandscape((GenerateLandscapeWindowMode)w->window_number);
}
@@ -5452,7 +5452,7 @@ index ad64ae8..0bc0d70 100644
item->SetParam(0, 1 << i);
*list->Append() = item;
}
-@@ -314,6 +340,14 @@ struct GenerateLandscapeWindow : public Window {
+@@ -315,6 +341,14 @@ struct GenerateLandscapeWindow : public Window {
char name[64];
GenerateLandscapeWindowMode mode;
@@ -5467,7 +5467,7 @@ index ad64ae8..0bc0d70 100644
GenerateLandscapeWindow(WindowDesc *desc, WindowNumber number = 0) : Window(desc)
{
this->InitNested(number);
-@@ -322,6 +356,8 @@ struct GenerateLandscapeWindow : public Window {
+@@ -323,6 +357,8 @@ struct GenerateLandscapeWindow : public Window {
this->mode = (GenerateLandscapeWindowMode)this->window_number;
@@ -5476,7 +5476,7 @@ index ad64ae8..0bc0d70 100644
/* Disable town, industry and trees in SE */
this->SetWidgetDisabledState(WID_GL_TOWN_PULLDOWN, _game_mode == GM_EDITOR);
this->SetWidgetDisabledState(WID_GL_INDUSTRY_PULLDOWN, _game_mode == GM_EDITOR);
-@@ -538,11 +574,11 @@ struct GenerateLandscapeWindow : public Window {
+@@ -539,11 +575,11 @@ struct GenerateLandscapeWindow : public Window {
break;
case WID_GL_MAPSIZE_X_PULLDOWN: // Mapsize X
@@ -5490,7 +5490,7 @@ index ad64ae8..0bc0d70 100644
break;
case WID_GL_TOWN_PULLDOWN: // Number of towns
-@@ -554,6 +590,7 @@ struct GenerateLandscapeWindow : public Window {
+@@ -555,6 +591,7 @@ struct GenerateLandscapeWindow : public Window {
break;
case WID_GL_GENERATE_BUTTON: { // Generate
@@ -5498,7 +5498,7 @@ index ad64ae8..0bc0d70 100644
/* Get rotated map size. */
uint map_x;
uint map_y;
-@@ -716,8 +753,14 @@ struct GenerateLandscapeWindow : public Window {
+@@ -717,8 +754,14 @@ struct GenerateLandscapeWindow : public Window {
virtual void OnDropdownSelect(int widget, int index)
{
switch (widget) {
@@ -5515,7 +5515,7 @@ index ad64ae8..0bc0d70 100644
case WID_GL_TREE_PULLDOWN: _settings_newgame.game_creation.tree_placer = index; break;
case WID_GL_RIVER_PULLDOWN: _settings_newgame.game_creation.amount_of_rivers = index; break;
case WID_GL_SMOOTHNESS_PULLDOWN: _settings_newgame.game_creation.tgen_smoothness = index; break;
-@@ -881,10 +924,19 @@ struct CreateScenarioWindow : public Window
+@@ -882,10 +925,19 @@ struct CreateScenarioWindow : public Window
{
uint widget_id;
@@ -5535,7 +5535,7 @@ index ad64ae8..0bc0d70 100644
}
virtual void SetStringParameters(int widget) const
-@@ -908,6 +960,8 @@ struct CreateScenarioWindow : public Window
+@@ -909,6 +961,8 @@ struct CreateScenarioWindow : public Window
}
}
@@ -5544,7 +5544,7 @@ index ad64ae8..0bc0d70 100644
virtual void OnPaint()
{
this->SetWidgetDisabledState(WID_CS_START_DATE_DOWN, _settings_newgame.game_creation.starting_year <= MIN_YEAR);
-@@ -961,18 +1015,20 @@ struct CreateScenarioWindow : public Window
+@@ -962,18 +1016,20 @@ struct CreateScenarioWindow : public Window
break;
case WID_CS_MAPSIZE_X_PULLDOWN: // Mapsize X
@@ -5567,7 +5567,7 @@ index ad64ae8..0bc0d70 100644
ShowGenerateLandscape();
break;
-@@ -1031,6 +1087,8 @@ struct CreateScenarioWindow : public Window
+@@ -1032,6 +1088,8 @@ struct CreateScenarioWindow : public Window
case WID_CS_MAPSIZE_X_PULLDOWN: _settings_newgame.game_creation.map_x = index; break;
case WID_CS_MAPSIZE_Y_PULLDOWN: _settings_newgame.game_creation.map_y = index; break;
}
@@ -5591,7 +5591,7 @@ index 10bc0af..d170310 100644
InitializeUnicodeGlyphMap();
diff --git a/src/group_gui.cpp b/src/group_gui.cpp
-index 81fb120..c7ddde2 100644
+index 361ab53..cc72723 100644
--- a/src/group_gui.cpp
+++ b/src/group_gui.cpp
@@ -74,6 +74,7 @@ static const NWidgetPart _nested_group_widgets[] = {
@@ -5853,10 +5853,10 @@ index 9d2e3de..e0193f0 100644
#endif /* INDUSTRY_MAP_H */
diff --git a/src/landscape.cpp b/src/landscape.cpp
-index d1c73fd..560be99 100644
+index 185e84a..e574c07 100644
--- a/src/landscape.cpp
+++ b/src/landscape.cpp
-@@ -723,12 +723,12 @@ void RunTileLoop()
+@@ -724,12 +724,12 @@ void RunTileLoop()
* shift register (LFSR). This allows a deterministic pseudorandom ordering, but
* still with minimal state and fast iteration. */
@@ -5942,7 +5942,7 @@ index d5b64be..702de7b 100644
STR_VIEWPORT_SIGN_SMALL_BLACK :{TINY_FONT}{BLACK}{SIGN}
STR_VIEWPORT_SIGN_SMALL_WHITE :{TINY_FONT}{WHITE}{SIGN}
diff --git a/src/lang/danish.txt b/src/lang/danish.txt
-index 175092f..010df52 100644
+index 7bbeab5..3ab2dd7 100644
--- a/src/lang/danish.txt
+++ b/src/lang/danish.txt
@@ -4879,10 +4879,18 @@ STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STR
@@ -6488,10 +6488,10 @@ index 79cea5e..db74ac4 100644
STR_VIEWPORT_SIGN_SMALL_BLACK :{TINY_FONT}{BLACK}{SIGN}
STR_VIEWPORT_SIGN_SMALL_WHITE :{TINY_FONT}{WHITE}{SIGN}
diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt
-index ec2a83c..91e7cfd 100644
+index be21b6c..54129b0 100644
--- a/src/lang/portuguese.txt
+++ b/src/lang/portuguese.txt
-@@ -4856,10 +4856,18 @@ STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STR
+@@ -4880,10 +4880,18 @@ STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STR
STR_SAVEGAME_NAME_SPECTATOR :Espectador, {1:STRING}
# Viewport strings
@@ -6511,7 +6511,7 @@ index ec2a83c..91e7cfd 100644
STR_VIEWPORT_SIGN_SMALL_BLACK :{TINY_FONT}{BLACK}{SIGN}
STR_VIEWPORT_SIGN_SMALL_WHITE :{TINY_FONT}{WHITE}{SIGN}
diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt
-index 89be4e4..a538a0d 100644
+index 4c0a290..88ccb10 100644
--- a/src/lang/spanish.txt
+++ b/src/lang/spanish.txt
@@ -4880,10 +4880,18 @@ STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STR
@@ -7354,7 +7354,7 @@ index 620885e..ee419d1 100644
/**
* Approximation of the length of a straight track, relative to a diagonal
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
-index 9c6e3f3..505e597 100644
+index b751407..df0e616 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -123,15 +123,15 @@ public:
@@ -7555,10 +7555,10 @@ index ffb827c..30b43a5 100644
int AllocateSpecToStation(const StationSpec *statspec, BaseStation *st, bool exec);
diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp
-index b5b9921..0db8cfe 100644
+index f7ba0d9..a2d674e 100644
--- a/src/object_cmd.cpp
+++ b/src/object_cmd.cpp
-@@ -839,4 +839,5 @@ extern const TileTypeProcs _tile_type_object_procs = {
+@@ -847,4 +847,5 @@ extern const TileTypeProcs _tile_type_object_procs = {
NULL, // vehicle_enter_tile_proc
GetFoundation_Object, // get_foundation_proc
TerraformTile_Object, // terraform_tile_proc
@@ -7606,7 +7606,7 @@ index 1aaf984..2258d9a 100644
#endif /* OBJECT_MAP_H */
diff --git a/src/openttd.cpp b/src/openttd.cpp
-index c149ebb..a5da97b 100644
+index 58f011b..a263951 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -57,6 +57,7 @@
@@ -7617,7 +7617,7 @@ index c149ebb..a5da97b 100644
#include "game/game.hpp"
#include "game/game_config.hpp"
#include "town.h"
-@@ -962,6 +963,24 @@ static void MakeNewGameDone()
+@@ -963,6 +964,24 @@ static void MakeNewGameDone()
MarkWholeScreenDirty();
}
@@ -7642,7 +7642,7 @@ index c149ebb..a5da97b 100644
static void MakeNewGame(bool from_heightmap, bool reset_settings)
{
_game_mode = GM_NORMAL;
-@@ -969,6 +988,7 @@ static void MakeNewGame(bool from_heightmap, bool reset_settings)
+@@ -970,6 +989,7 @@ static void MakeNewGame(bool from_heightmap, bool reset_settings)
ResetGRFConfig(true);
GenerateWorldSetCallback(&MakeNewGameDone);
@@ -7650,7 +7650,7 @@ index c149ebb..a5da97b 100644
GenerateWorld(from_heightmap ? GWM_HEIGHTMAP : GWM_NEWGAME, 1 << _settings_game.game_creation.map_x, 1 << _settings_game.game_creation.map_y, reset_settings);
}
-@@ -984,6 +1004,7 @@ static void MakeNewEditorWorld()
+@@ -985,6 +1005,7 @@ static void MakeNewEditorWorld()
ResetGRFConfig(true);
GenerateWorldSetCallback(&MakeNewEditorWorldDone);
@@ -7658,7 +7658,7 @@ index c149ebb..a5da97b 100644
GenerateWorld(GWM_EMPTY, 1 << _settings_game.game_creation.map_x, 1 << _settings_game.game_creation.map_y);
}
-@@ -1071,8 +1092,13 @@ void SwitchToMode(SwitchMode new_mode)
+@@ -1073,8 +1094,13 @@ void SwitchToMode(SwitchMode new_mode)
}
}
#endif /* ENABLE_NETWORK */
@@ -7674,7 +7674,7 @@ index c149ebb..a5da97b 100644
switch (new_mode) {
case SM_EDITOR: // Switch to scenario editor
-@@ -1129,6 +1155,7 @@ void SwitchToMode(SwitchMode new_mode)
+@@ -1131,6 +1157,7 @@ void SwitchToMode(SwitchMode new_mode)
case SM_LOAD_HEIGHTMAP: // Load heightmap from scenario editor
SetLocalCompany(OWNER_NONE);
@@ -7682,7 +7682,7 @@ index c149ebb..a5da97b 100644
GenerateWorld(GWM_HEIGHTMAP, 1 << _settings_game.game_creation.map_x, 1 << _settings_game.game_creation.map_y);
MarkWholeScreenDirty();
break;
-@@ -1171,6 +1198,7 @@ void SwitchToMode(SwitchMode new_mode)
+@@ -1173,6 +1200,7 @@ void SwitchToMode(SwitchMode new_mode)
case SM_GENRANDLAND: // Generate random land within scenario editor
SetLocalCompany(OWNER_NONE);
@@ -7970,7 +7970,7 @@ index 79598ec..d60cb87 100644
/**
* Finds out if a company has a certain railtype available
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp
-index 2010f9b..ad0d98f 100644
+index eda0248..db0deb4 100644
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -11,6 +11,7 @@
@@ -8403,7 +8403,7 @@ index 2010f9b..ad0d98f 100644
+ DrawOverlay(ti, MP_RAILWAY);
+
- if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
+ if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti);
if (HasSignals(ti->tile)) DrawSignals(ti->tile, rails, rti);
@@ -2469,6 +2583,8 @@ static void DrawTile_Track(TileInfo *ti)
@@ -8412,7 +8412,7 @@ index 2010f9b..ad0d98f 100644
+ DrawOverlay(ti, MP_RAILWAY);
+
- if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
+ if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti);
DrawRailTileSeq(ti, dts, TO_BUILDINGS, relocation, 0, _drawtile_track_palette);
@@ -3026,6 +3142,205 @@ static CommandCost TerraformTile_Track(TileIndex tile, DoCommandFlag flags, int
@@ -9199,7 +9199,7 @@ index 899a565..1d9f572 100644
/**
* The text version of OpenTTD's build date.
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
-index aa445eb..4923338 100644
+index ddd8bd0..2734438 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -11,6 +11,7 @@
@@ -10084,10 +10084,10 @@ index 6937302..d1bfaec 100644
#endif /* ROAD_MAP_H */
diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp
-index 35c671d..d246a3b 100644
+index 9b541a7..a35f1fb 100644
--- a/src/roadveh_cmd.cpp
+++ b/src/roadveh_cmd.cpp
-@@ -1160,7 +1160,7 @@ bool IndividualRoadVehicleController(RoadVehicle *v, const RoadVehicle *prev)
+@@ -1167,7 +1167,7 @@ bool IndividualRoadVehicleController(RoadVehicle *v, const RoadVehicle *prev)
v->x_pos = gp.x;
v->y_pos = gp.y;
v->UpdatePosition();
@@ -10097,7 +10097,7 @@ index 35c671d..d246a3b 100644
}
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp
-index 9690481..58009bc 100644
+index de3f7cc..4841892 100644
--- a/src/saveload/afterload.cpp
+++ b/src/saveload/afterload.cpp
@@ -125,7 +125,7 @@ void SetWaterClassDependingOnSurroundings(TileIndex t, bool include_invalid_wate
@@ -10948,7 +10948,7 @@ index 86a185c..3a37173 100644
}
}
diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp
-index 4afbe60..dff9bc7 100644
+index 0c57166..3004062 100644
--- a/src/saveload/oldloader_sl.cpp
+++ b/src/saveload/oldloader_sl.cpp
@@ -47,55 +47,55 @@ void FixOldMapArray()
@@ -11466,10 +11466,10 @@ index 41366a7..bfc5b79 100644
uint32 terraform_per_64k_frames; ///< how many tile heights may, over a long period, be terraformed per 65536 frames?
uint16 terraform_frame_burst; ///< how many tile heights may, over a short period, be terraformed?
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp
-index a24fb35..f3127d6 100644
+index 2a760e2..9181535 100644
--- a/src/ship_cmd.cpp
+++ b/src/ship_cmd.cpp
-@@ -628,7 +628,7 @@ static void ShipController(Ship *v)
+@@ -636,7 +636,7 @@ static void ShipController(Ship *v)
v->x_pos = gp.x;
v->y_pos = gp.y;
v->UpdatePosition();
@@ -11850,7 +11850,7 @@ index af4d206..f017f27 100644
/* virtual */ inline bool TileBelongsToRailStation(TileIndex tile) const
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
-index eb90c29..2d62246 100644
+index 5883afc..f556d2e 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -13,6 +13,9 @@
@@ -12417,7 +12417,7 @@ index eb90c29..2d62246 100644
+ DrawOverlay(ti, MP_STATION);
+
- if (HasStationRail(ti->tile) && HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti);
+ if (HasStationRail(ti->tile) && HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti);
if (HasBit(roadtypes, ROADTYPE_TRAM)) {
@@ -3637,6 +3821,615 @@ void StationMonthlyLoop()
@@ -16172,10 +16172,10 @@ index 3d64248..1157697 100644
/* lower bits (used with HT_LINE and HT_RAIL):
* (see ASCII art in table/autorail.h for a visual interpretation) */
diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp
-index 45d751d..91553ae 100644
+index f253be8..b33f0c5 100644
--- a/src/toolbar_gui.cpp
+++ b/src/toolbar_gui.cpp
-@@ -964,7 +964,7 @@ static CallBackFunction MenuClickBuildAir(int index)
+@@ -967,7 +967,7 @@ static CallBackFunction MenuClickBuildAir(int index)
static CallBackFunction ToolbarForestClick(Window *w)
{
@@ -16184,7 +16184,7 @@ index 45d751d..91553ae 100644
return CBF_NONE;
}
-@@ -978,8 +978,9 @@ static CallBackFunction MenuClickForest(int index)
+@@ -981,8 +981,9 @@ static CallBackFunction MenuClickForest(int index)
{
switch (index) {
case 0: ShowTerraformToolbar(); break;
@@ -16745,10 +16745,10 @@ index 6896792..b7f2d21 100644
+
#endif /* TRACK_FUNC_H */
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
-index dca456d..8cdd2a4 100644
+index 5502532..ace2711 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
-@@ -1863,6 +1863,17 @@ void ReverseTrainDirection(Train *v)
+@@ -1872,6 +1872,17 @@ void ReverseTrainDirection(Train *v)
return;
}
@@ -16766,7 +16766,7 @@ index dca456d..8cdd2a4 100644
/* TrainExitDir does not always produce the desired dir for depots and
* tunnels/bridges that is needed for UpdateSignalsOnSegment. */
DiagDirection dir = TrainExitDir(v->direction, v->track);
-@@ -2199,6 +2210,42 @@ static bool CheckTrainStayInDepot(Train *v)
+@@ -2208,6 +2219,42 @@ static bool CheckTrainStayInDepot(Train *v)
return false;
}
@@ -16809,7 +16809,7 @@ index dca456d..8cdd2a4 100644
/**
* Clear the reservation of \a tile that was just left by a wagon on \a track_dir.
* @param v %Train owning the reservation.
-@@ -2214,7 +2261,8 @@ static void ClearPathReservation(const Train *v, TileIndex tile, Trackdir track_
+@@ -2223,7 +2270,8 @@ static void ClearPathReservation(const Train *v, TileIndex tile, Trackdir track_
if (GetTunnelBridgeDirection(tile) == ReverseDiagDir(dir)) {
TileIndex end = GetOtherTunnelBridgeEnd(tile);
@@ -16819,7 +16819,7 @@ index dca456d..8cdd2a4 100644
/* Free the reservation only if no other train is on the tiles. */
SetTunnelBridgeReservation(tile, false);
SetTunnelBridgeReservation(end, false);
-@@ -2228,6 +2276,7 @@ static void ClearPathReservation(const Train *v, TileIndex tile, Trackdir track_
+@@ -2237,6 +2285,7 @@ static void ClearPathReservation(const Train *v, TileIndex tile, Trackdir track_
}
}
}
@@ -16827,7 +16827,7 @@ index dca456d..8cdd2a4 100644
}
} else if (IsRailStationTile(tile)) {
TileIndex new_tile = TileAddByDiagDir(tile, dir);
-@@ -3095,6 +3144,99 @@ static Vehicle *CheckTrainAtSignal(Vehicle *v, void *data)
+@@ -3104,6 +3153,99 @@ static Vehicle *CheckTrainAtSignal(Vehicle *v, void *data)
return t;
}
@@ -16927,7 +16927,7 @@ index dca456d..8cdd2a4 100644
/**
* Move a vehicle chain one movement stop forwards.
* @param v First vehicle to move.
-@@ -3280,6 +3422,23 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
+@@ -3289,6 +3431,23 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
goto invalid_rail;
}
@@ -16951,7 +16951,7 @@ index dca456d..8cdd2a4 100644
if (!HasBit(r, VETS_ENTERED_WORMHOLE)) {
Track track = FindFirstTrack(chosen_track);
Trackdir tdir = TrackDirectionToTrackdir(track, chosen_dir);
-@@ -3332,6 +3491,64 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
+@@ -3341,6 +3500,64 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
}
}
} else {
@@ -17016,7 +17016,7 @@ index dca456d..8cdd2a4 100644
if (IsTileType(gp.new_tile, MP_TUNNELBRIDGE) && HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {
/* Perform look-ahead on tunnel exit. */
if (v->IsFrontEngine()) {
-@@ -3347,7 +3564,7 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
+@@ -3356,7 +3573,7 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
v->x_pos = gp.x;
v->y_pos = gp.y;
v->UpdatePosition();
@@ -17025,16 +17025,16 @@ index dca456d..8cdd2a4 100644
continue;
}
}
-@@ -3519,7 +3736,7 @@ static void ChangeTrainDirRandomly(Train *v)
+@@ -3528,7 +3745,7 @@ static void ChangeTrainDirRandomly(Train *v)
do {
/* We don't need to twist around vehicles if they're not visible */
- if (!(v->vehstatus & VS_HIDDEN)) {
+ if (v->IsDrawn()) {
v->direction = ChangeDir(v->direction, delta[GB(Random(), 0, 2)]);
- v->UpdateDeltaXY(v->direction);
- v->cur_image = v->GetImage(v->direction, EIT_ON_MAP);
-@@ -3543,7 +3760,7 @@ static bool HandleCrashedTrain(Train *v)
+ /* Refrain from updating the z position of the vehicle when on
+ * a bridge, because UpdateInclination() will put the vehicle under
+@@ -3552,7 +3769,7 @@ static bool HandleCrashedTrain(Train *v)
{
int state = ++v->crash_anim_pos;
@@ -17043,7 +17043,7 @@ index dca456d..8cdd2a4 100644
CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE);
}
-@@ -3874,7 +4091,7 @@ static bool TrainLocoHandler(Train *v, bool mode)
+@@ -3883,7 +4100,7 @@ static bool TrainLocoHandler(Train *v, bool mode)
}
for (Train *u = v; u != NULL; u = u->Next()) {
@@ -17499,7 +17499,7 @@ index 0a2c229..9e46c3e 100644
extern TileIndex _build_tunnel_endtile;
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
-index 5f2534b..5e5d506 100644
+index 677cf99..5a1a2bc 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -17,6 +17,7 @@
@@ -17894,8 +17894,8 @@ index 5f2534b..5e5d506 100644
}
}
@@ -1494,6 +1703,9 @@ void DrawBridgeMiddle(const TileInfo *ti)
- if (HasCatenaryDrawn(GetRailType(rampsouth))) {
- DrawCatenaryOnBridge(ti);
+ if (HasRailCatenaryDrawn(GetRailType(rampsouth))) {
+ DrawRailCatenaryOnBridge(ti);
}
+ if (HasWormholeSignals(rampsouth)) {
+ IsTunnelBridgeExit(rampsouth) ? DrawBrigeSignalOnMiddelPart(ti, rampnorth, z): DrawBrigeSignalOnMiddelPart(ti, rampsouth, z);
@@ -18333,10 +18333,10 @@ index 0f7f17b..a077f11 100644
+
#endif /* TUNNELBRIDGE_MAP_H */
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
-index da2cfeb..b8cb410 100644
+index b686461..bcd90ca 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
-@@ -221,6 +221,13 @@ uint Vehicle::Crash(bool flooded)
+@@ -262,6 +262,13 @@ uint Vehicle::Crash(bool flooded)
return RandomRange(pass + 1); // Randomise deceased passengers.
}
@@ -18350,7 +18350,7 @@ index da2cfeb..b8cb410 100644
/**
* Displays a "NewGrf Bug" error message for a engine, and pauses the game if not networking.
-@@ -810,7 +817,7 @@ Vehicle::~Vehicle()
+@@ -851,7 +858,7 @@ Vehicle::~Vehicle()
/* sometimes, eg. for disaster vehicles, when company bankrupts, when removing crashed/flooded vehicles,
* it may happen that vehicle chain is deleted when visible */
@@ -18359,7 +18359,7 @@ index da2cfeb..b8cb410 100644
Vehicle *v = this->Next();
this->SetNext(NULL);
-@@ -915,7 +922,7 @@ void CallVehicleTicks()
+@@ -956,7 +963,7 @@ void CallVehicleTicks()
if (front->vehstatus & VS_CRASHED) continue;
/* Do not play any sound when in depot or tunnel */
@@ -18368,7 +18368,7 @@ index da2cfeb..b8cb410 100644
/* Do not play any sound when stopped */
if ((front->vehstatus & VS_STOPPED) && (front->type != VEH_TRAIN || front->cur_speed == 0)) continue;
-@@ -1014,7 +1021,7 @@ static void DoDrawVehicle(const Vehicle *v)
+@@ -1054,7 +1061,7 @@ static void DoDrawVehicle(const Vehicle *v)
if (v->vehstatus & VS_DEFPAL) pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
/* Check whether the vehicle shall be transparent due to the game state */
@@ -18377,7 +18377,7 @@ index da2cfeb..b8cb410 100644
if (v->type == VEH_EFFECT) {
/* Check whether the vehicle shall be transparent/invisible due to GUI settings.
-@@ -1065,7 +1072,7 @@ void ViewportAddVehicles(DrawPixelInfo *dpi)
+@@ -1111,7 +1118,7 @@ void ViewportAddVehicles(DrawPixelInfo *dpi)
const Vehicle *v = _vehicle_viewport_hash[x + y]; // already masked & 0xFFF
while (v != NULL) {
@@ -18386,7 +18386,7 @@ index da2cfeb..b8cb410 100644
l <= v->coord.right &&
t <= v->coord.bottom &&
r >= v->coord.left &&
-@@ -1100,7 +1107,7 @@ Vehicle *CheckClickOnVehicle(const ViewPort *vp, int x, int y)
+@@ -1146,7 +1153,7 @@ Vehicle *CheckClickOnVehicle(const ViewPort *vp, int x, int y)
y = ScaleByZoom(y, vp->zoom) + vp->virtual_top;
FOR_ALL_VEHICLES(v) {
@@ -18396,10 +18396,10 @@ index da2cfeb..b8cb410 100644
y >= v->coord.top && y <= v->coord.bottom) {
diff --git a/src/vehicle_base.h b/src/vehicle_base.h
-index f923c2d..92cb97c 100644
+index f2a0207..3932eec 100644
--- a/src/vehicle_base.h
+++ b/src/vehicle_base.h
-@@ -296,6 +296,12 @@ public:
+@@ -353,6 +353,12 @@ public:
uint GetConsistTotalCapacity() const;
/**
@@ -19824,7 +19824,7 @@ index 187659f..57c964e 100644
#endif /* WIDGETS_VIEWPORT_WIDGET_H */
diff --git a/src/window.cpp b/src/window.cpp
-index bc92416..312b062 100644
+index 24683d0..4dc7602 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -2729,6 +2729,7 @@ enum MouseClick {