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