diff options
author | smatz <smatz@openttd.org> | 2007-12-17 22:04:07 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2007-12-17 22:04:07 +0000 |
commit | bda9d4a23633c4ebb6ad18c29218deaf1a92d55d (patch) | |
tree | e1686070db2bce48c4953e4bbef6a196640ae495 /src/zoom.hpp | |
parent | 61dcdbf0e0bbbe231b7adbd0a82da8d9e16dbb88 (diff) | |
download | openttd-bda9d4a23633c4ebb6ad18c29218deaf1a92d55d.tar.xz |
(svn r11656) -Codechange: add ZOOM_LVL_BEGIN and postfix operators so ZoomLevel can be used in some iterations
Diffstat (limited to 'src/zoom.hpp')
-rw-r--r-- | src/zoom.hpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/zoom.hpp b/src/zoom.hpp index f924b362f..dea064196 100644 --- a/src/zoom.hpp +++ b/src/zoom.hpp @@ -5,8 +5,11 @@ #ifndef ZOOM_HPP #define ZOOM_HPP +#include "helpers.hpp" + enum ZoomLevel { /* Our possible zoom-levels */ + ZOOM_LVL_BEGIN = 0, ZOOM_LVL_NORMAL = 0, ZOOM_LVL_OUT_2X, ZOOM_LVL_OUT_4X, @@ -32,6 +35,8 @@ enum ZoomLevel { extern ZoomLevel _saved_scrollpos_zoom; +DECLARE_POSTFIX_INCREMENT(ZoomLevel) + /** * Scale by zoom level, usually shift left (when zoom > ZOOM_LVL_NORMAL) * When shifting right, value is rounded up @@ -42,7 +47,7 @@ extern ZoomLevel _saved_scrollpos_zoom; static inline int ScaleByZoom(int value, ZoomLevel zoom) { if (zoom == ZOOM_LVL_NORMAL) return value; - int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL; + int izoom = zoom - ZOOM_LVL_NORMAL; return (zoom > ZOOM_LVL_NORMAL) ? value << izoom : (value + (1 << -izoom) - 1) >> -izoom; } @@ -56,7 +61,7 @@ static inline int ScaleByZoom(int value, ZoomLevel zoom) static inline int UnScaleByZoom(int value, ZoomLevel zoom) { if (zoom == ZOOM_LVL_NORMAL) return value; - int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL; + int izoom = zoom - ZOOM_LVL_NORMAL; return (zoom > ZOOM_LVL_NORMAL) ? (value + (1 << izoom) - 1) >> izoom : value << -izoom; } @@ -69,7 +74,7 @@ static inline int UnScaleByZoom(int value, ZoomLevel zoom) static inline int ScaleByZoomLower(int value, ZoomLevel zoom) { if (zoom == ZOOM_LVL_NORMAL) return value; - int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL; + int izoom = zoom - ZOOM_LVL_NORMAL; return (zoom > ZOOM_LVL_NORMAL) ? value << izoom : value >> -izoom; } @@ -82,7 +87,7 @@ static inline int ScaleByZoomLower(int value, ZoomLevel zoom) static inline int UnScaleByZoomLower(int value, ZoomLevel zoom) { if (zoom == ZOOM_LVL_NORMAL) return value; - int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL; + int izoom = zoom - ZOOM_LVL_NORMAL; return (zoom > ZOOM_LVL_NORMAL) ? value >> izoom : value << -izoom; } |