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
|
|
686 std::array<int, 32> guild_mambership_flags={{
|
|
687 54, 54, 54, 54, 52, 52, 52, 52, 55, 55, 55, 55, 53, 53,
|
|
688 53, 53, 58, 58, 58, 58, 57, 57, 57, 57, 56, 56,
|
|
689 56, 56, 59, 59, 60, 60}};
|
|
690 std::array<__int16, 49> word_4F0754;
|
|
691 std::array<__int16, 54> _4F0882_evt_VAR_PlayerItemInHands_vals =
|
|
692 {{
|
|
693 0x0D4, 0x270, 0x0D5, 0x21C, 0x0D6, 0x2BE, 0x0D7, 0x2BD, 0x0D8, 0x289,
|
|
694 0x0D9, 0x258, 0x0DA, 0x2AB, 0x0DB, 0x281, 0x0DC, 0x280, 0x0DD,
|
|
695 0x284, 0x0DE, 0x285, 0x0DF, 0x283, 0x0E0, 0x282, 0x0E1, 0x27F,
|
|
696 0x0E2, 0x1E7, 0x0E3, 0x287, 0x0E4, 0x272, 0x0E5, 0x267, 0x0E6,
|
|
697 0x275, 0x0E7, 0x25A, 0x0E8, 0x2A4, 0x0E9, 0x2A5, 0x0EA, 0x2A3,
|
|
698 0x0EB, 0x25C, 0x0EC, 0x25D, 0x0ED, 0x259, 0x0F1, 0x21E
|
|
699 }};
|
|
700 std::array<unsigned short, 6> pMaxLevelPerTrainingHallType = {5, 15, 25, 25, 200, 200};
|
|
701
|
|
702 std::array<int, 11> price_for_membership={100, 100, 50, 50, 50, 50, 50, 50, 50, 1000, 1000}; // weak
|
|
703
|
|
704
|
|
705 std::array<__int16, 32> word_4F0F30 ={{ 4, 7, 10, 11,
|
|
706 4, 7, 10, 11,
|
|
707 4, 7, 10, 11,
|
|
708 4, 7, 10, 11,
|
|
709 4, 7, 10, 11,
|
|
710 4, 7, 10, 11,
|
|
711 4, 7, 10, 11,
|
|
712 7, 11,
|
|
713 7, 11}};
|
|
714 std::array<int, 500> ai_array_4F5E68;
|
|
715 std::array<int, 500> ai_array_4F6638_actor_ids;
|
|
716 std::array<int, 500> ai_near_actors_targets_pid;
|
|
717 int ai_arrays_size; // weak
|
|
718 std::array<int, 500> ai_near_actors_distances;
|
|
719 std::array<unsigned int, 500> ai_near_actors_ids;
|
|
720 std::array<int, 182> dword_4F8580 = {}; // weak
|
|
721
|
|
722 char byte_4FAA24; // weak
|
|
723 //HWND dword_4FAA28; // idb
|
|
724
|
|
725 std::array<unsigned int, 480> pSRZBufferLineOffsets;
|
|
726 int areWeLoadingTexture; // weak
|
|
727 std::array<char, 777> books_num_items_per_page; // weak
|
|
728 int lloyds_beacon_spell_id; // dword_506338
|
|
729 int lloyds_beacon_sound_id; // dword_50633C
|
|
730 signed int sRecoveryTime; // idb
|
|
731 unsigned int uRequiredMana; // idb
|
|
732 int _506348_current_lloyd_playerid; // weak
|
|
733 __int64 lloyds_beacon_spell_level; // qword_506350
|
|
734 char byte_506360; // weak
|
|
735 int dword_506364; // weak
|
|
736 int books_page_number; // weak
|
|
737 int books_primary_item_per_page; // weak
|
|
738 int Autonotes_Instructors_page_flag; // dword_50652C
|
|
739 int Autonotes_Misc_page_flag; //dword_506530
|
|
740 int Book_PageBtn6_flag; //dword_506534
|
|
741 int Book_PageBtn5_flag; //dword_506538
|
|
742 int Book_PageBtn4_flag; // dword_50653C
|
|
743 int Book_PageBtn3_flag; //dword_506540
|
|
744 int BtnDown_flag; //BtnDown_flag
|
|
745 int BtnUp_flag; //BtnUp_flag
|
|
746 int quick_spell_at_page; // weak
|
|
747 char byte_506550; // weak
|
|
748 std::array<const char *, 5> aMoonPhaseNames;
|
|
749 int _506568_autonote_type; // weak
|
|
750 char bRecallingBeacon; // weak
|
|
751 int uLastPointedObjectID; // weak
|
|
752 //unsigned __int8 bMonsterInfoUI_bDollInitialized;
|
|
753 std::array<const char *, 44> aSpellNames;
|
2541
|
754 enum CURRENT_SCREEN prev_screen_type; // weak
|
2499
|
755 int dword_506980_uW; // weak
|
|
756 int dword_506984_uZ; // weak
|
|
757 int dword_506988_uY; // weak
|
|
758 int dword_50698C_uX; // weak
|
|
759 int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68
|
|
760 std::array<unsigned int, 28> pPrevVirtualCidesMapping;
|
|
761 int KeyboardPageNum; // weak
|
|
762 int uRestUI_FoodRequiredToRest;
|
2542
|
763 int _506F14_resting_stage; // weak
|
2499
|
764 int _506F18_num_minutes_to_sleep; // weak
|
|
765 int dword_506F1C; // weak
|
|
766 std::array<int, 20> pVisibleWindowsIdxs; // weak
|
|
767 int uNumVisibleWindows;
|
|
768 char bFlashHistoryBook; // weak
|
|
769 char bFlashAutonotesBook; // weak
|
|
770 char bFlashQuestBook; // weak
|
|
771 int uTextureID_PlayerBuff_PainReflection; // weak
|
|
772 int uTextureID_PlayerBuff_Hammerhands; // weak
|
|
773 int uTextureID_PlayerBuff_Preservation; // weak
|
|
774 int uTextureID_PlayerBuff_Bless; // weak
|
|
775 int uTextureID_Btn_QuickReference; // weak
|
|
776 struct GUIButton *pBtn_ZoomOut; // idb
|
|
777 struct GUIButton *pBtn_ZoomIn; // idb
|
|
778 unsigned int uGameUIFontShadow;
|
|
779 unsigned int uGameUIFontMain;
|
|
780 int dword_507B00_spell_info_to_draw_in_popup; // weak
|
|
781 std::array<const char *, 12> aMonthNames;
|
|
782 std::array<const char *, 7> aDayNames;
|
|
783 std::array<const char *, 9> aSpellSchoolNames;
|
|
784 std::array<const char *, 7> aAttributeNames;
|
|
785 unsigned int uActiveCharacter;
|
|
786 int dword_507BF0_is_there_popup_onscreen; // weak
|
|
787 int awards_scroll_bar_created; // weak
|
|
788 int dword_507CC0_activ_ch; // weak
|
|
789 __int64 GameUI_RightPanel_BookFlashTimer; // weak
|
|
790 int _507CD4_RestUI_hourglass_anim_controller; // weak
|
|
791 bool OpenedTelekinesis;
|
|
792 std::array<int, 50> dword_50B570; // weak
|
|
793 std::array<int, 50> dword_50B638; // weak
|
|
794 stru367 PortalFace;
|
|
795 std::array<int, 100> dword_50BC10; // weak
|
|
796 std::array<int, 100> dword_50BDA0; // weak
|
|
797 std::array<int, 100> _50BF30_actors_in_viewport_ids; // weak
|
|
798 char town_portal_caster_id; // weak
|
|
799 int some_active_character; // weak
|
|
800 std::array<unsigned int, 5> pIconIDs_Turn;
|
|
801 unsigned int uIconID_TurnStop;
|
|
802 unsigned int uIconID_TurnHour;
|
|
803 int uIconID_CharacterFrame; // idb
|
|
804 unsigned int uIconID_TurnStart;
|
|
805 int dword_50C994 = 0; // weak
|
|
806 int dword_50C998_turnbased_icon_1A = 0; // weak
|
|
807 int uSpriteID_Spell11; // idb
|
|
808 bool _50C9A0_IsEnchantingInProgress; // weak
|
|
809 int _50C9A8_item_enchantment_timer = 0; // weak
|
|
810 int _50C9D0_AfterEnchClickEventId; // weak
|
|
811 int _50C9D4_AfterEnchClickEventSecondParam; // weak
|
|
812 int _50C9D8_AfterEnchClickEventTimeout; // weak
|
|
813 int dword_50C9DC; // weak
|
|
814 struct NPCData *ptr_50C9E0;
|
|
815 //int dword_50C9E8; // idb
|
|
816 //int dword_50C9EC[120]; // weak
|
|
817 int dword_50CDC8;
|
|
818 Vec3_int_ layingitem_vel_50FDFC;
|
|
819 char pStartingMapName[32]; // idb
|
|
820 std::array<unsigned __int8, 5> IsPlayerWearingWatersuit;
|
|
821 std::array<char, 54> party_has_equipment;
|
|
822 std::array<char, 17> byte_5111F6_OwnedArtifacts;
|
|
823
|
|
824 unsigned int uNumBlueFacesInBLVMinimap;
|
|
825 std::array<unsigned __int16, 50> pBlueFacesInBLVMinimapIDs;
|
|
826 std::array<int, 14> pTextureIDs_PartyBuffIcons;
|
|
827 unsigned int uIconIdx_FlySpell;
|
|
828 unsigned int uIconIdx_WaterWalk;
|
|
829 int dword_576E28; // weak
|
|
830 int _576E2C_current_minimap_zoom; // weak
|
|
831 __int64 _5773B8_event_timer; // weak
|
|
832
|
|
833
|
|
834 int dword_591084; // weak
|
|
835 struct Actor *pDialogue_SpeakingActor;
|
|
836 unsigned int uDialogueType;
|
|
837 int sDialogue_SpeakingActorNPC_ID;
|
|
838 struct LevelDecoration *_591094_decoration;
|
|
839 std::array<char, 200> sHouseName; // idb
|
|
840 int uCurrentHouse_Animation; // weak
|
|
841 char *dword_591164_teleport_map_name; // idb
|
|
842 int dword_591168_teleport_speedz; // weak
|
|
843 int dword_59116C_teleport_directionx; // weak
|
|
844 int dword_591170_teleport_directiony; // weak
|
|
845 int dword_591174_teleportz; // weak
|
|
846 int dword_591178_teleporty; // weak
|
|
847 int dword_59117C_teleportx; // weak
|
|
848 std::array<std::array<char, 100>, 6> byte_591180; // idb
|
|
849 std::array<struct NPCData *, 7> HouseNPCData;//0 zero element holds standart house npc
|
|
850 GUIButton* HouseNPCPortraitsButtonsList[6];//dword_5913F4
|
|
851 struct Texture *pTexture_outside; // idb
|
|
852 struct Texture *pTexture_Dialogue_Background;
|
|
853 std::array<char, 2000> byte_5B0938;
|
|
854 int EvtTargetObj; // 0x5B5920
|
|
855 int _unused_5B5924_is_travel_ui_drawn = false; // 005B5924
|
|
856 int _5B65A8_npcdata_uflags_or_other; // weak
|
|
857 int _5B65AC_npcdata_fame_or_other; // weak
|
|
858 int _5B65B0_npcdata_rep_or_other; // weak
|
|
859 int _5B65B4_npcdata_loword_house_or_other; // weak
|
|
860 int _5B65B8_npcdata_hiword_house_or_other; // weak
|
|
861 int dword_5B65BC; // weak
|
|
862 int dword_5B65C0; // weak
|
|
863 int dword_5B65C4_cancelEventProcessing; // weak
|
|
864 int MapsLongTimers_count; // dword_5B65C8 ñ÷¸ò÷èê òàéìåðîâ äëÿ êîëîäöåâ, ôàåðâîëîâ-ëîâóøåê
|
|
865 int npcIdToDismissAfterDialogue; // weak
|
|
866 signed int dword_5B65D0_dialogue_actor_npc_id; // weak
|
|
867 int dword_5C3418; // weak
|
|
868 int dword_5C341C; // weak
|
|
869 //std::array<char, 777> byte_5C3427; // weak
|
|
870 std::array<char, 200> GameUI_Footer_TimedString;
|
|
871 std::array<char, 200> pFooterString;
|
|
872 unsigned int GameUI_Footer_TimeLeft;
|
|
873 int bForceDrawFooter; // weak
|
|
874 int _5C35C0_force_party_death = false; // weak
|
|
875 int bDialogueUI_InitializeActor_NPC_ID; // weak
|
|
876 char *p2DEventsTXT_Raw;
|
|
877
|
|
878 int dword_5C35D4; // weak
|
|
879 std::array<const char *, 2> aAMPMNames;
|
|
880 char byte_5C45AF[777]; // weak
|
|
881
|
|
882 std::array<char, 4096> pFinalMessage; // idb
|
|
883 std::array<char, 2000> pTmpBuf;
|
|
884 std::array<char, 2000> pTmpBuf2;
|
|
885 std::array<char, 100> Journal_limitation_factor; // weak
|
|
886 int ui_current_text_color; // weak
|
|
887 __int64 qword_5C6DF0; // weak
|
|
888 int dword_5C6DF8; // weak
|
|
889 std::array<char, 104> item__getname_buffer; // idb
|
|
890 std::array<char *, 36> pClassDescriptions;
|
|
891 std::array<char *, 7> pAttributeDescriptions;
|
|
892 std::array<char *, 38> pGrandSkillDesc;
|
|
893 std::array<char *, 38> pMasterSkillDesc;
|
|
894 std::array<char *, 38> pExpertSkillDesc;
|
|
895 std::array<char *, 38> pNormalSkillDesc;
|
|
896 std::array<char *, 38> pSkillDesc;
|
|
897 char *pHealthPointsAttributeDescription;
|
|
898 char *pSpellPointsAttributeDescription;
|
|
899 char *pArmourClassAttributeDescription;
|
|
900 char *pPlayerConditionAttributeDescription; // idb
|
|
901 char *pFastSpellAttributeDescription;
|
|
902 char *pPlayerAgeAttributeDescription;
|
|
903 char *pPlayerLevelAttributeDescription;
|
|
904 char *pPlayerExperienceAttributeDescription;
|
|
905 char *pAttackBonusAttributeDescription;
|
|
906 char *pAttackDamageAttributeDescription;
|
|
907 char *pMissleBonusAttributeDescription;
|
|
908 char *pMissleDamageAttributeDescription;
|
|
909 char *pFireResistanceAttributeDescription;
|
|
910 char *pAirResistanceAttributeDescription;
|
|
911 char *pWaterResistanceAttributeDescription;
|
|
912 char *pEarthResistanceAttributeDescription;
|
|
913 char *pMindResistanceAttributeDescription;
|
|
914 char *pBodyResistanceAttributeDescription;
|
|
915 char *pSkillPointsAttributeDescription;
|
|
916 char *pClassTXT_Raw;
|
|
917 char *pStatsTXT_Raw;
|
|
918 char *pSkillDescTXT_Raw;
|
|
919
|
|
920 struct FactionTable *pFactionTable;
|
|
921 //std::array<char, 777> byte_5C8D1A; // weak
|
|
922
|
|
923 std::array<char, 777> byte_5E4C15; // weak
|
|
924 std::array<const char *, 14> pSomeItemsNames;
|
|
925
|
|
926 char *pMonstersTXT_Raw;
|
|
927 char *pMonsterPlacementTXT_Raw;
|
|
928 char *pSpellsTXT_Raw;
|
|
929 char *pMapStatsTXT_Raw;
|
|
930 char *pHostileTXT_Raw;
|
|
931 char *pPotionsTXT_Raw;
|
|
932 char *pPotionNotesTXT_Raw;
|
|
933
|
|
934 std::array<int, 777> _6807B8_level_decorations_ids; // idb
|
|
935 int _6807E0_num_decorations_with_sounds_6807B8; // weak
|
|
936 std::array<int, 3000> event_triggers; // 6807E8
|
|
937 size_t num_event_triggers; // 6836C8
|
|
938 std::array<int, 64> dword_69B010;
|
|
939 float flt_69B138_dist; // weak
|
|
940 char byte_69BD41_unused; // weak
|
|
941 unsigned int uTextureID_AR_DN_DN;
|
|
942 unsigned int uTextureID_AR_UP_DN;
|
|
943 unsigned int uTextureID_LS_;
|
|
944 unsigned int uTextureID_x_d;
|
|
945 int pSaveListPosition; // weak
|
|
946 unsigned int uLoadGameUI_SelectedSlot;
|
|
947 HWND hInsertCDWindow; // idb
|
|
948 char cMM7GameCDDriveLetter; // idb
|
|
949 MENU_STATE sCurrentMenuID;
|
|
950 unsigned int uGameState;
|
|
951 int uDefaultTravelTime_ByFoot; // weak
|
|
952 int day_attrib; // weak
|
|
953 int day_fogrange_1; // weak
|
|
954 int day_fogrange_2; // weak
|
|
955 struct TileTable *pTileTable; // idb
|
|
956 std::array<char, 777> pDefaultSkyTexture; // idb
|
|
957 std::array<char, 16> byte_6BE124_cfg_textures_DefaultGroundTexture; // idb
|
|
958 int _6BE134_odm_main_tile_group; // weak
|
|
959 int dword_6BE138; // weak
|
|
960 int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
|
|
961 float fWalkSpeedMultiplier = 1.0f; // weak
|
|
962 float fBackwardWalkSpeedMultiplier = 1.0f; // weak
|
|
963 float fTurnSpeedMultiplier = 1.0f; // weak
|
|
964 float flt_6BE150_look_up_down_dangle = 1.0f; // weak
|
|
965 //HWND hWnd; // idb
|
|
966 bool FORCE_16_BITS = false;
|
|
967 class OSWindow *window = nullptr;
|
|
968 char pCurrentMapName[32]; // idb
|
|
969 unsigned int uLevelMapStatsID;
|
|
970 int dword_6BE364_game_settings_1 = 0;
|
|
971 int dword_6BE368_debug_settings_2 = 0;
|
|
972 unsigned __int8 bCanLoadFromCD = false;
|
|
973 int bShowDamage; // idb
|
|
974 unsigned int bAlwaysRun;
|
|
975 unsigned int bFlipOnExit;
|
|
976 unsigned int uTurnSpeed;
|
|
977 float flt_6BE3A0 = 0.55000001f; // weak
|
|
978 float flt_6BE3A4_debug_recmod1;
|
|
979 float flt_6BE3A8_debug_recmod2;
|
|
980 float flt_6BE3AC_debug_recmod1_x_1_6;
|
|
981 std::array<char, 20> byte_6BE3B0; // idb
|
|
982 char bUnderwater = false; // weak
|
|
983 char bNoNPCHiring = false; // weak
|
|
984 unsigned int bNoVideo = false;
|
|
985 bool bNoIntro = false;
|
|
986 bool bNoLogo = false;
|
|
987 bool bNoCD = false;
|
|
988 bool bNoSound = false;
|
|
989 std::array<int, 100> dword_720020_zvalues;
|
|
990 std::array<int, 299> dword_7201B0_zvalues;
|
|
991 int uTextureID_720980; // weak
|
|
992 std::array<__int16, 104> word_7209A0_intercepts_ys_plus_ys;
|
|
993 std::array<__int16, 104> word_720A70_intercepts_xs_plus_xs;
|
|
994 std::array<__int16, 104> word_720B40_intercepts_zs;
|
|
995 std::array<__int16, 102> word_720C10_intercepts_xs;
|
|
996 std::array<__int16, 777> word_720CE0_ys; // idb
|
|
997 std::array<__int16, 777> word_720DB0_xs; // idb
|
|
998 std::array<int, 20> dword_720E80;
|
|
999 std::array<int, 20> dword_720ED0;
|
|
1000 std::array<int, 20> ceiling_height_level;
|
|
1001 std::array<__int16, 104> odm_floor_face_vert_coord_Y; // word_720F70
|
|
1002 std::array<__int16, 104> odm_floor_face_vert_coord_X; // word_721040
|
|
1003 std::array<int, 20> current_Face_id; // dword_721110
|
|
1004 std::array<int, 20> current_BModel_id; // dword_721160
|
|
1005 std::array<int, 20> odm_floor_level; // idb
|
|
1006 int blv_prev_party_x; // weak
|
|
1007 int blv_prev_party_z; // weak
|
|
1008 int blv_prev_party_y; // weak
|
|
1009 std::array<NPCTopic, 789> pNPCTopics;
|
|
1010 std::array<const char *, 513> pQuestTable;
|
|
1011 char *dword_723718_autonote_related; // idb
|
|
1012 std::array<const char *, 82> pScrolls;
|
|
1013 int dword_7241C8; // weak
|
|
1014 std::array<const char *, 59> aNPCProfessionNames;
|
|
1015 char *pAwardsTXT_Raw;
|
|
1016 char *pScrollsTXT_Raw;
|
|
1017 char *pMerchantsTXT_Raw;
|
|
1018 std::array<const char *, 7> pMerchantsBuyPhrases;
|
|
1019 std::array<const char *, 7> pMerchantsSellPhrases;
|
|
1020 std::array<const char *, 7> pMerchantsRepairPhrases;
|
|
1021 std::array<const char *, 7> pMerchantsIdentifyPhrases;
|
|
1022 char *pTransitionsTXT_Raw;
|
|
1023 char *pAutonoteTXT_Raw;
|
|
1024 char *pQuestsTXT_Raw;
|
|
1025 unsigned int uNumTerrainNormals;
|
|
1026 struct Vec3_float_ *pTerrainNormals;
|
|
1027 std::array<unsigned short, 128 * 128 * 2> pTerrainNormalIndices;
|
|
1028 std::array<unsigned int, 128 * 128 * 2> pTerrainSomeOtherData;
|
|
1029 int dword_A74C88; // weak
|
|
1030 unsigned int uPlayerCreationUI_SkySliderPos;
|
|
1031 int uPlayerCreationUI_ArrowAnim;
|
|
1032 unsigned int uPlayerCreationUI_SelectedCharacter;
|
|
1033 int dword_A74CDC; // weak
|
|
1034 struct Texture *pTexture_PlayerFaceMask;
|
|
1035 struct Texture *pTexture_PlayerFaceEradicated;
|
|
1036 struct Texture *pTexture_PlayerFaceDead;
|
|
1037 std::array< std::array<struct Texture *, 56>, 4> pTextures_PlayerFaces;
|
|
1038 __int64 _A750D8_player_speech_timer; // qword_A750D8
|
|
1039 enum PlayerSpeech PlayerSpeechID;
|
|
1040 int uSpeakingCharacter; // weak
|
|
1041 std::array<const char *, 36> pClassNames;
|
|
1042 std::array<const char *, 19> aCharacterConditionNames;
|
|
1043 std::array<const char *, 38> pSkillNames;
|
|
1044 char byte_AE5B91; // weak
|
|
1045 std::array<int, 32> dword_F1B430; // weak
|
|
1046 //int dword_F8B144; // nexindex [-1] to the following
|
|
1047 std::array<int, 4> player_levels = {{1, 1, 1, 1}};
|
|
1048 std::array<__int16, 6> weapons_Ypos; // word_F8B158
|
|
1049 std::array<struct Texture *, 12> ItemsInShopTexture;
|
|
1050 __int16 bountyHunting_monster_id_for_hunting; // word_F8B1A0
|
|
1051 const char *bountyHunting_text; // word_F8B1A4
|
|
1052 int contract_approved; // weak
|
|
1053 int dword_F8B1AC_award_bit_number; // idb
|
|
1054 int dword_F8B1B0_MasteryBeingTaught; // weak
|
|
1055 int gold_transaction_amount; // F8B1B4
|
|
1056 std::array<char *, 4> pShopOptions;
|
|
1057 int dword_F8B1D8; // weak
|
|
1058 int dword_F8B1E0; // weak
|
|
1059 int dword_F8B1E4; // weak
|
|
1060 const char *current_npc_text; // idb
|
|
1061 char dialogue_show_profession_details = false; // F8B1EC
|
|
1062 std::array<char, 777> byte_F8B1EF; // weak
|
|
1063 std::array<char, 4> byte_F8B1F0;
|
|
1064
|
|
1065 int bGameoverLoop = 0; // weak
|
|
1066 std::array<__int16, 104> intersect_face_vertex_coords_list_a; // word_F8BC48
|
|
1067 std::array<__int16, 104> intersect_face_vertex_coords_list_b; // word_F8BD18 |