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