summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openttd-git/PKGBUILD4
-rw-r--r--openttd-git/underground.patch71
2 files changed, 51 insertions, 24 deletions
diff --git a/openttd-git/PKGBUILD b/openttd-git/PKGBUILD
index d06fbf191..3cfac4027 100644
--- a/openttd-git/PKGBUILD
+++ b/openttd-git/PKGBUILD
@@ -1,6 +1,6 @@
# Maintainer: Erich Eckner <arch at eckner dot net>
pkgname=openttd-git
-pkgver=28508.bf5898018
+pkgver=28509.0749a291c
_commit=${pkgver#*.}
pkgrel=1
pkgdesc="A FOSS clone of Transport Tycoon Deluxe."
@@ -41,7 +41,7 @@ source=(
sha512sums=('SKIP'
'56c7c0d9787c4d205559ac81c385e429bf1e0df9db6882631a0b66e382689b59fd8064d100da024c75fe3b3f09805bcde9ae196d6aa2e6dafb209392a587f56e'
'f0b861210b57b6c6701ff791cfa67cc0720adef5c6db7d7affa9702c65fd544b34b09692920e186cd41b951562615db9f20f24144b08d40183ffaa7076fa8148'
- 'b0ba481a9263af12d918a51371430401c854f3f36ca9d1e05e1335deb3b3da0a135b1a3bb4e10cdefa2aeae62b643271698567172bec3e964a01e49a16395f9b')
+ '35d7393ae069cdfedfb0f5dc8cbc1ef99f2dd3d84ea18c4f18f99edd8bf7de1c54d2f33b81d180ef76007d474dd9c7e452c2a9a3d8fcb66aee0c90af042cb0a4')
pkgver() {
printf '%s.%s\n' \
diff --git a/openttd-git/underground.patch b/openttd-git/underground.patch
index 006936a30..053ae6285 100644
--- a/openttd-git/underground.patch
+++ b/openttd-git/underground.patch
@@ -766,10 +766,10 @@ index 604a82102bf..e22d1424780 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Clase de estación: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estación: {LTBLUE}{STRING}
diff --git a/src/lang/german.txt b/src/lang/german.txt
-index 8857344f93a..cf51659237d 100644
+index 03d338b19db..c9f4c02195b 100644
--- a/src/lang/german.txt
+++ b/src/lang/german.txt
-@@ -2587,7 +2587,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Straßen
+@@ -2596,7 +2596,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Straßen
STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Gleiseigentümer: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Gehört zur Gemeinde: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Keine
@@ -3251,7 +3251,7 @@ index 62d279db62f..0e7a7773846 100644
l <= v->coord.right &&
t <= v->coord.bottom &&
diff --git a/src/viewport.cpp b/src/viewport.cpp
-index cb4307f0afc..035949d5688 100644
+index 11a15871266..d69647d229b 100644
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -64,6 +64,8 @@
@@ -3263,25 +3263,52 @@ index cb4307f0afc..035949d5688 100644
#include "viewport_func.h"
#include "station_base.h"
#include "waypoint_base.h"
-@@ -1128,7 +1130,7 @@ static void ViewportAddLandscape()
- tile_info.x = tilecoord.x * TILE_SIZE; // FIXME: tile_info should use signed integers
- tile_info.y = tilecoord.y * TILE_SIZE;
-
-- if (IsInsideBS(tilecoord.x, 0, MapSizeX()) && IsInsideBS(tilecoord.y, 0, MapSizeY())) {
-+ if (IsInsideBS(tilecoord.x, 0, LayerSizeX()) && IsInsideBS(tilecoord.y, 0, MapSizeY())) {
- /* This includes the south border at MapMaxX / MapMaxY. When terraforming we still draw tile selections there. */
- tile_info.tile = TileXY(tilecoord.x, tilecoord.y);
- tile_type = GetTileType(tile_info.tile);
-@@ -1142,7 +1144,7 @@ static void ViewportAddLandscape()
- * Until 'bottom_empty' every tile is visible, also "black" tiles outside map.
- * Since 'bottom_empty' only tiles with a content might be visible. */
- if (y_pos >= bottom_empty) {
-- if (tilecoord.x >= (int)MapSizeX() || tilecoord.y >= (int)MapSizeY()) break; // No more non-void tiles in this column? Then stop.
-+ if (tilecoord.x >= (int)LayerSizeX() || tilecoord.y >= (int)LayerSizeY() || LayerIndex(tile_info.tile) != _vd.dpi.layer) break; // No more non-void tiles in this column? Then stop.
- if (tile_type == MP_VOID) continue; // No content on the tile? Then skip.
-
- /* Since 'bottom_building' only bridges might be visible. */
-@@ -1511,6 +1513,9 @@ void ViewportDoDraw(const ViewPort *vp, int left, int top, int right, int bottom
+@@ -1137,24 +1139,27 @@ static void ViewportAddLandscape()
+ int min_visible_height = viewport_y - (_vd.dpi.top + _vd.dpi.height);
+ bool tile_visible = min_visible_height <= 0;
+
+- if (tile_type != MP_VOID) {
+- /* Is tile with buildings visible? */
+- if (min_visible_height < MAX_TILE_EXTENT_TOP) tile_visible = true;
+-
+- if (IsBridgeAbove(tile_info.tile)) {
+- /* Is the bridge visible? */
+- TileIndex bridge_tile = GetNorthernBridgeEnd(tile_info.tile);
+- int bridge_height = ZOOM_LVL_BASE * (GetBridgePixelHeight(bridge_tile) - TilePixelHeight(tile_info.tile));
+- if (min_visible_height < bridge_height + MAX_TILE_EXTENT_TOP) tile_visible = true;
+- }
++ /* Âàëèäíû òîëüêî êëåòêè òåêóùåãî ñëîÿ */
++ if (LayerIndex(tile_info.tile) == _vd.dpi.layer) {
++ if (tile_type != MP_VOID) {
++ /* Is tile with buildings visible? */
++ if (min_visible_height < MAX_TILE_EXTENT_TOP) tile_visible = true;
++
++ if (IsBridgeAbove(tile_info.tile)) {
++ /* Is the bridge visible? */
++ TileIndex bridge_tile = GetNorthernBridgeEnd(tile_info.tile);
++ int bridge_height = ZOOM_LVL_BASE * (GetBridgePixelHeight(bridge_tile) - TilePixelHeight(tile_info.tile));
++ if (min_visible_height < bridge_height + MAX_TILE_EXTENT_TOP) tile_visible = true;
++ }
+
+- /* Would a higher bridge on a more southern tile be visible?
+- * If yes, we need to loop over more rows to possibly find one. */
+- if (min_visible_height < potential_bridge_height + MAX_TILE_EXTENT_TOP) last_row = false;
+- } else {
+- /* Outside of map. If we are on the north border of the map, there may still be a bridge visible,
+- * so we need to loop over more rows to possibly find one. */
+- if ((tilecoord.x <= 0 || tilecoord.y <= 0) && min_visible_height < potential_bridge_height + MAX_TILE_EXTENT_TOP) last_row = false;
++ /* Would a higher bridge on a more southern tile be visible?
++ * If yes, we need to loop over more rows to possibly find one. */
++ if (min_visible_height < potential_bridge_height + MAX_TILE_EXTENT_TOP) last_row = false;
++ } else {
++ /* Outside of map. If we are on the north border of the map, there may still be a bridge visible,
++ * so we need to loop over more rows to possibly find one. */
++ if ((tilecoord.x <= 0 || tilecoord.y <= 0) && min_visible_height < potential_bridge_height + MAX_TILE_EXTENT_TOP) last_row = false;
++ }
+ }
+
+ if (tile_visible) {
+@@ -1517,6 +1522,9 @@ void ViewportDoDraw(const ViewPort *vp, int left, int top, int right, int bottom
_vd.dpi.dst_ptr = BlitterFactory::GetCurrentBlitter()->MoveTo(old_dpi->dst_ptr, x - old_dpi->left, y - old_dpi->top);