summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2006-11-07 13:01:36 +0000
committerDarkvater <darkvater@openttd.org>2006-11-07 13:01:36 +0000
commite90bc1681f4b9cdd2a726332113d161f69217ff4 (patch)
treeec6140c952f9a287c623e4a9e786e4b5b070635a
parent45366b4372853ba53b71e0f0b51b8bb79799850b (diff)
downloadopenttd-e90bc1681f4b9cdd2a726332113d161f69217ff4.tar.xz
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
a bit more sensibly.
-rw-r--r--gui.h7
-rw-r--r--main_gui.c40
-rw-r--r--viewport.h10
3 files changed, 30 insertions, 27 deletions
diff --git a/gui.h b/gui.h
index ddb9d8edd..277fbb856 100644
--- a/gui.h
+++ b/gui.h
@@ -124,13 +124,6 @@ extern const byte _fios_colors[];
/* bridge_gui.c */
void ShowBuildBridgeWindow(uint start, uint end, byte type);
-enum {
- ZOOM_IN = 0,
- ZOOM_OUT = 1,
- ZOOM_NONE = 2, // hack, used to update the button status
-};
-
-bool DoZoomInOutWindow(int how, Window *w);
void ShowBuildIndustryWindow(void);
void ShowQueryString(StringID str, StringID caption, uint maxlen, uint maxwidth, WindowClass window_class, WindowNumber window_number, CharSetFilter afilter);
void ShowQuery(StringID caption, StringID message, void (*ok_cancel_callback)(bool ok_clicked), WindowClass window_class, WindowNumber window_number);
diff --git a/main_gui.c b/main_gui.c
index f7bf3d1d9..7a9c06969 100644
--- a/main_gui.c
+++ b/main_gui.c
@@ -866,29 +866,31 @@ bool DoZoomInOutWindow(int how, Window *w)
assert(w);
vp = w->viewport;
- if (how == ZOOM_IN) {
- if (vp->zoom == 0) return false;
- vp->zoom--;
- vp->virtual_width >>= 1;
- vp->virtual_height >>= 1;
-
- WP(w,vp_d).scrollpos_x += vp->virtual_width >> 1;
- WP(w,vp_d).scrollpos_y += vp->virtual_height >> 1;
-
- SetWindowDirty(w);
- } else if (how == ZOOM_OUT) {
- if (vp->zoom == 2) return false;
- vp->zoom++;
-
- WP(w,vp_d).scrollpos_x -= vp->virtual_width >> 1;
- WP(w,vp_d).scrollpos_y -= vp->virtual_height >> 1;
+ switch (how) {
+ case ZOOM_IN:
+ if (vp->zoom == 0) return false;
+ vp->zoom--;
+ vp->virtual_width >>= 1;
+ vp->virtual_height >>= 1;
+
+ WP(w,vp_d).scrollpos_x += vp->virtual_width >> 1;
+ WP(w,vp_d).scrollpos_y += vp->virtual_height >> 1;
+ break;
+ case ZOOM_OUT:
+ if (vp->zoom == 2) return false;
+ vp->zoom++;
- vp->virtual_width <<= 1;
- vp->virtual_height <<= 1;
+ WP(w,vp_d).scrollpos_x -= vp->virtual_width >> 1;
+ WP(w,vp_d).scrollpos_y -= vp->virtual_height >> 1;
- SetWindowDirty(w);
+ vp->virtual_width <<= 1;
+ vp->virtual_height <<= 1;
+ break;
+ default: return false;
}
+ SetWindowDirty(w);
+
// routine to disable/enable the zoom buttons. Didn't know where to place these otherwise
{
Window *wt = NULL;
diff --git a/viewport.h b/viewport.h
index abda49851..ed0d2be3f 100644
--- a/viewport.h
+++ b/viewport.h
@@ -20,9 +20,17 @@ void AssignWindowViewport(Window *w, int x, int y,
int width, int height, uint32 follow_flags, byte zoom);
ViewPort *IsPtInWindowViewport(const Window *w, int x, int y);
Point GetTileBelowCursor(void);
+void UpdateViewportPosition(Window *w);
+
+enum {
+ ZOOM_IN = 0,
+ ZOOM_OUT = 1,
+ ZOOM_NONE = 2, // hack, used to update the button status
+};
+
+bool DoZoomInOutWindow(int how, Window *w);
void ZoomInOrOutToCursorWindow(bool in, Window * w);
Point GetTileZoomCenterWindow(bool in, Window * w);
-void UpdateViewportPosition(Window *w);
void OffsetGroundSprite(int x, int y);