diff --git a/Makefile.bundle.in b/Makefile.bundle.in index bb4b093140..794c6d7338 100644 --- a/Makefile.bundle.in +++ b/Makefile.bundle.in @@ -60,6 +60,9 @@ ifdef OSXAPP $(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns" $(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "$(BUNDLE_DIR)/$(OSXAPP)" "$(REV)" $(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)" +endif +ifeq ($(OS),UNIX) + $(Q)cp "$(ROOT_DIR)/media/openttd.32.bmp" "$(DATA_DIR)/" endif $(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/" $(Q)cp "$(BIN_DIR)/ai/"compat_*.nut "$(AI_DIR)/" diff --git a/Makefile.src.in b/Makefile.src.in index d03ecbd69d..cab394f83a 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -248,7 +248,10 @@ $(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP) $(Q)$(WINDRES) -o $@ -I `basename $<` $< $(BIN_DIR)/$(TTD): $(TTD) - $(Q)cp $< $@ + $(Q)cp $(TTD) $(BIN_DIR)/$(TTD) +ifeq ($(OS), UNIX) + $(Q)cp $(MEDIA_DIR)/openttd.32.bmp $(BIN_DIR)/data/ +endif $(TTD): $(OBJS) $(CONFIG_CACHE_LINKER) $(E) '$(STAGE) Linking $@' diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 1a20297279..c9f99525ca 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -86,7 +86,6 @@ enum GenerateLandscapeWindowWidgets { GLAND_LANDSCAPE_PULLDOWN, ///< Dropdown 'Land generator' GLAND_HEIGHTMAP_NAME_TEXT, ///< Heightmap name - GLAND_HEIGHTMAP_NAME_SPACER, ///< Spacer used for aligning items in the second column nicely GLAND_HEIGHTMAP_SIZE_TEXT, ///< Size of heightmap GLAND_HEIGHTMAP_ROTATION_PULLDOWN, ///< Dropdown 'Heightmap rotation' @@ -249,45 +248,47 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = { NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_HEIGHTMAP_ROTATION, STR_NULL), SetFill(1, 1), EndContainer(), /* Widgets at the right of the labels. */ - NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), - NWidget(WWT_EMPTY, COLOUR_ORANGE, GLAND_HEIGHTMAP_NAME_TEXT), SetFill(1, 0), - /* Mapsize X * Y. */ - NWidget(NWID_HORIZONTAL), SetPIP(0, 4, 0), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_MAPSIZE_X_PULLDOWN), SetDataTip(STR_JUST_INT, STR_NULL), SetFill(1, 0), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_BY, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(1, 1), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_MAPSIZE_Y_PULLDOWN), SetDataTip(STR_JUST_INT, STR_NULL), SetFill(1, 0), - EndContainer(), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_TOWN_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_INDUSTRY_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - NWidget(WWT_EDITBOX, COLOUR_WHITE, GLAND_RANDOM_EDITBOX), SetDataTip(STR_MAPGEN_RANDOM_SEED_OSKTITLE, STR_MAPGEN_RANDOM_SEED_HELP), SetFill(1, 1), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_TREE_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_HEIGHTMAP_ROTATION_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - EndContainer(), NWidget(NWID_VERTICAL), SetPIP(0, 4, 0), - NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), + NWidget(WWT_EMPTY, COLOUR_ORANGE, GLAND_HEIGHTMAP_NAME_TEXT), SetFill(1, 0), + NWidget(NWID_HORIZONTAL), SetPIP(0, 5, 0), NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), - NWidget(WWT_EMPTY, INVALID_COLOUR, GLAND_HEIGHTMAP_NAME_SPACER), SetFill(1, 0), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE_LABEL, STR_NULL), SetFill(1, 1), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_DATE, STR_NULL), SetFill(1, 1), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_LINE_HEIGHT, STR_NULL), SetFill(1, 1), + /* Mapsize X * Y. */ + NWidget(NWID_HORIZONTAL), SetPIP(0, 4, 0), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_MAPSIZE_X_PULLDOWN), SetDataTip(STR_JUST_INT, STR_NULL), SetFill(1, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_BY, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(1, 1), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_MAPSIZE_Y_PULLDOWN), SetDataTip(STR_JUST_INT, STR_NULL), SetFill(1, 0), + EndContainer(), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_TOWN_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_INDUSTRY_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), + NWidget(WWT_EDITBOX, COLOUR_WHITE, GLAND_RANDOM_EDITBOX), SetDataTip(STR_MAPGEN_RANDOM_SEED_OSKTITLE, STR_MAPGEN_RANDOM_SEED_HELP), SetFill(1, 1), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_TREE_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, GLAND_HEIGHTMAP_ROTATION_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), EndContainer(), - NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), - NWidget(WWT_EMPTY, INVALID_COLOUR, GLAND_HEIGHTMAP_NAME_SPACER), SetFill(1, 0), - NWidget(WWT_TEXT, COLOUR_ORANGE, GLAND_HEIGHTMAP_SIZE_TEXT), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE, STR_NULL), SetFill(1, 0), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_START_DATE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD), SetFill(0, 1), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, GLAND_START_DATE_TEXT), SetDataTip(STR_BLACK_DATE_LONG, STR_NULL), SetFill(1, 0), - NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_START_DATE_UP), SetDataTip(SPR_ARROW_UP, STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD), SetFill(0, 1), - EndContainer(), - NWidget(NWID_HORIZONTAL), - NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_SNOW_LEVEL_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_SNOW_LINE_DOWN), SetFill(0, 1), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, GLAND_SNOW_LEVEL_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0), - NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_SNOW_LEVEL_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_SNOW_LINE_UP), SetFill(0, 1), + NWidget(NWID_VERTICAL), SetPIP(0, 4, 0), + NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), + NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE_LABEL, STR_NULL), SetFill(1, 1), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_DATE, STR_NULL), SetFill(1, 1), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_LINE_HEIGHT, STR_NULL), SetFill(1, 1), + EndContainer(), + NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE, GLAND_HEIGHTMAP_SIZE_TEXT), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE, STR_NULL), SetFill(1, 0), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_START_DATE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD), SetFill(0, 1), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, GLAND_START_DATE_TEXT), SetDataTip(STR_BLACK_DATE_LONG, STR_NULL), SetFill(1, 0), + NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_START_DATE_UP), SetDataTip(SPR_ARROW_UP, STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD), SetFill(0, 1), + EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_SNOW_LEVEL_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_SNOW_LINE_DOWN), SetFill(0, 1), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, GLAND_SNOW_LEVEL_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0), + NWidget(WWT_IMGBTN, COLOUR_ORANGE, GLAND_SNOW_LEVEL_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_SNOW_LINE_UP), SetFill(0, 1), + EndContainer(), + EndContainer(), EndContainer(), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, GLAND_RANDOM_BUTTON), SetDataTip(STR_MAPGEN_RANDOM, STR_MAPGEN_RANDOM_HELP), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREEN, GLAND_GENERATE_BUTTON), SetDataTip(STR_MAPGEN_GENERATE, STR_NULL), SetFill(1, 1), EndContainer(), EndContainer(), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, GLAND_RANDOM_BUTTON), SetDataTip(STR_MAPGEN_RANDOM, STR_MAPGEN_RANDOM_HELP), SetFill(1, 0), - NWidget(WWT_TEXTBTN, COLOUR_GREEN, GLAND_GENERATE_BUTTON), SetDataTip(STR_MAPGEN_GENERATE, STR_NULL), SetFill(1, 1), EndContainer(), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 9), SetFill(1, 1), @@ -531,7 +532,6 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow { *size = maxdim(GetStringBoundingBox(STR_MAPGEN_BORDER_RANDOM), maxdim(GetStringBoundingBox(STR_MAPGEN_BORDER_WATER), GetStringBoundingBox(STR_MAPGEN_BORDER_FREEFORM))); break; - case GLAND_HEIGHTMAP_NAME_SPACER: case GLAND_HEIGHTMAP_NAME_TEXT: size->width = 0; break; @@ -552,12 +552,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow { { switch (widget) { case GLAND_HEIGHTMAP_NAME_TEXT: { - /* Little bit of a hack going on here; just to get the widgets - * spaced without doing much magic. The space we can draw on is - * covered by both the spacer and text widgets, so take their - * outer most boundaries (left and right) as draw locations. */ - const NWidgetBase *nwi_spacer = this->GetWidget(GLAND_HEIGHTMAP_NAME_SPACER); - DrawString(min(r.left, nwi_spacer->pos_x), max(r.right, nwi_spacer->pos_x + nwi_spacer->current_x), r.top, this->name, TC_ORANGE); + DrawString(r.left, r.right, r.top, this->name, TC_ORANGE); break; } } diff --git a/src/saveload/order_sl.cpp b/src/saveload/order_sl.cpp index f9fd462319..e60c35d8da 100644 --- a/src/saveload/order_sl.cpp +++ b/src/saveload/order_sl.cpp @@ -10,12 +10,11 @@ /** @file order_sl.cpp Code handling saving and loading of orders */ #include "../stdafx.h" -#include "../order_base.h" #include "../order_backup.h" #include "../settings_type.h" #include "../network/network.h" -#include "saveload.h" +#include "saveload_internal.h" /** * Converts this order from an old savegame's version; @@ -27,7 +26,7 @@ void Order::ConvertFromOldSavegame() this->flags = 0; /* First handle non-stop - use value from savegame if possible, else use value from config file */ - if (_settings_client.gui.sg_new_nonstop || (IsSavegameVersionBefore(22) && _settings_client.gui.new_nonstop)) { + if (_settings_client.gui.sg_new_nonstop || (IsSavegameVersionBefore(22) && _savegame_type != SGT_TTO && _savegame_type != SGT_TTD && _settings_client.gui.new_nonstop)) { /* OFB_NON_STOP */ this->SetNonStopType((old_flags & 8) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS); } else { diff --git a/src/table/water_land.h b/src/table/water_land.h index 97cee2e3e4..24c24ffa89 100644 --- a/src/table/water_land.h +++ b/src/table/water_land.h @@ -20,32 +20,34 @@ struct WaterDrawTileStruct { }; #define BEGIN(image) { 0, 0, 0, 0, 0, 0, image } -#define END(y) { 0x80, y, 0, 0, 0, 0, 0 } + +/** Constructor macro for a terminating WaterDrawTileStruct entry in an array */ +#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 } static const WaterDrawTileStruct _shipdepot_display_seq_1[] = { BEGIN(0xFDD), { 0, 15, 0, 16, 1, 0x14, 0xFE8 | (1 << PALETTE_MODIFIER_COLOUR) }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _shipdepot_display_seq_2[] = { BEGIN(0xFDD), { 0, 0, 0, 16, 1, 0x14, 0xFEA }, { 0, 15, 0, 16, 1, 0x14, 0xFE6 | (1 << PALETTE_MODIFIER_COLOUR) }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _shipdepot_display_seq_3[] = { BEGIN(0xFDD), { 15, 0, 0, 1, 0x10, 0x14, 0xFE9 | (1 << PALETTE_MODIFIER_COLOUR) }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _shipdepot_display_seq_4[] = { BEGIN(0xFDD), { 0, 0, 0, 1, 16, 0x14, 0xFEB }, { 15, 0, 0, 1, 16, 0x14, 0xFE7 | (1 << PALETTE_MODIFIER_COLOUR) }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct * const _shipdepot_display_seq[] = { @@ -59,84 +61,84 @@ static const WaterDrawTileStruct _lock_display_seq_0[] = { BEGIN(1), { 0, 0, 0, 0x10, 1, 0x14, 0 + 1 }, { 0, 0xF, 0, 0x10, 1, 0x14, 4 + 1 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_1[] = { BEGIN(0), { 0, 0, 0, 1, 0x10, 0x14, 0 }, { 0xF, 0, 0, 1, 0x10, 0x14, 4 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_2[] = { BEGIN(2), { 0, 0, 0, 0x10, 1, 0x14, 0 + 2 }, { 0, 0xF, 0, 0x10, 1, 0x14, 4 + 2 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_3[] = { BEGIN(3), { 0, 0, 0, 1, 0x10, 0x14, 0 + 3 }, { 0xF, 0, 0, 1, 0x10, 0x14, 4 + 3 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_0b[] = { BEGIN(0xFDD), { 0, 0, 0, 0x10, 1, 0x14, 8 + 1 }, { 0, 0xF, 0, 0x10, 1, 0x14, 12 + 1 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_1b[] = { BEGIN(0xFDD), { 0, 0, 0, 0x1, 0x10, 0x14, 8 }, { 0xF, 0, 0, 0x1, 0x10, 0x14, 12 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_2b[] = { BEGIN(0xFDD), { 0, 0, 0, 0x10, 1, 0x14, 8 + 2 }, { 0, 0xF, 0, 0x10, 1, 0x14, 12 + 2 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_3b[] = { BEGIN(0xFDD), { 0, 0, 0, 1, 0x10, 0x14, 8 + 3 }, { 0xF, 0, 0, 1, 0x10, 0x14, 12 + 3 }, - END(0) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_0t[] = { BEGIN(0xFDD), { 0, 0, 0, 0x10, 1, 0x14, 16 + 1 }, { 0, 0xF, 0, 0x10, 1, 0x14, 20 + 1 }, - END(8) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_1t[] = { BEGIN(0xFDD), { 0, 0, 0, 0x1, 0x10, 0x14, 16 }, { 0xF, 0, 0, 0x1, 0x10, 0x14, 20 }, - END(8) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_2t[] = { BEGIN(0xFDD), { 0, 0, 0, 0x10, 1, 0x14, 16 + 2 }, { 0, 0xF, 0, 0x10, 1, 0x14, 20 + 2 }, - END(8) + TILE_SEQ_END() }; static const WaterDrawTileStruct _lock_display_seq_3t[] = { BEGIN(0xFDD), { 0, 0, 0, 1, 0x10, 0x14, 16 + 3 }, { 0xF, 0, 0, 1, 0x10, 0x14, 20 + 3 }, - END(8) + TILE_SEQ_END() }; static const WaterDrawTileStruct * const _lock_display_seq[] = { @@ -157,4 +159,4 @@ static const WaterDrawTileStruct * const _lock_display_seq[] = { }; #undef BEGIN -#undef END +#undef TILE_SEQ_END diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index d53ebc5b39..48ca184287 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -22,6 +22,7 @@ #include "../genworld.h" #include "../core/random_func.hpp" #include "../core/math_func.hpp" +#include "../fileio_func.h" #include "sdl_v.h" #include @@ -203,10 +204,6 @@ static void GetAvailableVideoMode(uint *w, uint *h) *h = _resolutions[best].height; } -#ifndef ICON_DIR -#define ICON_DIR "media" -#endif - #ifdef WIN32 /* Let's redefine the LoadBMP macro with because we are dynamically * loading SDL and need to 'SDL_CALL' all functions */ @@ -226,15 +223,18 @@ static bool CreateMainSurface(uint w, uint h) if (bpp == 0) usererror("Can't use a blitter that blits 0 bpp for normal visuals"); - /* Give the application an icon */ - icon = SDL_CALL SDL_LoadBMP(ICON_DIR PATHSEP "openttd.32.bmp"); - if (icon != NULL) { - /* Get the colourkey, which will be magenta */ - uint32 rgbmap = SDL_CALL SDL_MapRGB(icon->format, 255, 0, 255); + char icon_path[MAX_PATH]; + if (FioFindFullPath(icon_path, lengthof(icon_path), DATA_DIR, "openttd.32.bmp") != NULL) { + /* Give the application an icon */ + icon = SDL_CALL SDL_LoadBMP(icon_path); + if (icon != NULL) { + /* Get the colourkey, which will be magenta */ + uint32 rgbmap = SDL_CALL SDL_MapRGB(icon->format, 255, 0, 255); - SDL_CALL SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap); - SDL_CALL SDL_WM_SetIcon(icon, NULL); - SDL_CALL SDL_FreeSurface(icon); + SDL_CALL SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap); + SDL_CALL SDL_WM_SetIcon(icon, NULL); + SDL_CALL SDL_FreeSurface(icon); + } } /* DO NOT CHANGE TO HWSURFACE, IT DOES NOT WORK */ diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index cd6ef54941..65460606c7 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -647,7 +647,8 @@ static void DrawWaterTileStruct(const TileInfo *ti, const WaterDrawTileStruct *w /** Draw a lock tile. */ static void DrawWaterLock(const TileInfo *ti) { - const WaterDrawTileStruct *wdts = _lock_display_seq[GetSection(ti->tile)]; + int section = GetSection(ti->tile); + const WaterDrawTileStruct *wdts = _lock_display_seq[section]; /* Draw ground sprite. */ SpriteID image = wdts++->image; @@ -675,7 +676,8 @@ static void DrawWaterLock(const TileInfo *ti) if (base == 0) { /* If no custom graphics, use defaults. */ base = SPR_LOCK_BASE; - zoffs = ti->z > wdts[3].delta_y ? 24 : 0; + uint8 z_threshold = section >= 8 ? 8 : 0; + zoffs = ti->z > z_threshold ? 24 : 0; } DrawWaterTileStruct(ti, wdts, base, zoffs, PAL_NONE, CF_LOCKS);