changeset 6654:860f3e5f70ec draft

(svn r9885) -Fix r9846: some last bitshifts with zoom-levels that were forgotten -Fix r9846: initialize the zoom level for 'screen', as assuming 0 is not correct
author truelight <truelight@openttd.org>
date Sat, 19 May 2007 23:52:04 +0000
parents cbe12394f776
children 02c37d001ece
files src/main_gui.cpp src/openttd.cpp src/sound.cpp src/viewport.cpp
diffstat 4 files changed, 15 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -2425,8 +2425,8 @@
 				_scrolling_viewport = false;
 			}
 
-			WP(w, vp_d).scrollpos_x += e->we.scroll.delta.x << vp->zoom;
-			WP(w, vp_d).scrollpos_y += e->we.scroll.delta.y << vp->zoom;
+			WP(w, vp_d).scrollpos_x += ScaleByZoom(e->we.scroll.delta.x, vp->zoom);
+			WP(w, vp_d).scrollpos_y += ScaleByZoom(e->we.scroll.delta.y, vp->zoom);
 		} break;
 
 		case WE_MOUSEWHEEL:
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -505,6 +505,8 @@
 	LoadDriver(MUSIC_DRIVER, _ini_musicdriver);
 	LoadDriver(VIDEO_DRIVER, _ini_videodriver); // load video last, to prevent an empty window while sound and music loads
 	_savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING;
+	/* Initialize the zoom level of the screen to normal */
+	_screen.zoom = ZOOM_LVL_NORMAL;
 
 	/* restore saved music volume */
 	_music_driver->set_volume(msf.music_vol);
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -152,7 +152,8 @@
 }
 
 
-static const byte _vol_factor_by_zoom[ZOOM_LVL_END] = {255, 190, 134};
+static const byte _vol_factor_by_zoom[] = {255, 190, 134, 87, 49};
+assert_compile(lengthof(_vol_factor_by_zoom) == ZOOM_LVL_END);
 
 static const byte _sound_base_vol[] = {
 	128,  90, 128, 128, 128, 128, 128, 128,
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -164,8 +164,8 @@
 
 	vp->zoom = zoom;
 
-	vp->virtual_width = width << zoom;
-	vp->virtual_height = height << zoom;
+	vp->virtual_width = ScaleByZoom(width, zoom);
+	vp->virtual_height = ScaleByZoom(height, zoom);
 
 	if (follow_flags & 0x80000000) {
 		const Vehicle *veh;
@@ -1196,17 +1196,17 @@
 	zoom = dp.zoom;
 	dp.zoom = ZOOM_LVL_NORMAL;
 
-	dp.left >>= zoom;
-	dp.top >>= zoom;
-	dp.width >>= zoom;
-	dp.height >>= zoom;
+	dp.left   = UnScaleByZoom(dp.left,   zoom);
+	dp.top    = UnScaleByZoom(dp.top,    zoom);
+	dp.width  = UnScaleByZoom(dp.width,  zoom);
+	dp.height = UnScaleByZoom(dp.height, zoom);
 
 	do {
 		uint16 colour;
 
 		if (ss->width != 0) {
-			int x = (ss->x >> zoom) - 1;
-			int y = (ss->y >> zoom) - 1;
+			int x = UnScaleByZoom(ss->x, zoom) - 1;
+			int y = UnScaleByZoom(ss->y, zoom) - 1;
 			int bottom = y + 11;
 			int w = ss->width;
 
@@ -1239,7 +1239,7 @@
 			colour = 16;
 		}
 		DrawString(
-			ss->x >> zoom, (ss->y >> zoom) - (ss->width & 0x8000 ? 2 : 0),
+			UnScaleByZoom(ss->x, zoom), UnScaleByZoom(ss->y, zoom) - (ss->width & 0x8000 ? 2 : 0),
 			ss->string, colour
 		);