Mercurial > hg > openttd
changeset 6700:fe78ef5d92f4 draft
(svn r9932) -Fix: can't assume a zoom-level with MarkAllViewportsDirty, causing segfaults when trying to load savegames in dedicated server via -g (reported by peter1138)
author | truelight <truelight@openttd.org> |
---|---|
date | Sat, 26 May 2007 12:19:54 +0000 |
parents | 323f494a7076 |
children | 8cd8e1fa4b16 |
files | src/signs.cpp src/station.cpp |
diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/signs.cpp +++ b/src/signs.cpp @@ -64,11 +64,14 @@ */ static void MarkSignDirty(Sign *si) { + /* We use ZOOM_LVL_MAX here, as every viewport can have an other zoom, + * and there is no way for us to know which is the biggest. So make the + * biggest area dirty, and we are safe for sure. */ MarkAllViewportsDirty( si->sign.left - 6, si->sign.top - 3, - si->sign.left + ScaleByZoom(si->sign.width_1 + 12, _cur_dpi->zoom), - si->sign.top + ScaleByZoom(12, _cur_dpi->zoom)); + si->sign.left + ScaleByZoom(si->sign.width_1 + 12, ZOOM_LVL_MAX), + si->sign.top + ScaleByZoom(12, ZOOM_LVL_MAX)); } /**
--- a/src/station.cpp +++ b/src/station.cpp @@ -122,11 +122,14 @@ if (sign.width_1 != 0) { InvalidateWindowWidget(WC_STATION_VIEW, index, 1); + /* We use ZOOM_LVL_MAX here, as every viewport can have an other zoom, + * and there is no way for us to know which is the biggest. So make the + * biggest area dirty, and we are safe for sure. */ MarkAllViewportsDirty( sign.left - 6, sign.top, - sign.left + ScaleByZoom(sign.width_1 + 12, _cur_dpi->zoom), - sign.top + ScaleByZoom(12, _cur_dpi->zoom)); + sign.left + ScaleByZoom(sign.width_1 + 12, ZOOM_LVL_MAX), + sign.top + ScaleByZoom(12, ZOOM_LVL_MAX)); } }