annotate MM7.h @ 828:0f56abdcce94

Massive refactors of spells + PID (packed id) macros introduced.
author Nomad
date Wed, 27 Mar 2013 00:27:38 +0200
parents c1da83d8223f
children ae8f83e1b0cf
rev   line source
0
Ritor1
parents:
diff changeset
1 #pragma once
Ritor1
parents:
diff changeset
2 #include "OSAPI.h"
Ritor1
parents:
diff changeset
3 #include <math.h>
Ritor1
parents:
diff changeset
4 #include <stdio.h>
Ritor1
parents:
diff changeset
5 #include <stdarg.h>
Ritor1
parents:
diff changeset
6 #include <string>
Ritor1
parents:
diff changeset
7
Ritor1
parents:
diff changeset
8 typedef unsigned int uint;
Ritor1
parents:
diff changeset
9 #define LOWORD(a) (*((unsigned short *)&a))
Ritor1
parents:
diff changeset
10 #define HIWORD(a) (*((unsigned short *)&a + 1))
Ritor1
parents:
diff changeset
11 #define SHIWORD(a) (*((short *)&a + 1))
Ritor1
parents:
diff changeset
12
Ritor1
parents:
diff changeset
13 #define LODWORD(a) (*((unsigned int *)&a))
Ritor1
parents:
diff changeset
14 #define HIDWORD(a) (*((unsigned int *)&a + 1))
Ritor1
parents:
diff changeset
15 #define SLODWORD(a) (*((int *)&a))
Ritor1
parents:
diff changeset
16 #define SHIDWORD(a) (*((int *)&a + 1))
Ritor1
parents:
diff changeset
17
Ritor1
parents:
diff changeset
18 #define LOBYTE(a) (*((unsigned char *)&a))
Ritor1
parents:
diff changeset
19 #define HIBYTE(a) (*((unsigned char *)&a + sizeof(a) - 1))
Ritor1
parents:
diff changeset
20 #define BYTE1(a) (*((unsigned char *)&a + 1))
Ritor1
parents:
diff changeset
21 #define BYTE2(a) (*((unsigned char *)&a + 2))
Ritor1
parents:
diff changeset
22 #define BYTE3(a) (*((unsigned char *)&a + 3))
Ritor1
parents:
diff changeset
23
823
c1da83d8223f More spell renames
Nomad
parents: 786
diff changeset
24 #define PID(type, id) (unsigned int)((((8 * (id))) | (type)) & 0xFFFF) // packed id
828
0f56abdcce94 Massive refactors of spells + PID (packed id) macros introduced.
Nomad
parents: 823
diff changeset
25 #define PID_TYPE(pid) (unsigned int)((pid) & 7) // extract type
0f56abdcce94 Massive refactors of spells + PID (packed id) macros introduced.
Nomad
parents: 823
diff changeset
26 #define PID_ID(pid) (unsigned int)(((pid) & 0xFFFF) >> 3) // extract value
823
c1da83d8223f More spell renames
Nomad
parents: 786
diff changeset
27
0
Ritor1
parents:
diff changeset
28
Ritor1
parents:
diff changeset
29 typedef unsigned __int16 _WORD;
Ritor1
parents:
diff changeset
30 typedef unsigned __int64 _QWORD;
Ritor1
parents:
diff changeset
31
Ritor1
parents:
diff changeset
32
Ritor1
parents:
diff changeset
33 #include "VectorTypes.h"
Ritor1
parents:
diff changeset
34 #include "IndoorCameraD3D.h"
Ritor1
parents:
diff changeset
35 /*#include "LOD.h"
Ritor1
parents:
diff changeset
36 #include "Texture.h"
Ritor1
parents:
diff changeset
37 #include "Mouse.h"
Ritor1
parents:
diff changeset
38 #include "Overlays.h"
Ritor1
parents:
diff changeset
39 #include "Game.h"
Ritor1
parents:
diff changeset
40 #include "Items.h"
Ritor1
parents:
diff changeset
41 #include "Actor.h"
Ritor1
parents:
diff changeset
42 #include "Arcomage.h"
Ritor1
parents:
diff changeset
43 #include "Render.h"
Ritor1
parents:
diff changeset
44 #include "Time.h"
Ritor1
parents:
diff changeset
45 #include "GUIWindow.h"
Ritor1
parents:
diff changeset
46 #include "GUIButton.h"
Ritor1
parents:
diff changeset
47 #include "GUIProgressBar.h"
Ritor1
parents:
diff changeset
48 #include "GUIFont.h"
Ritor1
parents:
diff changeset
49 #include "NPC.h"
Ritor1
parents:
diff changeset
50 #include "PaletteManager.h"
Ritor1
parents:
diff changeset
51 #include "Party.h"
Ritor1
parents:
diff changeset
52 #include "AudioPlayer.h"
Ritor1
parents:
diff changeset
53 #include "VideoPlayer.h"
Ritor1
parents:
diff changeset
54 #include "Chest.h"
Ritor1
parents:
diff changeset
55 #include "Allocator.h"
Ritor1
parents:
diff changeset
56 #include "IndoorCamera.h"
Ritor1
parents:
diff changeset
57 #include "Party.h"
Ritor1
parents:
diff changeset
58 #include "Outdoor.h"
Ritor1
parents:
diff changeset
59
Ritor1
parents:
diff changeset
60 #include "mm7_data.h"
Ritor1
parents:
diff changeset
61 */
Ritor1
parents:
diff changeset
62
Ritor1
parents:
diff changeset
63
Ritor1
parents:
diff changeset
64
Ritor1
parents:
diff changeset
65
Ritor1
parents:
diff changeset
66
Ritor1
parents:
diff changeset
67
Ritor1
parents:
diff changeset
68
Ritor1
parents:
diff changeset
69
Ritor1
parents:
diff changeset
70
Ritor1
parents:
diff changeset
71
Ritor1
parents:
diff changeset
72
Ritor1
parents:
diff changeset
73 /* 154 */
Ritor1
parents:
diff changeset
74 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
75 struct stru161
Ritor1
parents:
diff changeset
76 {
Ritor1
parents:
diff changeset
77 Vec3_int_ pos;
Ritor1
parents:
diff changeset
78 __int16 rot_y;
Ritor1
parents:
diff changeset
79 __int16 rot_x;
Ritor1
parents:
diff changeset
80 unsigned __int16 uMapInfoID;
Ritor1
parents:
diff changeset
81 __int16 field_12;
Ritor1
parents:
diff changeset
82 };
Ritor1
parents:
diff changeset
83 #pragma pack(pop)
Ritor1
parents:
diff changeset
84 extern stru161 stru_4ECBB8[6]; // weak
Ritor1
parents:
diff changeset
85
Ritor1
parents:
diff changeset
86
Ritor1
parents:
diff changeset
87
Ritor1
parents:
diff changeset
88
Ritor1
parents:
diff changeset
89
Ritor1
parents:
diff changeset
90
Ritor1
parents:
diff changeset
91
Ritor1
parents:
diff changeset
92
Ritor1
parents:
diff changeset
93
Ritor1
parents:
diff changeset
94
Ritor1
parents:
diff changeset
95
Ritor1
parents:
diff changeset
96 /* 285 */
Ritor1
parents:
diff changeset
97 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
98 struct stru289
Ritor1
parents:
diff changeset
99 {
Ritor1
parents:
diff changeset
100 //----- (0046263C) --------------------------------------------------------
Ritor1
parents:
diff changeset
101 inline stru289()
Ritor1
parents:
diff changeset
102 {
Ritor1
parents:
diff changeset
103 this->field_64 = 2;
Ritor1
parents:
diff changeset
104 this->field_74 = 0;
Ritor1
parents:
diff changeset
105 this->field_70 = 0;
Ritor1
parents:
diff changeset
106 this->field_6C = 0;
Ritor1
parents:
diff changeset
107 this->field_68 = 0;
Ritor1
parents:
diff changeset
108 }
Ritor1
parents:
diff changeset
109
Ritor1
parents:
diff changeset
110
Ritor1
parents:
diff changeset
111 char field_0[100];
Ritor1
parents:
diff changeset
112 int field_64;
Ritor1
parents:
diff changeset
113 int field_68;
Ritor1
parents:
diff changeset
114 int field_6C;
Ritor1
parents:
diff changeset
115 int field_70;
Ritor1
parents:
diff changeset
116 int field_74;
Ritor1
parents:
diff changeset
117 };
Ritor1
parents:
diff changeset
118 #pragma pack(pop)
Ritor1
parents:
diff changeset
119 extern stru289 stru_6BE158;
Ritor1
parents:
diff changeset
120
Ritor1
parents:
diff changeset
121
Ritor1
parents:
diff changeset
122
Ritor1
parents:
diff changeset
123 /* 288 */
Ritor1
parents:
diff changeset
124 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
125 struct CheckHRESULT_stru0
Ritor1
parents:
diff changeset
126 {
Ritor1
parents:
diff changeset
127 void CheckHRESULT(HRESULT a2, const char *Str, int a4, unsigned int uType);
Ritor1
parents:
diff changeset
128 void *_466D09_xcpt_string(std::string a2, const char *Str, int a4);
Ritor1
parents:
diff changeset
129 void ShowMessageBox(std::string *a0, std::string lpCaption, UINT uType, std::string lpText, int line);
Ritor1
parents:
diff changeset
130 char ddraw_error(HRESULT hr, char *Str, size_t a3);
Ritor1
parents:
diff changeset
131 char dinput_error(int a1, const char *Str, int a3);
Ritor1
parents:
diff changeset
132
Ritor1
parents:
diff changeset
133 void (__thiscall ***vdestructor_ptr)(CheckHRESULT_stru0 *, bool);
Ritor1
parents:
diff changeset
134 };
Ritor1
parents:
diff changeset
135 #pragma pack(pop)
Ritor1
parents:
diff changeset
136
Ritor1
parents:
diff changeset
137
Ritor1
parents:
diff changeset
138
Ritor1
parents:
diff changeset
139
Ritor1
parents:
diff changeset
140 /* 297 */
Ritor1
parents:
diff changeset
141 enum SoundType
Ritor1
parents:
diff changeset
142 {
Ritor1
parents:
diff changeset
143 SOUND_EndTurnBasedMode = 0xCE,
Ritor1
parents:
diff changeset
144 SOUND_StartTurnBasedMode = 0xCF,
Ritor1
parents:
diff changeset
145 SOUND_FlipOnExit = 0x4E21,
Ritor1
parents:
diff changeset
146 };
Ritor1
parents:
diff changeset
147
Ritor1
parents:
diff changeset
148
Ritor1
parents:
diff changeset
149
Ritor1
parents:
diff changeset
150 /* 362 */
Ritor1
parents:
diff changeset
151 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
152 struct TravelInfo
Ritor1
parents:
diff changeset
153 {
Ritor1
parents:
diff changeset
154 char uMapID;
Ritor1
parents:
diff changeset
155 char pSchedule[7];
Ritor1
parents:
diff changeset
156 char uDaysCount;
Ritor1
parents:
diff changeset
157 char field_9[3];
Ritor1
parents:
diff changeset
158 int x;
Ritor1
parents:
diff changeset
159 int y;
Ritor1
parents:
diff changeset
160 int z;
Ritor1
parents:
diff changeset
161 int direction;
Ritor1
parents:
diff changeset
162 int field_1C;
Ritor1
parents:
diff changeset
163 };
Ritor1
parents:
diff changeset
164 #pragma pack(pop)
Ritor1
parents:
diff changeset
165
Ritor1
parents:
diff changeset
166
Ritor1
parents:
diff changeset
167
Ritor1
parents:
diff changeset
168
Ritor1
parents:
diff changeset
169
Ritor1
parents:
diff changeset
170
Ritor1
parents:
diff changeset
171 /* 369 */
Ritor1
parents:
diff changeset
172 #pragma pack(push, 1)
299
b0db84628733 paperdoll array
Ritor1
parents: 187
diff changeset
173
0
Ritor1
parents:
diff changeset
174 #pragma pack(pop)
299
b0db84628733 paperdoll array
Ritor1
parents: 187
diff changeset
175 extern int paperdoll_Weapon[4][16][2];
0
Ritor1
parents:
diff changeset
176
513
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
177 /* 371 */ // stru331 - deleted
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
178
0
Ritor1
parents:
diff changeset
179
Ritor1
parents:
diff changeset
180 /* 372 */
Ritor1
parents:
diff changeset
181 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
182 struct stru332
Ritor1
parents:
diff changeset
183 {
Ritor1
parents:
diff changeset
184 unsigned int texids[11];
513
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
185 int texid1;
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
186 int texid2;
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
187 int texid3;
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
188 int texid4;
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
189 int texid5;
0
Ritor1
parents:
diff changeset
190 };
Ritor1
parents:
diff changeset
191 #pragma pack(pop)
513
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
192 extern stru332 stru_511698[];
0
Ritor1
parents:
diff changeset
193
Ritor1
parents:
diff changeset
194
Ritor1
parents:
diff changeset
195 /* 373 */
Ritor1
parents:
diff changeset
196 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
197 struct stru333
Ritor1
parents:
diff changeset
198 {
Ritor1
parents:
diff changeset
199 unsigned int texids[5];
513
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
200 int texid1;
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
201 int texid2;
0
Ritor1
parents:
diff changeset
202 };
Ritor1
parents:
diff changeset
203 #pragma pack(pop)
513
3ee1e351e710 Some CharacterUI_LoadPaperdollTextures overflows
Nomad
parents: 481
diff changeset
204 extern stru333 stru_511718[];
0
Ritor1
parents:
diff changeset
205
Ritor1
parents:
diff changeset
206
Ritor1
parents:
diff changeset
207 /* 374 */
Ritor1
parents:
diff changeset
208 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
209 struct stru334
Ritor1
parents:
diff changeset
210 {
Ritor1
parents:
diff changeset
211 __int16 field_0;
Ritor1
parents:
diff changeset
212 __int16 field_2;
Ritor1
parents:
diff changeset
213 __int16 field_4;
Ritor1
parents:
diff changeset
214 __int16 field_6;
Ritor1
parents:
diff changeset
215 };
Ritor1
parents:
diff changeset
216 #pragma pack(pop)
Ritor1
parents:
diff changeset
217 extern stru334 array_4E2940[26];
Ritor1
parents:
diff changeset
218
Ritor1
parents:
diff changeset
219 /* 376 */
Ritor1
parents:
diff changeset
220 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
221 struct stru336
Ritor1
parents:
diff changeset
222 {
Ritor1
parents:
diff changeset
223 int field_0;
Ritor1
parents:
diff changeset
224 int field_4;
Ritor1
parents:
diff changeset
225 int field_8;
Ritor1
parents:
diff changeset
226 int field_C;
Ritor1
parents:
diff changeset
227 int field_10;
Ritor1
parents:
diff changeset
228 int field_14;
Ritor1
parents:
diff changeset
229 __int16 field_18[480];
Ritor1
parents:
diff changeset
230 __int16 field_3D8[480];
Ritor1
parents:
diff changeset
231 };
Ritor1
parents:
diff changeset
232 #pragma pack(pop)
Ritor1
parents:
diff changeset
233
Ritor1
parents:
diff changeset
234
Ritor1
parents:
diff changeset
235
Ritor1
parents:
diff changeset
236
Ritor1
parents:
diff changeset
237
Ritor1
parents:
diff changeset
238
Ritor1
parents:
diff changeset
239
Ritor1
parents:
diff changeset
240
Ritor1
parents:
diff changeset
241
Ritor1
parents:
diff changeset
242
Ritor1
parents:
diff changeset
243
Ritor1
parents:
diff changeset
244
Ritor1
parents:
diff changeset
245
Ritor1
parents:
diff changeset
246 /* 388 */
Ritor1
parents:
diff changeset
247 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
248 struct stru348
Ritor1
parents:
diff changeset
249 {
Ritor1
parents:
diff changeset
250 __int16 field_0;
Ritor1
parents:
diff changeset
251 __int16 field_2;
Ritor1
parents:
diff changeset
252 __int16 field_4;
Ritor1
parents:
diff changeset
253 __int16 field_6;
Ritor1
parents:
diff changeset
254 __int16 field_8;
Ritor1
parents:
diff changeset
255 __int16 field_A;
Ritor1
parents:
diff changeset
256 __int16 field_C;
Ritor1
parents:
diff changeset
257 __int16 field_E;
Ritor1
parents:
diff changeset
258 __int16 field_10;
Ritor1
parents:
diff changeset
259 __int16 field_12;
Ritor1
parents:
diff changeset
260 int field_14;
Ritor1
parents:
diff changeset
261 };
Ritor1
parents:
diff changeset
262 #pragma pack(pop)
Ritor1
parents:
diff changeset
263
Ritor1
parents:
diff changeset
264 extern stru348 stru_4E1890[13];
Ritor1
parents:
diff changeset
265
Ritor1
parents:
diff changeset
266
Ritor1
parents:
diff changeset
267
Ritor1
parents:
diff changeset
268