comparison Arcomage/Arcomage.h @ 2496:5abd8fc8f1c6

for ITEM_ARTIFACT_LADYS_ESCORT
author Ritor1
date Thu, 18 Sep 2014 17:38:54 +0600
parents
children dd36326a9994
comparison
equal deleted inserted replaced
2495:7b076fe64f23 2496:5abd8fc8f1c6
1 #pragma once
2 #include "OSAPI.h"
3
4 #include "..\Engine/Graphics/Texture.h"
5
6
7
8
9 /* 272 */
10 #pragma pack(push, 1)
11 struct ArcomageCard
12 {
13 char pCardName[32];
14 int slot;
15 char field_24;
16 char needed_quarry_level;
17 char needed_magic_level;
18 char needed_zoo_level;
19 char needed_bricks;
20 char needed_gems;
21 char needed_beasts;
22 bool can_be_discarded;
23 int compare_param;
24 char field_30;
25 char draw_extra_card_count;
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;
53 char field_4D;
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;
82 char field_6A;
83 char field_6B;
84 };
85 #pragma pack(pop)
86
87
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)
100
101
102 #pragma pack(push, 1)
103 struct ArcomagePlayer
104 {
105 char pPlayerName[32];
106 int IsHisTurn;
107 int tower_height;
108 int wall_height;
109 int quarry_level;
110 int magic_level;
111 int zoo_level;
112 int resource_bricks;
113 int resource_gems;
114 int resource_beasts;
115 int cards_at_hand[10];
116 POINT card_shift[10];
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);
142 static void PlaySound(unsigned int event_id);
143 static void OnMouseClick(char right_left, bool bDown);
144 static void OnMouseMove(int x, int y);
145 static void GetCardRect(unsigned int uCardID, RECT *pCardRect);
146 static void PrepareArcomage();
147 static void DoBlt_Copy(unsigned __int16 *pPixels); // idb
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;
167 struct GUIFont *pfntComic;//ptr_48;
168 struct GUIFont *pfntArrus;//ptr_4C;
169 int field_50;
170 int field_54;
171 RGBTexture pGameBackground;
172 RGBTexture pSprites;
173 int event_timer_time;
174 int uGameWinner;
175 int Victory_type;
176 char pPlayer1Name[32];
177 char pPlayer2Name[32];
178 char field_F4;
179 char GameOver;
180 char field_F6;
181 char prev_mouse_left;
182 char prev_mouse_right;
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];
193 extern void set_stru1_field_8_InArcomage(int inValue);
194
195
196
197 #pragma pack(push, 1)
198 struct stru272_stru1
199 {
200 int have_spark;
201 POINT spark_position;
202 int field_C;
203 int field_10;
204 int field_14;
205 int field_18;
206 };
207 #pragma pack(pop)
208
209 /* 404 */
210 #pragma pack(push, 1)
211 struct stru272_stru2
212 {
213 /*int field_0;
214 int field_4;
215 int field_8;
216 int field_C;*/
217 RECT effect_area;
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;
228 stru272_stru1* sparks_array;
229 };
230 #pragma pack(pop)
231
232
233 /* 270 */
234 #pragma pack(push, 1)
235 struct stru272_stru0 // ARCOMAGE stuff
236 {
237 static stru272_stru0 *New();
238
239 int Free();
240 int StartFill(stru272_stru2* a2);
241 int Clear(char a2, char a3);
242 int DrawEffect();
243 int _40E2A7();
244
245 int signature;
246 int field_4;
247 int position_in_sparks_arr;
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;
266 stru272_stru1 * field_54;
267 char field_58;
268 char field_59;
269 char field_5A;
270 char field_5B;
271 };
272 #pragma pack(pop)
273
274 #define DECK_SIZE 108
275
276 #pragma pack(push, 1)
277 struct ArcomageDeck
278 {
279 char name[32];
280 char cardsInUse[DECK_SIZE];
281 int cards_IDs[DECK_SIZE];
282 };
283
284 #pragma pack(pop)
285
286 #pragma pack(push, 1)
287 struct stru272
288 {
289 char have_effect;
290 char effect_sign;
291 char _pad_2;
292 char _pad_3;
293 stru272_stru2 field_4;
294 stru272_stru0 *field_40;
295 stru272_stru1 effect_sparks[150];
296 };
297 #pragma pack(pop)
298