2499
|
1 #define _CRTDBG_MAP_ALLOC
|
|
2 #include <stdlib.h>
|
|
3 #include <crtdbg.h>
|
|
4
|
|
5 #define _CRT_SECURE_NO_WARNINGS
|
|
6 #include "mm7_data.h"
|
|
7
|
2502
|
8 #include "GUI/GUIWindow.h"
|
2499
|
9 #include "Party.h"
|
|
10
|
|
11
|
|
12 void ErrHR(HRESULT hr, const char *pAPI, const char *pFunction, const char *pFile, int line)
|
|
13 {
|
|
14 if (SUCCEEDED(hr))
|
|
15 return;
|
|
16
|
|
17 char msg[4096];
|
|
18 sprintf(msg, "%s error (%08X) in\n\t%s\nin\n\t%s:%u",
|
|
19 pAPI, hr, pFunction, pFile, line);
|
|
20
|
|
21 char caption[1024];
|
|
22 sprintf(caption, "%s error", pAPI);
|
|
23
|
|
24 MessageBoxA(nullptr, msg, caption, MB_ICONEXCLAMATION);
|
|
25 }
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30 #include "OurMath.h"
|
|
31 struct stru193_math *stru_5C6E00 = new stru193_math;
|
|
32
|
|
33 #include "MapInfo.h"
|
|
34 struct MapStats *pMapStats;
|
|
35
|
|
36 #include "Engine/Graphics/Viewport.h"
|
|
37 struct Viewport *pViewport = new Viewport;
|
|
38 struct ViewingParams *viewparams = new ViewingParams;
|
|
39
|
|
40
|
|
41
|
|
42 #include "stru123.h"
|
|
43 stru123 stru_5E4C90_MapPersistVars;
|
|
44
|
|
45 #include "stru298.h"
|
|
46 stru298 AttackerInfo; // weak
|
|
47
|
|
48 #include "Engine/Autonotes.h"
|
|
49 std::array<Autonote, 196> pAutonoteTxt; // weak
|
|
50
|
|
51 #include "Engine/Awards.h"
|
|
52 std::array<Award, 105> pAwards;
|
|
53 std::array<AwardType, 1000> achieved_awards;
|
|
54 int num_achieved_awards;
|
|
55 int full_num_items_in_book;
|
|
56
|
|
57 #include "stru160.h"
|
|
58 std::array<stru160, 66> array_4EB8B8 =
|
|
59 {{
|
|
60 stru160( 0.0000000f, 0.0000000f, 1.0000000f),
|
|
61 stru160( 0.0000000f, 0.3826830f, 0.9238799f),
|
|
62 stru160( 0.3826830f, 0.0000000f, 0.9238799f),
|
|
63 stru160( 0.4082480f, 0.4082480f, 0.8164970f),
|
|
64 stru160( 0.0000000f, 0.7071070f, 0.7071070f),
|
|
65 stru160( 0.7071070f, 0.0000000f, 0.7071070f),
|
|
66 stru160( 0.4082480f, 0.8164970f, 0.4082480f),
|
|
67 stru160( 0.8164970f, 0.4082480f, 0.4082480f),
|
|
68 stru160( 0.7071070f, 0.7071070f, 0.0000000f),
|
|
69 stru160( 0.0000000f, 0.9238799f, 0.3826830f),
|
|
70 stru160( 0.3826830f, 0.9238799f, 0.0000000f),
|
|
71 stru160( 0.0000000f, 1.0000000f, 0.0000000f),
|
|
72 stru160( 0.9238799f, 0.3826830f, 0.0000000f),
|
|
73 stru160( 0.9238799f, 0.0000000f, 0.3826830f),
|
|
74 stru160( 1.0000000f, 0.0000000f, 0.0000000f),
|
|
75 stru160( 0.0000000f, -0.3826830f, 0.9238799f),
|
|
76 stru160( 0.4082480f, -0.4082480f, 0.8164970f),
|
|
77 stru160( 0.0000000f, -0.7071070f, 0.7071070f),
|
|
78 stru160( 0.8164970f, -0.4082480f, 0.4082480f),
|
|
79 stru160( 0.4082480f, -0.8164970f, 0.4082480f),
|
|
80 stru160( 0.7071070f, -0.7071070f, 0.0000000f),
|
|
81 stru160( 0.9238799f, -0.3826830f, 0.0000000f),
|
|
82 stru160( 0.3826830f, -0.9238799f, 0.0000000f),
|
|
83 stru160( 0.0000000f, -0.9238799f, 0.3826830f),
|
|
84 stru160( 0.0000000f, -1.0000000f, 0.0000000f),
|
|
85 stru160(-0.3826830f, 0.0000000f, 0.9238799f),
|
|
86 stru160(-0.4082480f, -0.4082480f, 0.8164970f),
|
|
87 stru160(-0.7071070f, 0.0000000f, 0.7071070f),
|
|
88 stru160(-0.4082480f, -0.8164970f, 0.4082480f),
|
|
89 stru160(-0.8164970f, -0.4082480f, 0.4082480f),
|
|
90 stru160(-0.7071070f, -0.7071070f, 0.0000000f),
|
|
91 stru160(-0.3826830f, -0.9238799f, 0.0000000f),
|
|
92 stru160(-0.9238799f, -0.3826830f, 0.0000000f),
|
|
93 stru160(-0.9238799f, 0.0000000f, 0.3826830f),
|
|
94 stru160(-1.0000000f, 0.0000000f, 0.0000000f),
|
|
95 stru160(-0.4082480f, 0.4082480f, 0.8164970f),
|
|
96 stru160(-0.8164970f, 0.4082480f, 0.4082480f),
|
|
97 stru160(-0.4082480f, 0.8164970f, 0.4082480f),
|
|
98 stru160(-0.7071070f, 0.7071070f, 0.0000000f),
|
|
99 stru160(-0.9238799f, 0.3826830f, 0.0000000f),
|
|
100 stru160(-0.3826830f, 0.9238799f, 0.0000000f),
|
|
101 stru160( 0.0000000f, 0.0000000f, -1.0000000f),
|
|
102 stru160( 0.0000000f, 0.3826830f, -0.9238799f),
|
|
103 stru160( 0.3826830f, 0.0000000f, -0.9238799f),
|
|
104 stru160( 0.4082480f, 0.4082480f, -0.8164970f),
|
|
105 stru160( 0.0000000f, 0.7071070f, -0.7071070f),
|
|
106 stru160( 0.7071070f, 0.0000000f, -0.7071070f),
|
|
107 stru160( 0.4082480f, 0.8164970f, -0.4082480f),
|
|
108 stru160( 0.8164970f, 0.4082480f, -0.4082480f),
|
|
109 stru160( 0.0000000f, 0.9238799f, -0.3826830f),
|
|
110 stru160( 0.9238799f, 0.0000000f, -0.3826830f),
|
|
111 stru160( 0.0000000f, -0.3826830f, -0.9238799f),
|
|
112 stru160( 0.4082480f, -0.4082480f, -0.8164970f),
|
|
113 stru160( 0.0000000f, -0.7071070f, -0.7071070f),
|
|
114 stru160( 0.8164970f, -0.4082480f, -0.4082480f),
|
|
115 stru160( 0.4082480f, -0.8164970f, -0.4082480f),
|
|
116 stru160( 0.0000000f, -0.9238799f, -0.3826830f),
|
|
117 stru160(-0.3826830f, 0.0000000f, -0.9238799f),
|
|
118 stru160(-0.4082480f, -0.4082480f, -0.8164970f),
|
|
119 stru160(-0.7071070f, 0.0000000f, -0.7071070f),
|
|
120 stru160(-0.4082480f, -0.8164970f, -0.4082480f),
|
|
121 stru160(-0.8164970f, -0.4082480f, -0.4082480f),
|
|
122 stru160(-0.9238799f, 0.0000000f, -0.3826830f),
|
|
123 stru160(-0.4082480f, 0.4082480f, -0.8164970f),
|
|
124 stru160(-0.8164970f, 0.4082480f, -0.4082480f),
|
|
125 stru160(-0.4082480f, 0.8164970f, -0.4082480f)
|
|
126 }};
|
|
127 std::array<stru160, 128> array_4EBBD0;
|
|
128 std::array<__int32, 128*3> array_4EBBD0_x =
|
|
129 {{
|
|
130 0x00000000, 0x00000001, 0x00000002, 0x00000001,
|
|
131 0x00000003, 0x00000002, 0x00000001, 0x00000004,
|
|
132 0x00000003, 0x00000003, 0x00000005, 0x00000002,
|
|
133 0x00000004, 0x00000006, 0x00000003, 0x00000006,
|
|
134 0x00000007, 0x00000003, 0x00000006, 0x00000008,
|
|
135 0x00000007, 0x00000007, 0x00000005, 0x00000003,
|
|
136 0x00000004, 0x00000009, 0x00000006, 0x00000009,
|
|
137 0x0000000A, 0x00000006, 0x00000009, 0x0000000B,
|
|
138 0x0000000A, 0x0000000A, 0x00000008, 0x00000006,
|
|
139 0x00000008, 0x0000000C, 0x00000007, 0x0000000C,
|
|
140 0x0000000D, 0x00000007, 0x0000000C, 0x0000000E,
|
|
141 0x0000000D, 0x0000000D, 0x00000005, 0x00000007,
|
|
142 0x00000000, 0x00000002, 0x0000000F, 0x00000002,
|
|
143 0x00000010, 0x0000000F, 0x00000002, 0x00000005,
|
|
144 0x00000010, 0x00000010, 0x00000011, 0x0000000F,
|
|
145 0x00000005, 0x00000012, 0x00000010, 0x00000012,
|
|
146 0x00000013, 0x00000010, 0x00000012, 0x00000014,
|
|
147 0x00000013, 0x00000013, 0x00000011, 0x00000010,
|
|
148 0x00000005, 0x0000000D, 0x00000012, 0x0000000D,
|
|
149 0x00000015, 0x00000012, 0x0000000D, 0x0000000E,
|
|
150 0x00000015, 0x00000015, 0x00000014, 0x00000012,
|
|
151 0x00000014, 0x00000016, 0x00000013, 0x00000016,
|
|
152 0x00000017, 0x00000013, 0x00000016, 0x00000018,
|
|
153 0x00000017, 0x00000017, 0x00000011, 0x00000013,
|
|
154 0x00000000, 0x0000000F, 0x00000019, 0x0000000F,
|
|
155 0x0000001A, 0x00000019, 0x0000000F, 0x00000011,
|
|
156 0x0000001A, 0x0000001A, 0x0000001B, 0x00000019,
|
|
157 0x00000011, 0x0000001C, 0x0000001A, 0x0000001C,
|
|
158 0x0000001D, 0x0000001A, 0x0000001C, 0x0000001E,
|
|
159 0x0000001D, 0x0000001D, 0x0000001B, 0x0000001A,
|
|
160 0x00000011, 0x00000017, 0x0000001C, 0x00000017,
|
|
161 0x0000001F, 0x0000001C, 0x00000017, 0x00000018,
|
|
162 0x0000001F, 0x0000001F, 0x0000001E, 0x0000001C,
|
|
163 0x0000001E, 0x00000020, 0x0000001D, 0x00000020,
|
|
164 0x00000021, 0x0000001D, 0x00000020, 0x00000022,
|
|
165 0x00000021, 0x00000021, 0x0000001B, 0x0000001D,
|
|
166 0x00000000, 0x00000019, 0x00000001, 0x00000019,
|
|
167 0x00000023, 0x00000001, 0x00000019, 0x0000001B,
|
|
168 0x00000023, 0x00000023, 0x00000004, 0x00000001,
|
|
169 0x0000001B, 0x00000024, 0x00000023, 0x00000024,
|
|
170 0x00000025, 0x00000023, 0x00000024, 0x00000026,
|
|
171 0x00000025, 0x00000025, 0x00000004, 0x00000023,
|
|
172 0x0000001B, 0x00000021, 0x00000024, 0x00000021,
|
|
173 0x00000027, 0x00000024, 0x00000021, 0x00000022,
|
|
174 0x00000027, 0x00000027, 0x00000026, 0x00000024,
|
|
175 0x00000026, 0x00000028, 0x00000025, 0x00000028,
|
|
176 0x00000009, 0x00000025, 0x00000028, 0x0000000B,
|
|
177 0x00000009, 0x00000009, 0x00000004, 0x00000025,
|
|
178 0x00000029, 0x0000002A, 0x0000002B, 0x0000002A,
|
|
179 0x0000002C, 0x0000002B, 0x0000002A, 0x0000002D,
|
|
180 0x0000002C, 0x0000002C, 0x0000002E, 0x0000002B,
|
|
181 0x0000002D, 0x0000002F, 0x0000002C, 0x0000002F,
|
|
182 0x00000030, 0x0000002C, 0x0000002F, 0x00000008,
|
|
183 0x00000030, 0x00000030, 0x0000002E, 0x0000002C,
|
|
184 0x0000002D, 0x00000031, 0x0000002F, 0x00000031,
|
|
185 0x0000000A, 0x0000002F, 0x00000031, 0x0000000B,
|
|
186 0x0000000A, 0x0000000A, 0x00000008, 0x0000002F,
|
|
187 0x00000008, 0x0000000C, 0x00000030, 0x0000000C,
|
|
188 0x00000032, 0x00000030, 0x0000000C, 0x0000000E,
|
|
189 0x00000032, 0x00000032, 0x0000002E, 0x00000030,
|
|
190 0x00000029, 0x0000002B, 0x00000033, 0x0000002B,
|
|
191 0x00000034, 0x00000033, 0x0000002B, 0x0000002E,
|
|
192 0x00000034, 0x00000034, 0x00000035, 0x00000033,
|
|
193 0x0000002E, 0x00000036, 0x00000034, 0x00000036,
|
|
194 0x00000037, 0x00000034, 0x00000036, 0x00000014,
|
|
195 0x00000037, 0x00000037, 0x00000035, 0x00000034,
|
|
196 0x0000002E, 0x00000032, 0x00000036, 0x00000032,
|
|
197 0x00000015, 0x00000036, 0x00000032, 0x0000000E,
|
|
198 0x00000015, 0x00000015, 0x00000014, 0x00000036,
|
|
199 0x00000014, 0x00000016, 0x00000037, 0x00000016,
|
|
200 0x00000038, 0x00000037, 0x00000016, 0x00000018,
|
|
201 0x00000038, 0x00000038, 0x00000035, 0x00000037,
|
|
202 0x00000029, 0x00000033, 0x00000039, 0x00000033,
|
|
203 0x0000003A, 0x00000039, 0x00000033, 0x00000035,
|
|
204 0x0000003A, 0x0000003A, 0x0000003B, 0x00000039,
|
|
205 0x00000035, 0x0000003C, 0x0000003A, 0x0000003C,
|
|
206 0x0000003D, 0x0000003A, 0x0000003C, 0x0000001E,
|
|
207 0x0000003D, 0x0000003D, 0x0000003B, 0x0000003A,
|
|
208 0x00000035, 0x00000038, 0x0000003C, 0x00000038,
|
|
209 0x0000001F, 0x0000003C, 0x00000038, 0x00000018,
|
|
210 0x0000001F, 0x0000001F, 0x0000001E, 0x0000003C,
|
|
211 0x0000001E, 0x00000020, 0x0000003D, 0x00000020,
|
|
212 0x0000003E, 0x0000003D, 0x00000020, 0x00000022,
|
|
213 0x0000003E, 0x0000003E, 0x0000003B, 0x0000003D,
|
|
214 0x00000029, 0x00000039, 0x0000002A, 0x00000039,
|
|
215 0x0000003F, 0x0000002A, 0x00000039, 0x0000003B,
|
|
216 0x0000003F, 0x0000003F, 0x0000002D, 0x0000002A,
|
|
217 0x0000003B, 0x00000040, 0x0000003F, 0x00000040,
|
|
218 0x00000041, 0x0000003F, 0x00000040, 0x00000026,
|
|
219 0x00000041, 0x00000041, 0x0000002D, 0x0000003F,
|
|
220 0x0000003B, 0x0000003E, 0x00000040, 0x0000003E,
|
|
221 0x00000027, 0x00000040, 0x0000003E, 0x00000022,
|
|
222 0x00000027, 0x00000027, 0x00000026, 0x00000040,
|
|
223 0x00000026, 0x00000028, 0x00000041, 0x00000028,
|
|
224 0x00000031, 0x00000041, 0x00000028, 0x0000000B,
|
|
225 0x00000031, 0x00000031, 0x0000002D, 0x00000041
|
|
226 }};
|
|
227
|
|
228 #include "MapsLongTimer.h"
|
|
229 MapsLongTimer MapsLongTimersList[100];
|
|
230
|
|
231 #include "Engine/Objects/ObjectList.h"
|
|
232 struct ObjectList *pObjectList;
|
|
233
|
|
234 #include "Engine/Tables/IconFrameTable.h"
|
|
235 struct IconFrameTable *pIconsFrameTable;
|
|
236
|
|
237 struct
|
|
238 {
|
|
239 struct UIAnimation _pUIAnim_Food;
|
|
240 struct UIAnimation _pUIAnim_Gold;
|
|
241 struct UIAnimation _pUIAnum_Torchlight;
|
|
242 struct UIAnimation _pUIAnim_WizardEye;
|
|
243 } _uianim;
|
|
244
|
|
245 struct UIAnimation *pUIAnim_Food = &_uianim._pUIAnim_Food;
|
|
246 struct UIAnimation *pUIAnim_Gold = &_uianim._pUIAnim_Gold;
|
|
247 struct UIAnimation *pUIAnum_Torchlight = &_uianim._pUIAnum_Torchlight;
|
|
248 struct UIAnimation *pUIAnim_WizardEye = &_uianim._pUIAnim_WizardEye;
|
|
249
|
|
250 std::array<struct UIAnimation *, 4> pUIAnims =
|
|
251 {
|
|
252 &_uianim._pUIAnim_Food,
|
|
253 &_uianim._pUIAnim_Gold,
|
|
254 &_uianim._pUIAnum_Torchlight,
|
|
255 &_uianim._pUIAnim_WizardEye
|
|
256 };
|
|
257
|
|
258
|
|
259
|
|
260 #include "Engine/Tables/PlayerFrameTable.h"
|
|
261 struct PlayerFrameTable *pPlayerFrameTable; // idb
|
|
262
|
|
263 #include "MM7.h"
|
|
264
|
|
265
|
|
266 std::array<stat_coord, 26> stat_string_coord = //4E2940
|
|
267 {{
|
|
268 {0x1A, 0x39, 0xDC, 0x12},
|
|
269 {0x1A, 0x4A, 0xDC, 0x12},
|
|
270 {0x1A, 0x5B, 0xDC, 0x12},
|
|
271 {0x1A, 0x6C, 0xDC, 0x12},
|
|
272 {0x1A, 0x7D, 0xDC, 0x12},
|
|
273 {0x1A, 0x8E, 0xDC, 0x12},
|
|
274 {0x1A, 0x9F, 0xDC, 0x12},
|
|
275 {0x1A, 0xC6, 0xDC, 0x12},
|
|
276 {0x1A, 0xD7, 0xDC, 0x12},
|
|
277 {0x1A, 0xE8, 0xDC, 0x12},
|
|
278 {0x1A, 0x10C, 0xDC, 0x12},
|
|
279 {0x1A, 0x11E, 0xDC, 0x12},
|
|
280 {0x111, 0x36, 0xBA, 0x12},
|
|
281 {0x111, 0x47, 0xBA, 0x12},
|
|
282 {0x111, 0x58, 0xBA, 0x12},
|
|
283 {0x111, 0x7E, 0xBA, 0x12},
|
|
284 {0x111, 0x8F, 0xBA, 0x12},
|
|
285 {0x111, 0xA0, 0xBA, 0x12},
|
|
286 {0x111, 0xB1, 0xBA, 0x12},
|
|
287 {0x111, 0xCA, 0xBA, 0x12},
|
|
288 {0x111, 0xDD, 0xBA, 0x12},
|
|
289 {0x111, 0xF0, 0xBA, 0x12},
|
|
290 {0x111, 0x103, 0xBA, 0x12},
|
|
291 {0x111, 0x116, 0xBA, 0x12},
|
|
292 {0x111, 0x129, 0xBA, 0x12},
|
|
293 {0x13E, 0x12, 0x89, 0x12},
|
|
294 }
|
|
295 };
|
|
296
|
|
297
|
|
298
|
|
299
|
|
300
|
|
301 #include "stru314.h"
|
|
302 #include "stru367.h"
|
|
303
|
|
304
|
|
305
|
|
306 //-------------------------------------------------------------------------
|
|
307 // Data declarations
|
|
308
|
|
309 int game_starting_year = 0;
|
|
310 unsigned int game_viewport_width;
|
|
311 unsigned int game_viewport_height;
|
|
312 int game_viewport_x;
|
|
313 int game_viewport_y;
|
|
314 int game_viewport_z;
|
|
315 int game_viewport_w;
|
|
316
|
|
317
|
|
318
|
|
319 std::array<unsigned int, 2> saveload_dlg_xs = {82, 0};
|
|
320 std::array<unsigned int, 2> saveload_dlg_ys = {60, 0};
|
|
321 std::array<unsigned int, 2> saveload_dlg_zs = {460, 640};
|
|
322 std::array<unsigned int, 2> saveload_dlg_ws = {344, 480};
|
|
323 int pWindowList_at_506F50_minus1_indexing[1];
|
|
324 int dword_4C9890[10]; // weak
|
|
325 int dword_4C9920[16]; // weak
|
|
326 char byte_4D864C; // weak
|
|
327 float flt_4D86CC = 1.0f; // weak
|
|
328 int dword_4D86D8 = 0x40000000; // weak
|
|
329
|
|
330
|
|
331
|
|
332
|
|
333
|
|
334
|
|
335
|
|
336 float flt_4D84E8 = 0.0f;
|
|
337
|
|
338 int pCurrentScreen = SCREEN_VIDEO; // 004E28F8
|
|
339 unsigned int uGammaPos;
|
|
340 std::array<int, 8> BtnTurnCoord =
|
|
341 {{
|
|
342 0xA4, 0x5D, 0x16, 0xB, 0x5, 0xD, 0x7, 0x3B,
|
|
343 }}; // weak
|
|
344 std::array<__int16, 4> RightClickPortraitXmin={{0x14, 0x83, 0xF2, 0x165}};
|
|
345 std::array<__int16, 4> RightClickPortraitXmax={{0x53, 0xC6, 0x138, 0x1A7}};
|
|
346
|
|
347 std::array<unsigned int, 4> pHealthBarPos = {{22, 137, 251, 366}};
|
|
348 std::array<unsigned int, 4> pManaBarPos = {{102, 217, 331, 447}};
|
|
349
|
|
350 std::array<char, 88> monster_popup_y_offsets =
|
|
351 {{
|
|
352 -20, 20, 0, -40, 0, 0, 0, 0, 0, 0, -50,
|
|
353 20, 0, -10, -10, -20, 10, -10, 0, 0, 0, -20,
|
|
354 10, -10, 0, 0, 0, -20, -10, 0, 0, 0, -40,
|
|
355 -20, 0, 0, 0, -50, -30, -30, -30, -30, -30, -30,
|
|
356 0, 0, 0, 0, 0, 0, -20, -20, -20, 20, 20,
|
|
357 20, 10, 10, 10, 10, 10, 10, -90, -60, -40, -20,
|
|
358 -20, -80, -10, 0, 0, -40, 0, 0, 0, -20, 10,
|
|
359 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0
|
|
360 }};
|
|
361 unsigned char hourglass_icon_idx = 12; // weak
|
|
362
|
|
363
|
|
364 const char *format_4E2D80 = "\f%05d%s\f00000\n";
|
|
365 //const char *format_4E2DC8 = "\f%05d";
|
|
366 const char *format_4E2DE8 = "\f%05d%s\f00000 - ";
|
|
367 const char *Stat_string_format_2_column_text = "%s\f%05u\r180%s\n";
|
|
368 const char *Stat_string_format_2_column_less_100 = "%s\f%05u\t110%d\f00000 / %d\n";
|
|
369 const char *Stat_string_format_2_column_over_100 = "%s\f%05u\r180%d\f00000 / %d\n";
|
|
370 int dword_4E455C; // weak
|
|
371 std::array<int, 6> dword_4E4560;
|
|
372 std::array<int, 6> dword_4E4578;
|
|
373 std::array<int, 6> dword_4E4590;
|
|
374 std::array<int, 6> dword_4E45A8;
|
|
375 std::array<float, 10> flt_4E4A80 =
|
|
376 {
|
|
377 0.050000001, 0.1, 0.30000001, 0.5, 0.60000002,
|
|
378 1.0, 6.0, 25.0, 50.0, 100.0
|
|
379 };
|
|
380
|
|
381
|
|
382 std::array< std::array<int, 2>, 14> pPartySpellbuffsUI_XYs =
|
|
383 {{
|
|
384 {477, 247}, {497, 247}, {522, 247}, {542, 247}, {564, 247}, {581, 247}, {614, 247},
|
|
385 {477, 279}, {497, 279}, {522, 279}, {542, 279}, {564, 279}, {589, 279}, {612, 279}
|
|
386 }};
|
|
387 std::array<unsigned char, 14> byte_4E5DD8 =
|
|
388 {{
|
|
389 PARTY_BUFF_FEATHER_FALL, PARTY_BUFF_RESIST_FIRE, PARTY_BUFF_RESIST_AIR, PARTY_BUFF_RESIST_WATER, PARTY_BUFF_RESIST_MIND, PARTY_BUFF_RESIST_EARTH, PARTY_BUFF_RESIST_BODY,
|
|
390 PARTY_BUFF_HEROISM, PARTY_BUFF_HASTE, PARTY_BUFF_SHIELD, PARTY_BUFF_STONE_SKIN, PARTY_BUFF_PROTECTION_FROM_MAGIC, PARTY_BUFF_IMMOLATION, PARTY_BUFF_DAY_OF_GODS
|
|
391 }};
|
|
392 std::array<unsigned __int8, 14> pPartySpellbuffsUI_smthns =
|
|
393 {{
|
|
394 14, 1, 10, 4, 7, 2, 9,
|
|
395 3, 6, 15, 8, 3, 12, 0
|
|
396 }};
|
|
397
|
|
398 std::array< std::array<int, 6>, 6> pNPCPortraits_x = // 004E5E50
|
|
399 {{
|
|
400 {521, 0, 0, 0, 0, 0},
|
|
401 {521, 521, 0, 0, 0, 0},
|
|
402 {521, 521, 521, 0, 0, 0},
|
|
403 {521, 486, 564, 521, 0, 0},
|
|
404 {521, 486, 564, 486, 564, 0},
|
|
405 {486, 564, 486, 564, 486, 564}
|
|
406 }};
|
|
407 std::array< std::array<int, 6>, 6> pNPCPortraits_y = // 004E5EE0
|
|
408 {{
|
|
409 {38, 0, 0, 0, 0, 0},
|
|
410 {38, 165, 0, 0, 0, 0},
|
|
411 {38, 133, 228, 0, 0, 0},
|
|
412 {38, 133, 133, 228, 0, 0},
|
|
413 {38, 133, 133, 228, 228, 0},
|
|
414 {38, 38, 133, 133, 228, 228}
|
|
415 }};
|
|
416 std::array<const char *, 11> pHouse_ExitPictures=
|
|
417 {
|
|
418 "",
|
|
419 "ticon01",
|
|
420 "ticon02",
|
|
421 "ticon03",
|
|
422 "ticon04",
|
|
423 "ticon05",
|
|
424 "istairup",
|
|
425 "itrap",
|
|
426 "outside",
|
|
427 "idoor",
|
|
428 "isecdoor"
|
|
429 };
|
|
430
|
|
431 std::array<__int16, 11> word_4E8152 = {0, 0, 0, 90, 8, 2, 70, 20, 10, 50, 30};
|
|
432
|
|
433 char _4E94D0_light_type = 5; // weak
|
|
434 char _4E94D2_light_type = 6; // weak
|
|
435 char _4E94D3_light_type = 10; // weak
|
|
436 int dword_4E98BC_bApplicationActive; // weak
|
|
437 //char *off_4EB080; // idb
|
|
438 std::array<char*, 465> pTransitionStrings = {"", nullptr}; // 004EB080
|
|
439 std::array<const char*, 25> pPlayerPortraitsNames =
|
|
440 {{
|
|
441 "pc01-", "pc02", "pc03", "pc04", "pc05-",
|
|
442 "pc06", "pc07", "pc08", "pc09-", "pc10",
|
|
443 "pc11-", "pc12", "pc13", "pc14", "pc15",
|
|
444 "pc16", "pc17-", "pc18", "pc19", "pc20",
|
|
445 "pc21-", "pc22-", "pc23", "pc24-", "pc25-"
|
|
446 }};
|
|
447
|
|
448
|
|
449
|
|
450 std::array< std::array<unsigned char, 25>, 48> byte_4ECF08 = // 4ECF08
|
|
451 {{
|
|
452 {2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1},//1
|
|
453 {2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},//2
|
|
454 {2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//3
|
|
455 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//4
|
|
456 {2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//5
|
|
457 {2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//6
|
|
458 {2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//7
|
|
459 {2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1},//8
|
|
460 {2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2},//9
|
|
461 {2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//10
|
|
462 {2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},//11
|
|
463 {1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2},//12
|
|
464 {2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//13
|
|
465 {1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2},//14
|
|
466 {2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2},//15
|
|
467 {1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1},//16
|
|
468 {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//17
|
|
469 {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1},//18
|
|
470 {1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//19
|
|
471 {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//20
|
|
472 {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//21
|
|
473 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//22
|
|
474 {2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1},//23
|
|
475 {2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//24
|
|
476 {1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1},//25
|
|
477 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//26
|
|
478 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2},//27
|
|
479 {1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//28
|
|
480 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1},//29
|
|
481 {1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1},//30
|
|
482 {1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1},//31
|
|
483 {1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},//32
|
|
484 {1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1},//33
|
|
485 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1},//34
|
|
486 {1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//35
|
|
487 {1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//36
|
|
488 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//37
|
|
489 {2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1},//38
|
|
490 {1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1},//39
|
|
491 {1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//40
|
|
492 {2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1},//41
|
|
493 {1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1},//42
|
|
494 {1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//43
|
|
495 {1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2},//44
|
|
496 {2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2},//45
|
|
497 {1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2},//46
|
|
498 {1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1},//47
|
|
499 {1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1},//48
|
|
500 }};
|
|
501 std::array<std::array<unsigned char, 8>, 110> SoundSetAction = // 4ED3D8
|
|
502 {{
|
|
503 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
504 {38, 0, 0, 37, 38, 45, 0, 0},
|
|
505 {37, 0, 0, 47, 53, 0, 0, 0},
|
|
506 { 2, 0, 0, 25, 0, 0, 0, 0},
|
|
507 { 1, 0, 0, 47, 0, 0, 0, 0},
|
|
508 { 3, 0, 0, 41, 42, 0, 0, 0},
|
|
509 { 0, 0, 0, 33, 0, 0, 0, 0},
|
|
510 { 5, 0, 0, 21, 22, 23, 24, 45},
|
|
511 { 6, 0, 0, 47, 0, 0, 0, 0},
|
|
512 { 7, 0, 0, 43, 48, 0, 0, 0},
|
|
513 { 8, 0, 0, 38, 0, 0, 0, 0},
|
|
514 { 9, 0, 0, 39, 0, 0, 0, 0},
|
|
515 {13, 0, 0, 37, 38, 0, 0, 0},
|
|
516 {23, 0, 0, 25, 0, 0, 0, 0},
|
|
517 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
518 {25, 0, 0, 25, 0, 0, 0, 0},
|
|
519 {26, 0, 0, 38, 47, 0, 0, 0},
|
|
520 {27, 0, 0, 41, 42, 0, 0, 0},
|
|
521 {28, 0, 0, 25, 0, 0, 0, 0},
|
|
522 { 0, 0, 0, 51, 0, 0, 0, 0},
|
|
523 {30, 0, 0, 25, 0, 0, 0, 0},
|
|
524 {29, 0, 0, 27, 0, 0, 0, 0},
|
|
525 {32, 33, 0, 37, 38, 0, 0, 0},
|
|
526 {34, 0, 0, 53, 0, 0, 0, 0},
|
|
527 {15, 0, 0, 34, 35, 36, 0, 0},
|
|
528 { 0, 0, 0, 3, 0, 0, 0, 0},
|
|
529 {22, 0, 0, 5, 0, 0, 0, 0},
|
|
530 {20, 0, 0, 8, 0, 0, 0, 0},
|
|
531 {20, 0, 0, 9, 0, 0, 0, 0},
|
|
532 {19, 0, 0, 7, 0, 0, 0, 0},
|
|
533 {21, 0, 0, 2, 0, 0, 0, 0},
|
|
534 {18, 0, 0, 6, 0, 0, 0, 0},
|
|
535 { 0, 0, 0, 11, 0, 0, 0, 0},
|
|
536 {17, 0, 0, 0, 0, 0, 0, 0},
|
|
537 { 0, 0, 0, 12, 0, 0, 0, 0},
|
|
538 {17, 0, 0, 0, 0, 0, 0, 0},
|
|
539 { 0, 0, 0, 37, 0, 0, 0, 0},
|
|
540 { 0, 0, 0, 49, 0, 0, 0, 0},
|
|
541 {24, 0, 0, 25, 0, 0, 0, 0},
|
|
542 {31, 0, 0, 25, 0, 0, 0, 0},
|
|
543 { 0, 0, 0, 41, 42, 0, 0, 0},
|
|
544 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
545 { 0, 0, 0, 46, 0, 0, 0, 0},
|
|
546 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
547 { 0, 0, 0, 41, 42, 0, 0, 0},
|
|
548 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
549 {41, 0, 0, 21, 0, 0, 0, 0},
|
|
550 {40, 0, 0, 21, 0, 0, 0, 0},
|
|
551 {16, 0, 0, 46, 0, 0, 0, 0},
|
|
552 { 0, 0, 0, 40, 0, 0, 0, 0},
|
|
553 { 0, 0, 0, 39, 0, 0, 0, 0},
|
|
554 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
555 { 0, 0, 0, 48, 49, 50, 0, 0},
|
|
556 { 0, 0, 0, 44, 0, 0, 0, 0},
|
|
557 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
558 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
559 { 0, 0, 0, 41, 42, 0, 0, 0},
|
|
560 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
561 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
562 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
563 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
564 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
565 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
566 { 0, 0, 0, 31, 0, 0, 0, 0},
|
|
567 { 0, 0, 0, 32, 0, 0, 0, 0},
|
|
568 {47, 0, 0, 46, 0, 0, 0, 0},
|
|
569 {22, 0, 0, 5, 0, 0, 0, 0},
|
|
570 { 0, 0, 0, 25, 0, 0, 0, 0},
|
|
571 { 0, 0, 0, 37, 0, 0, 0, 0},
|
|
572 { 0, 0, 0, 52, 0, 0, 0, 0},
|
|
573 { 0, 0, 0, 45, 0, 0, 0, 0},
|
|
574 { 0, 0, 0, 27, 0, 0, 0, 0},
|
|
575 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
576 { 0, 0, 0, 49, 0, 0, 0, 0},
|
|
577 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
578 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
579 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
580 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
581 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
582 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
583 {44, 0, 0, 39, 48, 0, 0, 0},
|
|
584 { 0, 0, 0, 48, 49, 0, 0, 0},
|
|
585 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
586 { 0, 0, 0, 31, 0, 0, 0, 0},
|
|
587 {32, 33, 0, 37, 38, 0, 0, 0},
|
|
588 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
589 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
590 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
591 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
592 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
593 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
594 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
595 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
596 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
597 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
598 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
599 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
600 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
601 { 0, 0, 0, 5, 0, 0, 0, 0},
|
|
602 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
603 { 0, 0, 0, 44, 0, 0, 0, 0},
|
|
604 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
605 { 4, 0, 0, 0, 0, 0, 0, 0},
|
|
606 { 0, 0, 0, 58, 0, 0, 0, 0},
|
|
607 {10, 0, 0, 45, 0, 0, 0, 0},
|
|
608 {11, 0, 0, 47, 0, 0, 0, 0},
|
|
609 {12, 0, 0, 43, 48, 0, 0, 0},
|
|
610 {39, 0, 0, 48, 0, 0, 0, 0},
|
|
611 {14, 0, 0, 48, 0, 0, 0, 0},
|
|
612 {17, 0, 0, 0, 0, 0, 0, 0}
|
|
613 }};
|
|
614 std::array<__int16, 4> pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing = {34, 149, 264, 379};
|
|
615 std::array< std::array<char, 37>, 36> byte_4ED970_skill_learn_ability_by_class_table =
|
|
616 {{
|
|
617 2, 3, 2, 3, 3, 2, 3, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 2, 1, 0, 1, 2, 2, 0, 3, 0, 0, 1,//Knight
|
|
618 2, 3, 2, 3, 3, 2, 3, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 2, 1, 0, 1, 2, 2, 0, 3, 0, 0, 1,
|
|
619 2, 4, 2, 3, 4, 2, 3, 4, 4, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 0, 2, 1, 0, 1, 2, 2, 0, 4, 0, 0, 1,
|
|
620 2, 4, 2, 3, 4, 2, 3, 4, 4, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 0, 2, 1, 0, 1, 2, 2, 0, 4, 0, 0, 1,
|
|
621
|
|
622 0, 3, 3, 0, 0, 2, 2, 4, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 3, 3, 2, 0, 3, 3, 2, 2,//Thief
|
|
623 0, 3, 3, 0, 0, 2, 2, 4, 1, 3, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 3, 3, 2, 0, 3, 3, 2, 2,
|
|
624 0, 3, 4, 0, 0, 2, 2, 4, 1, 4, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 4, 3, 2, 0, 3, 4, 2, 2,
|
|
625 0, 3, 4, 0, 0, 2, 2, 4, 1, 4, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 4, 3, 2, 0, 3, 4, 2, 2,
|
|
626
|
|
627 3, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 1, 0, 1, 3, 3, 2, 3, 1, 0, 3,//Monk
|
|
628 3, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 0, 2, 1, 0, 2, 3, 3, 2, 3, 1, 0, 3,
|
|
629 4, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 4, 0, 2, 1, 0, 2, 4, 4, 2, 3, 1, 0, 4,
|
|
630 4, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 4, 0, 2, 1, 0, 3, 4, 4, 2, 3, 2, 0, 4,
|
|
631
|
|
632 1, 3, 2, 2, 2, 2, 3, 4, 3, 2, 2, 3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 3, 3, 2, 1, 3, 0, 0, 1, 1, 0, 2, 0, 0, 1,//Paladin
|
|
633 1, 3, 2, 2, 2, 2, 3, 4, 3, 2, 2, 3, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 3, 3, 2, 1, 3, 0, 0, 1, 1, 0, 2, 0, 0, 1,
|
|
634 1, 3, 2, 2, 2, 2, 4, 4, 4, 2, 2, 3, 0, 0, 0, 0, 3, 3, 3, 1, 0, 0, 2, 4, 3, 2, 1, 4, 0, 0, 1, 1, 0, 2, 0, 0, 1,
|
|
635 1, 3, 2, 2, 2, 2, 4, 4, 4, 2, 2, 3, 0, 0, 0, 0, 3, 3, 3, 0, 1, 0, 2, 4, 3, 2, 1, 4, 0, 0, 1, 1, 0, 2, 0, 0, 1,
|
|
636
|
|
637 1, 2, 2, 2, 3, 3, 0, 4, 0, 3, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 0, 0, 1, 2, 1, 0, 2, 0, 0, 3,//Archer
|
|
638 1, 2, 2, 2, 3, 3, 0, 4, 0, 3, 3, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 0, 0, 1, 2, 1, 0, 2, 0, 0, 3,
|
|
639 1, 2, 2, 2, 3, 4, 0, 4, 0, 3, 4, 0, 3, 3, 3, 3, 0, 0, 0, 1, 0, 0, 2, 2, 2, 2, 4, 0, 0, 2, 2, 1, 0, 2, 0, 0, 3,
|
|
640 1, 2, 2, 2, 3, 4, 0, 4, 0, 3, 4, 0, 3, 3, 3, 3, 0, 0, 0, 0, 1, 0, 2, 2, 2, 2, 4, 0, 0, 2, 2, 1, 0, 2, 0, 0, 3,
|
|
641
|
|
642 1, 2, 2, 3, 2, 3, 0, 4, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 3, 2, 2, 1, 2,//Ranger
|
|
643 1, 2, 2, 3, 2, 3, 0, 4, 2, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 3, 2, 2, 1, 2,
|
|
644 1, 2, 2, 4, 2, 3, 0, 4, 2, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 4, 2, 2, 1, 2,
|
|
645 1, 2, 2, 4, 2, 3, 0, 4, 2, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 4, 2, 2, 1, 2,
|
|
646
|
|
647 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 3, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,//Cleric
|
|
648 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 3, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,
|
|
649 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 4, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,
|
|
650 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 4, 4, 4, 0, 4, 0, 4, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,
|
|
651
|
|
652 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 3, 2, 0, 0, 0, 0, 0, 2, 1, 0, 3, 3,//Druid
|
|
653 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 2, 2, 0, 0, 3, 2, 0, 0, 0, 0, 0, 2, 1, 0, 3, 3,
|
|
654 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 2, 2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 2, 1, 0, 4, 3,
|
|
655 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 2, 2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 2, 1, 0, 4, 3,
|
|
656
|
|
657 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 3, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 3, 0, 0, 3, 3,//Sorcerer
|
|
658 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 3, 0, 0, 3, 3,
|
|
659 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 4, 4, 4, 4, 0, 0, 0, 4, 0, 4, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 4, 0, 0, 3, 3,
|
|
660 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 4, 0, 0, 3, 3,
|
|
661 }};
|
|
662 std::array<unsigned int, 2> pHiredNPCsIconsOffsetsX = {489, 559};
|
|
663 std::array<unsigned int, 2> pHiredNPCsIconsOffsetsY = {152, 152};
|
|
664 std::array<int, 2> Party_Spec_Motion_status_ids = {7, 18}; //dword_4EE07C
|
|
665 std::array<__int16, 101> word_4EE088_sound_ids =
|
|
666 {{
|
|
667 0, 10000, 10010, 10020, 10030, 10040, 10050, 10060, 10070, 10080,
|
|
668 10090, 10100, 11000, 11010, 11020, 11030, 11040, 11050, 11060, 11070,
|
|
669 11080, 11090, 11100, 12000, 12010, 12020, 12030, 12040, 12050, 12060,
|
|
670 12070, 12080, 12090, 12100, 13000, 13010, 13020, 13030, 13040, 13050,
|
|
671 13060, 13070, 13080, 13090, 13100, 14000, 14010, 14020, 14030, 14040,
|
|
672 14050, 14060, 14070, 14080, 14090, 14100, 15000, 15010, 15020, 15030,
|
|
673 15040, 15050, 15060, 15070, 15080, 15090, 15100, 16000, 16010, 16020,
|
|
674 16030, 16040, 16050, 16060, 16070, 16080, 16090, 16100, 17000, 17010,
|
|
675 17020, 17030, 17040, 17050, 17060, 17070, 17080, 17090, 17100, 18000,
|
|
676 18010, 18020, 18030, 18040, 18050, 18060, 18070, 18080, 18090, 18100,
|
|
677 1
|
|
678 }};
|
|
679 std::array<short, 28> word_4EE150 =
|
|
680 {{
|
|
681 1, 2, 3, 4, 5, 7, 32, 33, 36, 37, 38, 40, 41, 42, 43, 45, 46,
|
|
682 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60
|
|
683 }};
|
|
684
|
|
685 int ScreenshotFileNumber; // dword_4EFA80
|
|
686 std::array<const char *, 19> off_4F03B8 =
|
|
687 {{
|
|
688 "", "WEPNTABL", "ARMORY", "MAGSHELF",
|
|
689 "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
|
|
690 "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
|
|
691 "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
|
|
692 "MAGSHELF", "MAGSHELF", "MAGSHELF"
|
|
693 }};
|
|
694
|
|
695 std::array<int, 32> guild_mambership_flags={{
|
|
696 54, 54, 54, 54, 52, 52, 52, 52, 55, 55, 55, 55, 53, 53,
|
|
697 53, 53, 58, 58, 58, 58, 57, 57, 57, 57, 56, 56,
|
|
698 56, 56, 59, 59, 60, 60}};
|
|
699 std::array<__int16, 49> word_4F0754;
|
|
700 std::array<__int16, 54> _4F0882_evt_VAR_PlayerItemInHands_vals =
|
|
701 {{
|
|
702 0x0D4, 0x270, 0x0D5, 0x21C, 0x0D6, 0x2BE, 0x0D7, 0x2BD, 0x0D8, 0x289,
|
|
703 0x0D9, 0x258, 0x0DA, 0x2AB, 0x0DB, 0x281, 0x0DC, 0x280, 0x0DD,
|
|
704 0x284, 0x0DE, 0x285, 0x0DF, 0x283, 0x0E0, 0x282, 0x0E1, 0x27F,
|
|
705 0x0E2, 0x1E7, 0x0E3, 0x287, 0x0E4, 0x272, 0x0E5, 0x267, 0x0E6,
|
|
706 0x275, 0x0E7, 0x25A, 0x0E8, 0x2A4, 0x0E9, 0x2A5, 0x0EA, 0x2A3,
|
|
707 0x0EB, 0x25C, 0x0EC, 0x25D, 0x0ED, 0x259, 0x0F1, 0x21E
|
|
708 }};
|
|
709 std::array<unsigned short, 6> pMaxLevelPerTrainingHallType = {5, 15, 25, 25, 200, 200};
|
|
710
|
|
711 std::array<int, 11> price_for_membership={100, 100, 50, 50, 50, 50, 50, 50, 50, 1000, 1000}; // weak
|
|
712
|
|
713
|
|
714 std::array<__int16, 32> word_4F0F30 ={{ 4, 7, 10, 11,
|
|
715 4, 7, 10, 11,
|
|
716 4, 7, 10, 11,
|
|
717 4, 7, 10, 11,
|
|
718 4, 7, 10, 11,
|
|
719 4, 7, 10, 11,
|
|
720 4, 7, 10, 11,
|
|
721 7, 11,
|
|
722 7, 11}};
|
|
723 std::array<int, 500> ai_array_4F5E68;
|
|
724 std::array<int, 500> ai_array_4F6638_actor_ids;
|
|
725 std::array<int, 500> ai_near_actors_targets_pid;
|
|
726 int ai_arrays_size; // weak
|
|
727 std::array<int, 500> ai_near_actors_distances;
|
|
728 std::array<unsigned int, 500> ai_near_actors_ids;
|
|
729 std::array<int, 182> dword_4F8580 = {}; // weak
|
|
730
|
|
731 char byte_4FAA24; // weak
|
|
732 //HWND dword_4FAA28; // idb
|
|
733
|
|
734 std::array<unsigned int, 480> pSRZBufferLineOffsets;
|
|
735 int areWeLoadingTexture; // weak
|
|
736 std::array<char, 777> books_num_items_per_page; // weak
|
|
737 int lloyds_beacon_spell_id; // dword_506338
|
|
738 int lloyds_beacon_sound_id; // dword_50633C
|
|
739 signed int sRecoveryTime; // idb
|
|
740 unsigned int uRequiredMana; // idb
|
|
741 int _506348_current_lloyd_playerid; // weak
|
|
742 __int64 lloyds_beacon_spell_level; // qword_506350
|
|
743 char byte_506360; // weak
|
|
744 int dword_506364; // weak
|
|
745 unsigned int uExitCancelTextureId;
|
|
746 int books_page_number; // weak
|
|
747 int books_primary_item_per_page; // weak
|
|
748 int Autonotes_Instructors_page_flag; // dword_50652C
|
|
749 int Autonotes_Misc_page_flag; //dword_506530
|
|
750 int Book_PageBtn6_flag; //dword_506534
|
|
751 int Book_PageBtn5_flag; //dword_506538
|
|
752 int Book_PageBtn4_flag; // dword_50653C
|
|
753 int Book_PageBtn3_flag; //dword_506540
|
|
754 int BtnDown_flag; //BtnDown_flag
|
|
755 int BtnUp_flag; //BtnUp_flag
|
|
756 int quick_spell_at_page; // weak
|
|
757 char byte_506550; // weak
|
|
758 std::array<const char *, 5> aMoonPhaseNames;
|
|
759 int _506568_autonote_type; // weak
|
|
760 char bRecallingBeacon; // weak
|
|
761 int uLastPointedObjectID; // weak
|
|
762 //unsigned __int8 bMonsterInfoUI_bDollInitialized;
|
|
763 std::array<const char *, 44> aSpellNames;
|
|
764 int pMainScreenNum; // weak
|
|
765 int dword_506980_uW; // weak
|
|
766 int dword_506984_uZ; // weak
|
|
767 int dword_506988_uY; // weak
|
|
768 int dword_50698C_uX; // weak
|
|
769 int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68
|
|
770 std::array<unsigned int, 28> pPrevVirtualCidesMapping;
|
|
771 int KeyboardPageNum; // weak
|
|
772 int uRestUI_FoodRequiredToRest;
|
|
773 int dword_506F14; // weak
|
|
774 int _506F18_num_minutes_to_sleep; // weak
|
|
775 int dword_506F1C; // weak
|
|
776 std::array<int, 20> pVisibleWindowsIdxs; // weak
|
|
777 int uNumVisibleWindows;
|
|
778 char bFlashHistoryBook; // weak
|
|
779 char bFlashAutonotesBook; // weak
|
|
780 char bFlashQuestBook; // weak
|
|
781 int uTextureID_PlayerBuff_PainReflection; // weak
|
|
782 int uTextureID_PlayerBuff_Hammerhands; // weak
|
|
783 int uTextureID_PlayerBuff_Preservation; // weak
|
|
784 int uTextureID_PlayerBuff_Bless; // weak
|
|
785 int uTextureID_Btn_QuickReference; // weak
|
|
786 int uTextureID_Compas; // dword_5079B4
|
|
787 int dword_5079C8; // weak
|
|
788 int dword_5079CC; // weak
|
|
789 int dword_5079D0; // weak
|
|
790 int uTextureID_Minimap_Loop; // dword_5079D8
|
|
791 struct GUIButton *pBtn_ZoomOut; // idb
|
|
792 struct GUIButton *pBtn_ZoomIn; // idb
|
|
793 unsigned int uGameUIFontShadow;
|
|
794 unsigned int uGameUIFontMain;
|
|
795 int dword_507B00_spell_info_to_draw_in_popup; // weak
|
|
796 std::array<const char *, 12> aMonthNames;
|
|
797 std::array<const char *, 7> aDayNames;
|
|
798 std::array<const char *, 9> aSpellSchoolNames;
|
|
799 std::array<const char *, 7> aAttributeNames;
|
|
800 unsigned int uActiveCharacter;
|
|
801 int dword_507BF0_is_there_popup_onscreen; // weak
|
|
802 int awards_scroll_bar_created; // weak
|
|
803 int dword_507CC0_activ_ch; // weak
|
|
804 __int64 GameUI_RightPanel_BookFlashTimer; // weak
|
|
805 int _507CD4_RestUI_hourglass_anim_controller; // weak
|
|
806 bool OpenedTelekinesis;
|
|
807 std::array<int, 50> dword_50B570; // weak
|
|
808 std::array<int, 50> dword_50B638; // weak
|
|
809 stru367 PortalFace;
|
|
810 std::array<int, 100> dword_50BC10; // weak
|
|
811 std::array<int, 100> dword_50BDA0; // weak
|
|
812 std::array<int, 100> _50BF30_actors_in_viewport_ids; // weak
|
|
813 char town_portal_caster_id; // weak
|
|
814 int some_active_character; // weak
|
|
815 std::array<unsigned int, 5> pIconIDs_Turn;
|
|
816 unsigned int uIconID_TurnStop;
|
|
817 unsigned int uIconID_TurnHour;
|
|
818 int uIconID_CharacterFrame; // idb
|
|
819 unsigned int uIconID_TurnStart;
|
|
820 int dword_50C994 = 0; // weak
|
|
821 int dword_50C998_turnbased_icon_1A = 0; // weak
|
|
822 int uSpriteID_Spell11; // idb
|
|
823 bool _50C9A0_IsEnchantingInProgress; // weak
|
|
824 int _50C9A8_item_enchantment_timer = 0; // weak
|
|
825 int _50C9D0_AfterEnchClickEventId; // weak
|
|
826 int _50C9D4_AfterEnchClickEventSecondParam; // weak
|
|
827 int _50C9D8_AfterEnchClickEventTimeout; // weak
|
|
828 int dword_50C9DC; // weak
|
|
829 struct NPCData *ptr_50C9E0;
|
|
830 //int dword_50C9E8; // idb
|
|
831 //int dword_50C9EC[120]; // weak
|
|
832 int dword_50CDC8;
|
|
833 Vec3_int_ layingitem_vel_50FDFC;
|
|
834 char pStartingMapName[32]; // idb
|
|
835 std::array<unsigned __int8, 5> IsPlayerWearingWatersuit;
|
|
836 std::array<char, 54> party_has_equipment;
|
|
837 std::array<char, 17> byte_5111F6_OwnedArtifacts;
|
|
838
|
|
839 unsigned int uNumBlueFacesInBLVMinimap;
|
|
840 std::array<unsigned __int16, 50> pBlueFacesInBLVMinimapIDs;
|
|
841 std::array<int, 14> pTextureIDs_PartyBuffIcons;
|
|
842 unsigned int uIconIdx_FlySpell;
|
|
843 unsigned int uIconIdx_WaterWalk;
|
|
844 int dword_576E28; // weak
|
|
845 int _576E2C_current_minimap_zoom; // weak
|
|
846 __int64 _5773B8_event_timer; // weak
|
|
847
|
|
848
|
|
849 int dword_591084; // weak
|
|
850 struct Actor *pDialogue_SpeakingActor;
|
|
851 unsigned int uDialogueType;
|
|
852 int sDialogue_SpeakingActorNPC_ID;
|
|
853 struct LevelDecoration *_591094_decoration;
|
|
854 std::array<char, 200> sHouseName; // idb
|
|
855 int uCurrentHouse_Animation; // weak
|
|
856 char *dword_591164_teleport_map_name; // idb
|
|
857 int dword_591168_teleport_speedz; // weak
|
|
858 int dword_59116C_teleport_directionx; // weak
|
|
859 int dword_591170_teleport_directiony; // weak
|
|
860 int dword_591174_teleportz; // weak
|
|
861 int dword_591178_teleporty; // weak
|
|
862 int dword_59117C_teleportx; // weak
|
|
863 std::array<std::array<char, 100>, 6> byte_591180; // idb
|
|
864 std::array<struct NPCData *, 7> HouseNPCData;//0 zero element holds standart house npc
|
|
865 GUIButton* HouseNPCPortraitsButtonsList[6];//dword_5913F4
|
|
866 struct Texture *pTexture_591428;
|
|
867 struct Texture *pTexture_outside; // idb
|
|
868 struct Texture *pTexture_Dialogue_Background;
|
|
869 std::array<char, 2000> byte_5B0938;
|
|
870 int EvtTargetObj; // 0x5B5920
|
|
871 int _unused_5B5924_is_travel_ui_drawn = false; // 005B5924
|
|
872 int _5B65A8_npcdata_uflags_or_other; // weak
|
|
873 int _5B65AC_npcdata_fame_or_other; // weak
|
|
874 int _5B65B0_npcdata_rep_or_other; // weak
|
|
875 int _5B65B4_npcdata_loword_house_or_other; // weak
|
|
876 int _5B65B8_npcdata_hiword_house_or_other; // weak
|
|
877 int dword_5B65BC; // weak
|
|
878 int dword_5B65C0; // weak
|
|
879 int dword_5B65C4_cancelEventProcessing; // weak
|
|
880 int MapsLongTimers_count; // dword_5B65C8 ñ÷¸ò÷èê òàéìåðîâ äëÿ êîëîäöåâ, ôàåðâîëîâ-ëîâóøåê
|
|
881 int npcIdToDismissAfterDialogue; // weak
|
|
882 signed int dword_5B65D0_dialogue_actor_npc_id; // weak
|
|
883 int dword_5C3418; // weak
|
|
884 int dword_5C341C; // weak
|
|
885 //std::array<char, 777> byte_5C3427; // weak
|
|
886 std::array<char, 200> GameUI_Footer_TimedString;
|
|
887 std::array<char, 200> pFooterString;
|
|
888 unsigned int GameUI_Footer_TimeLeft;
|
|
889 int bForceDrawFooter; // weak
|
|
890 int _5C35C0_force_party_death = false; // weak
|
|
891 int bDialogueUI_InitializeActor_NPC_ID; // weak
|
|
892 char *p2DEventsTXT_Raw;
|
|
893
|
|
894 int dword_5C35D4; // weak
|
|
895 std::array<const char *, 2> aAMPMNames;
|
|
896 char byte_5C45AF[777]; // weak
|
|
897
|
|
898 std::array<char, 4096> pFinalMessage; // idb
|
|
899 std::array<char, 2000> pTmpBuf;
|
|
900 std::array<char, 2000> pTmpBuf2;
|
|
901 std::array<char, 100> Journal_limitation_factor; // weak
|
|
902 int ui_current_text_color; // weak
|
|
903 __int64 qword_5C6DF0; // weak
|
|
904 int dword_5C6DF8; // weak
|
|
905 std::array<char, 104> item__getname_buffer; // idb
|
|
906 std::array<char *, 36> pClassDescriptions;
|
|
907 std::array<char *, 7> pAttributeDescriptions;
|
|
908 std::array<char *, 38> pGrandSkillDesc;
|
|
909 std::array<char *, 38> pMasterSkillDesc;
|
|
910 std::array<char *, 38> pExpertSkillDesc;
|
|
911 std::array<char *, 38> pNormalSkillDesc;
|
|
912 std::array<char *, 38> pSkillDesc;
|
|
913 char *pHealthPointsAttributeDescription;
|
|
914 char *pSpellPointsAttributeDescription;
|
|
915 char *pArmourClassAttributeDescription;
|
|
916 char *pPlayerConditionAttributeDescription; // idb
|
|
917 char *pFastSpellAttributeDescription;
|
|
918 char *pPlayerAgeAttributeDescription;
|
|
919 char *pPlayerLevelAttributeDescription;
|
|
920 char *pPlayerExperienceAttributeDescription;
|
|
921 char *pAttackBonusAttributeDescription;
|
|
922 char *pAttackDamageAttributeDescription;
|
|
923 char *pMissleBonusAttributeDescription;
|
|
924 char *pMissleDamageAttributeDescription;
|
|
925 char *pFireResistanceAttributeDescription;
|
|
926 char *pAirResistanceAttributeDescription;
|
|
927 char *pWaterResistanceAttributeDescription;
|
|
928 char *pEarthResistanceAttributeDescription;
|
|
929 char *pMindResistanceAttributeDescription;
|
|
930 char *pBodyResistanceAttributeDescription;
|
|
931 char *pSkillPointsAttributeDescription;
|
|
932 char *pClassTXT_Raw;
|
|
933 char *pStatsTXT_Raw;
|
|
934 char *pSkillDescTXT_Raw;
|
|
935
|
|
936 struct FactionTable *pFactionTable;
|
|
937 //std::array<char, 777> byte_5C8D1A; // weak
|
|
938
|
|
939 std::array<char, 777> byte_5E4C15; // weak
|
|
940 std::array<const char *, 14> pSomeItemsNames;
|
|
941
|
|
942 char *pMonstersTXT_Raw;
|
|
943 char *pMonsterPlacementTXT_Raw;
|
|
944 char *pSpellsTXT_Raw;
|
|
945 char *pMapStatsTXT_Raw;
|
|
946 char *pHostileTXT_Raw;
|
|
947 char *pPotionsTXT_Raw;
|
|
948 char *pPotionNotesTXT_Raw;
|
|
949
|
|
950 std::array<int, 777> _6807B8_level_decorations_ids; // idb
|
|
951 int _6807E0_num_decorations_with_sounds_6807B8; // weak
|
|
952 std::array<int, 3000> event_triggers; // 6807E8
|
|
953 size_t num_event_triggers; // 6836C8
|
|
954 std::array<int, 64> dword_69B010;
|
|
955 float flt_69B138_dist; // weak
|
|
956 char byte_69BD41_unused; // weak
|
|
957 unsigned int uTextureID_x_u;
|
|
958 unsigned int uTextureID_LS_saveU;
|
|
959 unsigned int uTextureID_LS_loadU;
|
|
960 unsigned int uTextureID_AR_DN_DN;
|
|
961 unsigned int uTextureID_AR_UP_DN;
|
|
962 unsigned int uTextureID_LS_;
|
|
963 unsigned int uTextureID_x_d;
|
|
964 unsigned int uTextureID_save_up;
|
|
965 unsigned int uTextureID_load_up;
|
|
966 unsigned int uTextureID_loadsave;
|
|
967 int pSaveListPosition; // weak
|
|
968 unsigned int uLoadGameUI_SelectedSlot;
|
|
969 HWND hInsertCDWindow; // idb
|
|
970 int uCPUSpeed; // weak
|
|
971 char cMM7GameCDDriveLetter; // idb
|
|
972 MENU_STATE sCurrentMenuID;
|
|
973 unsigned int uGameState;
|
|
974 int uDefaultTravelTime_ByFoot; // weak
|
|
975 int day_attrib; // weak
|
|
976 int day_fogrange_1; // weak
|
|
977 int day_fogrange_2; // weak
|
|
978 struct TileTable *pTileTable; // idb
|
|
979 int outdoor_grid_band_1; // idb
|
|
980 int outdoor_grid_band_2; // idb
|
|
981 int outdoor_grid_band_3; // idb
|
|
982 std::array<char, 777> pDefaultSkyTexture; // idb
|
|
983 std::array<char, 16> byte_6BE124_cfg_textures_DefaultGroundTexture; // idb
|
|
984 int _6BE134_odm_main_tile_group; // weak
|
|
985 int dword_6BE138; // weak
|
|
986 int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
|
|
987 float fWalkSpeedMultiplier = 1.0f; // weak
|
|
988 float fBackwardWalkSpeedMultiplier = 1.0f; // weak
|
|
989 float fTurnSpeedMultiplier = 1.0f; // weak
|
|
990 float flt_6BE150_look_up_down_dangle = 1.0f; // weak
|
|
991 //HWND hWnd; // idb
|
|
992 bool FORCE_16_BITS = false;
|
|
993 class OSWindow *window = nullptr;
|
|
994 char pCurrentMapName[32]; // idb
|
|
995 unsigned int uLevelMapStatsID;
|
|
996 int dword_6BE364_game_settings_1 = 0;
|
|
997 int dword_6BE368_debug_settings_2 = 0;
|
|
998 unsigned __int8 bCanLoadFromCD = false;
|
|
999 int bShowDamage; // idb
|
|
1000 unsigned int bAlwaysRun;
|
|
1001 unsigned int bFlipOnExit;
|
|
1002 unsigned int uTurnSpeed;
|
|
1003 float flt_6BE3A0 = 0.55000001f; // weak
|
|
1004 float flt_6BE3A4_debug_recmod1;
|
|
1005 float flt_6BE3A8_debug_recmod2;
|
|
1006 float flt_6BE3AC_debug_recmod1_x_1_6;
|
|
1007 std::array<char, 20> byte_6BE3B0; // idb
|
|
1008 char bUnderwater = false; // weak
|
|
1009 char bNoNPCHiring = false; // weak
|
|
1010 unsigned int bNoVideo = false;
|
|
1011 bool bNoIntro = false;
|
|
1012 bool bNoLogo = false;
|
|
1013 bool bNoCD = false;
|
|
1014 bool bNoSound = false;
|
|
1015 std::array<int, 100> dword_720020_zvalues;
|
|
1016 std::array<int, 299> dword_7201B0_zvalues;
|
|
1017 int uTextureID_720980; // weak
|
|
1018 std::array<__int16, 104> word_7209A0_intercepts_ys_plus_ys;
|
|
1019 std::array<__int16, 104> word_720A70_intercepts_xs_plus_xs;
|
|
1020 std::array<__int16, 104> word_720B40_intercepts_zs;
|
|
1021 std::array<__int16, 102> word_720C10_intercepts_xs;
|
|
1022 std::array<__int16, 777> word_720CE0_ys; // idb
|
|
1023 std::array<__int16, 777> word_720DB0_xs; // idb
|
|
1024 std::array<int, 20> dword_720E80;
|
|
1025 std::array<int, 20> dword_720ED0;
|
|
1026 std::array<int, 20> ceiling_height_level;
|
|
1027 std::array<__int16, 104> odm_floor_face_vert_coord_Y; // word_720F70
|
|
1028 std::array<__int16, 104> odm_floor_face_vert_coord_X; // word_721040
|
|
1029 std::array<int, 20> current_Face_id; // dword_721110
|
|
1030 std::array<int, 20> current_BModel_id; // dword_721160
|
|
1031 std::array<int, 20> odm_floor_level; // idb
|
|
1032 int blv_prev_party_x; // weak
|
|
1033 int blv_prev_party_z; // weak
|
|
1034 int blv_prev_party_y; // weak
|
|
1035 std::array<NPCTopic, 789> pNPCTopics;
|
|
1036 std::array<const char *, 513> pQuestTable;
|
|
1037 char *dword_723718_autonote_related; // idb
|
|
1038 std::array<const char *, 82> pScrolls;
|
|
1039 int dword_7241C8; // weak
|
|
1040 std::array<const char *, 59> aNPCProfessionNames;
|
|
1041 char *pAwardsTXT_Raw;
|
|
1042 char *pScrollsTXT_Raw;
|
|
1043 char *pMerchantsTXT_Raw;
|
|
1044 std::array<const char *, 7> pMerchantsBuyPhrases;
|
|
1045 std::array<const char *, 7> pMerchantsSellPhrases;
|
|
1046 std::array<const char *, 7> pMerchantsRepairPhrases;
|
|
1047 std::array<const char *, 7> pMerchantsIdentifyPhrases;
|
|
1048 char *pTransitionsTXT_Raw;
|
|
1049 char *pAutonoteTXT_Raw;
|
|
1050 char *pQuestsTXT_Raw;
|
|
1051 unsigned int uNumTerrainNormals;
|
|
1052 struct Vec3_float_ *pTerrainNormals;
|
|
1053 std::array<unsigned short, 128 * 128 * 2> pTerrainNormalIndices;
|
|
1054 std::array<unsigned int, 128 * 128 * 2> pTerrainSomeOtherData;
|
|
1055 int dword_A74C88; // weak
|
|
1056 unsigned int uPlayerCreationUI_SkySliderPos;
|
|
1057 int uPlayerCreationUI_ArrowAnim;
|
|
1058 unsigned int uPlayerCreationUI_SelectedCharacter;
|
|
1059 int dword_A74CDC; // weak
|
|
1060 struct Texture *pTexture_PlayerFaceMask;
|
|
1061 struct Texture *pTexture_PlayerFaceEradicated;
|
|
1062 struct Texture *pTexture_PlayerFaceDead;
|
|
1063 std::array< std::array<struct Texture *, 56>, 4> pTextures_PlayerFaces;
|
|
1064 __int64 _A750D8_player_speech_timer; // qword_A750D8
|
|
1065 enum PlayerSpeech PlayerSpeechID;
|
|
1066 int uSpeakingCharacter; // weak
|
|
1067 std::array<const char *, 36> pClassNames;
|
|
1068 std::array<const char *, 19> aCharacterConditionNames;
|
|
1069 std::array<const char *, 38> pSkillNames;
|
|
1070 char byte_AE5B91; // weak
|
|
1071 std::array<int, 32> dword_F1B430; // weak
|
|
1072 //int dword_F8B144; // nexindex [-1] to the following
|
|
1073 std::array<int, 4> player_levels = {{1, 1, 1, 1}};
|
|
1074 std::array<__int16, 6> weapons_Ypos; // word_F8B158
|
|
1075 struct Texture *ShopTexture; // idb
|
|
1076 std::array<struct Texture *, 12> ItemsInShopTexture;
|
|
1077 __int16 bountyHunting_monster_id_for_hunting; // word_F8B1A0
|
|
1078 const char *bountyHunting_text; // word_F8B1A4
|
|
1079 int contract_approved; // weak
|
|
1080 int dword_F8B1AC_award_bit_number; // idb
|
|
1081 int dword_F8B1B0_MasteryBeingTaught; // weak
|
|
1082 int gold_transaction_amount; // F8B1B4
|
|
1083 std::array<char *, 4> pShopOptions;
|
|
1084 int dword_F8B1D8; // weak
|
|
1085 int dword_F8B1E0; // weak
|
|
1086 int dword_F8B1E4; // weak
|
|
1087 const char *current_npc_text; // idb
|
|
1088 char dialogue_show_profession_details = false; // F8B1EC
|
|
1089 std::array<char, 777> byte_F8B1EF; // weak
|
|
1090 std::array<char, 4> byte_F8B1F0;
|
|
1091
|
|
1092 int bGameoverLoop = 0; // weak
|
|
1093 std::array<__int16, 104> intersect_face_vertex_coords_list_a; // word_F8BC48
|
|
1094 std::array<__int16, 104> intersect_face_vertex_coords_list_b; // word_F8BD18 |