29 |
|
|
30 |
namespace { |
namespace { |
31 |
const char *common_floor_map[256] = |
const char *common_floor_map[256] = |
32 |
{ |
{ |
33 |
"fl-abyss", // 0x00 |
"fl-abyss", // 0x00 |
34 |
"fl-gray", // 0x01 |
"fl-gray", // 0x01 |
35 |
"fl-metal", // 0x02 |
"fl-metal", // 0x02 |
36 |
"fl-metal", // 0x03 |
"fl-metal", // 0x03 |
37 |
"fl-metal", // 0x04 |
"fl-metal", // 0x04 |
38 |
"fl-metal", // 0x05 |
"fl-metal", // 0x05 |
39 |
"fl-metal", // 0x06 |
"fl-metal", // 0x06 |
40 |
"fl-metal", // 0x07 |
"fl-metal", // 0x07 |
41 |
"fl-rough", // 0x08 |
"fl-rough", // 0x08 |
42 |
"fl-normal", // 0x09 |
"fl-normal", // 0x09 |
43 |
"fl-normal", // 0x0a |
"fl-normal", // 0x0a |
44 |
"fl-stone", // 0x0b |
"fl-stone", // 0x0b |
45 |
"fl-inverse", // 0x0c |
"fl-inverse", // 0x0c |
46 |
0, // 0x0d black tile |
0, // 0x0d black tile |
47 |
0, // 0x0e white tile |
0, // 0x0e white tile |
48 |
"fl-swamp", // 0x0f swamp |
"fl-swamp", // 0x0f swamp |
49 |
"fl-swamp", // 0x10 swamp |
"fl-swamp", // 0x10 swamp |
50 |
"fl-swamp", // 0x11 swamp |
"fl-swamp", // 0x11 swamp |
51 |
"fl-swamp", // 0x12 swamp |
"fl-swamp", // 0x12 swamp |
52 |
"fl-water", // 0x13 |
"fl-water", // 0x13 |
53 |
"fl-water", // 0x14 |
"fl-water", // 0x14 |
54 |
"fl-water", // 0x15 |
"fl-water", // 0x15 |
55 |
"fl-water", // 0x16 |
"fl-water", // 0x16 |
56 |
"fl-ice_001", // 0x17 |
"fl-ice_001", // 0x17 |
57 |
"fl-ice_001", // 0x18 |
"fl-ice_001", // 0x18 |
58 |
"fl-ice_001", // 0x19 |
"fl-ice_001", // 0x19 |
59 |
"fl-ice_001", // 0x1a |
"fl-ice_001", // 0x1a |
60 |
"fl-ice_001", // 0x1b |
"fl-ice_001", // 0x1b |
61 |
"fl-space", // 0x1c |
"fl-space", // 0x1c |
62 |
"fl-space", // 0x1d |
"fl-space", // 0x1d |
63 |
"fl-space", // 0x1e |
"fl-space", // 0x1e |
64 |
"fl-space", // 0x1f |
"fl-space", // 0x1f |
65 |
"fl-space", // 0x20 |
"fl-space", // 0x20 |
66 |
"fl-space", // 0x21 space force down |
"fl-space", // 0x21 space force down |
67 |
"fl-space", // 0x22 space force down |
"fl-space", // 0x22 space force down |
68 |
"fl-gradient1", // 0x23 |
"fl-gradient1", // 0x23 |
69 |
"fl-gradient2", // 0x24 |
"fl-gradient2", // 0x24 |
70 |
"fl-gradient3", // 0x25 |
"fl-gradient3", // 0x25 |
71 |
"fl-gradient4", // 0x26 |
"fl-gradient4", // 0x26 |
72 |
"fl-gradient5", // 0x27 |
"fl-gradient5", // 0x27 |
73 |
"fl-gradient6", // 0x28 |
"fl-gradient6", // 0x28 |
74 |
"fl-gradient7", // 0x29 |
"fl-gradient7", // 0x29 |
75 |
"fl-gradient8", // 0x2a |
"fl-gradient8", // 0x2a |
76 |
"fl-gradient9", // 0x2b |
"fl-gradient9", // 0x2b |
77 |
"fl-gradient10", // 0x2c |
"fl-gradient10", // 0x2c |
78 |
"fl-gradient11", // 0x2d |
"fl-gradient11", // 0x2d |
79 |
"fl-gradient12", // 0x2e |
"fl-gradient12", // 0x2e |
80 |
"fl-gradient13", // 0x2f |
"fl-gradient13", // 0x2f |
81 |
"fl-gradient14", // 0x30 |
"fl-gradient14", // 0x30 |
82 |
"fl-gradient15", // 0x31 |
"fl-gradient15", // 0x31 |
83 |
"fl-gradient16", // 0x32 |
"fl-gradient16", // 0x32 |
84 |
"fl-rough", // 0x33 |
"fl-rough", // 0x33 |
85 |
"fl-rough", // 0x34 |
"fl-rough", // 0x34 |
86 |
"fl-rough", // 0x35 |
"fl-rough", // 0x35 |
87 |
"fl-rough", // 0x36 |
"fl-rough", // 0x36 |
88 |
"fl-rough", // 0x37 |
"fl-rough", // 0x37 |
89 |
0, // 0x38 |
0, // 0x38 |
90 |
0, // 0x39 |
0, // 0x39 |
91 |
0, // 0x3a |
0, // 0x3a |
92 |
0, // 0x3b |
0, // 0x3b |
93 |
0, // 0x3c |
0, // 0x3c |
94 |
"fl-wood", // 0x3d |
"fl-wood", // 0x3d |
95 |
"fl-wood", // 0x3e |
"fl-wood", // 0x3e |
96 |
"fl-wood", // 0x3f |
"fl-wood", // 0x3f |
97 |
"fl-wood", // 0x40 |
"fl-wood", // 0x40 |
98 |
"fl-wood", // 0x41 |
"fl-wood", // 0x41 |
99 |
0, // 0x42 |
0, // 0x42 |
100 |
0, // 0x43 |
0, // 0x43 |
101 |
0, // 0x44 |
0, // 0x44 |
102 |
0, // 0x45 |
0, // 0x45 |
103 |
0, // 0x46 |
0, // 0x46 |
104 |
0, // 0x47 |
0, // 0x47 |
105 |
0, // 0x48 |
0, // 0x48 |
106 |
0, // 0x49 |
0, // 0x49 |
107 |
0, // 0x4a |
0, // 0x4a |
108 |
0, // 0x4b |
0, // 0x4b |
109 |
0, // 0x4c |
0, // 0x4c |
110 |
0, // 0x4d |
0, // 0x4d |
111 |
0, // 0x4e |
0, // 0x4e |
112 |
0, // 0x4f |
0, // 0x4f |
113 |
0, // 0x50 |
0, // 0x50 |
114 |
0, // 0x51 |
0, // 0x51 |
115 |
"fl-bridge", // 0x52 (type of bridge seems to depend on item above) |
"fl-bridge", // 0x52 (type of bridge seems to depend on item above) |
116 |
0, // 0x53 |
0, // 0x53 |
117 |
0, // 0x54 |
0, // 0x54 |
118 |
"fl-plank", // 0x55 |
"fl-plank", // 0x55 |
119 |
0, // 0x56 |
0, // 0x56 |
120 |
0, // 0x57 |
0, // 0x57 |
121 |
0, // 0x58 |
0, // 0x58 |
122 |
0, // 0x59 |
0, // 0x59 |
123 |
0, // 0x5a |
0, // 0x5a |
124 |
0, // 0x5b |
0, // 0x5b |
125 |
0, // 0x5c |
0, // 0x5c |
126 |
0, // 0x5d |
0, // 0x5d |
127 |
0, // 0x5e |
0, // 0x5e |
128 |
0, // 0x5f |
0, // 0x5f |
129 |
0, // 0x60 |
0, // 0x60 |
130 |
}; |
}; |
131 |
|
|
132 |
const char *common_item_map[256] = { |
const char *common_item_map[256] = { |
133 |
0, // 0x00 |
0, // 0x00 |
233 |
}; |
}; |
234 |
|
|
235 |
const char *common_stone_map[256] = |
const char *common_stone_map[256] = |
236 |
{ |
{ |
237 |
0, |
0, |
238 |
0, // 0x01 |
0, // 0x01 |
239 |
0, // 0x02 |
0, // 0x02 |
240 |
0, // 0x03 |
0, // 0x03 |
241 |
0, // 0x04 |
0, // 0x04 |
242 |
0, // 0x05 |
0, // 0x05 |
243 |
0, // 0x06 |
0, // 0x06 |
244 |
0, // 0x07 |
0, // 0x07 |
245 |
0, // 0x08 |
0, // 0x08 |
246 |
0, // 0x09 |
0, // 0x09 |
247 |
0, // 0x0a |
0, // 0x0a |
248 |
0, // 0x0b |
0, // 0x0b |
249 |
0, // 0x0c |
0, // 0x0c |
250 |
0, // 0x0d |
0, // 0x0d |
251 |
0, // 0x0e |
0, // 0x0e |
252 |
0, // 0x0f |
0, // 0x0f |
253 |
0, // 0x10 |
0, // 0x10 |
254 |
"st-fakeoxyd", // 0x11 |
"st-fakeoxyd", // 0x11 |
255 |
"st-bluegray", // 0x12 |
"st-bluegray", // 0x12 |
256 |
0, // 0x13 |
0, // 0x13 |
257 |
0, // 0x14 |
0, // 0x14 |
258 |
"st-rock5", // 0x15 |
"st-rock5", // 0x15 |
259 |
0, // 0x16 |
0, // 0x16 |
260 |
0, // 0x17 |
0, // 0x17 |
261 |
"st-grate1", // 0x18 |
"st-grate1", // 0x18 |
262 |
0, // 0x19 |
0, // 0x19 |
263 |
0, // 0x1a |
0, // 0x1a |
264 |
0, // 0x1b |
0, // 0x1b |
265 |
"st-rock4", // 0x1c |
"st-rock4", // 0x1c |
266 |
"st-rock3", // 0x1d |
"st-rock3", // 0x1d |
267 |
0, // 0x1e |
0, // 0x1e |
268 |
0, // 0x1f |
0, // 0x1f |
269 |
0, // 0x20 |
0, // 0x20 |
270 |
0, // 0x21 |
0, // 0x21 |
271 |
"st-glass", // 0x22 |
"st-glass", // 0x22 |
272 |
0, // 0x23 |
0, // 0x23 |
273 |
0, // 0x24 |
0, // 0x24 |
274 |
0, // 0x25 |
0, // 0x25 |
275 |
0, // 0x26 (peroxyd: movable stone, sinks in water, falls into abyss, orange?) |
0, // 0x26 (peroxyd: movable stone, sinks in water, falls into abyss, orange?) |
276 |
0, // 0x27 |
0, // 0x27 |
277 |
0, // 0x28 |
0, // 0x28 |
278 |
0, // 0x29 |
0, // 0x29 |
279 |
0, // 0x2a |
0, // 0x2a |
280 |
0, // 0x2b |
0, // 0x2b |
281 |
0, // 0x2c |
0, // 0x2c |
282 |
0, // 0x2d |
0, // 0x2d |
283 |
0, // 0x2e |
0, // 0x2e |
284 |
"st-death", // 0x2f |
"st-death", // 0x2f |
285 |
0, // 0x30 |
0, // 0x30 |
286 |
"st-oneway_black-w", // 0x31 |
"st-oneway_black-w", // 0x31 |
287 |
"st-oneway_black-e", // 0x32 |
"st-oneway_black-e", // 0x32 |
288 |
"st-oneway_black-n", // 0x33 |
"st-oneway_black-n", // 0x33 |
289 |
"st-oneway_black-s", // 0x34 |
"st-oneway_black-s", // 0x34 |
290 |
"st-oneway_white-w", // 0x35 |
"st-oneway_white-w", // 0x35 |
291 |
"st-oneway_white-e", // 0x36 |
"st-oneway_white-e", // 0x36 |
292 |
"st-oneway_white-n", // 0x37 |
"st-oneway_white-n", // 0x37 |
293 |
"st-oneway_white-s", // 0x38 |
"st-oneway_white-s", // 0x38 |
294 |
"st-magic", // 0x39 |
"st-magic", // 0x39 |
295 |
"st-magic", // 0x3a |
"st-magic", // 0x3a |
296 |
"st-magic", // 0x3b |
"st-magic", // 0x3b |
297 |
0, // 0x3c |
0, // 0x3c |
298 |
0, // 0x3d |
0, // 0x3d |
299 |
0, // 0x3e |
0, // 0x3e |
300 |
0, // 0x3f |
0, // 0x3f |
301 |
0, // 0x40 |
0, // 0x40 |
302 |
0, // 0x41 |
0, // 0x41 |
303 |
0, // 0x42 |
0, // 0x42 |
304 |
0, // 0x43 |
0, // 0x43 |
305 |
0, // 0x44 |
0, // 0x44 |
306 |
0, // 0x45 |
0, // 0x45 |
307 |
0, // 0x46 |
0, // 0x46 |
308 |
0, // 0x47 |
0, // 0x47 |
309 |
0, // 0x48 |
0, // 0x48 |
310 |
0, // 0x49 |
0, // 0x49 |
311 |
0, // 0x4a |
0, // 0x4a |
312 |
0, // 0x4b |
0, // 0x4b |
313 |
0, // 0x4c |
0, // 0x4c |
314 |
0, // 0x4d |
0, // 0x4d |
315 |
0, // 0x4e |
0, // 0x4e |
316 |
0, // 0x4f |
0, // 0x4f |
317 |
0, // 0x50 |
0, // 0x50 |
318 |
0, // 0x51 |
0, // 0x51 |
319 |
0, // 0x52 |
0, // 0x52 |
320 |
0, // 0x53 |
0, // 0x53 |
321 |
0, // 0x54 |
0, // 0x54 |
322 |
0, // 0x55 |
0, // 0x55 |
323 |
0, // 0x56 |
0, // 0x56 |
324 |
0, // 0x57 |
0, // 0x57 |
325 |
0, // 0x58 |
0, // 0x58 |
326 |
0, // 0x59 |
0, // 0x59 |
327 |
0, // 0x5a |
0, // 0x5a |
328 |
0, // 0x5b |
0, // 0x5b |
329 |
0, // 0x5c |
0, // 0x5c |
330 |
0, // 0x5d |
0, // 0x5d |
331 |
0, // 0x5e |
0, // 0x5e |
332 |
0, // 0x5f |
0, // 0x5f |
333 |
0, // 0x60 |
0, // 0x60 |
334 |
0, // 0x61 |
0, // 0x61 |
335 |
0, // 0x62 |
0, // 0x62 |
336 |
"st-stone_break", // 0x63 |
"st-stone_break", // 0x63 |
337 |
0, // 0x64 |
0, // 0x64 |
338 |
"st-thief", // 0x65 |
"st-thief", // 0x65 |
339 |
"st-shogun-s", // 0x66 |
"st-shogun-s", // 0x66 |
340 |
"st-shogun-m", // 0x67 |
"st-shogun-m", // 0x67 |
341 |
"st-shogun-l", // 0x68 |
"st-shogun-l", // 0x68 |
342 |
"st-shogun-sml", // 0x69 |
"st-shogun-sml", // 0x69 |
343 |
"st-shogun-ml", // 0x6a |
"st-shogun-ml", // 0x6a |
344 |
"st-shogun-sl", // 0x6b |
"st-shogun-sl", // 0x6b |
345 |
"st-shogun-sm", // 0x6c |
"st-shogun-sm", // 0x6c |
346 |
0, // 0x6d |
0, // 0x6d |
347 |
0, // 0x6e |
0, // 0x6e |
348 |
0, // 0x6f |
0, // 0x6f |
349 |
0, // 0x70 |
0, // 0x70 |
350 |
0, // 0x71 |
0, // 0x71 |
351 |
0, // 0x72 |
0, // 0x72 |
352 |
"st-door-h", // 0x73 |
"st-door-h", // 0x73 |
353 |
"st-door-v", // 0x74 |
"st-door-v", // 0x74 |
354 |
"st-rock2", // 0x75 |
"st-rock2", // 0x75 |
355 |
0, // 0x76 |
0, // 0x76 |
356 |
0, // 0x77 |
0, // 0x77 |
357 |
0, // 0x78 |
0, // 0x78 |
358 |
0, // 0x79 |
0, // 0x79 |
359 |
0, // 0x7a |
0, // 0x7a |
360 |
0, // 0x7b |
0, // 0x7b |
361 |
0, // 0x7c |
0, // 0x7c |
362 |
0, // 0x7d |
0, // 0x7d |
363 |
0, // 0x7e |
0, // 0x7e |
364 |
0, // 0x7f |
0, // 0x7f |
365 |
0, // 0x80 |
0, // 0x80 |
366 |
0, // 0x81 |
0, // 0x81 |
367 |
0, // 0x82 |
0, // 0x82 |
368 |
"st-bolder-n", // 0x83 |
"st-bolder-n", // 0x83 |
369 |
"st-bolder-s", // 0x84 |
"st-bolder-s", // 0x84 |
370 |
"st-bolder-w", // 0x85 |
"st-bolder-w", // 0x85 |
371 |
"st-bolder-e", // 0x86 |
"st-bolder-e", // 0x86 |
372 |
"st-rock1", // 0x87 |
"st-rock1", // 0x87 |
373 |
0, // 0x88 |
0, // 0x88 |
374 |
0, // 0x89 |
0, // 0x89 |
375 |
0, // 0x8a |
0, // 0x8a |
376 |
0, // 0x8b |
0, // 0x8b |
377 |
0, // 0x8c |
0, // 0x8c |
378 |
0, // 0x8d |
0, // 0x8d |
379 |
"st-rock6", // 0x8e |
"st-rock6", // 0x8e |
380 |
0, // 0x8f |
0, // 0x8f |
381 |
0, // 0x90 |
0, // 0x90 |
382 |
0, // 0x91 |
0, // 0x91 |
383 |
0, // 0x92 |
0, // 0x92 |
384 |
"st-swap", // 0x93 |
"st-swap", // 0x93 |
385 |
0, // 0x94 |
0, // 0x94 |
386 |
0, // 0x95 |
0, // 0x95 |
387 |
"st-rubberband", // 0x96 |
"st-rubberband", // 0x96 |
388 |
"st-scissors", // 0x97 |
"st-scissors", // 0x97 |
389 |
0, // 0x98 |
0, // 0x98 |
390 |
"st-blocker", // 0x99 |
"st-blocker", // 0x99 |
391 |
"st-grate1", // 0x9a (XXX) |
"st-grate1", // 0x9a (XXX) |
392 |
0, // 0x9b |
0, // 0x9b |
393 |
0, // 0x9c |
0, // 0x9c |
394 |
0, // 0x9d |
0, // 0x9d |
395 |
"st-turnstile", // 0x9e |
"st-turnstile", // 0x9e |
396 |
"st-turnstile-n", // 0x9f |
"st-turnstile-n", // 0x9f |
397 |
"st-turnstile-s", // 0xa0 |
"st-turnstile-s", // 0xa0 |
398 |
"st-turnstile-w", // 0xa1 |
"st-turnstile-w", // 0xa1 |
399 |
"st-turnstile-e", // 0xa2 |
"st-turnstile-e", // 0xa2 |
400 |
|
|
401 |
}; |
}; |
402 |
|
|
403 |
void patch_mapping(const char **floor_map, |
void patch_mapping(const char **floor_map, |
404 |
const char **item_map, |
const char **item_map, |
409 |
versions, so we have to patch the common translation tables. */ |
versions, so we have to patch the common translation tables. */ |
410 |
|
|
411 |
switch (version) { |
switch (version) { |
412 |
case OxydVersion_Oxyd1: |
case OxydVersion_Oxyd1: |
413 |
floor_map[0x34] = "fl-brick"; |
floor_map[0x34] = "fl-brick"; |
414 |
floor_map[0x38] = "fl-brick"; |
floor_map[0x38] = "fl-brick"; |
415 |
floor_map[0x3c] = "fl-rock"; |
floor_map[0x3c] = "fl-rock"; |
416 |
floor_map[0x47] = "fl-gravel"; |
floor_map[0x47] = "fl-gravel"; |
417 |
floor_map[0x53] = "fl-springboard"; |
floor_map[0x53] = "fl-springboard"; |
418 |
|
|
419 |
item_map[0x22] = "it-spade"; |
item_map[0x22] = "it-spade"; |
420 |
item_map[0x2c] = "it-shogun-s"; |
item_map[0x2c] = "it-shogun-s"; |
421 |
item_map[0x36] = "it-springboard"; |
item_map[0x36] = "it-springboard"; |
422 |
|
|
423 |
stone_map[0x12] = "st-rock3"; |
stone_map[0x12] = "st-rock3"; |
424 |
stone_map[0x1a] = "st-grate1"; |
stone_map[0x1a] = "st-grate1"; |
425 |
stone_map[0x1e] = "st-chameleon"; |
stone_map[0x1e] = "st-chameleon"; |
426 |
stone_map[0x1f] = "st-brick"; |
stone_map[0x1f] = "st-brick"; |
427 |
stone_map[0x20] = "st-rock1"; |
stone_map[0x20] = "st-rock1"; |
428 |
stone_map[0x23] = "st-woven"; |
stone_map[0x23] = "st-woven"; |
429 |
stone_map[0x24] = "st-marble"; |
stone_map[0x24] = "st-marble"; |
430 |
stone_map[0x25] = "st-glass1"; |
stone_map[0x25] = "st-glass1"; |
431 |
stone_map[0x26] = "st-glass3"; |
stone_map[0x26] = "st-glass3"; |
432 |
stone_map[0x29] = "st-rock3_hole"; // see 0x12 |
stone_map[0x29] = "st-rock3_hole"; // see 0x12 |
433 |
stone_map[0x2a] = "st-rock3_move"; // see 0x12 and 0x2a |
stone_map[0x2a] = "st-rock3_move"; // see 0x12 and 0x2a |
434 |
stone_map[0x2b] = "st-wood"; |
stone_map[0x2b] = "st-wood"; |
435 |
stone_map[0x2c] = "st-switch"; |
stone_map[0x2c] = "st-switch"; |
436 |
stone_map[0x31] = "st-floppy"; |
stone_map[0x31] = "st-floppy"; |
437 |
stone_map[0x34] = "st-death"; |
stone_map[0x34] = "st-death"; |
438 |
stone_map[0x35] = "st-death_invisible"; |
stone_map[0x35] = "st-death_invisible"; |
439 |
stone_map[0x36] = "st-oneway-w"; |
stone_map[0x36] = "st-oneway-w"; |
440 |
stone_map[0x37] = "st-oneway-e"; |
stone_map[0x37] = "st-oneway-e"; |
441 |
stone_map[0x38] = "st-oneway-n"; |
stone_map[0x38] = "st-oneway-n"; |
442 |
stone_map[0x39] = "st-oneway-s"; |
stone_map[0x39] = "st-oneway-s"; |
443 |
stone_map[0x3e] = "st-window"; |
stone_map[0x3e] = "st-window"; |
444 |
stone_map[0x3f] = ""; // "st-magic"; |
stone_map[0x3f] = ""; // "st-magic"; |
445 |
stone_map[0x40] = ""; // "st-magic"; |
stone_map[0x40] = ""; // "st-magic"; |
446 |
stone_map[0x41] = ""; // "st-magic"; |
stone_map[0x41] = ""; // "st-magic"; |
447 |
|
|
448 |
// stone_map[0x42] = "st-stoneimpulse"; |
// stone_map[0x42] = "st-stoneimpulse"; |
449 |
|
|
450 |
stone_map[0x44] = "st-laser-n"; |
stone_map[0x44] = "st-laser-n"; |
451 |
stone_map[0x45] = "st-laser-s"; |
stone_map[0x45] = "st-laser-s"; |
452 |
stone_map[0x46] = "st-laser-e"; |
stone_map[0x46] = "st-laser-e"; |
453 |
|
|
454 |
stone_map[0x47] = "st-mirror-p|"; |
stone_map[0x47] = "st-mirror-p|"; |
455 |
stone_map[0x48] = "st-mirror-p/"; |
stone_map[0x48] = "st-mirror-p/"; |
456 |
stone_map[0x49] = "st-mirror-p-"; |
stone_map[0x49] = "st-mirror-p-"; |
457 |
stone_map[0x4a] = "st-mirror-p\\"; |
stone_map[0x4a] = "st-mirror-p\\"; |
458 |
stone_map[0x4b] = "st-mirror-p|m"; |
stone_map[0x4b] = "st-mirror-p|m"; |
459 |
stone_map[0x4c] = "st-mirror-p/m"; |
stone_map[0x4c] = "st-mirror-p/m"; |
460 |
stone_map[0x4d] = "st-mirror-p-m"; |
stone_map[0x4d] = "st-mirror-p-m"; |
461 |
stone_map[0x4e] = "st-mirror-p\\m"; |
stone_map[0x4e] = "st-mirror-p\\m"; |
462 |
stone_map[0x4f] = "st-mirror-p|t"; // should be special, because light passes vertical (in Oxyd1 only) |
stone_map[0x4f] = "st-mirror-p|t"; // should be special, because light passes vertical (in Oxyd1 only) |
463 |
stone_map[0x50] = "st-mirror-p/t"; |
stone_map[0x50] = "st-mirror-p/t"; |
464 |
stone_map[0x51] = "st-mirror-p-t"; // should be special, because light passes horizontal (in Oxyd1 only) |
stone_map[0x51] = "st-mirror-p-t"; // should be special, because light passes horizontal (in Oxyd1 only) |
465 |
stone_map[0x52] = "st-mirror-p\\t"; |
stone_map[0x52] = "st-mirror-p\\t"; |
466 |
|
|
467 |
stone_map[0x53] = "st-mirror-3>"; |
stone_map[0x53] = "st-mirror-3>"; |
468 |
stone_map[0x54] = "st-mirror-3^"; |
stone_map[0x54] = "st-mirror-3^"; |
469 |
stone_map[0x55] = "st-mirror-3<"; |
stone_map[0x55] = "st-mirror-3<"; |
470 |
stone_map[0x56] = "st-mirror-3v"; |
stone_map[0x56] = "st-mirror-3v"; |
471 |
|
|
472 |
stone_map[0x57] = "st-puzzle-es"; |
stone_map[0x57] = "st-puzzle-es"; |
473 |
stone_map[0x58] = "st-puzzle-sw"; |
stone_map[0x58] = "st-puzzle-sw"; |
474 |
stone_map[0x59] = "st-puzzle-nw"; |
stone_map[0x59] = "st-puzzle-nw"; |
475 |
stone_map[0x5a] = "st-puzzle-ne"; |
stone_map[0x5a] = "st-puzzle-ne"; |
476 |
stone_map[0x5b] = "st-puzzle-ew"; |
stone_map[0x5b] = "st-puzzle-ew"; |
477 |
stone_map[0x5c] = "st-puzzle-ns"; |
stone_map[0x5c] = "st-puzzle-ns"; |
478 |
stone_map[0x5d] = "st-puzzle-n"; |
stone_map[0x5d] = "st-puzzle-n"; |
479 |
stone_map[0x5e] = "st-puzzle-s"; |
stone_map[0x5e] = "st-puzzle-s"; |
480 |
stone_map[0x5f] = "st-puzzle-w"; |
stone_map[0x5f] = "st-puzzle-w"; |
481 |
stone_map[0x60] = "st-puzzle-e"; |
stone_map[0x60] = "st-puzzle-e"; |
482 |
stone_map[0x61] = "st-puzzle-nesw"; |
stone_map[0x61] = "st-puzzle-nesw"; |
483 |
stone_map[0x68] = "st-bombs"; |
stone_map[0x68] = "st-bombs"; |
484 |
stone_map[0x6c] = "st-shogun-s"; |
stone_map[0x6c] = "st-shogun-s"; |
485 |
stone_map[0x6d] = "st-stoneimpulse"; |
stone_map[0x6d] = "st-stoneimpulse"; |
486 |
stone_map[0x6e] = "st-laserswitch"; |
stone_map[0x6e] = "st-laserswitch"; |
487 |
stone_map[0x75] = "st-rock2"; |
stone_map[0x75] = "st-rock2"; |
488 |
stone_map[0x76] = "st-invisible"; |
stone_map[0x76] = "st-invisible"; |
489 |
stone_map[0x86] = "st-rock2_hole"; |
stone_map[0x86] = "st-rock2_hole"; |
490 |
stone_map[0x8a] = "st-stone1"; |
stone_map[0x8a] = "st-stone1"; |
491 |
stone_map[0x8c] = "st-rock7"; |
stone_map[0x8c] = "st-rock7"; |
492 |
stone_map[0x8e] = "st-yinyang2"; |
stone_map[0x8e] = "st-yinyang2"; |
493 |
break; |
break; |
494 |
|
|
495 |
case OxydVersion_OxydMagnum: |
case OxydVersion_OxydMagnum: |
496 |
case OxydVersion_OxydMagnumGold: |
case OxydVersion_OxydMagnumGold: |
497 |
floor_map[0x34] = "fl-brick"; |
floor_map[0x34] = "fl-brick"; |
498 |
floor_map[0x35] = "fl-brick"; |
floor_map[0x35] = "fl-brick"; |
499 |
floor_map[0x38] = "fl-brick"; |
floor_map[0x38] = "fl-brick"; |
500 |
floor_map[0x3c] = "fl-rock"; |
floor_map[0x3c] = "fl-rock"; |
501 |
floor_map[0x53] = "fl-springboard"; |
floor_map[0x53] = "fl-springboard"; |
502 |
|
|
503 |
item_map[0x25] = "it-seed"; |
item_map[0x25] = "it-seed"; |
504 |
item_map[0x36] = "it-springboard"; |
item_map[0x36] = "it-springboard"; |
505 |
item_map[0x4c] = "it-springboard"; |
item_map[0x4c] = "it-springboard"; |
506 |
|
|
507 |
stone_map[0x1a] = "st-grate1"; |
stone_map[0x1a] = "st-grate1"; |
508 |
stone_map[0x1f] = "st-brick"; |
stone_map[0x1f] = "st-brick"; |
509 |
stone_map[0x20] = "st-rock1"; |
stone_map[0x20] = "st-rock1"; |
510 |
stone_map[0x23] = "st-woven"; |
stone_map[0x23] = "st-woven"; |
511 |
stone_map[0x24] = "st-marble"; |
stone_map[0x24] = "st-marble"; |
512 |
stone_map[0x25] = "st-glass1"; |
stone_map[0x25] = "st-glass1"; |
513 |
stone_map[0x26] = "st-glass3"; |
stone_map[0x26] = "st-glass3"; |
514 |
stone_map[0x27] = "st-glass1"; |
stone_map[0x27] = "st-glass1"; |
515 |
stone_map[0x2b] = "st-wood"; |
stone_map[0x2b] = "st-wood"; |
516 |
stone_map[0x2c] = "st-switch"; |
stone_map[0x2c] = "st-switch"; |
517 |
stone_map[0x2d] = "st-floppy"; |
stone_map[0x2d] = "st-floppy"; |
518 |
stone_map[0x30] = "st-key_a"; |
stone_map[0x30] = "st-key_a"; |
519 |
stone_map[0x34] = "st-death"; |
stone_map[0x34] = "st-death"; |
520 |
stone_map[0x35] = "st-death_invisible"; |
stone_map[0x35] = "st-death_invisible"; |
521 |
stone_map[0x43] = "st-actorimpulse_invisible"; |
stone_map[0x43] = "st-actorimpulse_invisible"; |
522 |
stone_map[0x44] = "st-laser-n"; |
stone_map[0x44] = "st-laser-n"; |
523 |
stone_map[0x45] = "st-laser-s"; |
stone_map[0x45] = "st-laser-s"; |
524 |
stone_map[0x46] = "st-laser-e"; |
stone_map[0x46] = "st-laser-e"; |
525 |
stone_map[0x47] = "st-mirror-p|"; |
stone_map[0x47] = "st-mirror-p|"; |
526 |
stone_map[0x48] = "st-mirror-p/"; |
stone_map[0x48] = "st-mirror-p/"; |
527 |
stone_map[0x49] = "st-mirror-p-"; |
stone_map[0x49] = "st-mirror-p-"; |
528 |
stone_map[0x4a] = "st-mirror-p\\"; |
stone_map[0x4a] = "st-mirror-p\\"; |
529 |
stone_map[0x4b] = "st-mirror-p|m"; |
stone_map[0x4b] = "st-mirror-p|m"; |
530 |
stone_map[0x4c] = "st-mirror-p/m"; |
stone_map[0x4c] = "st-mirror-p/m"; |
531 |
stone_map[0x4d] = "st-mirror-p-m"; |
stone_map[0x4d] = "st-mirror-p-m"; |
532 |
stone_map[0x4e] = "st-mirror-p\\m"; |
stone_map[0x4e] = "st-mirror-p\\m"; |
533 |
stone_map[0x4f] = "st-mirror-p|t"; |
stone_map[0x4f] = "st-mirror-p|t"; |
534 |
stone_map[0x50] = "st-mirror-p/t"; |
stone_map[0x50] = "st-mirror-p/t"; |
535 |
stone_map[0x51] = "st-mirror-p-t"; |
stone_map[0x51] = "st-mirror-p-t"; |
536 |
stone_map[0x52] = "st-mirror-p\\t"; |
stone_map[0x52] = "st-mirror-p\\t"; |
537 |
stone_map[0x53] = "st-mirror-3>"; |
stone_map[0x53] = "st-mirror-3>"; |
538 |
stone_map[0x54] = "st-mirror-3^"; |
stone_map[0x54] = "st-mirror-3^"; |
539 |
stone_map[0x55] = "st-mirror-3<"; |
stone_map[0x55] = "st-mirror-3<"; |
540 |
stone_map[0x56] = "st-mirror-3v"; |
stone_map[0x56] = "st-mirror-3v"; |
541 |
// 0x5d special exploding puzzle stone |
// 0x5d special exploding puzzle stone |
542 |
// 0x5e |
// 0x5e |
543 |
stone_map[0x68] = "st-bombs"; |
stone_map[0x68] = "st-bombs"; |
544 |
stone_map[0x6d] = "st-stoneimpulse"; |
stone_map[0x6d] = "st-stoneimpulse"; |
545 |
stone_map[0x8a] = "st-stone1"; |
stone_map[0x8a] = "st-stone1"; |
546 |
stone_map[0x8c] = "st-white1"; |
stone_map[0x8c] = "st-white1"; |
547 |
stone_map[0x8d] = "st-black1"; |
stone_map[0x8d] = "st-black1"; |
548 |
stone_map[0x8e] = "st-yinyang2"; |
stone_map[0x8e] = "st-yinyang2"; |
549 |
stone_map[0x93] = "st-yinyang1"; |
stone_map[0x93] = "st-yinyang1"; |
550 |
stone_map[0xa4] = "st-stoneimpulse-hollow"; |
stone_map[0xa4] = "st-stoneimpulse-hollow"; |
551 |
break; |
break; |
552 |
|
|
553 |
case OxydVersion_PerOxyd: |
case OxydVersion_PerOxyd: |
554 |
floor_map[0x08] = "fl-rough-red"; |
floor_map[0x08] = "fl-rough-red"; |
555 |
floor_map[0x0b] = "fl-rough-red"; |
floor_map[0x0b] = "fl-rough-red"; |
556 |
floor_map[0x09] = "fl-rough-blue"; |
floor_map[0x09] = "fl-rough-blue"; |
557 |
floor_map[0x0a] = "fl-rough-blue"; |
floor_map[0x0a] = "fl-rough-blue"; |
558 |
floor_map[0x38] = "fl-concrete"; |
floor_map[0x38] = "fl-concrete"; |
559 |
floor_map[0x4c] = "fl-bridge-open"; |
floor_map[0x4c] = "fl-bridge-open"; |
560 |
floor_map[0x5a] = "fl-springboard"; |
floor_map[0x5a] = "fl-springboard"; |
561 |
floor_map[0x5b] = "fl-gravel"; |
floor_map[0x5b] = "fl-gravel"; |
562 |
|
|
563 |
item_map[0x18] = "it-flagwhite"; |
item_map[0x18] = "it-flagwhite"; |
564 |
item_map[0x19] = "it-flagblack"; |
item_map[0x19] = "it-flagblack"; |
565 |
item_map[0x1a] = "it-soother"; |
item_map[0x1a] = "it-soother"; |
566 |
item_map[0x2c] = "it-shogun-l"; |
item_map[0x1b] = "it-pipe-wn"; |
567 |
item_map[0x36] = "it-springboard"; |
item_map[0x1c] = "it-pipe-sw"; |
568 |
item_map[0x40] = "it-trigger"; |
item_map[0x1d] = "it-pipe-ne"; |
569 |
item_map[0x4a] = "it-odometer"; |
item_map[0x1e] = "it-pipe-es"; |
570 |
|
item_map[0x1f] = "it-pipe-v"; |
571 |
stone_map[0x13] = "st-rock4"; |
item_map[0x20] = "it-pipe-h"; |
572 |
stone_map[0x14] = "st-beads"; |
item_map[0x2c] = "it-shogun-l"; |
573 |
stone_map[0x16] = "st-rock7"; |
item_map[0x36] = "it-springboard"; |
574 |
stone_map[0x20] = "st-stone2"; |
item_map[0x40] = "it-trigger"; |
575 |
// stone_map[0x21] = "st-concrete"; // layout similar to fl-concrete |
item_map[0x4a] = "it-odometer"; |
576 |
stone_map[0x25] = "st-bluegray_hole"; |
|
577 |
stone_map[0x27] = "st-wood"; |
stone_map[0x13] = "st-rock4"; |
578 |
stone_map[0x28] = "st-switch"; |
stone_map[0x14] = "st-beads"; |
579 |
stone_map[0x2b] = "st-fourswitch"; |
stone_map[0x16] = "st-rock7"; |
580 |
stone_map[0x2c] = "st-switch"; |
stone_map[0x20] = "st-stone2"; |
581 |
stone_map[0x2d] = "st-floppy"; |
// stone_map[0x21] = "st-concrete"; // layout similar to fl-concrete |
582 |
stone_map[0x29] = "st-switch_black"; |
stone_map[0x25] = "st-bluegray_hole"; |
583 |
stone_map[0x2a] = "st-switch_white"; |
stone_map[0x27] = "st-wood"; |
584 |
stone_map[0x2d] = "st-floppy"; |
stone_map[0x28] = "st-switch"; |
585 |
stone_map[0x3e] = "st-laser-n"; |
stone_map[0x2b] = "st-fourswitch"; |
586 |
stone_map[0x3f] = "st-laser-s"; |
stone_map[0x2c] = "st-switch"; |
587 |
stone_map[0x40] = "st-laser-e"; |
stone_map[0x2d] = "st-floppy"; |
588 |
stone_map[0x41] = "st-mirror-p|"; |
stone_map[0x29] = "st-switch_black"; |
589 |
stone_map[0x42] = "st-mirror-p/"; |
stone_map[0x2a] = "st-switch_white"; |
590 |
stone_map[0x43] = "st-mirror-p-"; |
stone_map[0x2d] = "st-floppy"; |
591 |
stone_map[0x44] = "st-mirror-p\\"; |
stone_map[0x3e] = "st-laser-n"; |
592 |
stone_map[0x45] = "st-mirror-p|m"; |
stone_map[0x3f] = "st-laser-s"; |
593 |
stone_map[0x46] = "st-mirror-p/m"; |
stone_map[0x40] = "st-laser-e"; |
594 |
stone_map[0x47] = "st-mirror-p-m"; |
stone_map[0x41] = "st-mirror-p|"; |
595 |
stone_map[0x48] = "st-mirror-p\\m"; |
stone_map[0x42] = "st-mirror-p/"; |
596 |
stone_map[0x49] = "st-mirror-p|t"; |
stone_map[0x43] = "st-mirror-p-"; |
597 |
stone_map[0x4a] = "st-mirror-p/t"; |
stone_map[0x44] = "st-mirror-p\\"; |
598 |
stone_map[0x4b] = "st-mirror-p-t"; |
stone_map[0x45] = "st-mirror-p|m"; |
599 |
stone_map[0x4c] = "st-mirror-p\\t"; |
stone_map[0x46] = "st-mirror-p/m"; |
600 |
stone_map[0x4d] = "st-mirror-3>"; |
stone_map[0x47] = "st-mirror-p-m"; |
601 |
stone_map[0x4e] = "st-mirror-3^"; |
stone_map[0x48] = "st-mirror-p\\m"; |
602 |
stone_map[0x4f] = "st-mirror-3<"; |
stone_map[0x49] = "st-mirror-p|t"; |
603 |
stone_map[0x50] = "st-mirror-3v"; |
stone_map[0x4a] = "st-mirror-p/t"; |
604 |
stone_map[0x51] = "st-puzzle-es"; |
stone_map[0x4b] = "st-mirror-p-t"; |
605 |
stone_map[0x52] = "st-puzzle-sw"; |
stone_map[0x4c] = "st-mirror-p\\t"; |
606 |
stone_map[0x53] = "st-puzzle-nw"; |
stone_map[0x4d] = "st-mirror-3>"; |
607 |
stone_map[0x54] = "st-puzzle-ne"; |
stone_map[0x4e] = "st-mirror-3^"; |
608 |
stone_map[0x55] = "st-puzzle-ew"; |
stone_map[0x4f] = "st-mirror-3<"; |
609 |
stone_map[0x56] = "st-puzzle-ns"; |
stone_map[0x50] = "st-mirror-3v"; |
610 |
stone_map[0x57] = "st-puzzle-n"; |
stone_map[0x51] = "st-puzzle-es"; |
611 |
stone_map[0x58] = "st-puzzle-s"; |
stone_map[0x52] = "st-puzzle-sw"; |
612 |
stone_map[0x59] = "st-puzzle-w"; |
stone_map[0x53] = "st-puzzle-nw"; |
613 |
stone_map[0x5a] = "st-puzzle-e"; |
stone_map[0x54] = "st-puzzle-ne"; |
614 |
stone_map[0x5b] = "st-puzzle-nesw"; |
stone_map[0x55] = "st-puzzle-ew"; |
615 |
stone_map[0x5c] = "st-puzzle-hollow"; |
stone_map[0x56] = "st-puzzle-ns"; |
616 |
stone_map[0x62] = "st-bombs"; |
stone_map[0x57] = "st-puzzle-n"; |
617 |
stone_map[0x64] = "st-coinslot"; |
stone_map[0x58] = "st-puzzle-s"; |
618 |
stone_map[0x6d] = "st-stoneimpulse"; |
stone_map[0x59] = "st-puzzle-w"; |
619 |
stone_map[0x76] = "st-invisible"; |
stone_map[0x5a] = "st-puzzle-e"; |
620 |
stone_map[0x79] = "st-white1"; |
stone_map[0x5b] = "st-puzzle-nesw"; |
621 |
stone_map[0x7a] = "st-black1"; |
stone_map[0x5c] = "st-puzzle-hollow"; |
622 |
stone_map[0x7d] = "st-yinyang1"; |
stone_map[0x62] = "st-bombs"; |
623 |
stone_map[0x7e] = "st-break_acwhite"; |
stone_map[0x64] = "st-coinslot"; |
624 |
stone_map[0x7f] = "st-break_acblack"; |
stone_map[0x6d] = "st-stoneimpulse"; |
625 |
stone_map[0x8c] = "st-rock3"; |
stone_map[0x6f] = "st-mail-n"; |
626 |
stone_map[0x91] = "st-rotator-left"; |
stone_map[0x70] = "st-mail-w"; |
627 |
stone_map[0x92] = "st-rotator-right"; |
stone_map[0x71] = "st-mail-e"; |
628 |
stone_map[0x98] = "st-grate3"; |
stone_map[0x72] = "st-mail-s"; |
629 |
stone_map[0x9c] = "st-stone1"; |
stone_map[0x76] = "st-invisible"; |
630 |
stone_map[0xb7] = "st-easymode"; |
stone_map[0x79] = "st-white1"; |
631 |
break; |
stone_map[0x7a] = "st-black1"; |
632 |
|
stone_map[0x7d] = "st-yinyang1"; |
633 |
case OxydVersion_OxydExtra: |
stone_map[0x7e] = "st-break_acwhite"; |
634 |
stone_map[0x27] = "st-wood"; |
stone_map[0x7f] = "st-break_acblack"; |
635 |
stone_map[0x3c] = "st-stoneimpulse"; |
stone_map[0x8c] = "st-rock3"; |
636 |
|
stone_map[0x91] = "st-rotator-left"; |
637 |
stone_map[0x3e] = "st-laser-n"; |
stone_map[0x92] = "st-rotator-right"; |
638 |
stone_map[0x3f] = "st-laser-s"; |
stone_map[0x98] = "st-grate3"; |
639 |
stone_map[0x40] = "st-laser-e"; |
stone_map[0x9c] = "st-stone1"; |
640 |
|
stone_map[0xb7] = "st-easymode"; |
641 |
stone_map[0x43] = "st-mirror-p-"; |
break; |
642 |
stone_map[0x44] = "st-mirror-p\\"; |
|
643 |
stone_map[0x46] = "st-mirror-p/"; |
case OxydVersion_OxydExtra: |
644 |
stone_map[0x4b] = "st-mirror-p-t"; |
stone_map[0x27] = "st-wood"; |
645 |
stone_map[0x4d] = "st-mirror-3>"; |
stone_map[0x3c] = "st-stoneimpulse"; |
646 |
stone_map[0x4e] = "st-mirror-3^"; |
|
647 |
stone_map[0x4f] = "st-mirror-3<"; |
stone_map[0x3e] = "st-laser-n"; |
648 |
stone_map[0x50] = "st-mirror-3v"; |
stone_map[0x3f] = "st-laser-s"; |
649 |
|
stone_map[0x40] = "st-laser-e"; |
650 |
// 0x57 - 0x61 are special puzzle stones (rotate if incomplete, explode if complete) |
|
651 |
|
stone_map[0x43] = "st-mirror-p-"; |
652 |
stone_map[0x76] = "st-invisible"; |
stone_map[0x44] = "st-mirror-p\\"; |
653 |
break; |
stone_map[0x46] = "st-mirror-p/"; |
654 |
|
stone_map[0x4b] = "st-mirror-p-t"; |
655 |
default: |
stone_map[0x4d] = "st-mirror-3>"; |
656 |
fprintf(stderr, "Unknown Oxyd version '%i'\n", int(version)); |
stone_map[0x4e] = "st-mirror-3^"; |
657 |
break; |
stone_map[0x4f] = "st-mirror-3<"; |
658 |
|
stone_map[0x50] = "st-mirror-3v"; |
659 |
|
|
660 |
|
// 0x57 - 0x61 are special puzzle stones (rotate if incomplete, explode if complete) |
661 |
|
|
662 |
|
stone_map[0x76] = "st-invisible"; |
663 |
|
break; |
664 |
|
|
665 |
|
default: |
666 |
|
fprintf(stderr, "Unknown Oxyd version '%i'\n", int(version)); |
667 |
|
break; |
668 |
} |
} |
669 |
} |
} |
670 |
|
|