From b5ba189544af88f244fe969e6229e9f439b603e4 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 24 Jul 2018 02:45:59 +0100 Subject: [PATCH 1/3] Add rail custom bridge heads setting to settings GUI --- src/settings_gui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 0fcab66738..2c92f5737d 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1650,6 +1650,7 @@ static SettingsContainer &GetSettingsTree() limitations->Add(new SettingEntry("construction.road_stop_on_competitor_road")); limitations->Add(new SettingEntry("vehicle.disable_elrails")); limitations->Add(new SettingEntry("construction.road_custom_bridge_heads")); + limitations->Add(new SettingEntry("construction.rail_custom_bridge_heads")); } SettingsPage *disasters = main->Add(new SettingsPage(STR_CONFIG_SETTING_ACCIDENTS)); From a87720ca0624727e82088ad1118878a5016c70d1 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 5 Aug 2018 10:45:21 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Fix=20train=20bounding=20box/delta=20not=20?= =?UTF-8?q?being=20updated=20when=20entering=20bridge=20from=2045=C2=B0=20?= =?UTF-8?q?angle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/train_cmd.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 1af52c7aab..457963e0cf 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3389,6 +3389,7 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse) v->x_pos = gp.x; v->y_pos = gp.y; v->UpdatePosition(); + v->UpdateDeltaXY(v->direction); if ((v->vehstatus & VS_HIDDEN) == 0) v->Vehicle::UpdateViewport(true); continue; } From 1b9775479d0306b48b76761a534c33ed0c6c3d22 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 5 Aug 2018 10:47:13 +0100 Subject: [PATCH 3/3] Fix incorrect vehicle alignment when entering bridge from W,N directions --- src/train_cmd.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 457963e0cf..5bdd9efeca 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3149,6 +3149,10 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse) goto invalid_rail; } if (old_direction != v->direction) notify_direction_changed(old_direction, v->direction); + DiagDirection dir = GetTunnelBridgeDirection(gp.old_tile); + const byte *b = _initial_tile_subcoord[AxisToTrack(DiagDirToAxis(dir))][dir]; + gp.x = (gp.x & ~0xF) | b[0]; + gp.y = (gp.y & ~0xF) | b[1]; } if (!(v->track & TRACK_BIT_WORMHOLE)) { /* Not inside tunnel */