Clean up a little bit.
[runemen.git] / src / ui.h
blobfd36a92253c564c550ac490ccf1e843f7a2e540b
1 #ifndef _RUNE_UI_H
2 #define _RUNE_UI_H
4 #define LOG_WIDTH 640
5 #define LOG_HEIGHT 480
7 #define PANE_WIDTH (128+10)
9 #define MINIMAP_PADDING 1
11 #define BOX_PADDING 4
13 #define SDL_InBounds(X, Y, RECT) \
14 ((X) >= (RECT)->x && (X) <= (RECT)->x + (RECT)->w && \
15 (Y) >= (RECT)->y && (Y) <= (RECT)->y + (RECT)->h)
18 typedef enum uiHoverMajor {
19 overNothingMajor,
20 overMap,
21 overPane,
22 } uiHoverMajor;
24 typedef enum uiHoverMinor {
26 overNothingMinor,
28 overUnit,
29 overHouse,
31 overMinimap,
32 overHouseBox,
33 overPinBox,
35 overUnitPin,
36 overUnitStat,
37 overUnitSkill,
38 overUnitName,
40 overBuildButton,
42 } uiHoverMinor;
44 typedef struct ui_t ui_t;
45 struct ui_t {
46 int x; /* mouse position */
47 int y;
49 int vx; /* viewport offset (scrolling) */
50 int vy;
52 int dragging; /* dragging with touch/middle button */
54 int unit; /* selected unit */
55 int house; /* selected building */
56 int builder;/* building to build */
57 int stat; /* selected stat */
58 int btn; /* ??? */
60 int hintType;
61 int hint;
63 uiHoverMajor hover_top;
64 uiHoverMinor hover;
65 int hover_id;
66 int hover_xcollide;
67 int hover_tx;
68 int hover_ty;
70 int freq; /* just a counter, always ++ */
72 /* layers */
73 int draw_fog;
74 int draw_path;
75 int draw_pools;
76 int draw_overlays;
77 int draw_scent;
79 /* debug */
80 int game_speed;
81 int fps;
84 /** **/
86 extern ui_t ui;
87 extern SDL_Rect minimap;
88 extern SDL_Rect unitpin;
89 extern SDL_Rect pinbox;
91 /** **/
93 extern void reset_ui();
95 extern void track_mouse();
96 extern void track_mouse_map();
97 extern void track_mouse_ui();
99 #endif