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
|
|
239
|
|
240 #include "Engine/Tables/PlayerFrameTable.h"
|
|
241 struct PlayerFrameTable *pPlayerFrameTable; // idb
|
|
242
|
|
243
|
|
244 std::array<stat_coord, 26> stat_string_coord = //4E2940
|
|
245 {{
|
|
246 {0x1A, 0x39, 0xDC, 0x12},
|
|
247 {0x1A, 0x4A, 0xDC, 0x12},
|
|
248 {0x1A, 0x5B, 0xDC, 0x12},
|
|
249 {0x1A, 0x6C, 0xDC, 0x12},
|
|
250 {0x1A, 0x7D, 0xDC, 0x12},
|
|
251 {0x1A, 0x8E, 0xDC, 0x12},
|
|
252 {0x1A, 0x9F, 0xDC, 0x12},
|
|
253 {0x1A, 0xC6, 0xDC, 0x12},
|
|
254 {0x1A, 0xD7, 0xDC, 0x12},
|
|
255 {0x1A, 0xE8, 0xDC, 0x12},
|
|
256 {0x1A, 0x10C, 0xDC, 0x12},
|
|
257 {0x1A, 0x11E, 0xDC, 0x12},
|
|
258 {0x111, 0x36, 0xBA, 0x12},
|
|
259 {0x111, 0x47, 0xBA, 0x12},
|
|
260 {0x111, 0x58, 0xBA, 0x12},
|
|
261 {0x111, 0x7E, 0xBA, 0x12},
|
|
262 {0x111, 0x8F, 0xBA, 0x12},
|
|
263 {0x111, 0xA0, 0xBA, 0x12},
|
|
264 {0x111, 0xB1, 0xBA, 0x12},
|
|
265 {0x111, 0xCA, 0xBA, 0x12},
|
|
266 {0x111, 0xDD, 0xBA, 0x12},
|
|
267 {0x111, 0xF0, 0xBA, 0x12},
|
|
268 {0x111, 0x103, 0xBA, 0x12},
|
|
269 {0x111, 0x116, 0xBA, 0x12},
|
|
270 {0x111, 0x129, 0xBA, 0x12},
|
|
271 {0x13E, 0x12, 0x89, 0x12},
|
|
272 }
|
|
273 };
|
|
274
|
|
275
|
|
276
|
|
277
|
|
278
|
|
279 #include "stru314.h"
|
|
280 #include "stru367.h"
|
|
281
|
|
282
|
|
283
|
|
284 //-------------------------------------------------------------------------
|
|
285 // Data declarations
|
|
286
|
|
287 int game_starting_year = 0;
|
|
288 unsigned int game_viewport_width;
|
|
289 unsigned int game_viewport_height;
|
|
290 int game_viewport_x;
|
|
291 int game_viewport_y;
|
|
292 int game_viewport_z;
|
|
293 int game_viewport_w;
|
|
294
|
|
295
|
|
296
|
|
297 std::array<unsigned int, 2> saveload_dlg_xs = {82, 0};
|
|
298 std::array<unsigned int, 2> saveload_dlg_ys = {60, 0};
|
|
299 std::array<unsigned int, 2> saveload_dlg_zs = {460, 640};
|
|
300 std::array<unsigned int, 2> saveload_dlg_ws = {344, 480};
|
|
301 int pWindowList_at_506F50_minus1_indexing[1];
|
|
302 int dword_4C9890[10]; // weak
|
|
303 int dword_4C9920[16]; // weak
|
|
304 char byte_4D864C; // weak
|
|
305 float flt_4D86CC = 1.0f; // weak
|
|
306 int dword_4D86D8 = 0x40000000; // weak
|
|
307
|
|
308
|
|
309
|
|
310
|
|
311
|
|
312
|
|
313
|
|
314 float flt_4D84E8 = 0.0f;
|
|
315
|
2541
|
316 enum CURRENT_SCREEN current_screen_type = SCREEN_VIDEO; // 004E28F8
|
|
317 unsigned int uGammaPos = 0;
|
2499
|
318 std::array<int, 8> BtnTurnCoord =
|
|
319 {{
|
|
320 0xA4, 0x5D, 0x16, 0xB, 0x5, 0xD, 0x7, 0x3B,
|
|
321 }}; // weak
|
|
322 std::array<__int16, 4> RightClickPortraitXmin={{0x14, 0x83, 0xF2, 0x165}};
|
|
323 std::array<__int16, 4> RightClickPortraitXmax={{0x53, 0xC6, 0x138, 0x1A7}};
|
|
324
|
|
325 std::array<unsigned int, 4> pHealthBarPos = {{22, 137, 251, 366}};
|
|
326 std::array<unsigned int, 4> pManaBarPos = {{102, 217, 331, 447}};
|
|
327
|
|
328 std::array<char, 88> monster_popup_y_offsets =
|
|
329 {{
|
|
330 -20, 20, 0, -40, 0, 0, 0, 0, 0, 0, -50,
|
|
331 20, 0, -10, -10, -20, 10, -10, 0, 0, 0, -20,
|
|
332 10, -10, 0, 0, 0, -20, -10, 0, 0, 0, -40,
|
|
333 -20, 0, 0, 0, -50, -30, -30, -30, -30, -30, -30,
|
|
334 0, 0, 0, 0, 0, 0, -20, -20, -20, 20, 20,
|
|
335 20, 10, 10, 10, 10, 10, 10, -90, -60, -40, -20,
|
|
336 -20, -80, -10, 0, 0, -40, 0, 0, 0, -20, 10,
|
|
337 0, 0, 0, 0, 0, 0, -60, 0, 0, 0, 0
|
|
338 }};
|
|
339 unsigned char hourglass_icon_idx = 12; // weak
|
|
340
|
|
341
|
|
342 const char *format_4E2D80 = "\f%05d%s\f00000\n";
|
|
343 //const char *format_4E2DC8 = "\f%05d";
|
|
344 const char *format_4E2DE8 = "\f%05d%s\f00000 - ";
|
|
345 const char *Stat_string_format_2_column_text = "%s\f%05u\r180%s\n";
|
|
346 const char *Stat_string_format_2_column_less_100 = "%s\f%05u\t110%d\f00000 / %d\n";
|
|
347 const char *Stat_string_format_2_column_over_100 = "%s\f%05u\r180%d\f00000 / %d\n";
|
|
348 int dword_4E455C; // weak
|
|
349 std::array<int, 6> dword_4E4560;
|
|
350 std::array<int, 6> dword_4E4578;
|
|
351 std::array<int, 6> dword_4E4590;
|
|
352 std::array<int, 6> dword_4E45A8;
|
|
353 std::array<float, 10> flt_4E4A80 =
|
|
354 {
|
|
355 0.050000001, 0.1, 0.30000001, 0.5, 0.60000002,
|
|
356 1.0, 6.0, 25.0, 50.0, 100.0
|
|
357 };
|
|
358
|
|
359
|
|
360 std::array< std::array<int, 2>, 14> pPartySpellbuffsUI_XYs =
|
|
361 {{
|
|
362 {477, 247}, {497, 247}, {522, 247}, {542, 247}, {564, 247}, {581, 247}, {614, 247},
|
|
363 {477, 279}, {497, 279}, {522, 279}, {542, 279}, {564, 279}, {589, 279}, {612, 279}
|
|
364 }};
|
|
365 std::array<unsigned char, 14> byte_4E5DD8 =
|
|
366 {{
|
|
367 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,
|
|
368 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
|
|
369 }};
|
|
370 std::array<unsigned __int8, 14> pPartySpellbuffsUI_smthns =
|
|
371 {{
|
|
372 14, 1, 10, 4, 7, 2, 9,
|
|
373 3, 6, 15, 8, 3, 12, 0
|
|
374 }};
|
|
375
|
|
376 std::array< std::array<int, 6>, 6> pNPCPortraits_x = // 004E5E50
|
|
377 {{
|
|
378 {521, 0, 0, 0, 0, 0},
|
|
379 {521, 521, 0, 0, 0, 0},
|
|
380 {521, 521, 521, 0, 0, 0},
|
|
381 {521, 486, 564, 521, 0, 0},
|
|
382 {521, 486, 564, 486, 564, 0},
|
|
383 {486, 564, 486, 564, 486, 564}
|
|
384 }};
|
|
385 std::array< std::array<int, 6>, 6> pNPCPortraits_y = // 004E5EE0
|
|
386 {{
|
|
387 {38, 0, 0, 0, 0, 0},
|
|
388 {38, 165, 0, 0, 0, 0},
|
|
389 {38, 133, 228, 0, 0, 0},
|
|
390 {38, 133, 133, 228, 0, 0},
|
|
391 {38, 133, 133, 228, 228, 0},
|
|
392 {38, 38, 133, 133, 228, 228}
|
|
393 }};
|
|
394 std::array<const char *, 11> pHouse_ExitPictures=
|
|
395 {
|
|
396 "",
|
|
397 "ticon01",
|
|
398 "ticon02",
|
|
399 "ticon03",
|
|
400 "ticon04",
|
|
401 "ticon05",
|
|
402 "istairup",
|
|
403 "itrap",
|
|
404 "outside",
|
|
405 "idoor",
|
|
406 "isecdoor"
|
|
407 };
|
|
408
|
|
409 std::array<__int16, 11> word_4E8152 = {0, 0, 0, 90, 8, 2, 70, 20, 10, 50, 30};
|
|
410
|
|
411 char _4E94D0_light_type = 5; // weak
|
|
412 char _4E94D2_light_type = 6; // weak
|
|
413 char _4E94D3_light_type = 10; // weak
|
|
414 int dword_4E98BC_bApplicationActive; // weak
|
|
415 //char *off_4EB080; // idb
|
|
416 std::array<char*, 465> pTransitionStrings = {"", nullptr}; // 004EB080
|
|
417 std::array<const char*, 25> pPlayerPortraitsNames =
|
|
418 {{
|
|
419 "pc01-", "pc02", "pc03", "pc04", "pc05-",
|
|
420 "pc06", "pc07", "pc08", "pc09-", "pc10",
|
|
421 "pc11-", "pc12", "pc13", "pc14", "pc15",
|
|
422 "pc16", "pc17-", "pc18", "pc19", "pc20",
|
|
423 "pc21-", "pc22-", "pc23", "pc24-", "pc25-"
|
|
424 }};
|
|
425
|
|
426
|
|
427
|
|
428 std::array< std::array<unsigned char, 25>, 48> byte_4ECF08 = // 4ECF08
|
|
429 {{
|
|
430 {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
|
|
431 {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
|
|
432 {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
|
|
433 {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
|
|
434 {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
|
|
435 {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
|
|
436 {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
|
|
437 {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
|
|
438 {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
|
|
439 {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
|
|
440 {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
|
|
441 {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
|
|
442 {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
|
|
443 {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
|
|
444 {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
|
|
445 {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
|
|
446 {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
|
|
447 {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
|
|
448 {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
|
|
449 {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
|
|
450 {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
|
|
451 {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
|
|
452 {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
|
|
453 {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
|
|
454 {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
|
|
455 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//26
|
|
456 {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
|
|
457 {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
|
|
458 {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
|
|
459 {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
|
|
460 {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
|
|
461 {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
|
|
462 {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
|
|
463 {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
|
|
464 {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
|
|
465 {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
|
|
466 {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
|
|
467 {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
|
|
468 {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
|
|
469 {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
|
|
470 {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
|
|
471 {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
|
|
472 {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
|
|
473 {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
|
|
474 {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
|
|
475 {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
|
|
476 {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
|
|
477 {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
|
|
478 }};
|
|
479 std::array<std::array<unsigned char, 8>, 110> SoundSetAction = // 4ED3D8
|
|
480 {{
|
|
481 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
482 {38, 0, 0, 37, 38, 45, 0, 0},
|
|
483 {37, 0, 0, 47, 53, 0, 0, 0},
|
|
484 { 2, 0, 0, 25, 0, 0, 0, 0},
|
|
485 { 1, 0, 0, 47, 0, 0, 0, 0},
|
|
486 { 3, 0, 0, 41, 42, 0, 0, 0},
|
|
487 { 0, 0, 0, 33, 0, 0, 0, 0},
|
|
488 { 5, 0, 0, 21, 22, 23, 24, 45},
|
|
489 { 6, 0, 0, 47, 0, 0, 0, 0},
|
|
490 { 7, 0, 0, 43, 48, 0, 0, 0},
|
|
491 { 8, 0, 0, 38, 0, 0, 0, 0},
|
|
492 { 9, 0, 0, 39, 0, 0, 0, 0},
|
|
493 {13, 0, 0, 37, 38, 0, 0, 0},
|
|
494 {23, 0, 0, 25, 0, 0, 0, 0},
|
|
495 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
496 {25, 0, 0, 25, 0, 0, 0, 0},
|
|
497 {26, 0, 0, 38, 47, 0, 0, 0},
|
|
498 {27, 0, 0, 41, 42, 0, 0, 0},
|
|
499 {28, 0, 0, 25, 0, 0, 0, 0},
|
|
500 { 0, 0, 0, 51, 0, 0, 0, 0},
|
|
501 {30, 0, 0, 25, 0, 0, 0, 0},
|
|
502 {29, 0, 0, 27, 0, 0, 0, 0},
|
|
503 {32, 33, 0, 37, 38, 0, 0, 0},
|
|
504 {34, 0, 0, 53, 0, 0, 0, 0},
|
|
505 {15, 0, 0, 34, 35, 36, 0, 0},
|
|
506 { 0, 0, 0, 3, 0, 0, 0, 0},
|
|
507 {22, 0, 0, 5, 0, 0, 0, 0},
|
|
508 {20, 0, 0, 8, 0, 0, 0, 0},
|
|
509 {20, 0, 0, 9, 0, 0, 0, 0},
|
|
510 {19, 0, 0, 7, 0, 0, 0, 0},
|
|
511 {21, 0, 0, 2, 0, 0, 0, 0},
|
|
512 {18, 0, 0, 6, 0, 0, 0, 0},
|
|
513 { 0, 0, 0, 11, 0, 0, 0, 0},
|
|
514 {17, 0, 0, 0, 0, 0, 0, 0},
|
|
515 { 0, 0, 0, 12, 0, 0, 0, 0},
|
|
516 {17, 0, 0, 0, 0, 0, 0, 0},
|
|
517 { 0, 0, 0, 37, 0, 0, 0, 0},
|
|
518 { 0, 0, 0, 49, 0, 0, 0, 0},
|
|
519 {24, 0, 0, 25, 0, 0, 0, 0},
|
|
520 {31, 0, 0, 25, 0, 0, 0, 0},
|
|
521 { 0, 0, 0, 41, 42, 0, 0, 0},
|
|
522 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
523 { 0, 0, 0, 46, 0, 0, 0, 0},
|
|
524 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
525 { 0, 0, 0, 41, 42, 0, 0, 0},
|
|
526 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
527 {41, 0, 0, 21, 0, 0, 0, 0},
|
|
528 {40, 0, 0, 21, 0, 0, 0, 0},
|
|
529 {16, 0, 0, 46, 0, 0, 0, 0},
|
|
530 { 0, 0, 0, 40, 0, 0, 0, 0},
|
|
531 { 0, 0, 0, 39, 0, 0, 0, 0},
|
|
532 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
533 { 0, 0, 0, 48, 49, 50, 0, 0},
|
|
534 { 0, 0, 0, 44, 0, 0, 0, 0},
|
|
535 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
536 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
537 { 0, 0, 0, 41, 42, 0, 0, 0},
|
|
538 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
539 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
540 { 0, 0, 0, 39, 48, 0, 0, 0},
|
|
541 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
542 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
543 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
544 { 0, 0, 0, 31, 0, 0, 0, 0},
|
|
545 { 0, 0, 0, 32, 0, 0, 0, 0},
|
|
546 {47, 0, 0, 46, 0, 0, 0, 0},
|
|
547 {22, 0, 0, 5, 0, 0, 0, 0},
|
|
548 { 0, 0, 0, 25, 0, 0, 0, 0},
|
|
549 { 0, 0, 0, 37, 0, 0, 0, 0},
|
|
550 { 0, 0, 0, 52, 0, 0, 0, 0},
|
|
551 { 0, 0, 0, 45, 0, 0, 0, 0},
|
|
552 { 0, 0, 0, 27, 0, 0, 0, 0},
|
|
553 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
554 { 0, 0, 0, 49, 0, 0, 0, 0},
|
|
555 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
556 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
557 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
558 { 0, 0, 0, 37, 38, 45, 0, 0},
|
|
559 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
560 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
561 {44, 0, 0, 39, 48, 0, 0, 0},
|
|
562 { 0, 0, 0, 48, 49, 0, 0, 0},
|
|
563 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
564 { 0, 0, 0, 31, 0, 0, 0, 0},
|
|
565 {32, 33, 0, 37, 38, 0, 0, 0},
|
|
566 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
567 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
568 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
569 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
570 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
571 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
572 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
573 { 0, 0, 0, 47, 0, 0, 0, 0},
|
|
574 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
575 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
576 { 0, 0, 0, 0, 0, 0, 0, 0},
|
|
577 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
578 { 0, 0, 0, 38, 0, 0, 0, 0},
|
|
579 { 0, 0, 0, 5, 0, 0, 0, 0},
|
|
580 { 0, 0, 0, 37, 38, 0, 0, 0},
|
|
581 { 0, 0, 0, 44, 0, 0, 0, 0},
|
|
582 { 0, 0, 0, 48, 0, 0, 0, 0},
|
|
583 { 4, 0, 0, 0, 0, 0, 0, 0},
|
|
584 { 0, 0, 0, 58, 0, 0, 0, 0},
|
|
585 {10, 0, 0, 45, 0, 0, 0, 0},
|
|
586 {11, 0, 0, 47, 0, 0, 0, 0},
|
|
587 {12, 0, 0, 43, 48, 0, 0, 0},
|
|
588 {39, 0, 0, 48, 0, 0, 0, 0},
|
|
589 {14, 0, 0, 48, 0, 0, 0, 0},
|
|
590 {17, 0, 0, 0, 0, 0, 0, 0}
|
|
591 }};
|
|
592 std::array<__int16, 4> pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing = {34, 149, 264, 379};
|
|
593 std::array< std::array<char, 37>, 36> byte_4ED970_skill_learn_ability_by_class_table =
|
|
594 {{
|
|
595 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
|
|
596 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,
|
|
597 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,
|
|
598 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,
|
|
599
|
|
600 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
|
|
601 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,
|
|
602 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,
|
|
603 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,
|
|
604
|
|
605 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
|
|
606 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,
|
|
607 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,
|
|
608 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,
|
|
609
|
|
610 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
|
|
611 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,
|
|
612 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,
|
|
613 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,
|
|
614
|
|
615 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
|
|
616 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,
|
|
617 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,
|
|
618 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,
|
|
619
|
|
620 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
|
|
621 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,
|
|
622 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,
|
|
623 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,
|
|
624
|
|
625 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
|
|
626 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,
|
|
627 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,
|
|
628 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,
|
|
629
|
|
630 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
|
|
631 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,
|
|
632 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,
|
|
633 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,
|
|
634
|
|
635 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
|
|
636 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,
|
|
637 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,
|
|
638 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,
|
|
639 }};
|
|
640 std::array<unsigned int, 2> pHiredNPCsIconsOffsetsX = {489, 559};
|
|
641 std::array<unsigned int, 2> pHiredNPCsIconsOffsetsY = {152, 152};
|
|
642 std::array<int, 2> Party_Spec_Motion_status_ids = {7, 18}; //dword_4EE07C
|
|
643 std::array<__int16, 101> word_4EE088_sound_ids =
|
|
644 {{
|
|
645 0, 10000, 10010, 10020, 10030, 10040, 10050, 10060, 10070, 10080,
|
|
646 10090, 10100, 11000, 11010, 11020, 11030, 11040, 11050, 11060, 11070,
|
|
647 11080, 11090, 11100, 12000, 12010, 12020, 12030, 12040, 12050, 12060,
|
|
648 12070, 12080, 12090, 12100, 13000, 13010, 13020, 13030, 13040, 13050,
|
|
649 13060, 13070, 13080, 13090, 13100, 14000, 14010, 14020, 14030, 14040,
|
|
650 14050, 14060, 14070, 14080, 14090, 14100, 15000, 15010, 15020, 15030,
|
|
651 15040, 15050, 15060, 15070, 15080, 15090, 15100, 16000, 16010, 16020,
|
|
652 16030, 16040, 16050, 16060, 16070, 16080, 16090, 16100, 17000, 17010,
|
|
653 17020, 17030, 17040, 17050, 17060, 17070, 17080, 17090, 17100, 18000,
|
|
654 18010, 18020, 18030, 18040, 18050, 18060, 18070, 18080, 18090, 18100,
|
|
655 1
|
|
656 }};
|
|
657 std::array<short, 28> word_4EE150 =
|
|
658 {{
|
|
659 1, 2, 3, 4, 5, 7, 32, 33, 36, 37, 38, 40, 41, 42, 43, 45, 46,
|
|
660 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60
|
|
661 }};
|
|
662
|
|
663 int ScreenshotFileNumber; // dword_4EFA80
|
|
664
|
|
665 std::array<int, 32> guild_mambership_flags={{
|
|
666 54, 54, 54, 54, 52, 52, 52, 52, 55, 55, 55, 55, 53, 53,
|
|
667 53, 53, 58, 58, 58, 58, 57, 57, 57, 57, 56, 56,
|
|
668 56, 56, 59, 59, 60, 60}};
|
|
669 std::array<__int16, 49> word_4F0754;
|
|
670 std::array<__int16, 54> _4F0882_evt_VAR_PlayerItemInHands_vals =
|
|
671 {{
|
|
672 0x0D4, 0x270, 0x0D5, 0x21C, 0x0D6, 0x2BE, 0x0D7, 0x2BD, 0x0D8, 0x289,
|
|
673 0x0D9, 0x258, 0x0DA, 0x2AB, 0x0DB, 0x281, 0x0DC, 0x280, 0x0DD,
|
|
674 0x284, 0x0DE, 0x285, 0x0DF, 0x283, 0x0E0, 0x282, 0x0E1, 0x27F,
|
|
675 0x0E2, 0x1E7, 0x0E3, 0x287, 0x0E4, 0x272, 0x0E5, 0x267, 0x0E6,
|
|
676 0x275, 0x0E7, 0x25A, 0x0E8, 0x2A4, 0x0E9, 0x2A5, 0x0EA, 0x2A3,
|
|
677 0x0EB, 0x25C, 0x0EC, 0x25D, 0x0ED, 0x259, 0x0F1, 0x21E
|
|
678 }};
|
|
679 std::array<unsigned short, 6> pMaxLevelPerTrainingHallType = {5, 15, 25, 25, 200, 200};
|
|
680
|
|
681 std::array<int, 11> price_for_membership={100, 100, 50, 50, 50, 50, 50, 50, 50, 1000, 1000}; // weak
|
|
682
|
|
683
|
|
684 std::array<__int16, 32> word_4F0F30 ={{ 4, 7, 10, 11,
|
|
685 4, 7, 10, 11,
|
|
686 4, 7, 10, 11,
|
|
687 4, 7, 10, 11,
|
|
688 4, 7, 10, 11,
|
|
689 4, 7, 10, 11,
|
|
690 4, 7, 10, 11,
|
|
691 7, 11,
|
|
692 7, 11}};
|
|
693 std::array<int, 500> ai_array_4F5E68;
|
|
694 std::array<int, 500> ai_array_4F6638_actor_ids;
|
|
695 std::array<int, 500> ai_near_actors_targets_pid;
|
|
696 int ai_arrays_size; // weak
|
|
697 std::array<int, 500> ai_near_actors_distances;
|
|
698 std::array<unsigned int, 500> ai_near_actors_ids;
|
|
699 std::array<int, 182> dword_4F8580 = {}; // weak
|
|
700
|
|
701 char byte_4FAA24; // weak
|
|
702 //HWND dword_4FAA28; // idb
|
|
703
|
|
704 std::array<unsigned int, 480> pSRZBufferLineOffsets;
|
|
705 int areWeLoadingTexture; // weak
|
|
706 std::array<char, 777> books_num_items_per_page; // weak
|
|
707 int lloyds_beacon_spell_id; // dword_506338
|
|
708 int lloyds_beacon_sound_id; // dword_50633C
|
|
709 signed int sRecoveryTime; // idb
|
|
710 unsigned int uRequiredMana; // idb
|
|
711 int _506348_current_lloyd_playerid; // weak
|
|
712 __int64 lloyds_beacon_spell_level; // qword_506350
|
|
713 int dword_506364; // weak
|
|
714 int books_page_number; // weak
|
|
715 int books_primary_item_per_page; // weak
|
|
716 int Autonotes_Instructors_page_flag; // dword_50652C
|
|
717 int Autonotes_Misc_page_flag; //dword_506530
|
|
718 int Book_PageBtn6_flag; //dword_506534
|
|
719 int Book_PageBtn5_flag; //dword_506538
|
|
720 int Book_PageBtn4_flag; // dword_50653C
|
|
721 int Book_PageBtn3_flag; //dword_506540
|
|
722 int BtnDown_flag; //BtnDown_flag
|
|
723 int BtnUp_flag; //BtnUp_flag
|
|
724 int quick_spell_at_page; // weak
|
|
725 char byte_506550; // weak
|
|
726 std::array<const char *, 5> aMoonPhaseNames;
|
|
727 int _506568_autonote_type; // weak
|
2574
|
728 bool bRecallingBeacon; // weak
|
2499
|
729 int uLastPointedObjectID; // weak
|
|
730 //unsigned __int8 bMonsterInfoUI_bDollInitialized;
|
|
731 std::array<const char *, 44> aSpellNames;
|
2541
|
732 enum CURRENT_SCREEN prev_screen_type; // weak
|
2499
|
733 int dword_506980_uW; // weak
|
|
734 int dword_506984_uZ; // weak
|
|
735 int dword_506988_uY; // weak
|
|
736 int dword_50698C_uX; // weak
|
|
737 int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68
|
|
738 std::array<unsigned int, 28> pPrevVirtualCidesMapping;
|
|
739 int KeyboardPageNum; // weak
|
|
740 int uRestUI_FoodRequiredToRest;
|
2542
|
741 int _506F14_resting_stage; // weak
|
2499
|
742 int _506F18_num_minutes_to_sleep; // weak
|
|
743 int dword_506F1C; // weak
|
|
744 std::array<int, 20> pVisibleWindowsIdxs; // weak
|
|
745 int uNumVisibleWindows;
|
|
746 char bFlashHistoryBook; // weak
|
|
747 char bFlashAutonotesBook; // weak
|
|
748 char bFlashQuestBook; // weak
|
|
749 struct GUIButton *pBtn_ZoomOut; // idb
|
|
750 struct GUIButton *pBtn_ZoomIn; // idb
|
|
751 unsigned int uGameUIFontShadow;
|
|
752 unsigned int uGameUIFontMain;
|
|
753 int dword_507B00_spell_info_to_draw_in_popup; // weak
|
|
754 std::array<const char *, 12> aMonthNames;
|
|
755 std::array<const char *, 7> aDayNames;
|
|
756 std::array<const char *, 9> aSpellSchoolNames;
|
|
757 std::array<const char *, 7> aAttributeNames;
|
|
758 unsigned int uActiveCharacter;
|
|
759 int dword_507BF0_is_there_popup_onscreen; // weak
|
|
760 int awards_scroll_bar_created; // weak
|
|
761 int dword_507CC0_activ_ch; // weak
|
|
762 __int64 GameUI_RightPanel_BookFlashTimer; // weak
|
|
763 int _507CD4_RestUI_hourglass_anim_controller; // weak
|
|
764 bool OpenedTelekinesis;
|
|
765 std::array<int, 50> dword_50B570; // weak
|
|
766 std::array<int, 50> dword_50B638; // weak
|
|
767 stru367 PortalFace;
|
|
768 std::array<int, 100> dword_50BC10; // weak
|
|
769 std::array<int, 100> dword_50BDA0; // weak
|
|
770 std::array<int, 100> _50BF30_actors_in_viewport_ids; // weak
|
|
771 char town_portal_caster_id; // weak
|
|
772 int some_active_character; // weak
|
|
773 std::array<unsigned int, 5> pIconIDs_Turn;
|
|
774 unsigned int uIconID_TurnStop;
|
|
775 unsigned int uIconID_TurnHour;
|
|
776 int uIconID_CharacterFrame; // idb
|
|
777 unsigned int uIconID_TurnStart;
|
|
778 int dword_50C994 = 0; // weak
|
|
779 int dword_50C998_turnbased_icon_1A = 0; // weak
|
|
780 int uSpriteID_Spell11; // idb
|
|
781 bool _50C9A0_IsEnchantingInProgress; // weak
|
|
782 int _50C9A8_item_enchantment_timer = 0; // weak
|
|
783 int _50C9D0_AfterEnchClickEventId; // weak
|
|
784 int _50C9D4_AfterEnchClickEventSecondParam; // weak
|
|
785 int _50C9D8_AfterEnchClickEventTimeout; // weak
|
|
786 int dword_50C9DC; // weak
|
|
787 struct NPCData *ptr_50C9E0;
|
|
788 //int dword_50C9E8; // idb
|
|
789 //int dword_50C9EC[120]; // weak
|
|
790 int dword_50CDC8;
|
|
791 Vec3_int_ layingitem_vel_50FDFC;
|
|
792 char pStartingMapName[32]; // idb
|
|
793 std::array<unsigned __int8, 5> IsPlayerWearingWatersuit;
|
|
794 std::array<char, 54> party_has_equipment;
|
|
795 std::array<char, 17> byte_5111F6_OwnedArtifacts;
|
|
796
|
|
797 unsigned int uNumBlueFacesInBLVMinimap;
|
|
798 std::array<unsigned __int16, 50> pBlueFacesInBLVMinimapIDs;
|
|
799 std::array<int, 14> pTextureIDs_PartyBuffIcons;
|
|
800 unsigned int uIconIdx_FlySpell;
|
|
801 unsigned int uIconIdx_WaterWalk;
|
|
802 int dword_576E28; // weak
|
|
803 int _576E2C_current_minimap_zoom; // weak
|
|
804 __int64 _5773B8_event_timer; // weak
|
|
805
|
|
806
|
|
807 int dword_591084; // weak
|
|
808 struct Actor *pDialogue_SpeakingActor;
|
|
809 unsigned int uDialogueType;
|
|
810 int sDialogue_SpeakingActorNPC_ID;
|
|
811 struct LevelDecoration *_591094_decoration;
|
|
812 std::array<char, 200> sHouseName; // idb
|
|
813 int uCurrentHouse_Animation; // weak
|
|
814 char *dword_591164_teleport_map_name; // idb
|
|
815 int dword_591168_teleport_speedz; // weak
|
|
816 int dword_59116C_teleport_directionx; // weak
|
|
817 int dword_591170_teleport_directiony; // weak
|
|
818 int dword_591174_teleportz; // weak
|
|
819 int dword_591178_teleporty; // weak
|
|
820 int dword_59117C_teleportx; // weak
|
|
821 std::array<std::array<char, 100>, 6> byte_591180; // idb
|
|
822 std::array<struct NPCData *, 7> HouseNPCData;//0 zero element holds standart house npc
|
|
823 GUIButton* HouseNPCPortraitsButtonsList[6];//dword_5913F4
|
|
824 std::array<char, 2000> byte_5B0938;
|
|
825 int EvtTargetObj; // 0x5B5920
|
|
826 int _unused_5B5924_is_travel_ui_drawn = false; // 005B5924
|
|
827 int _5B65A8_npcdata_uflags_or_other; // weak
|
|
828 int _5B65AC_npcdata_fame_or_other; // weak
|
|
829 int _5B65B0_npcdata_rep_or_other; // weak
|
|
830 int _5B65B4_npcdata_loword_house_or_other; // weak
|
|
831 int _5B65B8_npcdata_hiword_house_or_other; // weak
|
|
832 int dword_5B65BC; // weak
|
|
833 int dword_5B65C0; // weak
|
|
834 int dword_5B65C4_cancelEventProcessing; // weak
|
|
835 int MapsLongTimers_count; // dword_5B65C8 ñ÷¸ò÷èê òàéìåðîâ äëÿ êîëîäöåâ, ôàåðâîëîâ-ëîâóøåê
|
|
836 int npcIdToDismissAfterDialogue; // weak
|
|
837 signed int dword_5B65D0_dialogue_actor_npc_id; // weak
|
|
838 int dword_5C3418; // weak
|
|
839 int dword_5C341C; // weak
|
|
840 //std::array<char, 777> byte_5C3427; // weak
|
|
841 std::array<char, 200> GameUI_Footer_TimedString;
|
|
842 std::array<char, 200> pFooterString;
|
|
843 unsigned int GameUI_Footer_TimeLeft;
|
|
844 int bForceDrawFooter; // weak
|
|
845 int _5C35C0_force_party_death = false; // weak
|
|
846 int bDialogueUI_InitializeActor_NPC_ID; // weak
|
|
847 char *p2DEventsTXT_Raw;
|
|
848
|
|
849 int dword_5C35D4; // weak
|
|
850 std::array<const char *, 2> aAMPMNames;
|
|
851 char byte_5C45AF[777]; // weak
|
|
852
|
|
853 std::array<char, 4096> pFinalMessage; // idb
|
|
854 std::array<char, 2000> pTmpBuf;
|
|
855 std::array<char, 2000> pTmpBuf2;
|
|
856 std::array<char, 100> Journal_limitation_factor; // weak
|
|
857 int ui_current_text_color; // weak
|
|
858 __int64 qword_5C6DF0; // weak
|
|
859 int dword_5C6DF8; // weak
|
|
860 std::array<char, 104> item__getname_buffer; // idb
|
|
861 std::array<char *, 36> pClassDescriptions;
|
|
862 std::array<char *, 7> pAttributeDescriptions;
|
|
863 std::array<char *, 38> pGrandSkillDesc;
|
|
864 std::array<char *, 38> pMasterSkillDesc;
|
|
865 std::array<char *, 38> pExpertSkillDesc;
|
|
866 std::array<char *, 38> pNormalSkillDesc;
|
|
867 std::array<char *, 38> pSkillDesc;
|
|
868 char *pHealthPointsAttributeDescription;
|
|
869 char *pSpellPointsAttributeDescription;
|
|
870 char *pArmourClassAttributeDescription;
|
|
871 char *pPlayerConditionAttributeDescription; // idb
|
|
872 char *pFastSpellAttributeDescription;
|
|
873 char *pPlayerAgeAttributeDescription;
|
|
874 char *pPlayerLevelAttributeDescription;
|
|
875 char *pPlayerExperienceAttributeDescription;
|
|
876 char *pAttackBonusAttributeDescription;
|
|
877 char *pAttackDamageAttributeDescription;
|
|
878 char *pMissleBonusAttributeDescription;
|
|
879 char *pMissleDamageAttributeDescription;
|
|
880 char *pFireResistanceAttributeDescription;
|
|
881 char *pAirResistanceAttributeDescription;
|
|
882 char *pWaterResistanceAttributeDescription;
|
|
883 char *pEarthResistanceAttributeDescription;
|
|
884 char *pMindResistanceAttributeDescription;
|
|
885 char *pBodyResistanceAttributeDescription;
|
|
886 char *pSkillPointsAttributeDescription;
|
|
887 char *pClassTXT_Raw;
|
|
888 char *pStatsTXT_Raw;
|
|
889 char *pSkillDescTXT_Raw;
|
|
890
|
|
891 struct FactionTable *pFactionTable;
|
|
892 //std::array<char, 777> byte_5C8D1A; // weak
|
|
893
|
|
894 std::array<char, 777> byte_5E4C15; // weak
|
|
895 std::array<const char *, 14> pSomeItemsNames;
|
|
896
|
|
897 char *pMonstersTXT_Raw;
|
|
898 char *pMonsterPlacementTXT_Raw;
|
|
899 char *pSpellsTXT_Raw;
|
|
900 char *pMapStatsTXT_Raw;
|
|
901 char *pHostileTXT_Raw;
|
|
902 char *pPotionsTXT_Raw;
|
|
903 char *pPotionNotesTXT_Raw;
|
|
904
|
|
905 std::array<int, 777> _6807B8_level_decorations_ids; // idb
|
|
906 int _6807E0_num_decorations_with_sounds_6807B8; // weak
|
|
907 std::array<int, 3000> event_triggers; // 6807E8
|
|
908 size_t num_event_triggers; // 6836C8
|
|
909 std::array<int, 64> dword_69B010;
|
|
910 float flt_69B138_dist; // weak
|
|
911 char byte_69BD41_unused; // weak
|
|
912 int pSaveListPosition; // weak
|
|
913 unsigned int uLoadGameUI_SelectedSlot;
|
|
914 HWND hInsertCDWindow; // idb
|
|
915 char cMM7GameCDDriveLetter; // idb
|
|
916 MENU_STATE sCurrentMenuID;
|
|
917 unsigned int uGameState;
|
|
918 int uDefaultTravelTime_ByFoot; // weak
|
|
919 int day_attrib; // weak
|
|
920 int day_fogrange_1; // weak
|
|
921 int day_fogrange_2; // weak
|
|
922 struct TileTable *pTileTable; // idb
|
|
923 std::array<char, 777> pDefaultSkyTexture; // idb
|
|
924 std::array<char, 16> byte_6BE124_cfg_textures_DefaultGroundTexture; // idb
|
|
925 int _6BE134_odm_main_tile_group; // weak
|
|
926 int dword_6BE138; // weak
|
|
927 int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
|
|
928 float fWalkSpeedMultiplier = 1.0f; // weak
|
|
929 float fBackwardWalkSpeedMultiplier = 1.0f; // weak
|
|
930 float fTurnSpeedMultiplier = 1.0f; // weak
|
|
931 float flt_6BE150_look_up_down_dangle = 1.0f; // weak
|
|
932 //HWND hWnd; // idb
|
|
933 bool FORCE_16_BITS = false;
|
|
934 class OSWindow *window = nullptr;
|
|
935 char pCurrentMapName[32]; // idb
|
|
936 unsigned int uLevelMapStatsID;
|
|
937 int dword_6BE364_game_settings_1 = 0;
|
|
938 int dword_6BE368_debug_settings_2 = 0;
|
|
939 unsigned __int8 bCanLoadFromCD = false;
|
|
940 int bShowDamage; // idb
|
|
941 unsigned int bAlwaysRun;
|
|
942 unsigned int bFlipOnExit;
|
|
943 unsigned int uTurnSpeed;
|
|
944 float flt_6BE3A0 = 0.55000001f; // weak
|
|
945 float flt_6BE3A4_debug_recmod1;
|
|
946 float flt_6BE3A8_debug_recmod2;
|
|
947 float flt_6BE3AC_debug_recmod1_x_1_6;
|
|
948 std::array<char, 20> byte_6BE3B0; // idb
|
|
949 char bUnderwater = false; // weak
|
|
950 char bNoNPCHiring = false; // weak
|
|
951 unsigned int bNoVideo = false;
|
|
952 bool bNoIntro = false;
|
|
953 bool bNoLogo = false;
|
|
954 bool bNoCD = false;
|
|
955 bool bNoSound = false;
|
|
956 std::array<int, 100> dword_720020_zvalues;
|
|
957 std::array<int, 299> dword_7201B0_zvalues;
|
|
958 int uTextureID_720980; // weak
|
|
959 std::array<__int16, 104> word_7209A0_intercepts_ys_plus_ys;
|
|
960 std::array<__int16, 104> word_720A70_intercepts_xs_plus_xs;
|
|
961 std::array<__int16, 104> word_720B40_intercepts_zs;
|
|
962 std::array<__int16, 102> word_720C10_intercepts_xs;
|
|
963 std::array<__int16, 777> word_720CE0_ys; // idb
|
|
964 std::array<__int16, 777> word_720DB0_xs; // idb
|
|
965 std::array<int, 20> dword_720E80;
|
|
966 std::array<int, 20> dword_720ED0;
|
|
967 std::array<int, 20> ceiling_height_level;
|
|
968 std::array<__int16, 104> odm_floor_face_vert_coord_Y; // word_720F70
|
|
969 std::array<__int16, 104> odm_floor_face_vert_coord_X; // word_721040
|
|
970 std::array<int, 20> current_Face_id; // dword_721110
|
|
971 std::array<int, 20> current_BModel_id; // dword_721160
|
|
972 std::array<int, 20> odm_floor_level; // idb
|
|
973 int blv_prev_party_x; // weak
|
|
974 int blv_prev_party_z; // weak
|
|
975 int blv_prev_party_y; // weak
|
|
976 std::array<NPCTopic, 789> pNPCTopics;
|
|
977 std::array<const char *, 513> pQuestTable;
|
|
978 char *dword_723718_autonote_related; // idb
|
|
979 std::array<const char *, 82> pScrolls;
|
|
980 int dword_7241C8; // weak
|
|
981 std::array<const char *, 59> aNPCProfessionNames;
|
|
982 char *pAwardsTXT_Raw;
|
|
983 char *pScrollsTXT_Raw;
|
|
984 char *pMerchantsTXT_Raw;
|
|
985 std::array<const char *, 7> pMerchantsBuyPhrases;
|
|
986 std::array<const char *, 7> pMerchantsSellPhrases;
|
|
987 std::array<const char *, 7> pMerchantsRepairPhrases;
|
|
988 std::array<const char *, 7> pMerchantsIdentifyPhrases;
|
|
989 char *pTransitionsTXT_Raw;
|
|
990 char *pAutonoteTXT_Raw;
|
|
991 char *pQuestsTXT_Raw;
|
|
992 unsigned int uNumTerrainNormals;
|
|
993 struct Vec3_float_ *pTerrainNormals;
|
|
994 std::array<unsigned short, 128 * 128 * 2> pTerrainNormalIndices;
|
|
995 std::array<unsigned int, 128 * 128 * 2> pTerrainSomeOtherData;
|
|
996 int dword_A74C88; // weak
|
|
997 unsigned int uPlayerCreationUI_SkySliderPos;
|
|
998 int uPlayerCreationUI_ArrowAnim;
|
|
999 unsigned int uPlayerCreationUI_SelectedCharacter;
|
|
1000 int dword_A74CDC; // weak
|
|
1001 __int64 _A750D8_player_speech_timer; // qword_A750D8
|
|
1002 enum PlayerSpeech PlayerSpeechID;
|
|
1003 int uSpeakingCharacter; // weak
|
|
1004 std::array<const char *, 36> pClassNames;
|
|
1005 std::array<const char *, 19> aCharacterConditionNames;
|
|
1006 std::array<const char *, 38> pSkillNames;
|
|
1007 char byte_AE5B91; // weak
|
|
1008 std::array<int, 32> dword_F1B430; // weak
|
|
1009 //int dword_F8B144; // nexindex [-1] to the following
|
|
1010 std::array<int, 4> player_levels = {{1, 1, 1, 1}};
|
|
1011 std::array<__int16, 6> weapons_Ypos; // word_F8B158
|
|
1012 __int16 bountyHunting_monster_id_for_hunting; // word_F8B1A0
|
|
1013 const char *bountyHunting_text; // word_F8B1A4
|
|
1014 int contract_approved; // weak
|
|
1015 int dword_F8B1AC_award_bit_number; // idb
|
|
1016 int dword_F8B1B0_MasteryBeingTaught; // weak
|
|
1017 int gold_transaction_amount; // F8B1B4
|
|
1018 std::array<char *, 4> pShopOptions;
|
|
1019 int dword_F8B1D8; // weak
|
|
1020 int dword_F8B1E0; // weak
|
|
1021 int dword_F8B1E4; // weak
|
|
1022 const char *current_npc_text; // idb
|
|
1023 char dialogue_show_profession_details = false; // F8B1EC
|
|
1024 std::array<char, 777> byte_F8B1EF; // weak
|
|
1025 std::array<char, 4> byte_F8B1F0;
|
|
1026
|
|
1027 int bGameoverLoop = 0; // weak
|
|
1028 std::array<__int16, 104> intersect_face_vertex_coords_list_a; // word_F8BC48
|
|
1029 std::array<__int16, 104> intersect_face_vertex_coords_list_b; // word_F8BD18 |