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