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 int uTextureID_Compas; // dword_5079B4
|
|
786 int dword_5079C8; // weak
|
|
787 int dword_5079CC; // weak
|
|
788 int dword_5079D0; // weak
|
|
789 int uTextureID_Minimap_Loop; // dword_5079D8
|
|
790 struct GUIButton *pBtn_ZoomOut; // idb
|
|
791 struct GUIButton *pBtn_ZoomIn; // idb
|
|
792 unsigned int uGameUIFontShadow;
|
|
793 unsigned int uGameUIFontMain;
|
|
794 int dword_507B00_spell_info_to_draw_in_popup; // weak
|
|
795 std::array<const char *, 12> aMonthNames;
|
|
796 std::array<const char *, 7> aDayNames;
|
|
797 std::array<const char *, 9> aSpellSchoolNames;
|
|
798 std::array<const char *, 7> aAttributeNames;
|
|
799 unsigned int uActiveCharacter;
|
|
800 int dword_507BF0_is_there_popup_onscreen; // weak
|
|
801 int awards_scroll_bar_created; // weak
|
|
802 int dword_507CC0_activ_ch; // weak
|
|
803 __int64 GameUI_RightPanel_BookFlashTimer; // weak
|
|
804 int _507CD4_RestUI_hourglass_anim_controller; // weak
|
|
805 bool OpenedTelekinesis;
|
|
806 std::array<int, 50> dword_50B570; // weak
|
|
807 std::array<int, 50> dword_50B638; // weak
|
|
808 stru367 PortalFace;
|
|
809 std::array<int, 100> dword_50BC10; // weak
|
|
810 std::array<int, 100> dword_50BDA0; // weak
|
|
811 std::array<int, 100> _50BF30_actors_in_viewport_ids; // weak
|
|
812 char town_portal_caster_id; // weak
|
|
813 int some_active_character; // weak
|
|
814 std::array<unsigned int, 5> pIconIDs_Turn;
|
|
815 unsigned int uIconID_TurnStop;
|
|
816 unsigned int uIconID_TurnHour;
|
|
817 int uIconID_CharacterFrame; // idb
|
|
818 unsigned int uIconID_TurnStart;
|
|
819 int dword_50C994 = 0; // weak
|
|
820 int dword_50C998_turnbased_icon_1A = 0; // weak
|
|
821 int uSpriteID_Spell11; // idb
|
|
822 bool _50C9A0_IsEnchantingInProgress; // weak
|
|
823 int _50C9A8_item_enchantment_timer = 0; // weak
|
|
824 int _50C9D0_AfterEnchClickEventId; // weak
|
|
825 int _50C9D4_AfterEnchClickEventSecondParam; // weak
|
|
826 int _50C9D8_AfterEnchClickEventTimeout; // weak
|
|
827 int dword_50C9DC; // weak
|
|
828 struct NPCData *ptr_50C9E0;
|
|
829 //int dword_50C9E8; // idb
|
|
830 //int dword_50C9EC[120]; // weak
|
|
831 int dword_50CDC8;
|
|
832 Vec3_int_ layingitem_vel_50FDFC;
|
|
833 char pStartingMapName[32]; // idb
|
|
834 std::array<unsigned __int8, 5> IsPlayerWearingWatersuit;
|
|
835 std::array<char, 54> party_has_equipment;
|
|
836 std::array<char, 17> byte_5111F6_OwnedArtifacts;
|
|
837
|
|
838 unsigned int uNumBlueFacesInBLVMinimap;
|
|
839 std::array<unsigned __int16, 50> pBlueFacesInBLVMinimapIDs;
|
|
840 std::array<int, 14> pTextureIDs_PartyBuffIcons;
|
|
841 unsigned int uIconIdx_FlySpell;
|
|
842 unsigned int uIconIdx_WaterWalk;
|
|
843 int dword_576E28; // weak
|
|
844 int _576E2C_current_minimap_zoom; // weak
|
|
845 __int64 _5773B8_event_timer; // weak
|
|
846
|
|
847
|
|
848 int dword_591084; // weak
|
|
849 struct Actor *pDialogue_SpeakingActor;
|
|
850 unsigned int uDialogueType;
|
|
851 int sDialogue_SpeakingActorNPC_ID;
|
|
852 struct LevelDecoration *_591094_decoration;
|
|
853 std::array<char, 200> sHouseName; // idb
|
|
854 int uCurrentHouse_Animation; // weak
|
|
855 char *dword_591164_teleport_map_name; // idb
|
|
856 int dword_591168_teleport_speedz; // weak
|
|
857 int dword_59116C_teleport_directionx; // weak
|
|
858 int dword_591170_teleport_directiony; // weak
|
|
859 int dword_591174_teleportz; // weak
|
|
860 int dword_591178_teleporty; // weak
|
|
861 int dword_59117C_teleportx; // weak
|
|
862 std::array<std::array<char, 100>, 6> byte_591180; // idb
|
|
863 std::array<struct NPCData *, 7> HouseNPCData;//0 zero element holds standart house npc
|
|
864 GUIButton* HouseNPCPortraitsButtonsList[6];//dword_5913F4
|
|
865 struct Texture *pTexture_591428;
|
|
866 struct Texture *pTexture_outside; // idb
|
|
867 struct Texture *pTexture_Dialogue_Background;
|
|
868 std::array<char, 2000> byte_5B0938;
|
|
869 int EvtTargetObj; // 0x5B5920
|
|
870 int _unused_5B5924_is_travel_ui_drawn = false; // 005B5924
|
|
871 int _5B65A8_npcdata_uflags_or_other; // weak
|
|
872 int _5B65AC_npcdata_fame_or_other; // weak
|
|
873 int _5B65B0_npcdata_rep_or_other; // weak
|
|
874 int _5B65B4_npcdata_loword_house_or_other; // weak
|
|
875 int _5B65B8_npcdata_hiword_house_or_other; // weak
|
|
876 int dword_5B65BC; // weak
|
|
877 int dword_5B65C0; // weak
|
|
878 int dword_5B65C4_cancelEventProcessing; // weak
|
|
879 int MapsLongTimers_count; // dword_5B65C8 ñ÷¸ò÷èê òàéìåðîâ äëÿ êîëîäöåâ, ôàåðâîëîâ-ëîâóøåê
|
|
880 int npcIdToDismissAfterDialogue; // weak
|
|
881 signed int dword_5B65D0_dialogue_actor_npc_id; // weak
|
|
882 int dword_5C3418; // weak
|
|
883 int dword_5C341C; // weak
|
|
884 //std::array<char, 777> byte_5C3427; // weak
|
|
885 std::array<char, 200> GameUI_Footer_TimedString;
|
|
886 std::array<char, 200> pFooterString;
|
|
887 unsigned int GameUI_Footer_TimeLeft;
|
|
888 int bForceDrawFooter; // weak
|
|
889 int _5C35C0_force_party_death = false; // weak
|
|
890 int bDialogueUI_InitializeActor_NPC_ID; // weak
|
|
891 char *p2DEventsTXT_Raw;
|
|
892
|
|
893 int dword_5C35D4; // weak
|
|
894 std::array<const char *, 2> aAMPMNames;
|
|
895 char byte_5C45AF[777]; // weak
|
|
896
|
|
897 std::array<char, 4096> pFinalMessage; // idb
|
|
898 std::array<char, 2000> pTmpBuf;
|
|
899 std::array<char, 2000> pTmpBuf2;
|
|
900 std::array<char, 100> Journal_limitation_factor; // weak
|
|
901 int ui_current_text_color; // weak
|
|
902 __int64 qword_5C6DF0; // weak
|
|
903 int dword_5C6DF8; // weak
|
|
904 std::array<char, 104> item__getname_buffer; // idb
|
|
905 std::array<char *, 36> pClassDescriptions;
|
|
906 std::array<char *, 7> pAttributeDescriptions;
|
|
907 std::array<char *, 38> pGrandSkillDesc;
|
|
908 std::array<char *, 38> pMasterSkillDesc;
|
|
909 std::array<char *, 38> pExpertSkillDesc;
|
|
910 std::array<char *, 38> pNormalSkillDesc;
|
|
911 std::array<char *, 38> pSkillDesc;
|
|
912 char *pHealthPointsAttributeDescription;
|
|
913 char *pSpellPointsAttributeDescription;
|
|
914 char *pArmourClassAttributeDescription;
|
|
915 char *pPlayerConditionAttributeDescription; // idb
|
|
916 char *pFastSpellAttributeDescription;
|
|
917 char *pPlayerAgeAttributeDescription;
|
|
918 char *pPlayerLevelAttributeDescription;
|
|
919 char *pPlayerExperienceAttributeDescription;
|
|
920 char *pAttackBonusAttributeDescription;
|
|
921 char *pAttackDamageAttributeDescription;
|
|
922 char *pMissleBonusAttributeDescription;
|
|
923 char *pMissleDamageAttributeDescription;
|
|
924 char *pFireResistanceAttributeDescription;
|
|
925 char *pAirResistanceAttributeDescription;
|
|
926 char *pWaterResistanceAttributeDescription;
|
|
927 char *pEarthResistanceAttributeDescription;
|
|
928 char *pMindResistanceAttributeDescription;
|
|
929 char *pBodyResistanceAttributeDescription;
|
|
930 char *pSkillPointsAttributeDescription;
|
|
931 char *pClassTXT_Raw;
|
|
932 char *pStatsTXT_Raw;
|
|
933 char *pSkillDescTXT_Raw;
|
|
934
|
|
935 struct FactionTable *pFactionTable;
|
|
936 //std::array<char, 777> byte_5C8D1A; // weak
|
|
937
|
|
938 std::array<char, 777> byte_5E4C15; // weak
|
|
939 std::array<const char *, 14> pSomeItemsNames;
|
|
940
|
|
941 char *pMonstersTXT_Raw;
|
|
942 char *pMonsterPlacementTXT_Raw;
|
|
943 char *pSpellsTXT_Raw;
|
|
944 char *pMapStatsTXT_Raw;
|
|
945 char *pHostileTXT_Raw;
|
|
946 char *pPotionsTXT_Raw;
|
|
947 char *pPotionNotesTXT_Raw;
|
|
948
|
|
949 std::array<int, 777> _6807B8_level_decorations_ids; // idb
|
|
950 int _6807E0_num_decorations_with_sounds_6807B8; // weak
|
|
951 std::array<int, 3000> event_triggers; // 6807E8
|
|
952 size_t num_event_triggers; // 6836C8
|
|
953 std::array<int, 64> dword_69B010;
|
|
954 float flt_69B138_dist; // weak
|
|
955 char byte_69BD41_unused; // weak
|
|
956 unsigned int uTextureID_x_u;
|
|
957 unsigned int uTextureID_LS_saveU;
|
|
958 unsigned int uTextureID_LS_loadU;
|
|
959 unsigned int uTextureID_AR_DN_DN;
|
|
960 unsigned int uTextureID_AR_UP_DN;
|
|
961 unsigned int uTextureID_LS_;
|
|
962 unsigned int uTextureID_x_d;
|
|
963 unsigned int uTextureID_save_up;
|
|
964 unsigned int uTextureID_load_up;
|
|
965 unsigned int uTextureID_loadsave;
|
|
966 int pSaveListPosition; // weak
|
|
967 unsigned int uLoadGameUI_SelectedSlot;
|
|
968 HWND hInsertCDWindow; // idb
|
|
969 char cMM7GameCDDriveLetter; // idb
|
|
970 MENU_STATE sCurrentMenuID;
|
|
971 unsigned int uGameState;
|
|
972 int uDefaultTravelTime_ByFoot; // weak
|
|
973 int day_attrib; // weak
|
|
974 int day_fogrange_1; // weak
|
|
975 int day_fogrange_2; // weak
|
|
976 struct TileTable *pTileTable; // idb
|
|
977 std::array<char, 777> pDefaultSkyTexture; // idb
|
|
978 std::array<char, 16> byte_6BE124_cfg_textures_DefaultGroundTexture; // idb
|
|
979 int _6BE134_odm_main_tile_group; // weak
|
|
980 int dword_6BE138; // weak
|
|
981 int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
|
|
982 float fWalkSpeedMultiplier = 1.0f; // weak
|
|
983 float fBackwardWalkSpeedMultiplier = 1.0f; // weak
|
|
984 float fTurnSpeedMultiplier = 1.0f; // weak
|
|
985 float flt_6BE150_look_up_down_dangle = 1.0f; // weak
|
|
986 //HWND hWnd; // idb
|
|
987 bool FORCE_16_BITS = false;
|
|
988 class OSWindow *window = nullptr;
|
|
989 char pCurrentMapName[32]; // idb
|
|
990 unsigned int uLevelMapStatsID;
|
|
991 int dword_6BE364_game_settings_1 = 0;
|
|
992 int dword_6BE368_debug_settings_2 = 0;
|
|
993 unsigned __int8 bCanLoadFromCD = false;
|
|
994 int bShowDamage; // idb
|
|
995 unsigned int bAlwaysRun;
|
|
996 unsigned int bFlipOnExit;
|
|
997 unsigned int uTurnSpeed;
|
|
998 float flt_6BE3A0 = 0.55000001f; // weak
|
|
999 float flt_6BE3A4_debug_recmod1;
|
|
1000 float flt_6BE3A8_debug_recmod2;
|
|
1001 float flt_6BE3AC_debug_recmod1_x_1_6;
|
|
1002 std::array<char, 20> byte_6BE3B0; // idb
|
|
1003 char bUnderwater = false; // weak
|
|
1004 char bNoNPCHiring = false; // weak
|
|
1005 unsigned int bNoVideo = false;
|
|
1006 bool bNoIntro = false;
|
|
1007 bool bNoLogo = false;
|
|
1008 bool bNoCD = false;
|
|
1009 bool bNoSound = false;
|
|
1010 std::array<int, 100> dword_720020_zvalues;
|
|
1011 std::array<int, 299> dword_7201B0_zvalues;
|
|
1012 int uTextureID_720980; // weak
|
|
1013 std::array<__int16, 104> word_7209A0_intercepts_ys_plus_ys;
|
|
1014 std::array<__int16, 104> word_720A70_intercepts_xs_plus_xs;
|
|
1015 std::array<__int16, 104> word_720B40_intercepts_zs;
|
|
1016 std::array<__int16, 102> word_720C10_intercepts_xs;
|
|
1017 std::array<__int16, 777> word_720CE0_ys; // idb
|
|
1018 std::array<__int16, 777> word_720DB0_xs; // idb
|
|
1019 std::array<int, 20> dword_720E80;
|
|
1020 std::array<int, 20> dword_720ED0;
|
|
1021 std::array<int, 20> ceiling_height_level;
|
|
1022 std::array<__int16, 104> odm_floor_face_vert_coord_Y; // word_720F70
|
|
1023 std::array<__int16, 104> odm_floor_face_vert_coord_X; // word_721040
|
|
1024 std::array<int, 20> current_Face_id; // dword_721110
|
|
1025 std::array<int, 20> current_BModel_id; // dword_721160
|
|
1026 std::array<int, 20> odm_floor_level; // idb
|
|
1027 int blv_prev_party_x; // weak
|
|
1028 int blv_prev_party_z; // weak
|
|
1029 int blv_prev_party_y; // weak
|
|
1030 std::array<NPCTopic, 789> pNPCTopics;
|
|
1031 std::array<const char *, 513> pQuestTable;
|
|
1032 char *dword_723718_autonote_related; // idb
|
|
1033 std::array<const char *, 82> pScrolls;
|
|
1034 int dword_7241C8; // weak
|
|
1035 std::array<const char *, 59> aNPCProfessionNames;
|
|
1036 char *pAwardsTXT_Raw;
|
|
1037 char *pScrollsTXT_Raw;
|
|
1038 char *pMerchantsTXT_Raw;
|
|
1039 std::array<const char *, 7> pMerchantsBuyPhrases;
|
|
1040 std::array<const char *, 7> pMerchantsSellPhrases;
|
|
1041 std::array<const char *, 7> pMerchantsRepairPhrases;
|
|
1042 std::array<const char *, 7> pMerchantsIdentifyPhrases;
|
|
1043 char *pTransitionsTXT_Raw;
|
|
1044 char *pAutonoteTXT_Raw;
|
|
1045 char *pQuestsTXT_Raw;
|
|
1046 unsigned int uNumTerrainNormals;
|
|
1047 struct Vec3_float_ *pTerrainNormals;
|
|
1048 std::array<unsigned short, 128 * 128 * 2> pTerrainNormalIndices;
|
|
1049 std::array<unsigned int, 128 * 128 * 2> pTerrainSomeOtherData;
|
|
1050 int dword_A74C88; // weak
|
|
1051 unsigned int uPlayerCreationUI_SkySliderPos;
|
|
1052 int uPlayerCreationUI_ArrowAnim;
|
|
1053 unsigned int uPlayerCreationUI_SelectedCharacter;
|
|
1054 int dword_A74CDC; // weak
|
|
1055 struct Texture *pTexture_PlayerFaceMask;
|
|
1056 struct Texture *pTexture_PlayerFaceEradicated;
|
|
1057 struct Texture *pTexture_PlayerFaceDead;
|
|
1058 std::array< std::array<struct Texture *, 56>, 4> pTextures_PlayerFaces;
|
|
1059 __int64 _A750D8_player_speech_timer; // qword_A750D8
|
|
1060 enum PlayerSpeech PlayerSpeechID;
|
|
1061 int uSpeakingCharacter; // weak
|
|
1062 std::array<const char *, 36> pClassNames;
|
|
1063 std::array<const char *, 19> aCharacterConditionNames;
|
|
1064 std::array<const char *, 38> pSkillNames;
|
|
1065 char byte_AE5B91; // weak
|
|
1066 std::array<int, 32> dword_F1B430; // weak
|
|
1067 //int dword_F8B144; // nexindex [-1] to the following
|
|
1068 std::array<int, 4> player_levels = {{1, 1, 1, 1}};
|
|
1069 std::array<__int16, 6> weapons_Ypos; // word_F8B158
|
|
1070 struct Texture *ShopTexture; // idb
|
|
1071 std::array<struct Texture *, 12> ItemsInShopTexture;
|
|
1072 __int16 bountyHunting_monster_id_for_hunting; // word_F8B1A0
|
|
1073 const char *bountyHunting_text; // word_F8B1A4
|
|
1074 int contract_approved; // weak
|
|
1075 int dword_F8B1AC_award_bit_number; // idb
|
|
1076 int dword_F8B1B0_MasteryBeingTaught; // weak
|
|
1077 int gold_transaction_amount; // F8B1B4
|
|
1078 std::array<char *, 4> pShopOptions;
|
|
1079 int dword_F8B1D8; // weak
|
|
1080 int dword_F8B1E0; // weak
|
|
1081 int dword_F8B1E4; // weak
|
|
1082 const char *current_npc_text; // idb
|
|
1083 char dialogue_show_profession_details = false; // F8B1EC
|
|
1084 std::array<char, 777> byte_F8B1EF; // weak
|
|
1085 std::array<char, 4> byte_F8B1F0;
|
|
1086
|
|
1087 int bGameoverLoop = 0; // weak
|
|
1088 std::array<__int16, 104> intersect_face_vertex_coords_list_a; // word_F8BC48
|
|
1089 std::array<__int16, 104> intersect_face_vertex_coords_list_b; // word_F8BD18 |