0
|
1 #pragma once
|
|
2 #include "OSAPI.h"
|
|
3
|
|
4 #include "Texture.h"
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9 /* 272 */
|
|
10 #pragma pack(push, 1)
|
|
11 struct ArcomageCard
|
1204
|
12 {
|
|
13 char pCardName[32];
|
|
14 int slot;
|
|
15 char field_24;
|
|
16 char needed_quarry_level;
|
|
17 char needed_magic_level;
|
1679
|
18 char needed_zoo_level;
|
1204
|
19 char needed_bricks;
|
|
20 char needed_gems;
|
|
21 char needed_beasts;
|
1679
|
22 bool can_be_discarded;
|
1245
|
23 int compare_param;
|
1204
|
24 char field_30;
|
1263
|
25 char draw_extra_card_count;
|
1245
|
26 char to_player_quarry_lvl;
|
|
27 char to_player_magic_lvl;
|
|
28 char to_player_zoo_lvl;
|
|
29 char to_player_bricks;
|
|
30 char to_player_gems;
|
|
31 char to_player_beasts;
|
|
32 char to_player_buildings;
|
|
33 char to_player_wall;
|
|
34 char to_player_tower;
|
|
35 char to_enemy_quarry_lvl;
|
|
36 char to_enemy_magic_lvl;
|
|
37 char to_enemy_zoo_lvl;
|
|
38 char to_enemy_bricks;
|
|
39 char to_enemy_gems;
|
|
40 char to_enemy_beasts;
|
|
41 char to_enemy_buildings;
|
|
42 char to_enemy_wall;
|
|
43 char to_enemy_tower;
|
|
44 char to_pl_enm_quarry_lvl;
|
|
45 char to_pl_enm_magic_lvl;
|
|
46 char to_pl_enm_zoo_lvl;
|
|
47 char to_pl_enm_bricks;
|
|
48 char to_pl_enm_gems;
|
|
49 char to_pl_enm_beasts;
|
|
50 char to_pl_enm_buildings;
|
|
51 char to_pl_enm_wall;
|
|
52 char to_pl_enm_tower;
|
1204
|
53 char field_4D;
|
1245
|
54 char can_draw_extra_card2;
|
|
55 char to_player_quarry_lvl2;
|
|
56 char to_player_magic_lvl2;
|
|
57 char to_player_zoo_lvl2;
|
|
58 char to_player_bricks2;
|
|
59 char to_player_gems2;
|
|
60 char to_player_beasts2;
|
|
61 char to_player_buildings2;
|
|
62 char to_player_wall2;
|
|
63 char to_player_tower2;
|
|
64 char to_enemy_quarry_lvl2;
|
|
65 char to_enemy_magic_lvl2;
|
|
66 char to_enemy_zoo_lvl2;
|
|
67 char to_enemy_bricks2;
|
|
68 char to_enemy_gems2;
|
|
69 char to_enemy_beasts2;
|
|
70 char to_enemy_buildings2;
|
|
71 char to_enemy_wall2;
|
|
72 char to_enemy_tower2;
|
|
73 char to_pl_enm_quarry_lvl2;
|
|
74 char to_pl_enm_magic_lvl2;
|
|
75 char to_pl_enm_zoo_lvl2;
|
|
76 char to_pl_enm_bricks2;
|
|
77 char to_pl_enm_gems2;
|
|
78 char to_pl_enm_beasts2;
|
|
79 char to_pl_enm_buildings2;
|
|
80 char to_pl_enm_wall2;
|
|
81 char to_pl_enm_tower2;
|
1204
|
82 char field_6A;
|
|
83 char field_6B;
|
|
84 };
|
0
|
85 #pragma pack(pop)
|
|
86
|
|
87
|
1679
|
88 /* 401 */
|
|
89 #pragma pack(push, 1)
|
|
90 struct AcromageCardOnTable
|
|
91 {
|
|
92 int uCardId;
|
|
93 int field_4;
|
|
94 POINT field_8;
|
|
95 int field_10_xplus;
|
|
96 int field_14_y_plus;
|
|
97 POINT field_18_point;
|
|
98 };
|
|
99 #pragma pack(pop)
|
0
|
100
|
|
101
|
|
102 #pragma pack(push, 1)
|
1183
|
103 struct ArcomagePlayer
|
0
|
104 {
|
|
105 char pPlayerName[32];
|
1197
|
106 int IsHisTurn;
|
|
107 int tower_height;
|
|
108 int wall_height;
|
|
109 int quarry_level;
|
|
110 int magic_level;
|
1200
|
111 int zoo_level;
|
1197
|
112 int resource_bricks;
|
|
113 int resource_gems;
|
|
114 int resource_beasts;
|
1183
|
115 int cards_at_hand[10];
|
1256
|
116 POINT card_shift[10];
|
0
|
117 };
|
|
118 #pragma pack(pop)
|
|
119
|
|
120
|
|
121
|
|
122 #pragma pack(push, 1)
|
|
123 struct ArcomageGame_stru1
|
|
124 {
|
|
125 int field_0;
|
|
126 int field_4;
|
|
127 int field_8;
|
|
128 };
|
|
129 #pragma pack(pop)
|
|
130
|
|
131
|
|
132
|
|
133
|
|
134 #pragma pack(push, 1)
|
|
135 struct ArcomageGame
|
|
136 {
|
|
137 ArcomageGame();
|
|
138
|
|
139 static bool LoadBackground();
|
|
140 static bool LoadSprites();
|
|
141 static bool MsgLoop(int a1, ArcomageGame_stru1 *a2);
|
1183
|
142 static void PlaySound(unsigned int event_id);
|
0
|
143 static void OnMouseClick(char right_left, bool bDown);
|
1532
|
144 static void OnMouseMove(int x, int y);
|
1183
|
145 static void GetCardRect(unsigned int uCardID, RECT *pCardRect);
|
2339
|
146 static void PrepareArcomage();
|
|
147 static void DoBlt_Copy(unsigned __int16 *pPixels); // idb
|
0
|
148
|
|
149 static void Loop();
|
|
150
|
|
151 char field_0;
|
|
152 char field_1;
|
|
153 char field_2;
|
|
154 char field_3;
|
|
155 int field_4;
|
|
156 ArcomageGame_stru1 stru1;
|
|
157 tagMSG msg;
|
|
158 int mouse_x;
|
|
159 int mouse_y;
|
|
160 char mouse_left;
|
|
161 char field_39;
|
|
162 char mouse_right;
|
|
163 char field_3B;
|
|
164 unsigned __int16 *pBackgroundPixels;
|
|
165 unsigned __int16 *pSpritesPixels;
|
|
166 unsigned __int16 *pBlit_Copy_pixels;
|
1183
|
167 struct GUIFont *pfntComic;//ptr_48;
|
|
168 struct GUIFont *pfntArrus;//ptr_4C;
|
0
|
169 int field_50;
|
1267
|
170 int field_54;
|
0
|
171 RGBTexture pGameBackground;
|
|
172 RGBTexture pSprites;
|
|
173 int event_timer_time;
|
2214
|
174 int uGameWinner;
|
|
175 int Victory_type;
|
0
|
176 char pPlayer1Name[32];
|
|
177 char pPlayer2Name[32];
|
|
178 char field_F4;
|
1197
|
179 char GameOver;
|
0
|
180 char field_F6;
|
1263
|
181 char prev_mouse_left;
|
|
182 char prev_mouse_right;
|
0
|
183 char field_F9;
|
|
184 char bGameInProgress;
|
|
185 };
|
|
186 #pragma pack(pop)
|
|
187
|
|
188
|
|
189
|
|
190
|
|
191 extern ArcomageGame *pArcomageGame;
|
|
192 extern ArcomageCard pCards[87];
|
1303
|
193 extern void set_stru1_field_8_InArcomage(int inValue);
|
1197
|
194
|
935
|
195
|
|
196
|
1184
|
197 #pragma pack(push, 1)
|
|
198 struct stru272_stru1
|
1204
|
199 {
|
1263
|
200 int have_spark;
|
|
201 POINT spark_position;
|
1204
|
202 int field_C;
|
|
203 int field_10;
|
|
204 int field_14;
|
|
205 int field_18;
|
|
206 };
|
1184
|
207 #pragma pack(pop)
|
935
|
208
|
1186
|
209 /* 404 */
|
|
210 #pragma pack(push, 1)
|
|
211 struct stru272_stru2
|
1204
|
212 {
|
1263
|
213 /*int field_0;
|
|
214 int field_4;
|
|
215 int field_8;
|
|
216 int field_C;*/
|
|
217 RECT effect_area;
|
1204
|
218 int field_10;
|
|
219 int field_14;
|
|
220 int field_18;
|
|
221 float field_1Cf;
|
|
222 int field_20;
|
|
223 float field_24f;
|
|
224 float field_28f;
|
|
225 float field_2Cf;
|
|
226 int field_30;
|
|
227 int field_34;
|
1263
|
228 stru272_stru1* sparks_array;
|
1204
|
229 };
|
1186
|
230 #pragma pack(pop)
|
|
231
|
|
232
|
935
|
233 /* 270 */
|
|
234 #pragma pack(push, 1)
|
|
235 struct stru272_stru0 // ARCOMAGE stuff
|
|
236 {
|
1679
|
237 static stru272_stru0 *New();
|
|
238
|
|
239 int Free();
|
1263
|
240 int StartFill(stru272_stru2* a2);
|
1679
|
241 int Clear(char a2, char a3);
|
1263
|
242 int DrawEffect();
|
935
|
243 int _40E2A7();
|
|
244
|
1184
|
245 int signature;
|
935
|
246 int field_4;
|
1263
|
247 int position_in_sparks_arr;
|
935
|
248 int field_C;
|
|
249 int field_10;
|
|
250 int field_14;
|
|
251 int field_18;
|
|
252 int field_1C;
|
|
253 int field_20;
|
|
254 int field_24;
|
|
255 float field_28;
|
|
256 float field_2C;
|
|
257 float field_30;
|
|
258 int field_34;
|
|
259 int field_38;
|
|
260 int field_3C;
|
|
261 int field_40;
|
|
262 int field_44;
|
|
263 int field_48;
|
|
264 int field_4C;
|
|
265 int field_50;
|
1184
|
266 stru272_stru1 * field_54;
|
935
|
267 char field_58;
|
|
268 char field_59;
|
|
269 char field_5A;
|
|
270 char field_5B;
|
|
271 };
|
|
272 #pragma pack(pop)
|
|
273
|
1194
|
274 #define DECK_SIZE 108
|
935
|
275
|
1194
|
276 #pragma pack(push, 1)
|
|
277 struct ArcomageDeck
|
1204
|
278 {
|
|
279 char name[32];
|
|
280 char cardsInUse[DECK_SIZE];
|
|
281 int cards_IDs[DECK_SIZE];
|
|
282 };
|
1184
|
283
|
1194
|
284 #pragma pack(pop)
|
1184
|
285
|
935
|
286 #pragma pack(push, 1)
|
|
287 struct stru272
|
1204
|
288 {
|
1263
|
289 char have_effect;
|
|
290 char effect_sign;
|
1204
|
291 char _pad_2;
|
|
292 char _pad_3;
|
|
293 stru272_stru2 field_4;
|
|
294 stru272_stru0 *field_40;
|
1263
|
295 stru272_stru1 effect_sparks[150];
|
1204
|
296 };
|
935
|
297 #pragma pack(pop)
|
|
298
|