1 #ifndef CURSORS_H
2 #define CURSORS_H
3 
4 #include "Types.h"
5 
6 #include <string_theory/string>
7 
8 
9 // INDIVIDUAL CURSORS
10 
11 enum CursorTypeDefines
12 {
13 	CURSOR_NORMAL,
14 	CURSOR_TARGET,
15 	CURSOR_TARGETON1,
16 	CURSOR_TARGETON2,
17 	CURSOR_TARGETON3,
18 	CURSOR_TARGETON4,
19 	CURSOR_TARGETON5,
20 	CURSOR_TARGETON6,
21 	CURSOR_TARGETON7,
22 	CURSOR_TARGETON8,
23 	CURSOR_TARGETON9,
24 	CURSOR_TARGETW1,
25 	CURSOR_TARGETW2,
26 	CURSOR_TARGETW3,
27 	CURSOR_TARGETW4,
28 	CURSOR_TARGETW5,
29 	CURSOR_TARGETRED,
30 	CURSOR_TARGETBLACK,
31 	CURSOR_TARGETDKBLACK,
32 	CURSOR_TARGETBURSTCONFIRM,
33 	CURSOR_TARGETBURST,
34 	CURSOR_TARGETBURSTRED,
35 	CURSOR_TARGETBURSTDKBLACK,
36 	CURSOR_PUNCHGRAY,
37 	CURSOR_PUNCHRED,
38 	CURSOR_PUNCHRED_ON1,
39 	CURSOR_PUNCHRED_ON2,
40 	CURSOR_PUNCHYELLOW_ON1,
41 	CURSOR_PUNCHYELLOW_ON2,
42 	CURSOR_PUNCHNOGO_ON1,
43 	CURSOR_PUNCHNOGO_ON2,
44 	CURSOR_RUN1,
45 	CURSOR_WALK1,
46 	CURSOR_SWAT1,
47 	CURSOR_PRONE1,
48 	CURSOR_HANDGRAB,
49 	CURSOR_NORMGRAB,
50 	CURSOR_KNIFE_REG,
51 	CURSOR_KNIFE_HIT,
52 	CURSOR_KNIFE_HIT_ON1,
53 	CURSOR_KNIFE_HIT_ON2,
54 	CURSOR_KNIFE_YELLOW_ON1,
55 	CURSOR_KNIFE_YELLOW_ON2,
56 	CURSOR_KNIFE_NOGO_ON1,
57 	CURSOR_KNIFE_NOGO_ON2,
58 	CURSOR_CROSS_REG,
59 	CURSOR_CROSS_ACTIVE,
60 	CURSOR_WWW,
61 	CURSOR_LAPTOP_SCREEN,
62 	CURSOR_IBEAM,
63 	CURSOR_LOOK,
64 	CURSOR_TALK,
65 	CURSOR_BLACKTALK,
66 	CURSOR_REDTALK,
67 	CURSOR_EXIT_NORTH,
68 	CURSOR_EXIT_SOUTH,
69 	CURSOR_EXIT_EAST,
70 	CURSOR_EXIT_WEST,
71 	CURSOR_NOEXIT_NORTH,
72 	CURSOR_NOEXIT_SOUTH,
73 	CURSOR_NOEXIT_EAST,
74 	CURSOR_NOEXIT_WEST,
75 	CURSOR_CONEXIT_NORTH,
76 	CURSOR_CONEXIT_SOUTH,
77 	CURSOR_CONEXIT_EAST,
78 	CURSOR_CONEXIT_WEST,
79 	CURSOR_STRATEGIC_VEHICLE,
80 	CURSOR_STRATEGIC_FOOT,
81 	CURSOR_INVALID_ACTION,
82 	CURSOR_CHOPPER,
83 	CURSOR_FLASH_TARGET,
84 	CURSOR_FLASH_TARGETBURST,
85 	CURSOR_FLASH_TALK,
86 	CURSOR_FLASH_REDTALK,
87 	CURSOR_CHECKMARK,
88 	CURSOR_TARGETWR1,
89 	CURSOR_TARGETYELLOW1,
90 	CURSOR_TARGETYELLOW2,
91 	CURSOR_TARGETYELLOW3,
92 	CURSOR_TARGETYELLOW4,
93 	CURSOR_EXIT_GRID,
94 	CURSOR_NOEXIT_GRID,
95 	CURSOR_CONEXIT_GRID,
96 	CURSOR_GOOD_WIRECUT,
97 	CURSOR_BAD_WIRECUT,
98 	CURSOR_GOOD_RELOAD,
99 	CURSOR_BAD_RELOAD,
100 	CUROSR_IBEAM_WHITE,
101 	CURSOR_GOOD_THROW,
102 	CURSOR_BAD_THROW,
103 	CURSOR_RED_THROW,
104 	CURSOR_FLASH_THROW,
105 
106 	CURSOR_THROWKON1,
107 	CURSOR_THROWKON2,
108 	CURSOR_THROWKON3,
109 	CURSOR_THROWKON4,
110 	CURSOR_THROWKON5,
111 	CURSOR_THROWKON6,
112 	CURSOR_THROWKON7,
113 	CURSOR_THROWKON8,
114 	CURSOR_THROWKON9,
115 	CURSOR_THROWKW1,
116 	CURSOR_THROWKW2,
117 	CURSOR_THROWKW3,
118 	CURSOR_THROWKW4,
119 	CURSOR_THROWKW5,
120 	CURSOR_THROWKWR1,
121 	CURSOR_THROWKYELLOW1,
122 	CURSOR_THROWKYELLOW2,
123 	CURSOR_THROWKYELLOW3,
124 	CURSOR_THROWKYELLOW4,
125 
126 	CURSOR_ITEM_GOOD_THROW,
127 	CURSOR_ITEM_BAD_THROW,
128 	CURSOR_ITEM_RED_THROW,
129 	CURSOR_ITEM_FLASH_THROW,
130 	CURSOR_ITEM_GIVE,
131 
132 	CURSOR_BOMB_GRAY,
133 	CURSOR_BOMB_RED,
134 	CURSOR_REMOTE_GRAY,
135 	CURSOR_REMOTE_RED,
136 
137 	CURSOR_ENTERV,
138 	CURSOR_DRIVEV,
139 	CURSOR_WAIT,
140 
141 	CURSOR_PLACEMERC,
142 	CURSOR_PLACEGROUP,
143 	CURSOR_DPLACEMERC,
144 	CURSOR_DPLACEGROUP,
145 	CURSOR_REPAIR,
146 	CURSOR_REPAIRRED,
147 
148 	CURSOR_JAR,
149 	CURSOR_JARRED,
150 
151 	CURSOR_CAN,
152 	CURSOR_CANRED,
153 
154 	CURSOR_X,
155 	CURSOR_WAIT_NODELAY,
156 	CURSOR_EXCHANGE_PLACES,
157 
158 	CURSOR_STRATEGIC_BULLSEYE,
159 	CURSOR_JUMP_OVER,
160 	CURSOR_FUEL,
161 	CURSOR_FUEL_RED
162 };
163 
164 enum CursorSurfaceDefines
165 {
166 	C_MISC,
167 	C_ACTIONMODE,
168 	C_ACTIONMODERED,
169 	C_ACTIONMODEBLACK,
170 	C_TARGMODEBURST,
171 	C_TARGMODEBURSTRED,
172 	C_TARGMODEBURSTBLACK,
173 	C_TRINGS,
174 	C_TWRINGS,
175 	C_BLACKTARGET,
176 	C_PUNCHGRAY,
177 	C_PUNCHRED,
178 	C_RUN1,
179 	C_WALK1,
180 	C_SWAT1,
181 	C_PRONE1,
182 	C_GRAB1,
183 	C_GRAB2,
184 	C_KNIFE1,
185 	C_KNIFE2,
186 	C_CROSS1,
187 	C_CROSS2,
188 	C_WWW,
189 	C_LAPTOPSCREEN,
190 	C_IBEAM,
191 	C_LOOK,
192 	C_TALK,
193 	C_BLACKTALK,
194 	C_REDTALK,
195 	C_EXITARROWS,
196 	C_STRATVEH,
197 	C_STRATFOOT,
198 	C_INVALIDACTION,
199 	C_CHOPPER,
200 	C_CHECKMARK,
201 	C_YELLOWRINGS,
202 	C_WIRECUT,
203 	C_WIRECUTR,
204 	C_RELOAD,
205 	C_RELOADR,
206 	C_IBEAM_WHITE,
207 	C_THROWG,
208 	C_THROWB,
209 	C_THROWR,
210 	C_ITEMTHROW,
211 	C_BOMB_GREY,
212 	C_BOMB_RED,
213 	C_REMOTE_GREY,
214 	C_REMOTE_RED,
215 	C_ENTERV,
216 	C_MOVEV,
217 	C_WAIT,
218 	C_PLACEMERC,
219 	C_PLACEGROUP,
220 	C_DPLACEMERC,
221 	C_DPLACEGROUP,
222 	C_REPAIR,
223 	C_REPAIRR,
224 	C_JAR,
225 	C_JARRED,
226 	C_X,
227 	C_CAN,
228 	C_CANRED,
229 	C_EXCHANGE,
230 	C_BULLSEYE,
231 	C_JUMPOVER,
232 	C_FUEL,
233 	C_FUEL_RED,
234 
235 	NUM_CURSOR_FILES
236 };
237 
238 
239 void InitCursors(void);
240 void HandleAnimatedCursors(void);
241 
242 void UpdateAnimatedCursorFrames(UINT32 uiCursorIndex);
243 
244 void SetCursorSpecialFrame(UINT32 uiCursor, UINT8 ubFrame);
245 
246 void SetCursorFlags(UINT32 uiCursor, UINT8 ubFlags);
247 void RemoveCursorFlags(UINT32 uiCursor, UINT8 ubFlags);
248 
249 // The string must be persistent
250 void SetHitLocationText(const ST::string& str);
251 void SetIntTileLocationText(const ST::string& str);
252 void SetIntTileLocation2Text(const ST::string& str);
253 
254 const ST::string& GetIntTileLocationText(void);
255 const ST::string& GetIntTileLocation2Text(void);
256 
257 #endif
258