/[enigma]/enigma/lib-src/oxydlib/enigma_mapping.cpp
ViewVC logotype

Diff of /enigma/lib-src/oxydlib/enigma_mapping.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11 by dheck, Wed Jun 18 01:01:06 2003 UTC revision 1.12 by reallysoft, Fri Jun 20 22:34:19 2003 UTC
# Line 2  Line 2 
2  //                                                                           //  //                                                                           //
3  //    File      : enigma_mapping.cpp                                         //  //    File      : enigma_mapping.cpp                                         //
4  //    Purpose   :                                                            //  //    Purpose   :                                                            //
5  //    Time-stamp: <Tue Jun/17/2003 03:21 MET amgine@reallysoft.de>           //  //    Time-stamp: <Sat Jun/21/2003 00:24 MET amgine@reallysoft.de>           //
6  //                                                                           //  //                                                                           //
7  //    (C) May 2003 by Ralf Westram <amgine@rallysoft.de>                     //  //    (C) May 2003 by Ralf Westram <amgine@rallysoft.de>                     //
8  //                                                                           //  //                                                                           //
# Line 20  Line 20 
20    
21  #include "OxydVersion.h"  #include "OxydVersion.h"
22  #include "enigma_mapping.h"  #include "enigma_mapping.h"
23  #include <cstdio>  #include <assert.h>
 #include <algorithm>  
24    
25  using namespace std;  #define UNUSED ""
26    
27  #define CHECK_MAPS  // ---------------------------------------------
28    // Oxyd1 mapping
29  namespace {  // ---------------------------------------------
30      const char *common_floor_map[256] =  
31      {  static const char *Oxyd1_floor_map[256] = {
32          "fl-abyss",                 // 0x00      "fl-abyss",                 // Oxyd1 floor 0x00
33          "fl-gray",                  // 0x01      "fl-gray",                  // Oxyd1 floor 0x01
34          "fl-metal",                 // 0x02      "fl-metal",                 // Oxyd1 floor 0x02
35          "fl-metal",                 // 0x03      0,                          // Oxyd1 floor 0x03 (common was 'fl-metal')
36          "fl-metal",                 // 0x04      UNUSED,                     // Oxyd1 floor 0x04
37          "fl-metal",                 // 0x05      UNUSED,                     // Oxyd1 floor 0x05
38          "fl-metal",                 // 0x06      UNUSED,                     // Oxyd1 floor 0x06
39          "fl-metal",                 // 0x07      "fl-metal",                 // Oxyd1 floor 0x07
40          "fl-rough",                 // 0x08      0,                          // Oxyd1 floor 0x08 (common was 'fl-rough')
41          "fl-normal",                // 0x09      0,                          // Oxyd1 floor 0x09 (common was 'fl-normal')
42          "fl-normal",                // 0x0a      0,                          // Oxyd1 floor 0x0a (common was 'fl-normal')
43          "fl-stone",                 // 0x0b      0,                          // Oxyd1 floor 0x0b (common was 'fl-stone')
44          "fl-inverse",               // 0x0c      "fl-inverse",               // Oxyd1 floor 0x0c
45          0,                          // 0x0d black tile      "fl-black",                 // Oxyd1 floor 0x0d
46          0,                          // 0x0e white tile      "fl-white",                 // Oxyd1 floor 0x0e
47          "fl-swamp",                 // 0x0f swamp      "fl-swamp",                 // Oxyd1 floor 0x0f
48          "fl-swamp",                 // 0x10 swamp      UNUSED,                     // Oxyd1 floor 0x10
49          "fl-swamp",                 // 0x11 swamp      UNUSED,                     // Oxyd1 floor 0x11
50          "fl-swamp",                 // 0x12 swamp      UNUSED,                     // Oxyd1 floor 0x12
51          "fl-water",                 // 0x13      "fl-water",                 // Oxyd1 floor 0x13
52          "fl-water",                 // 0x14      UNUSED,                     // Oxyd1 floor 0x14
53          "fl-water",                 // 0x15      UNUSED,                     // Oxyd1 floor 0x15
54          "fl-water",                 // 0x16      UNUSED,                     // Oxyd1 floor 0x16
55          "fl-ice_001",               // 0x17      0,                          // Oxyd1 floor 0x17 (common was 'fl-ice_001')
56          "fl-ice_001",               // 0x18      UNUSED,                     // Oxyd1 floor 0x18
57          "fl-ice_001",               // 0x19      UNUSED,                     // Oxyd1 floor 0x19
58          "fl-ice_001",               // 0x1a      UNUSED,                     // Oxyd1 floor 0x1a
59          "fl-ice_001",               // 0x1b      UNUSED,                     // Oxyd1 floor 0x1b
60          "fl-space",                 // 0x1c      0,                          // Oxyd1 floor 0x1c (common was 'fl-space')
61          "fl-space",                 // 0x1d      0,                          // Oxyd1 floor 0x1d (common was 'fl-space')
62          "fl-space",                 // 0x1e      UNUSED,                     // Oxyd1 floor 0x1e
63          "fl-space",                 // 0x1f      UNUSED,                     // Oxyd1 floor 0x1f
64          "fl-space",                 // 0x20      0,                          // Oxyd1 floor 0x20 (common was 'fl-space')
65          "fl-space",                 // 0x21 space force down      0,                          // Oxyd1 floor 0x21 (common was 'fl-space')
66          "fl-space",                 // 0x22 space force down      0,                          // Oxyd1 floor 0x22 (common was 'fl-space')
67          "fl-gradient1",             // 0x23      "fl-gradient1",             // Oxyd1 floor 0x23
68          "fl-gradient2",             // 0x24      "fl-gradient2",             // Oxyd1 floor 0x24
69          "fl-gradient3",             // 0x25      "fl-gradient3",             // Oxyd1 floor 0x25
70          "fl-gradient4",             // 0x26      "fl-gradient4",             // Oxyd1 floor 0x26
71          "fl-gradient5",             // 0x27      "fl-gradient5",             // Oxyd1 floor 0x27
72          "fl-gradient6",             // 0x28      "fl-gradient6",             // Oxyd1 floor 0x28
73          "fl-gradient7",             // 0x29      "fl-gradient7",             // Oxyd1 floor 0x29
74          "fl-gradient8",             // 0x2a      "fl-gradient8",             // Oxyd1 floor 0x2a
75          "fl-gradient9",             // 0x2b      "fl-gradient9",             // Oxyd1 floor 0x2b
76          "fl-gradient10",            // 0x2c      "fl-gradient10",            // Oxyd1 floor 0x2c
77          "fl-gradient11",            // 0x2d      "fl-gradient11",            // Oxyd1 floor 0x2d
78          "fl-gradient12",            // 0x2e      "fl-gradient12",            // Oxyd1 floor 0x2e
79          "fl-gradient13",            // 0x2f      "fl-gradient13",            // Oxyd1 floor 0x2f
80          "fl-gradient14",            // 0x30      "fl-gradient14",            // Oxyd1 floor 0x30
81          "fl-gradient15",            // 0x31      "fl-gradient15",            // Oxyd1 floor 0x31
82          "fl-gradient16",            // 0x32      "fl-gradient16",            // Oxyd1 floor 0x32
83          "fl-rough",                 // 0x33      0,                          // Oxyd1 floor 0x33 (common was 'fl-rough')
84          "fl-rough",                 // 0x34      "fl-brick",                 // Oxyd1 floor 0x34 (common was 'fl-rough')
85          "fl-rough",                 // 0x35      UNUSED,                     // Oxyd1 floor 0x35
86          "fl-rough",                 // 0x36      UNUSED,                     // Oxyd1 floor 0x36
87          "fl-rough",                 // 0x37      0,                          // Oxyd1 floor 0x37 (common was 'fl-rough')
88          0,                          // 0x38      "fl-brick",                 // Oxyd1 floor 0x38
89          0,                          // 0x39      UNUSED,                     // Oxyd1 floor 0x39
90          0,                          // 0x3a      UNUSED,                     // Oxyd1 floor 0x3a
91          0,                          // 0x3b      UNUSED,                     // Oxyd1 floor 0x3b
92          0,                          // 0x3c      "fl-rock",                  // Oxyd1 floor 0x3c
93          "fl-wood",                  // 0x3d      UNUSED,                     // Oxyd1 floor 0x3d
94          "fl-wood",                  // 0x3e      UNUSED,                     // Oxyd1 floor 0x3e
95          "fl-wood",                  // 0x3f      UNUSED,                     // Oxyd1 floor 0x3f
96          "fl-wood",                  // 0x40      0,                          // Oxyd1 floor 0x40 (common was 'fl-wood')
97          "fl-wood",                  // 0x41      "fl-wood",                  // Oxyd1 floor 0x41
98          0,                          // 0x42      0,                          // Oxyd1 floor 0x42
99          0,                          // 0x43      UNUSED,                     // Oxyd1 floor 0x43
100          0,                          // 0x44      UNUSED,                     // Oxyd1 floor 0x44
101          0,                          // 0x45      UNUSED,                     // Oxyd1 floor 0x45
102          0,                          // 0x46      0,                          // Oxyd1 floor 0x46
103          0,                          // 0x47      "fl-gravel",                // Oxyd1 floor 0x47
104          0,                          // 0x48      UNUSED,                     // Oxyd1 floor 0x48
105          0,                          // 0x49      UNUSED,                     // Oxyd1 floor 0x49
106          0,                          // 0x4a      UNUSED,                     // Oxyd1 floor 0x4a
107          0,                          // 0x4b      UNUSED,                     // Oxyd1 floor 0x4b
108          0,                          // 0x4c      UNUSED,                     // Oxyd1 floor 0x4c
109          0,                          // 0x4d      0,                          // Oxyd1 floor 0x4d
110          0,                          // 0x4e      UNUSED,                     // Oxyd1 floor 0x4e
111          0,                          // 0x4f      UNUSED,                     // Oxyd1 floor 0x4f
112          0,                          // 0x50      UNUSED,                     // Oxyd1 floor 0x50
113          0,                          // 0x51      UNUSED,                     // Oxyd1 floor 0x51
114          "fl-bridge",                // 0x52 (type of bridge seems to depend on item above)      "fl-bridge",                // Oxyd1 floor 0x52 (common was 'fl-bridge')
115          0,                          // 0x53      "fl-springboard",           // Oxyd1 floor 0x53
116          0,                          // 0x54      UNUSED,                     // Oxyd1 floor 0x54
117          "fl-plank",                 // 0x55      0,                          // Oxyd1 floor 0x55 (common was 'fl-plank')
118          0,                          // 0x56      0,                          // Oxyd1 floor 0x56
119          0,                          // 0x57      0,                          // Oxyd1 floor 0x57
120          0,                          // 0x58      0,                          // Oxyd1 floor 0x58
121          0,                          // 0x59      0,                          // Oxyd1 floor 0x59
122          0,                          // 0x5a      0,                          // Oxyd1 floor 0x5a
123          0,                          // 0x5b      0,                          // Oxyd1 floor 0x5b
124          0,                          // 0x5c      // codes >= 0x5c are unused
125          0,                          // 0x5d  };
126          0,                          // 0x5e  
127          0,                          // 0x5f  static const char *Oxyd1_stone_map[256] = {
128          0,                          // 0x60      0,                          // Oxyd1 stone 0x00
129      };      0,                          // Oxyd1 stone 0x01
130        0,                          // Oxyd1 stone 0x02
131      const char *common_item_map[256] = {      0,                          // Oxyd1 stone 0x03
132          0,                          // 0x00      0,                          // Oxyd1 stone 0x04
133          "it-extralife",             // 0x01      0,                          // Oxyd1 stone 0x05
134          "it-document",              // 0x02      0,                          // Oxyd1 stone 0x06
135          "it-document",              // 0x03      0,                          // Oxyd1 stone 0x07
136          "it-hammer",                // 0x04      0,                          // Oxyd1 stone 0x08
137          0,                          // 0x05      0,                          // Oxyd1 stone 0x09
138          0,                          // 0x06      0,                          // Oxyd1 stone 0x0a
139          "it-umbrella",              // 0x07      0,                          // Oxyd1 stone 0x0b
140          0,                          // 0x08      0,                          // Oxyd1 stone 0x0c
141          0,                          // 0x09      0,                          // Oxyd1 stone 0x0d
142          "it-dynamite",              // 0x0a      0,                          // Oxyd1 stone 0x0e
143          "it-blackbomb",             // 0x0b      0,                          // Oxyd1 stone 0x0f
144          "it-whitebomb",             // 0x0c      0,                          // Oxyd1 stone 0x10
145          0,                          // 0x0d      0,                          // Oxyd1 stone 0x11 (common was 'st-fakeoxyd')
146          0,                          // 0x0e      "st-rock3",                 // Oxyd1 stone 0x12 (common was 'st-bluegray')
147          0,                          // 0x0f      "st-bigbrick-es",           // Oxyd1 stone 0x13
148          0,                          // 0x10      "st-bigbrick-sw",           // Oxyd1 stone 0x14
149          "it-coin1",                 // 0x11      "st-bigbrick-ne",           // Oxyd1 stone 0x15
150          "it-coin2",                 // 0x12      "st-bigbrick-nw",           // Oxyd1 stone 0x16
151          "it-coin4",                 // 0x13      0,                          // Oxyd1 stone 0x17
152          0,                          // 0x14      0,                          // Oxyd1 stone 0x18 (common was 'st-grate1')
153          0,                          // 0x15      0,                          // Oxyd1 stone 0x19
154          0,                          // 0x16      "st-grate1",                // Oxyd1 stone 0x1a
155          "it-floppy",                // 0x17      0,                          // Oxyd1 stone 0x1b
156          0,                          // 0x18      "st-bug",                   // Oxyd1 stone 0x1c (common was 'st-rock4')
157          0,                          // 0x19      0,                          // Oxyd1 stone 0x1d (common was 'st-rock3')
158          0,                          // 0x1a      "st-chameleon",             // Oxyd1 stone 0x1e
159          0,                          // 0x1b      "st-brick",                 // Oxyd1 stone 0x1f
160          0,                          // 0x1c      "st-rock1",                 // Oxyd1 stone 0x20
161          0,                          // 0x1d      "st-rock1",                 // Oxyd1 stone 0x21
162          0,                          // 0x1e      UNUSED,                     // Oxyd1 stone 0x22
163          0,                          // 0x1f      "st-woven",                 // Oxyd1 stone 0x23
164          0,                          // 0x20      "st-marble",                // Oxyd1 stone 0x24
165          "it-spade",                 // 0x21      "st-glass1",                // Oxyd1 stone 0x25
166          0,                          // 0x22      "st-glass3",                // Oxyd1 stone 0x26
167          0,                          // 0x23      0,                          // Oxyd1 stone 0x27
168          "it-seed",                  // 0x24      0,                          // Oxyd1 stone 0x28 [grey stone, unmoveable, dynamite breaks it, see Level#12]
169          "it-spring2",               // 0x25      "st-rock3_hole",            // Oxyd1 stone 0x29
170          "it-spring1",               // 0x26      "st-rock3_move",            // Oxyd1 stone 0x2a
171          "it-spring2",               // 0x27      "st-wood",                  // Oxyd1 stone 0x2b
172          "it-magnet",                // 0x28      "st-switch",                // Oxyd1 stone 0x2c
173          0,                          // 0x29      0,                          // Oxyd1 stone 0x2d
174          0,                          // 0x2a      0,                          // Oxyd1 stone 0x2e
175          "it-shogun-s",              // 0x2b      0,                          // Oxyd1 stone 0x2f (common was 'st-death')
176          0,                          // 0x2c      "st-key_a",                 // Oxyd1 stone 0x30
177          0,                          // 0x2d      "st-floppy",                // Oxyd1 stone 0x31 (common was 'st-oneway_black-w')
178          0,                          // 0x2e      0,                          // Oxyd1 stone 0x32 (common was 'st-oneway_black-e')
179          "it-wormhole",              // 0x2f      0,                          // Oxyd1 stone 0x33 (common was 'st-oneway_black-n')
180          "it-hill",                  // 0x30      "st-death",                 // Oxyd1 stone 0x34 (common was 'st-oneway_black-s')
181          "it-tinyhill",              // 0x31      "st-death_invisible",       // Oxyd1 stone 0x35 (common was 'st-oneway_white-w')
182          "it-hollow",                // 0x32      "st-oneway-w",              // Oxyd1 stone 0x36 (common was 'st-oneway_white-e')
183          "it-tinyhollow",            // 0x33      "st-oneway-e",              // Oxyd1 stone 0x37 (common was 'st-oneway_white-n')
184          0,                          // 0x34      "st-oneway-n",              // Oxyd1 stone 0x38 (common was 'st-oneway_white-s')
185          0,                          // 0x35      "st-oneway-s",              // Oxyd1 stone 0x39 (common was 'st-magic')
186          0,                          // 0x36      0,                          // Oxyd1 stone 0x3a (common was 'st-magic')
187          0,                          // 0x37      0,                          // Oxyd1 stone 0x3b (common was 'st-magic')
188          0,                          // 0x38      0,                          // Oxyd1 stone 0x3c
189          0,                          // 0x39      0,                          // Oxyd1 stone 0x3d
190          0,                          // 0x3a      "st-window",                // Oxyd1 stone 0x3e
191          0,                          // 0x3b      "",                         // Oxyd1 stone 0x3f
192          0,                          // 0x3c      "",                         // Oxyd1 stone 0x40
193          0,                          // 0x3d      "",                         // Oxyd1 stone 0x41
194          0,                          // 0x3e      "st-actorimpulse",          // Oxyd1 stone 0x42
195          0,                          // 0x3f      0,                          // Oxyd1 stone 0x43
196          0,                          // 0x40      "st-laser-n",               // Oxyd1 stone 0x44
197          "it-brush",                 // 0x41      "st-laser-s",               // Oxyd1 stone 0x45
198          0,                          // 0x42      "st-laser-e",               // Oxyd1 stone 0x46
199          0,                          // 0x43      "st-mirror-p|",             // Oxyd1 stone 0x47
200          "it-brake",                 // 0x44      "st-mirror-p/",             // Oxyd1 stone 0x48
201          0,                          // 0x45      "st-mirror-p-",             // Oxyd1 stone 0x49
202          "it-blocker",               // 0x46      "st-mirror-p\\",            // Oxyd1 stone 0x4a
203          "it-magicwand",             // 0x47      "st-mirror-p|m",            // Oxyd1 stone 0x4b
204          0,                          // 0x48      "st-mirror-p/m",            // Oxyd1 stone 0x4c
205          0,                          // 0x49      "st-mirror-p-m",            // Oxyd1 stone 0x4d
206          0,                          // 0x4a      "st-mirror-p\\m",           // Oxyd1 stone 0x4e
207          "it-puller-n",              // 0x4b      "st-mirror-p|t",            // Oxyd1 stone 0x4f
208          "it-puller-s",              // 0x4c      "st-mirror-p/t",            // Oxyd1 stone 0x50
209          "it-puller-w",              // 0x4d      "st-mirror-p-t",            // Oxyd1 stone 0x51
210          "it-puller-e",              // 0x4e      "st-mirror-p\\t",           // Oxyd1 stone 0x52
211          0,                          // 0x4f +      "st-mirror-3>",             // Oxyd1 stone 0x53
212          0,                          // 0x50 + activated      "st-mirror-3^",             // Oxyd1 stone 0x54
213          0,                          // 0x51 + pullers      "st-mirror-3<",             // Oxyd1 stone 0x55
214          0,                          // 0x52 +      "st-mirror-3v",             // Oxyd1 stone 0x56
215          0,                          // 0x53      "st-puzzle2-es",            // Oxyd1 stone 0x57
216          0,                          // 0x54      "st-puzzle2-sw",            // Oxyd1 stone 0x58
217          0,                          // 0x55      "st-puzzle2-nw",            // Oxyd1 stone 0x59
218          0,                          // 0x56      "st-puzzle2-ne",            // Oxyd1 stone 0x5a
219          0,                          // 0x57      "st-puzzle2-ew",            // Oxyd1 stone 0x5b
220          0,                          // 0x58      "st-puzzle2-ns",            // Oxyd1 stone 0x5c
221          0,                          // 0x59      "st-puzzle2-n",             // Oxyd1 stone 0x5d
222          0,                          // 0x5a      "st-puzzle2-s",             // Oxyd1 stone 0x5e
223          0,                          // 0x5b      "st-puzzle2-w",             // Oxyd1 stone 0x5f
224          0,                          // 0x5c      "st-puzzle2-e",             // Oxyd1 stone 0x60
225          0,                          // 0x5d      "st-puzzle2-nesw",          // Oxyd1 stone 0x61
226          0,                          // 0x5e      0,                          // Oxyd1 stone 0x62
227          0,                          // 0x5f      "st-rock6",                 // Oxyd1 stone 0x63 (common was 'st-stone_break')
228          0,                          // 0x60      0,                          // Oxyd1 stone 0x64
229          0,                          // 0x61      UNUSED,                     // Oxyd1 stone 0x65
230          0,                          // 0x62      0,                          // Oxyd1 stone 0x66 (common was 'st-shogun-s')
231          "it-trigger",               // 0x63      0,                          // Oxyd1 stone 0x67 (common was 'st-shogun-m')
232      };      "st-bombs",                 // Oxyd1 stone 0x68 (common was 'st-shogun-l')
233        0,                          // Oxyd1 stone 0x69 (common was 'st-shogun-sml')
234      const char *common_stone_map[256] =      "st-coinslot",              // Oxyd1 stone 0x6a (common was 'st-shogun-ml')
235      {      "st-thief",                 // Oxyd1 stone 0x6b (common was 'st-shogun-sl')
236          0,      "st-shogun-s",              // Oxyd1 stone 0x6c (common was 'st-shogun-sm')
237          0,                          // 0x01      "st-stoneimpulse",          // Oxyd1 stone 0x6d
238          0,                          // 0x02      "st-laserswitch",           // Oxyd1 stone 0x6e
239          0,                          // 0x03      0,                          // Oxyd1 stone 0x6f
240          0,                          // 0x04      0,                          // Oxyd1 stone 0x70
241          0,                          // 0x05      "st-mail-e",                // Oxyd1 stone 0x71
242          0,                          // 0x06      "st-mail-s",                // Oxyd1 stone 0x72
243          0,                          // 0x07      "st-door-h",                // Oxyd1 stone 0x73
244          0,                          // 0x08      0,                          // Oxyd1 stone 0x74 (common was 'st-door-v')
245          0,                          // 0x09      "st-rock2",                 // Oxyd1 stone 0x75 (common was 'st-rock2')
246          0,                          // 0x0a      "st-invisible",             // Oxyd1 stone 0x76
247          0,                          // 0x0b      "st-door-h-open",           // Oxyd1 stone 0x77
248          0,                          // 0x0c      0,                          // Oxyd1 stone 0x78
249          0,                          // 0x0d      UNUSED,                     // Oxyd1 stone 0x79
250          0,                          // 0x0e      0,                          // Oxyd1 stone 0x7a
251          0,                          // 0x0f      UNUSED,                     // Oxyd1 stone 0x7b
252          0,                          // 0x10      UNUSED,                     // Oxyd1 stone 0x7c
253          "st-fakeoxyd",              // 0x11      UNUSED,                     // Oxyd1 stone 0x7d
254          "st-bluegray",              // 0x12      UNUSED,                     // Oxyd1 stone 0x7e
255          0,                          // 0x13      UNUSED,                     // Oxyd1 stone 0x7f
256          0,                          // 0x14      UNUSED,                     // Oxyd1 stone 0x80
257          "st-rock5",                 // 0x15      "",                         // Oxyd1 stone 0x81
258          0,                          // 0x16      UNUSED,                     // Oxyd1 stone 0x82
259          0,                          // 0x17      UNUSED,                     // Oxyd1 stone 0x83
260          "st-grate1",                // 0x18      UNUSED,                     // Oxyd1 stone 0x84
261          0,                          // 0x19      UNUSED,                     // Oxyd1 stone 0x85
262          0,                          // 0x1a      "st-rock2_hole",            // Oxyd1 stone 0x86
263          0,                          // 0x1b      0,                          // Oxyd1 stone 0x87
264          "st-rock4",                 // 0x1c      UNUSED,                     // Oxyd1 stone 0x88
265          "st-rock3",                 // 0x1d      UNUSED,                     // Oxyd1 stone 0x89
266          0,                          // 0x1e      "st-stone1",                // Oxyd1 stone 0x8a
267          0,                          // 0x1f      0,                          // Oxyd1 stone 0x8b
268          0,                          // 0x20      "st-white1",                // Oxyd1 stone 0x8c
269          0,                          // 0x21      "st-black1",                // Oxyd1 stone 0x8d
270          "st-glass",                 // 0x22      "st-yinyang2",              // Oxyd1 stone 0x8e (common was 'st-rock6')
271          0,                          // 0x23      UNUSED,                     // Oxyd1 stone 0x8f
272          0,                          // 0x24      0,                          // Oxyd1 stone 0x90
273          0,                          // 0x25      0,                          // Oxyd1 stone 0x91
274          0,                          // 0x26 (peroxyd: movable stone, sinks in water, falls into abyss, orange?)      0,                          // Oxyd1 stone 0x92
275          0,                          // 0x27      0,                          // Oxyd1 stone 0x93 (common was 'st-swap')
276          0,                          // 0x28      "st-break_acwhite",         // Oxyd1 stone 0x94
277          0,                          // 0x29      0,                          // Oxyd1 stone 0x95
278          0,                          // 0x2a      "st-chargeplus",            // Oxyd1 stone 0x96
279          0,                          // 0x2b      "st-chargeminus",           // Oxyd1 stone 0x97
280          0,                          // 0x2c      "st-chargezero",            // Oxyd1 stone 0x98
281          0,                          // 0x2d      0,                          // Oxyd1 stone 0x99 (common was 'st-blocker')
282          0,                          // 0x2e      // codes >= 0x9a are unused
283          "st-death",                 // 0x2f  };
284          0,       // 0x30  
285          "st-oneway_black-w",        // 0x31  static const char *Oxyd1_item_map[256] = {
286          "st-oneway_black-e",        // 0x32      0,                          // Oxyd1 item 0x00
287          "st-oneway_black-n",        // 0x33      "it-extralife",             // Oxyd1 item 0x01
288          "st-oneway_black-s",        // 0x34      0,                          // Oxyd1 item 0x02 (common was 'it-document')
289          "st-oneway_white-w",        // 0x35      0,                          // Oxyd1 item 0x03 (common was 'it-document')
290          "st-oneway_white-e",        // 0x36      0,                          // Oxyd1 item 0x04 (common was 'it-hammer')
291          "st-oneway_white-n",        // 0x37      0,                          // Oxyd1 item 0x05 coffee
292          "st-oneway_white-s",        // 0x38      0,                          // Oxyd1 item 0x06 cherry
293          "st-magic",                 // 0x39      "it-umbrella",              // Oxyd1 item 0x07
294          "st-magic",                 // 0x3a      0,                          // Oxyd1 item 0x08
295          "st-magic",                 // 0x3b      0,                          // Oxyd1 item 0x09
296          0,                          // 0x3c      "it-dynamite",              // Oxyd1 item 0x0a
297          0,                          // 0x3d      "it-blackbomb",             // Oxyd1 item 0x0b
298          0,                          // 0x3e      "it-whitebomb",             // Oxyd1 item 0x0c
299          0,                          // 0x3f      0,                          // Oxyd1 item 0x0d
300          0,                          // 0x40      0,                          // Oxyd1 item 0x0e
301          0,                          // 0x41      0,                          // Oxyd1 item 0x0f
302          0,                          // 0x42      0,                          // Oxyd1 item 0x10
303          0,                          // 0x43      0,                          // Oxyd1 item 0x11 (common was 'it-coin1')
304          0,                          // 0x44      0,                          // Oxyd1 item 0x12 (common was 'it-coin2')
305          0,                          // 0x45      0,                          // Oxyd1 item 0x13 (common was 'it-coin4')
306          0,                          // 0x46      "it-key",                   // Oxyd1 item 0x14
307          0,                          // 0x47      0,                          // Oxyd1 item 0x15
308          0,                          // 0x48      0,                          // Oxyd1 item 0x16
309          0,                          // 0x49      0,                          // Oxyd1 item 0x17 (common was 'it-floppy')
310          0,                          // 0x4a      0,                          // Oxyd1 item 0x18
311          0,                          // 0x4b      0,                          // Oxyd1 item 0x19
312          0,                          // 0x4c      "it-flagblack",             // Oxyd1 item 0x1a
313          0,                          // 0x4d      0,                          // Oxyd1 item 0x1b
314          0,                          // 0x4e      "it-pipe-wn",               // Oxyd1 item 0x1c
315          0,                          // 0x4f      "it-pipe-sw",               // Oxyd1 item 0x1d
316          0,                          // 0x50      "it-pipe-ne",               // Oxyd1 item 0x1e
317          0,                          // 0x51      "it-pipe-es",               // Oxyd1 item 0x1f
318          0,                          // 0x52      "it-pipe-v",                // Oxyd1 item 0x20
319          0,                          // 0x53      "it-pipe-h",                // Oxyd1 item 0x21 (common was 'it-spade')
320          0,                          // 0x54      "it-spade",                 // Oxyd1 item 0x22
321          0,                          // 0x55      0,                          // Oxyd1 item 0x23
322          0,                          // 0x56      0,                          // Oxyd1 item 0x24 (common was 'it-seed')
323          0,                          // 0x57      "it-seed",                  // Oxyd1 item 0x25 (common was 'it-spring2')
324          0,                          // 0x58      0,                          // Oxyd1 item 0x26 (common was 'it-spring1')
325          0,                          // 0x59      "it-spring1",               // Oxyd1 item 0x27 (common was 'it-spring2')
326          0,                          // 0x5a      0,                          // Oxyd1 item 0x28 (common was 'it-magnet')
327          0,                          // 0x5b      "it-magnet",                // Oxyd1 item 0x29
328          0,                          // 0x5c      0,                          // Oxyd1 item 0x2a
329          0,                          // 0x5d      0,                          // Oxyd1 item 0x2b (common was 'it-shogun-s')
330          0,                          // 0x5e      "it-shogun-s",              // Oxyd1 item 0x2c
331          0,                          // 0x5f      0,                          // Oxyd1 item 0x2d
332          0,                          // 0x60      0,                          // Oxyd1 item 0x2e
333          0,                          // 0x61      0,                          // Oxyd1 item 0x2f (common was 'it-wormhole')
334          0,                          // 0x62      0,                          // Oxyd1 item 0x30 (common was 'it-hill')
335          "st-stone_break",           // 0x63      0,                          // Oxyd1 item 0x31 (common was 'it-tinyhill')
336          0,                          // 0x64      0,                          // Oxyd1 item 0x32 (common was 'it-hollow')
337          "st-thief",                 // 0x65      0,                          // Oxyd1 item 0x33 (common was 'it-tinyhollow')
338          "st-shogun-s",              // 0x66      0,                          // Oxyd1 item 0x34
339          "st-shogun-m",              // 0x67      0,                          // Oxyd1 item 0x35
340          "st-shogun-l",              // 0x68      "it-springboard",           // Oxyd1 item 0x36
341          "st-shogun-sml",            // 0x69      0,                          // Oxyd1 item 0x37
342          "st-shogun-ml",             // 0x6a      0,                          // Oxyd1 item 0x38
343          "st-shogun-sl",             // 0x6b      0,                          // Oxyd1 item 0x39
344          "st-shogun-sm",             // 0x6c      UNUSED,                     // Oxyd1 item 0x3a
345          0,                          // 0x6d      UNUSED,                     // Oxyd1 item 0x3b
346          0,                          // 0x6e      UNUSED,                     // Oxyd1 item 0x3c
347          0,                          // 0x6f      UNUSED,                     // Oxyd1 item 0x3d
348          0,                          // 0x70      UNUSED,                     // Oxyd1 item 0x3e
349          0,                          // 0x71      UNUSED,                     // Oxyd1 item 0x3f
350          0,                          // 0x72      UNUSED,                     // Oxyd1 item 0x40
351          "st-door-h",                // 0x73      UNUSED,                     // Oxyd1 item 0x41
352          "st-door-v",                // 0x74      UNUSED,                     // Oxyd1 item 0x42
353          "st-rock2",                 // 0x75      UNUSED,                     // Oxyd1 item 0x43
354          0,                          // 0x76      UNUSED,                     // Oxyd1 item 0x44
355          0,                          // 0x77      UNUSED,                     // Oxyd1 item 0x45
356          0,                          // 0x78      UNUSED,                     // Oxyd1 item 0x46
357          0,                          // 0x79      UNUSED,                     // Oxyd1 item 0x47
358          0,                          // 0x7a      UNUSED,                     // Oxyd1 item 0x48
359          0,                          // 0x7b      UNUSED,                     // Oxyd1 item 0x49
360          0,                          // 0x7c      UNUSED,                     // Oxyd1 item 0x4a
361          0,                          // 0x7d      UNUSED,                     // Oxyd1 item 0x4b
362          0,                          // 0x7e      UNUSED,                     // Oxyd1 item 0x4c
363          0,                          // 0x7f      UNUSED,                     // Oxyd1 item 0x4d
364          0,                          // 0x80      UNUSED,                     // Oxyd1 item 0x4e
365          0,                          // 0x81      UNUSED,                     // Oxyd1 item 0x4f
366          0,                          // 0x82      UNUSED,                     // Oxyd1 item 0x50
367          0,                          // 0x83      UNUSED,                     // Oxyd1 item 0x51
368          0,                          // 0x84      UNUSED,                     // Oxyd1 item 0x52
369          0,                          // 0x85      UNUSED,                     // Oxyd1 item 0x53
370          0,                          // 0x86      UNUSED,                     // Oxyd1 item 0x54
371          0,                          // 0x87          UNUSED,                     // Oxyd1 item 0x55
372          0,                          // 0x88      UNUSED,                     // Oxyd1 item 0x56
373          0,                          // 0x89      UNUSED,                     // Oxyd1 item 0x57
374          0,                          // 0x8a      UNUSED,                     // Oxyd1 item 0x58
375          0,                          // 0x8b      UNUSED,                     // Oxyd1 item 0x59
376          0,                          // 0x8c      UNUSED,                     // Oxyd1 item 0x5a
377          0,                          // 0x8d      UNUSED,                     // Oxyd1 item 0x5b
378          "st-rock6",                 // 0x8e      UNUSED,                     // Oxyd1 item 0x5c
379          0,                          // 0x8f      UNUSED,                     // Oxyd1 item 0x5d
380          0,                          // 0x90      UNUSED,                     // Oxyd1 item 0x5e
381          0,                          // 0x91      0,                          // Oxyd1 item 0x5f
382          0,                          // 0x92      0,                          // Oxyd1 item 0x60
383          "st-swap",                  // 0x93      // codes >= 0x61 are unused
384          0,                          // 0x94  };
385          0,                          // 0x95  
386          0,                      // 0x96  // ---------------------------------------------
387          0,                      // 0x97  // OxydMagnum/OxydMagnumGold mapping
388          0,                          // 0x98  // ---------------------------------------------
389          "st-blocker",               // 0x99  
390          "st-grate1",                // 0x9a  (XXX)  static const char *OxydMagnum_floor_map[256] = {
391          0,                          // 0x9b      0,                          // OxydMagnum floor 0x00 (common was 'fl-abyss')
392          0,                          // 0x9c      0,                          // OxydMagnum floor 0x01 (common was 'fl-gray')
393          0,                          // 0x9d      0,                          // OxydMagnum floor 0x02 (common was 'fl-metal')
394          "st-turnstile",             // 0x9e      0,                          // OxydMagnum floor 0x03 (common was 'fl-metal')
395          "st-turnstile-n",           // 0x9f      0,                          // OxydMagnum floor 0x04 (common was 'fl-metal')
396          "st-turnstile-s",           // 0xa0      0,                          // OxydMagnum floor 0x05 (common was 'fl-metal')
397          "st-turnstile-w",           // 0xa1      0,                          // OxydMagnum floor 0x06 (common was 'fl-metal')
398          "st-turnstile-e",           // 0xa2      0,                          // OxydMagnum floor 0x07 (common was 'fl-metal')
399        0,                          // OxydMagnum floor 0x08 (common was 'fl-rough')
400      };      0,                          // OxydMagnum floor 0x09 (common was 'fl-normal')
401        0,                          // OxydMagnum floor 0x0a (common was 'fl-normal')
402      void patch_mapping(const char **floor_map,      0,                          // OxydMagnum floor 0x0b (common was 'fl-stone')
403                         const char **item_map,      0,                          // OxydMagnum floor 0x0c (common was 'fl-inverse')
404                         const char **stone_map,      0,                          // OxydMagnum floor 0x0d
405                         OxydVersion version)      0,                          // OxydMagnum floor 0x0e
406      {      0,                          // OxydMagnum floor 0x0f (common was 'fl-swamp')
407          /* The object numbers differ slightly between different oxyd      UNUSED,                     // OxydMagnum floor 0x10
408             versions, so we have to patch the common translation tables. */      UNUSED,                     // OxydMagnum floor 0x11
409        UNUSED,                     // OxydMagnum floor 0x12
410          switch (version) {      0,                          // OxydMagnum floor 0x13 (common was 'fl-water')
411          case OxydVersion_Oxyd1:      UNUSED,                     // OxydMagnum floor 0x14
412              floor_map[0x0d] = "fl-black";      UNUSED,                     // OxydMagnum floor 0x15
413              floor_map[0x0e] = "fl-white";      UNUSED,                     // OxydMagnum floor 0x16
414              floor_map[0x34] = "fl-brick";      0,                          // OxydMagnum floor 0x17 (common was 'fl-ice_001')
415              floor_map[0x38] = "fl-brick";      UNUSED,                     // OxydMagnum floor 0x18
416              floor_map[0x3c] = "fl-rock";      UNUSED,                     // OxydMagnum floor 0x19
417              floor_map[0x47] = "fl-gravel";      UNUSED,                     // OxydMagnum floor 0x1a
418              floor_map[0x52] = "fl-bridge";      UNUSED,                     // OxydMagnum floor 0x1b
419              floor_map[0x53] = "fl-springboard";      0,                          // OxydMagnum floor 0x1c (common was 'fl-space')
420        UNUSED,                     // OxydMagnum floor 0x1d
421              item_map[0x14] = "it-key";      UNUSED,                     // OxydMagnum floor 0x1e
422              item_map[0x1a] = "it-flagblack";      UNUSED,                     // OxydMagnum floor 0x1f
423              item_map[0x1c] = "it-pipe-wn";      UNUSED,                     // OxydMagnum floor 0x20
424              item_map[0x1d] = "it-pipe-sw";      UNUSED,                     // OxydMagnum floor 0x21
425              item_map[0x1e] = "it-pipe-ne";      UNUSED,                     // OxydMagnum floor 0x22
426              item_map[0x1f] = "it-pipe-es";      0,                          // OxydMagnum floor 0x23 (common was 'fl-gradient1')
427              item_map[0x20] = "it-pipe-v";      0,                          // OxydMagnum floor 0x24 (common was 'fl-gradient2')
428              item_map[0x21] = "it-pipe-h";      0,                          // OxydMagnum floor 0x25 (common was 'fl-gradient3')
429              item_map[0x22] = "it-spade";      0,                          // OxydMagnum floor 0x26 (common was 'fl-gradient4')
430              item_map[0x25] = "it-seed";      0,                          // OxydMagnum floor 0x27 (common was 'fl-gradient5')
431              item_map[0x27] = "it-spring1";      0,                          // OxydMagnum floor 0x28 (common was 'fl-gradient6')
432              item_map[0x29] = "it-magnet";      0,                          // OxydMagnum floor 0x29 (common was 'fl-gradient7')
433              item_map[0x2c] = "it-shogun-s";      0,                          // OxydMagnum floor 0x2a (common was 'fl-gradient8')
434              item_map[0x36] = "it-springboard";      0,                          // OxydMagnum floor 0x2b (common was 'fl-gradient9')
435        0,                          // OxydMagnum floor 0x2c (common was 'fl-gradient10')
436              stone_map[0x12] = "st-rock3"; // see 0x29, 0x2a      0,                          // OxydMagnum floor 0x2d (common was 'fl-gradient11')
437              stone_map[0x13] = "st-bigbrick-es";      0,                          // OxydMagnum floor 0x2e (common was 'fl-gradient12')
438              stone_map[0x14] = "st-bigbrick-sw";      0,                          // OxydMagnum floor 0x2f (common was 'fl-gradient13')
439              stone_map[0x15] = "st-bigbrick-ne";      0,                          // OxydMagnum floor 0x30 (common was 'fl-gradient14')
440              stone_map[0x16] = "st-bigbrick-nw";      0,                          // OxydMagnum floor 0x31 (common was 'fl-gradient15')
441              stone_map[0x1a] = "st-grate1";      0,                          // OxydMagnum floor 0x32 (common was 'fl-gradient16')
442              stone_map[0x1c] = "st-bug";      0,                          // OxydMagnum floor 0x33 (common was 'fl-rough')
443              stone_map[0x1e] = "st-chameleon";      "fl-brick",                 // OxydMagnum floor 0x34 (common was 'fl-rough')
444              stone_map[0x1f] = "st-brick";      UNUSED,                     // OxydMagnum floor 0x35
445              stone_map[0x20] = "st-rock1";      UNUSED,                     // OxydMagnum floor 0x36
446              stone_map[0x21] = "st-rock1";      0,                          // OxydMagnum floor 0x37 (common was 'fl-rough')
447              stone_map[0x23] = "st-woven";      "fl-brick",                 // OxydMagnum floor 0x38
448              stone_map[0x24] = "st-marble";      UNUSED,                     // OxydMagnum floor 0x39
449              stone_map[0x25] = "st-glass1";      UNUSED,                     // OxydMagnum floor 0x3a
450              stone_map[0x26] = "st-glass3";      UNUSED,                     // OxydMagnum floor 0x3b
451              stone_map[0x29] = "st-rock3_hole"; // see 0x12      "fl-rock",                  // OxydMagnum floor 0x3c
452              stone_map[0x2a] = "st-rock3_move"; // see 0x12 and 0x29      UNUSED,                     // OxydMagnum floor 0x3d
453              stone_map[0x2b] = "st-wood";      UNUSED,                     // OxydMagnum floor 0x3e
454              stone_map[0x2c] = "st-switch";      0,                          // OxydMagnum floor 0x3f (common was 'fl-wood')
455              stone_map[0x30] = "st-key_a";      0,                          // OxydMagnum floor 0x40 (common was 'fl-wood')
456              stone_map[0x31] = "st-floppy";      0,                          // OxydMagnum floor 0x41 (common was 'fl-wood')
457              stone_map[0x34] = "st-death";      0,                          // OxydMagnum floor 0x42
458              stone_map[0x35] = "st-death_invisible";      UNUSED,                     // OxydMagnum floor 0x43
459              stone_map[0x36] = "st-oneway-w";      UNUSED,                     // OxydMagnum floor 0x44
460              stone_map[0x37] = "st-oneway-e";      UNUSED,                     // OxydMagnum floor 0x45
461              stone_map[0x38] = "st-oneway-n";      0,                          // OxydMagnum floor 0x46
462              stone_map[0x39] = "st-oneway-s";      0,                          // OxydMagnum floor 0x47
463              stone_map[0x3e] = "st-window";      UNUSED,                     // OxydMagnum floor 0x48
464              stone_map[0x3f] = ""; // "st-magic";      UNUSED,                     // OxydMagnum floor 0x49
465              stone_map[0x40] = ""; // "st-magic";      UNUSED,                     // OxydMagnum floor 0x4a
466              stone_map[0x41] = ""; // "st-magic";      UNUSED,                     // OxydMagnum floor 0x4b
467              stone_map[0x42] = "st-actorimpulse";      0,                          // OxydMagnum floor 0x4c
468              stone_map[0x44] = "st-laser-n";      0,                          // OxydMagnum floor 0x4d
469              stone_map[0x45] = "st-laser-s";      UNUSED,                     // OxydMagnum floor 0x4e
470              stone_map[0x46] = "st-laser-e";      UNUSED,                     // OxydMagnum floor 0x4f
471        UNUSED,                     // OxydMagnum floor 0x50
472              stone_map[0x47] = "st-mirror-p|";      UNUSED,                     // OxydMagnum floor 0x51
473              stone_map[0x48] = "st-mirror-p/";      0,                          // OxydMagnum floor 0x52 (common was 'fl-bridge')
474              stone_map[0x49] = "st-mirror-p-";      "fl-springboard",           // OxydMagnum floor 0x53
475              stone_map[0x4a] = "st-mirror-p\\";      0,                          // OxydMagnum floor 0x54
476              stone_map[0x4b] = "st-mirror-p|m";      0,                          // OxydMagnum floor 0x55 (common was 'fl-plank')
477              stone_map[0x4c] = "st-mirror-p/m";      0,                          // OxydMagnum floor 0x56
478              stone_map[0x4d] = "st-mirror-p-m";      UNUSED,                     // OxydMagnum floor 0x57
479              stone_map[0x4e] = "st-mirror-p\\m";      0,                          // OxydMagnum floor 0x58
480              stone_map[0x4f] = "st-mirror-p|t"; // should be special, because light passes vertical (in Oxyd1 only)      0,                          // OxydMagnum floor 0x59
481              stone_map[0x50] = "st-mirror-p/t";      0,                          // OxydMagnum floor 0x5a
482              stone_map[0x51] = "st-mirror-p-t"; // should be special, because light passes horizontal (in Oxyd1 only)      0,                          // OxydMagnum floor 0x5b
483              stone_map[0x52] = "st-mirror-p\\t";      // codes >= 0x5c are unused
484    };
485              stone_map[0x53] = "st-mirror-3>";  
486              stone_map[0x54] = "st-mirror-3^";  static const char *OxydMagnum_stone_map[256] = {
487              stone_map[0x55] = "st-mirror-3<";      0,                          // OxydMagnum stone 0x00
488              stone_map[0x56] = "st-mirror-3v";      0,                          // OxydMagnum stone 0x01
489        0,                          // OxydMagnum stone 0x02
490              stone_map[0x57] = "st-puzzle2-es";      0,                          // OxydMagnum stone 0x03
491              stone_map[0x58] = "st-puzzle2-sw";      0,                          // OxydMagnum stone 0x04
492              stone_map[0x59] = "st-puzzle2-nw";      0,                          // OxydMagnum stone 0x05
493              stone_map[0x5a] = "st-puzzle2-ne";      0,                          // OxydMagnum stone 0x06
494              stone_map[0x5b] = "st-puzzle2-ew";      0,                          // OxydMagnum stone 0x07
495              stone_map[0x5c] = "st-puzzle2-ns";      0,                          // OxydMagnum stone 0x08
496              stone_map[0x5d] = "st-puzzle2-n";      0,                          // OxydMagnum stone 0x09
497              stone_map[0x5e] = "st-puzzle2-s";      0,                          // OxydMagnum stone 0x0a
498              stone_map[0x5f] = "st-puzzle2-w";      0,                          // OxydMagnum stone 0x0b
499              stone_map[0x60] = "st-puzzle2-e";      0,                          // OxydMagnum stone 0x0c
500              stone_map[0x61] = "st-puzzle2-nesw";      0,                          // OxydMagnum stone 0x0d
501              stone_map[0x63] = "st-rock6";      0,                          // OxydMagnum stone 0x0e
502              stone_map[0x68] = "st-bombs";      0,                          // OxydMagnum stone 0x0f
503              stone_map[0x6a] = "st-coinslot";      0,                          // OxydMagnum stone 0x10
504              stone_map[0x6b] = "st-thief"; // looks like 0x12 in oxyd1      0,                          // OxydMagnum stone 0x11 (common was 'st-fakeoxyd')
505              stone_map[0x6c] = "st-shogun-s";      0,                          // OxydMagnum stone 0x12 (common was 'st-bluegray')
506              stone_map[0x6d] = "st-stoneimpulse";      0,                          // OxydMagnum stone 0x13
507              stone_map[0x6e] = "st-laserswitch";      0,                          // OxydMagnum stone 0x14
508              stone_map[0x71] = "st-mail-e";      0,                          // OxydMagnum stone 0x15 (common was 'st-rock5')
509              stone_map[0x72] = "st-mail-s";      0,                          // OxydMagnum stone 0x16
510              stone_map[0x75] = "st-rock2";      UNUSED,                     // OxydMagnum stone 0x17
511              stone_map[0x76] = "st-invisible";      UNUSED,                     // OxydMagnum stone 0x18
512              stone_map[0x77] = "st-door-h-open";      0,                          // OxydMagnum stone 0x19
513              stone_map[0x81] = ""; // ????? invisible, not sure what this is for      "st-grate1",                // OxydMagnum stone 0x1a
514              stone_map[0x86] = "st-rock2_hole";      0,                          // OxydMagnum stone 0x1b
515              stone_map[0x8a] = "st-stone1";      0,                          // OxydMagnum stone 0x1c (common was 'st-rock4')
516              stone_map[0x8c] = "st-white1";      UNUSED,                     // OxydMagnum stone 0x1d
517              stone_map[0x8d] = "st-black1";      UNUSED,                     // OxydMagnum stone 0x1e
518              stone_map[0x8e] = "st-yinyang2";      "st-brick",                 // OxydMagnum stone 0x1f
519              stone_map[0x94] = "st-break_acwhite";      "st-rock1",                 // OxydMagnum stone 0x20
520              stone_map[0x96] = "st-chargeplus";      0,                          // OxydMagnum stone 0x21
521              stone_map[0x97] = "st-chargeminus";      0,                          // OxydMagnum stone 0x22 (common was 'st-glass')
522              stone_map[0x98] = "st-chargezero";      "st-woven",                 // OxydMagnum stone 0x23
523              break;      "st-marble",                // OxydMagnum stone 0x24
524        "st-glass1",                // OxydMagnum stone 0x25
525          case OxydVersion_OxydMagnum:      "st-glass3",                // OxydMagnum stone 0x26
526          case OxydVersion_OxydMagnumGold:      "st-glass1",                // OxydMagnum stone 0x27
527              floor_map[0x34] = "fl-brick";      0,                          // OxydMagnum stone 0x28
528              floor_map[0x35] = "fl-brick";      0,                          // OxydMagnum stone 0x29
529              floor_map[0x38] = "fl-brick";      0,                          // OxydMagnum stone 0x2a
530              floor_map[0x3c] = "fl-rock";      "st-wood",                  // OxydMagnum stone 0x2b
531              floor_map[0x53] = "fl-springboard";      "st-switch",                // OxydMagnum stone 0x2c
532        "st-floppy",                // OxydMagnum stone 0x2d
533              item_map[0x25] = "it-seed";      UNUSED,                     // OxydMagnum stone 0x2e
534              item_map[0x36] = "it-springboard";      0,                          // OxydMagnum stone 0x2f (common was 'st-death')
535              item_map[0x4c] = "it-springboard";      "st-key_a",                 // OxydMagnum stone 0x30
536        0,                          // OxydMagnum stone 0x31 (common was 'st-oneway_black-w')
537              stone_map[0x1a] = "st-grate1";      0,                          // OxydMagnum stone 0x32 (common was 'st-oneway_black-e')
538              stone_map[0x1f] = "st-brick";      0,                          // OxydMagnum stone 0x33 (common was 'st-oneway_black-n')
539              stone_map[0x20] = "st-rock1";      "st-death",                 // OxydMagnum stone 0x34 (common was 'st-oneway_black-s')
540              stone_map[0x23] = "st-woven";      "st-death_invisible",       // OxydMagnum stone 0x35 (common was 'st-oneway_white-w')
541              stone_map[0x24] = "st-marble";      0,                          // OxydMagnum stone 0x36 (common was 'st-oneway_white-e')
542              stone_map[0x25] = "st-glass1";      0,                          // OxydMagnum stone 0x37 (common was 'st-oneway_white-n')
543              stone_map[0x26] = "st-glass3";      0,                          // OxydMagnum stone 0x38 (common was 'st-oneway_white-s')
544              stone_map[0x27] = "st-glass1";      0,                          // OxydMagnum stone 0x39 (common was 'st-magic')
545              stone_map[0x2b] = "st-wood";      0,                          // OxydMagnum stone 0x3a (common was 'st-magic')
546              stone_map[0x2c] = "st-switch";      0,                          // OxydMagnum stone 0x3b (common was 'st-magic')
547              stone_map[0x2d] = "st-floppy";      0,                          // OxydMagnum stone 0x3c
548              stone_map[0x30] = "st-key_a";      0,                          // OxydMagnum stone 0x3d
549              stone_map[0x34] = "st-death";      UNUSED,                     // OxydMagnum stone 0x3e
550              stone_map[0x35] = "st-death_invisible";      0,                          // OxydMagnum stone 0x3f
551              stone_map[0x43] = "st-actorimpulse_invisible";      0,                          // OxydMagnum stone 0x40
552              stone_map[0x44] = "st-laser-n";      UNUSED,                     // OxydMagnum stone 0x41
553              stone_map[0x45] = "st-laser-s";      0,                          // OxydMagnum stone 0x42
554              stone_map[0x46] = "st-laser-e";      "st-actorimpulse_invisible", // OxydMagnum stone 0x43
555              stone_map[0x47] = "st-mirror-p|";      "st-laser-n",               // OxydMagnum stone 0x44
556              stone_map[0x48] = "st-mirror-p/";      "st-laser-s",               // OxydMagnum stone 0x45
557              stone_map[0x49] = "st-mirror-p-";      "st-laser-e",               // OxydMagnum stone 0x46
558              stone_map[0x4a] = "st-mirror-p\\";      "st-mirror-p|",             // OxydMagnum stone 0x47
559              stone_map[0x4b] = "st-mirror-p|m";      "st-mirror-p/",             // OxydMagnum stone 0x48
560              stone_map[0x4c] = "st-mirror-p/m";      "st-mirror-p-",             // OxydMagnum stone 0x49
561              stone_map[0x4d] = "st-mirror-p-m";      "st-mirror-p\\",            // OxydMagnum stone 0x4a
562              stone_map[0x4e] = "st-mirror-p\\m";      "st-mirror-p|m",            // OxydMagnum stone 0x4b
563              stone_map[0x4f] = "st-mirror-p|t";      "st-mirror-p/m",            // OxydMagnum stone 0x4c
564              stone_map[0x50] = "st-mirror-p/t";      "st-mirror-p-m",            // OxydMagnum stone 0x4d
565              stone_map[0x51] = "st-mirror-p-t";      "st-mirror-p\\m",           // OxydMagnum stone 0x4e
566              stone_map[0x52] = "st-mirror-p\\t";      "st-mirror-p|t",            // OxydMagnum stone 0x4f
567              stone_map[0x53] = "st-mirror-3>";      "st-mirror-p/t",            // OxydMagnum stone 0x50
568              stone_map[0x54] = "st-mirror-3^";      "st-mirror-p-t",            // OxydMagnum stone 0x51
569              stone_map[0x55] = "st-mirror-3<";      "st-mirror-p\\t",           // OxydMagnum stone 0x52
570              stone_map[0x56] = "st-mirror-3v";      "st-mirror-3>",             // OxydMagnum stone 0x53
571              // 0x5d special exploding puzzle stone      "st-mirror-3^",             // OxydMagnum stone 0x54
572              // 0x5e      "st-mirror-3<",             // OxydMagnum stone 0x55
573              stone_map[0x68] = "st-bombs";      "st-mirror-3v",             // OxydMagnum stone 0x56
574              stone_map[0x6d] = "st-stoneimpulse";      0,                          // OxydMagnum stone 0x57
575              stone_map[0x8a] = "st-stone1";      0,                          // OxydMagnum stone 0x58
576              stone_map[0x8c] = "st-white1";      0,                          // OxydMagnum stone 0x59
577              stone_map[0x8d] = "st-black1";      0,                          // OxydMagnum stone 0x5a
578              stone_map[0x8e] = "st-yinyang2";      0,                          // OxydMagnum stone 0x5b
579              stone_map[0x93] = "st-yinyang1";      0,                          // OxydMagnum stone 0x5c
580              stone_map[0xa4] = "st-stoneimpulse-hollow";      0,                          // OxydMagnum stone 0x5d
581              break;      0,                          // OxydMagnum stone 0x5e
582        0,                          // OxydMagnum stone 0x5f
583          case OxydVersion_PerOxyd:      0,                          // OxydMagnum stone 0x60
584              floor_map[0x08] = "fl-rough-red";      0,                          // OxydMagnum stone 0x61
585              floor_map[0x0b] = "fl-rough-red";      0,                          // OxydMagnum stone 0x62
586              floor_map[0x09] = "fl-rough-blue";      0,                          // OxydMagnum stone 0x63 (common was 'st-stone_break')
587              floor_map[0x0a] = "fl-rough-blue";      0,                          // OxydMagnum stone 0x64
588              floor_map[0x0d] = "fl-black";      UNUSED,                     // OxydMagnum stone 0x65
589              floor_map[0x0e] = "fl-white";      UNUSED,                     // OxydMagnum stone 0x66
590              floor_map[0x38] = "fl-concrete";      UNUSED,                     // OxydMagnum stone 0x67
591              floor_map[0x4c] = "fl-bridge-open";      "st-bombs",                 // OxydMagnum stone 0x68 (common was 'st-shogun-l')
592              floor_map[0x5a] = "fl-springboard";      0,                          // OxydMagnum stone 0x69 (common was 'st-shogun-sml')
593              floor_map[0x5b] = "fl-gravel";      0,                          // OxydMagnum stone 0x6a (common was 'st-shogun-ml')
594        0,                          // OxydMagnum stone 0x6b (common was 'st-shogun-sl')
595              item_map[0x18] = "it-flagwhite";      0,                          // OxydMagnum stone 0x6c (common was 'st-shogun-sm')
596              item_map[0x19] = "it-flagblack";      "st-stoneimpulse",          // OxydMagnum stone 0x6d
597              item_map[0x1a] = "it-soother";      0,                          // OxydMagnum stone 0x6e
598              item_map[0x1b] = "it-pipe-wn";      0,                          // OxydMagnum stone 0x6f
599              item_map[0x1c] = "it-pipe-sw";      0,                          // OxydMagnum stone 0x70
600              item_map[0x1d] = "it-pipe-ne";      0,                          // OxydMagnum stone 0x71
601              item_map[0x1e] = "it-pipe-es";      0,                          // OxydMagnum stone 0x72
602              item_map[0x1f] = "it-pipe-v";      0,                          // OxydMagnum stone 0x73 (common was 'st-door-h')
603              item_map[0x20] = "it-pipe-h";      0,                          // OxydMagnum stone 0x74 (common was 'st-door-v')
604              item_map[0x2c] = "it-shogun-l";      0,                          // OxydMagnum stone 0x75 (common was 'st-rock2')
605              item_map[0x36] = "it-springboard";      0,                          // OxydMagnum stone 0x76
606              item_map[0x40] = "it-trigger";      UNUSED,                     // OxydMagnum stone 0x77
607              item_map[0x4a] = "it-odometer";      0,                          // OxydMagnum stone 0x78
608        UNUSED,                     // OxydMagnum stone 0x79
609              stone_map[0x13] = "st-rock4";      0,                          // OxydMagnum stone 0x7a
610              stone_map[0x14] = "st-beads";      UNUSED,                     // OxydMagnum stone 0x7b
611              stone_map[0x16] = "st-rock7";      UNUSED,                     // OxydMagnum stone 0x7c
612              stone_map[0x20] = "st-stone2";      UNUSED,                     // OxydMagnum stone 0x7d
613              // stone_map[0x21] = "st-concrete"; // layout similar to fl-concrete      UNUSED,                     // OxydMagnum stone 0x7e
614              stone_map[0x25] = "st-bluegray_hole";      UNUSED,                     // OxydMagnum stone 0x7f
615              stone_map[0x27] = "st-wood";      UNUSED,                     // OxydMagnum stone 0x80
616              stone_map[0x28] = "st-switch";      UNUSED,                     // OxydMagnum stone 0x81
617              stone_map[0x2b] = "st-fourswitch";      UNUSED,                     // OxydMagnum stone 0x82
618              stone_map[0x2c] = "st-switch";      UNUSED,                     // OxydMagnum stone 0x83
619              stone_map[0x2d] = "st-floppy";      UNUSED,                     // OxydMagnum stone 0x84
620              stone_map[0x29] = "st-switch_black";      UNUSED,                     // OxydMagnum stone 0x85
621              stone_map[0x2a] = "st-switch_white";      0,                          // OxydMagnum stone 0x86
622              stone_map[0x2d] = "st-floppy";      0,                          // OxydMagnum stone 0x87
623              stone_map[0x3e] = "st-laser-n";      0,                          // OxydMagnum stone 0x88
624              stone_map[0x3f] = "st-laser-s";      0,                          // OxydMagnum stone 0x89
625              stone_map[0x40] = "st-laser-e";      "st-stone1",                // OxydMagnum stone 0x8a
626              stone_map[0x41] = "st-mirror-p|";      0,                          // OxydMagnum stone 0x8b
627              stone_map[0x42] = "st-mirror-p/";      "st-white1",                // OxydMagnum stone 0x8c
628              stone_map[0x43] = "st-mirror-p-";      "st-black1",                // OxydMagnum stone 0x8d
629              stone_map[0x44] = "st-mirror-p\\";      "st-yinyang2",              // OxydMagnum stone 0x8e (common was 'st-rock6')
630              stone_map[0x45] = "st-mirror-p|m";      UNUSED,                     // OxydMagnum stone 0x8f
631              stone_map[0x46] = "st-mirror-p/m";      0,                          // OxydMagnum stone 0x90
632              stone_map[0x47] = "st-mirror-p-m";      UNUSED,                     // OxydMagnum stone 0x91
633              stone_map[0x48] = "st-mirror-p\\m";      0,                          // OxydMagnum stone 0x92
634              stone_map[0x49] = "st-mirror-p|t";      "st-yinyang1",              // OxydMagnum stone 0x93 (common was 'st-swap')
635              stone_map[0x4a] = "st-mirror-p/t";      0,                          // OxydMagnum stone 0x94
636              stone_map[0x4b] = "st-mirror-p-t";      0,                          // OxydMagnum stone 0x95
637              stone_map[0x4c] = "st-mirror-p\\t";      0,                          // OxydMagnum stone 0x96
638              stone_map[0x4d] = "st-mirror-3>";      0,                          // OxydMagnum stone 0x97
639              stone_map[0x4e] = "st-mirror-3^";      0,                          // OxydMagnum stone 0x98
640              stone_map[0x4f] = "st-mirror-3<";      0,                          // OxydMagnum stone 0x99 (common was 'st-blocker')
641              stone_map[0x50] = "st-mirror-3v";      0,                          // OxydMagnum stone 0x9a (common was 'st-grate1')
642              stone_map[0x51] = "st-puzzle-es";      0,                          // OxydMagnum stone 0x9b
643              stone_map[0x52] = "st-puzzle-sw";      0,                          // OxydMagnum stone 0x9c
644              stone_map[0x53] = "st-puzzle-nw";      0,                          // OxydMagnum stone 0x9d
645              stone_map[0x54] = "st-puzzle-ne";      0,                          // OxydMagnum stone 0x9e (common was 'st-turnstile')
646              stone_map[0x55] = "st-puzzle-ew";      UNUSED,                     // OxydMagnum stone 0x9f
647              stone_map[0x56] = "st-puzzle-ns";      UNUSED,                     // OxydMagnum stone 0xa0
648              stone_map[0x57] = "st-puzzle-n";      UNUSED,                     // OxydMagnum stone 0xa1
649              stone_map[0x58] = "st-puzzle-s";      UNUSED,                     // OxydMagnum stone 0xa2
650              stone_map[0x59] = "st-puzzle-w";      UNUSED,                     // OxydMagnum stone 0xa3
651              stone_map[0x5a] = "st-puzzle-e";      "st-stoneimpulse-hollow",   // OxydMagnum stone 0xa4
652              stone_map[0x5b] = "st-puzzle-nesw";      UNUSED,                     // OxydMagnum stone 0xa5
653              stone_map[0x5c] = "st-puzzle-hollow";      UNUSED,                     // OxydMagnum stone 0xa6
654              stone_map[0x62] = "st-bombs";      0,                          // OxydMagnum stone 0xa7
655              stone_map[0x64] = "st-coinslot";      UNUSED,                     // OxydMagnum stone 0xa8
656              stone_map[0x6d] = "st-stoneimpulse";      0,                          // OxydMagnum stone 0xa9
657              stone_map[0x6f] = "st-mail-n";      // codes >= 0xaa are unused
658              stone_map[0x70] = "st-mail-w";  };
659              stone_map[0x71] = "st-mail-e";  
660              stone_map[0x72] = "st-mail-s";  static const char *OxydMagnum_item_map[256] = {
661              stone_map[0x76] = "st-invisible";      0,                          // OxydMagnum item 0x00
662              stone_map[0x79] = "st-white1";      0,                          // OxydMagnum item 0x01 (common was 'it-extralife')
663              stone_map[0x7a] = "st-black1";      0,                          // OxydMagnum item 0x02 (common was 'it-document')
664              stone_map[0x7d] = "st-yinyang1";      0,                          // OxydMagnum item 0x03 (common was 'it-document')
665              stone_map[0x7e] = "st-break_acwhite";      0,                          // OxydMagnum item 0x04 (common was 'it-hammer')
666              stone_map[0x7f] = "st-break_acblack";      0,                          // OxydMagnum item 0x05
667              stone_map[0x83] = "st-bolder-n";      0,                          // OxydMagnum item 0x06
668              stone_map[0x84] = "st-bolder-s";      0,                          // OxydMagnum item 0x07 (common was 'it-umbrella')
669              stone_map[0x85] = "st-bolder-w";      0,                          // OxydMagnum item 0x08
670              stone_map[0x86] = "st-bolder-e";      0,                          // OxydMagnum item 0x09
671              stone_map[0x8c] = "st-rock3";      0,                          // OxydMagnum item 0x0a (common was 'it-dynamite')
672              stone_map[0x91] = "st-rotator-left";      0,                          // OxydMagnum item 0x0b (common was 'it-blackbomb')
673              stone_map[0x92] = "st-rotator-right";      0,                          // OxydMagnum item 0x0c (common was 'it-whitebomb')
674              stone_map[0x96] = "st-rubberband";      0,                          // OxydMagnum item 0x0d
675              stone_map[0x97] = "st-scissors";      0,                          // OxydMagnum item 0x0e
676              stone_map[0x98] = "st-grate3";      0,                          // OxydMagnum item 0x0f
677              stone_map[0x9c] = "st-stone1";      0,                          // OxydMagnum item 0x10
678              stone_map[0xb7] = "st-easymode";      0,                          // OxydMagnum item 0x11 (common was 'it-coin1')
679              break;      0,                          // OxydMagnum item 0x12 (common was 'it-coin2')
680        0,                          // OxydMagnum item 0x13 (common was 'it-coin4')
681          case OxydVersion_OxydExtra:      0,                          // OxydMagnum item 0x14
682              stone_map[0x27] = "st-wood";      0,                          // OxydMagnum item 0x15
683              stone_map[0x3c] = "st-stoneimpulse";      0,                          // OxydMagnum item 0x16
684        0,                          // OxydMagnum item 0x17 (common was 'it-floppy')
685              stone_map[0x3e] = "st-laser-n";      0,                          // OxydMagnum item 0x18
686              stone_map[0x3f] = "st-laser-s";      0,                          // OxydMagnum item 0x19
687              stone_map[0x40] = "st-laser-e";      0,                          // OxydMagnum item 0x1a
688        0,                          // OxydMagnum item 0x1b
689              stone_map[0x43] = "st-mirror-p-";      0,                          // OxydMagnum item 0x1c
690              stone_map[0x44] = "st-mirror-p\\";      0,                          // OxydMagnum item 0x1d
691              stone_map[0x46] = "st-mirror-p/";      0,                          // OxydMagnum item 0x1e
692              stone_map[0x4b] = "st-mirror-p-t";      0,                          // OxydMagnum item 0x1f
693              stone_map[0x4d] = "st-mirror-3>";      0,                          // OxydMagnum item 0x20
694              stone_map[0x4e] = "st-mirror-3^";      0,                          // OxydMagnum item 0x21 (common was 'it-spade')
695              stone_map[0x4f] = "st-mirror-3<";      0,                          // OxydMagnum item 0x22
696              stone_map[0x50] = "st-mirror-3v";      UNUSED,                     // OxydMagnum item 0x23
697        0,                          // OxydMagnum item 0x24 (common was 'it-seed')
698              // 0x57 - 0x61 are special puzzle stones (rotate if incomplete, explode if complete)      "it-seed",                  // OxydMagnum item 0x25 (common was 'it-spring2')
699        0,                          // OxydMagnum item 0x26 (common was 'it-spring1')
700              stone_map[0x76] = "st-invisible";      0,                          // OxydMagnum item 0x27 (common was 'it-spring2')
701              break;      0,                          // OxydMagnum item 0x28 (common was 'it-magnet')
702        0,                          // OxydMagnum item 0x29
703          default:      0,                          // OxydMagnum item 0x2a
704              fprintf(stderr, "Unknown Oxyd version '%i'\n", int(version));      0,                          // OxydMagnum item 0x2b (common was 'it-shogun-s')
705              break;      0,                          // OxydMagnum item 0x2c
706          }      0,                          // OxydMagnum item 0x2d
707      }      0,                          // OxydMagnum item 0x2e
708        0,                          // OxydMagnum item 0x2f (common was 'it-wormhole')
709        0,                          // OxydMagnum item 0x30 (common was 'it-hill')
710  #if defined(CHECK_MAPS)      0,                          // OxydMagnum item 0x31 (common was 'it-tinyhill')
711        0,                          // OxydMagnum item 0x32 (common was 'it-hollow')
712      /* The following functions check all mappings for useless or invisible entries */      0,                          // OxydMagnum item 0x33 (common was 'it-tinyhollow')
713        0,                          // OxydMagnum item 0x34
714      struct tmpMap {      0,                          // OxydMagnum item 0x35
715          const char *floor_map[OxydVersion_Count][256];      "it-springboard",           // OxydMagnum item 0x36
716          const char *item_map[OxydVersion_Count][256];      0,                          // OxydMagnum item 0x37
717          const char *stone_map[OxydVersion_Count][256];      0,                          // OxydMagnum item 0x38
718      };      UNUSED,                     // OxydMagnum item 0x39
719        UNUSED,                     // OxydMagnum item 0x3a
720      static bool checked = false;      UNUSED,                     // OxydMagnum item 0x3b
721        UNUSED,                     // OxydMagnum item 0x3c
722      static const char *gameName[] = {      UNUSED,                     // OxydMagnum item 0x3d
723          "Oxyd 1",      UNUSED,                     // OxydMagnum item 0x3e
724          "Oxyd magnum",      UNUSED,                     // OxydMagnum item 0x3f
725          "Oxyd magnum gold",      UNUSED,                     // OxydMagnum item 0x40
726          "Per.Oxyd",      UNUSED,                     // OxydMagnum item 0x41
727          "Oxyd extra",      UNUSED,                     // OxydMagnum item 0x42
728      };      UNUSED,                     // OxydMagnum item 0x43
729        UNUSED,                     // OxydMagnum item 0x44
730        UNUSED,                     // OxydMagnum item 0x45
731      void check(const char *what,      UNUSED,                     // OxydMagnum item 0x46
732                 const char * x_map[OxydVersion_Count][256],      UNUSED,                     // OxydMagnum item 0x47
733                 const char * common_x_map[256])      UNUSED,                     // OxydMagnum item 0x48
734      {      UNUSED,                     // OxydMagnum item 0x49
735          for (int k = 0; k<256; ++k) {      UNUSED,                     // OxydMagnum item 0x4a
736              {      UNUSED,                     // OxydMagnum item 0x4b
737                  const char *first = x_map[0][k];      "it-springboard",           // OxydMagnum item 0x4c (common was 'it-puller-s')
738                  bool        same  = true;      UNUSED,                     // OxydMagnum item 0x4d
739        UNUSED,                     // OxydMagnum item 0x4e
740                  for (int i = OxydVersion_First+1; i <= OxydVersion_Last; ++i) {      UNUSED,                     // OxydMagnum item 0x4f
741                      int         j    = i-OxydVersion_First;      UNUSED,                     // OxydMagnum item 0x50
742                      const char *curr = x_map[j][k];      UNUSED,                     // OxydMagnum item 0x51
743        UNUSED,                     // OxydMagnum item 0x52
744                      if (!first || !curr) {      UNUSED,                     // OxydMagnum item 0x53
745                          if (first != curr) { same = false; break; }      UNUSED,                     // OxydMagnum item 0x54
746                      }      UNUSED,                     // OxydMagnum item 0x55
747                      else if (0 != strcmp(curr, first)) { same = false; break; }      UNUSED,                     // OxydMagnum item 0x56
748                  }      UNUSED,                     // OxydMagnum item 0x57
749        UNUSED,                     // OxydMagnum item 0x58
750                  if (same && first) {      UNUSED,                     // OxydMagnum item 0x59
751                      fprintf(stderr, "%s_map[0x%x] is defined equal for all specialized maps\n", what, k);      UNUSED,                     // OxydMagnum item 0x5a
752                  }      UNUSED,                     // OxydMagnum item 0x5b
753              }      UNUSED,                     // OxydMagnum item 0x5c
754        UNUSED,                     // OxydMagnum item 0x5d
755        UNUSED,                     // OxydMagnum item 0x5e
756        0,                          // OxydMagnum item 0x5f
757              {      0,                          // OxydMagnum item 0x60
758                  bool all_defined = true;      UNUSED,                     // OxydMagnum item 0x61
759        UNUSED,                     // OxydMagnum item 0x62
760                  for (int i = OxydVersion_First+1; i <= OxydVersion_Last; ++i) {      0,                          // OxydMagnum item 0x63 (common was 'it-trigger')
761                      int         j    = i-OxydVersion_First;      0,                          // OxydMagnum item 0x64
762                      const char *curr = x_map[j][k];      0,                          // OxydMagnum item 0x65
763        0,                          // OxydMagnum item 0x66
764                      if (!curr) {      0,                          // OxydMagnum item 0x67
765                          all_defined = false;      // codes >= 0x68 are unused
766                      }  };
767                      else {  
768                          if (common_x_map[k]) {  // ---------------------------------------------
769                              if (0 == strcmp(common_x_map[k], curr)) {  // PerOxyd mapping
770                                  fprintf(stderr, "Useless specialization in %s-%s_map[0x%x]\n", gameName[j], what, k);  // ---------------------------------------------
771                              }  
772                          }  static const char *PerOxyd_floor_map[256] = {
773                      }      0,                          // PerOxyd floor 0x00 (common was 'fl-abyss')
774                  }      0,                          // PerOxyd floor 0x01 (common was 'fl-gray')
775        0,                          // PerOxyd floor 0x02 (common was 'fl-metal')
776                  if (all_defined && common_x_map[k]) {      0,                          // PerOxyd floor 0x03 (common was 'fl-metal')
777                      fprintf(stderr, "Invisible entry in common_%s_map[0x%x]\n", what, k);      0,                          // PerOxyd floor 0x04 (common was 'fl-metal')
778                  }      0,                          // PerOxyd floor 0x05 (common was 'fl-metal')
779              }      0,                          // PerOxyd floor 0x06 (common was 'fl-metal')
780          }      0,                          // PerOxyd floor 0x07 (common was 'fl-metal')
781      }      "fl-rough-red",             // PerOxyd floor 0x08 (common was 'fl-rough')
782        "fl-rough-blue",            // PerOxyd floor 0x09 (common was 'fl-normal')
783      void check() {      "fl-rough-blue",            // PerOxyd floor 0x0a (common was 'fl-normal')
784  //         fprintf(stderr, "Checking Oxyd->Enigma mapping..\n");      "fl-rough-red",             // PerOxyd floor 0x0b (common was 'fl-stone')
785          checked = true;      0,                          // PerOxyd floor 0x0c (common was 'fl-inverse')
786        "fl-black",                 // PerOxyd floor 0x0d
787          tmpMap *m = new tmpMap;      "fl-white",                 // PerOxyd floor 0x0e
788        0,                          // PerOxyd floor 0x0f (common was 'fl-swamp')
789          for (int i = OxydVersion_First; i <= OxydVersion_Last; ++i) {      UNUSED,                     // PerOxyd floor 0x10
790              int j = i-OxydVersion_First;      UNUSED,                     // PerOxyd floor 0x11
791              for (int k = 0; k<256; ++k) {      UNUSED,                     // PerOxyd floor 0x12
792                  m->floor_map[j][k] = 0;      0,                          // PerOxyd floor 0x13 (common was 'fl-water')
793                  m->item_map[j][k]  = 0;      0,                          // PerOxyd floor 0x14 (common was 'fl-water')
794                  m->stone_map[j][k] = 0;      UNUSED,                     // PerOxyd floor 0x15
795              }      UNUSED,                     // PerOxyd floor 0x16
796          }      0,                          // PerOxyd floor 0x17 (common was 'fl-ice_001')
797        UNUSED,                     // PerOxyd floor 0x18
798          for (int i = OxydVersion_First; i <= OxydVersion_Last; ++i) {      UNUSED,                     // PerOxyd floor 0x19
799              int j = i-OxydVersion_First;      UNUSED,                     // PerOxyd floor 0x1a
800              patch_mapping(m->floor_map[j], m->item_map[j], m->stone_map[j], OxydVersion(i));      UNUSED,                     // PerOxyd floor 0x1b
801          }      0,                          // PerOxyd floor 0x1c (common was 'fl-space')
802        UNUSED,                     // PerOxyd floor 0x1d
803          check("floor", m->floor_map, common_floor_map);      UNUSED,                     // PerOxyd floor 0x1e
804          check("item", m->item_map, common_item_map);      UNUSED,                     // PerOxyd floor 0x1f
805          check("stone", m->stone_map, common_stone_map);      UNUSED,                     // PerOxyd floor 0x20
806        0,                          // PerOxyd floor 0x21 (common was 'fl-space')
807          delete m;      UNUSED,                     // PerOxyd floor 0x22
808      }      0,                          // PerOxyd floor 0x23 (common was 'fl-gradient1')
809        0,                          // PerOxyd floor 0x24 (common was 'fl-gradient2')
810  #endif // CHECK_MAPS      0,                          // PerOxyd floor 0x25 (common was 'fl-gradient3')
811  }      0,                          // PerOxyd floor 0x26 (common was 'fl-gradient4')
812        0,                          // PerOxyd floor 0x27 (common was 'fl-gradient5')
813        0,                          // PerOxyd floor 0x28 (common was 'fl-gradient6')
814        0,                          // PerOxyd floor 0x29 (common was 'fl-gradient7')
815        0,                          // PerOxyd floor 0x2a (common was 'fl-gradient8')
816        0,                          // PerOxyd floor 0x2b (common was 'fl-gradient9')
817        0,                          // PerOxyd floor 0x2c (common was 'fl-gradient10')
818        0,                          // PerOxyd floor 0x2d (common was 'fl-gradient11')
819        0,                          // PerOxyd floor 0x2e (common was 'fl-gradient12')
820        0,                          // PerOxyd floor 0x2f (common was 'fl-gradient13')
821        0,                          // PerOxyd floor 0x30 (common was 'fl-gradient14')
822        0,                          // PerOxyd floor 0x31 (common was 'fl-gradient15')
823        0,                          // PerOxyd floor 0x32 (common was 'fl-gradient16')
824        0,                          // PerOxyd floor 0x33 (common was 'fl-rough')
825        0,                          // PerOxyd floor 0x34 (common was 'fl-rough')
826        UNUSED,                     // PerOxyd floor 0x35
827        UNUSED,                     // PerOxyd floor 0x36
828        UNUSED,                     // PerOxyd floor 0x37
829        "fl-concrete",              // PerOxyd floor 0x38
830        0,                          // PerOxyd floor 0x39
831        UNUSED,                     // PerOxyd floor 0x3a
832        UNUSED,                     // PerOxyd floor 0x3b
833        0,                          // PerOxyd floor 0x3c
834        0,                          // PerOxyd floor 0x3d (common was 'fl-wood')
835        0,                          // PerOxyd floor 0x3e (common was 'fl-wood')
836        0,                          // PerOxyd floor 0x3f (common was 'fl-wood')
837        UNUSED,                     // PerOxyd floor 0x40
838        UNUSED,                     // PerOxyd floor 0x41
839        0,                          // PerOxyd floor 0x42
840        0,                          // PerOxyd floor 0x43
841        UNUSED,                     // PerOxyd floor 0x44
842        UNUSED,                     // PerOxyd floor 0x45
843        UNUSED,                     // PerOxyd floor 0x46
844        UNUSED,                     // PerOxyd floor 0x47
845        0,                          // PerOxyd floor 0x48
846        UNUSED,                     // PerOxyd floor 0x49
847        UNUSED,                     // PerOxyd floor 0x4a
848        UNUSED,                     // PerOxyd floor 0x4b
849        "fl-bridge-open",           // PerOxyd floor 0x4c
850        UNUSED,                     // PerOxyd floor 0x4d
851        0,                          // PerOxyd floor 0x4e
852        0,                          // PerOxyd floor 0x4f
853        0,                          // PerOxyd floor 0x50
854        0,                          // PerOxyd floor 0x51
855        0,                          // PerOxyd floor 0x52 (common was 'fl-bridge')
856        0,                          // PerOxyd floor 0x53
857        UNUSED,                     // PerOxyd floor 0x54
858        0,                          // PerOxyd floor 0x55 (common was 'fl-plank')
859        UNUSED,                     // PerOxyd floor 0x56
860        0,                          // PerOxyd floor 0x57
861        UNUSED,                     // PerOxyd floor 0x58
862        UNUSED,                     // PerOxyd floor 0x59
863        UNUSED,                     // PerOxyd floor 0x5a
864        "fl-gravel",                // PerOxyd floor 0x5b
865        UNUSED,                     // PerOxyd floor 0x5c
866        UNUSED,                     // PerOxyd floor 0x5d
867        0,                          // PerOxyd floor 0x5e
868        // codes >= 0x5f are unused
869    };
870    
871    static const char *PerOxyd_stone_map[256] = {
872        0,                   // PerOxyd stone 0x00
873        0,                   // PerOxyd stone 0x01
874        0,                   // PerOxyd stone 0x02
875        0,                   // PerOxyd stone 0x03
876        0,                   // PerOxyd stone 0x04
877        0,                   // PerOxyd stone 0x05
878        0,                   // PerOxyd stone 0x06
879        0,                   // PerOxyd stone 0x07
880        0,                   // PerOxyd stone 0x08
881        0,                   // PerOxyd stone 0x09
882        0,                   // PerOxyd stone 0x0a
883        0,                   // PerOxyd stone 0x0b
884        0,                   // PerOxyd stone 0x0c
885        0,                   // PerOxyd stone 0x0d
886        0,                   // PerOxyd stone 0x0e
887        0,                   // PerOxyd stone 0x0f
888        0,                   // PerOxyd stone 0x10
889        0,                   // PerOxyd stone 0x11 (common was 'st-fakeoxyd')
890        0,                   // PerOxyd stone 0x12 (common was 'st-bluegray')
891        "st-rock4",          // PerOxyd stone 0x13
892        "st-beads",          // PerOxyd stone 0x14
893        0,                   // PerOxyd stone 0x15 (common was 'st-rock5')
894        "st-rock7",          // PerOxyd stone 0x16
895        0,                   // PerOxyd stone 0x17
896        0,                   // PerOxyd stone 0x18 (common was 'st-grate1')
897        UNUSED,              // PerOxyd stone 0x19
898        0,                   // PerOxyd stone 0x1a
899        0,                   // PerOxyd stone 0x1b
900        0,                   // PerOxyd stone 0x1c (common was 'st-rock4')
901        0,                   // PerOxyd stone 0x1d (common was 'st-rock3')
902        0,                   // PerOxyd stone 0x1e
903        UNUSED,              // PerOxyd stone 0x1f
904        "st-stone2",         // PerOxyd stone 0x20
905        0,                   // PerOxyd stone 0x21
906        0,                   // PerOxyd stone 0x22 (common was 'st-glass')
907        0,                   // PerOxyd stone 0x23
908        0,                   // PerOxyd stone 0x24
909        "st-bluegray_hole",  // PerOxyd stone 0x25
910        0,                   // PerOxyd stone 0x26
911        "st-wood",           // PerOxyd stone 0x27
912        "st-switch",         // PerOxyd stone 0x28
913        "st-switch_black",   // PerOxyd stone 0x29
914        "st-switch_white",   // PerOxyd stone 0x2a
915        "st-fourswitch",     // PerOxyd stone 0x2b
916        "st-switch",         // PerOxyd stone 0x2c
917        "st-floppy",         // PerOxyd stone 0x2d
918        0,                   // PerOxyd stone 0x2e
919        0,                   // PerOxyd stone 0x2f (common was 'st-death')
920        0,                   // PerOxyd stone 0x30
921        0,                   // PerOxyd stone 0x31 (common was 'st-oneway_black-w')
922        0,                   // PerOxyd stone 0x32 (common was 'st-oneway_black-e')
923        0,                   // PerOxyd stone 0x33 (common was 'st-oneway_black-n')
924        0,                   // PerOxyd stone 0x34 (common was 'st-oneway_black-s')
925        0,                   // PerOxyd stone 0x35 (common was 'st-oneway_white-w')
926        0,                   // PerOxyd stone 0x36 (common was 'st-oneway_white-e')
927        0,                   // PerOxyd stone 0x37 (common was 'st-oneway_white-n')
928        0,                   // PerOxyd stone 0x38 (common was 'st-oneway_white-s')
929        0,                   // PerOxyd stone 0x39 (common was 'st-magic')
930        0,                   // PerOxyd stone 0x3a (common was 'st-magic')
931        0,                   // PerOxyd stone 0x3b (common was 'st-magic')
932        0,                   // PerOxyd stone 0x3c
933        0,                   // PerOxyd stone 0x3d
934        "st-laser-n",        // PerOxyd stone 0x3e
935        "st-laser-s",        // PerOxyd stone 0x3f
936        "st-laser-e",        // PerOxyd stone 0x40
937        "st-mirror-p|",      // PerOxyd stone 0x41
938        "st-mirror-p/",      // PerOxyd stone 0x42
939        "st-mirror-p-",      // PerOxyd stone 0x43
940        "st-mirror-p\\",     // PerOxyd stone 0x44
941        UNUSED,              // PerOxyd stone 0x45 (was "st-mirror-p|m")
942        "st-mirror-p/m",     // PerOxyd stone 0x46
943        "st-mirror-p-m",     // PerOxyd stone 0x47
944        "st-mirror-p\\m",    // PerOxyd stone 0x48
945        "st-mirror-p|t",     // PerOxyd stone 0x49
946        "st-mirror-p/t",     // PerOxyd stone 0x4a
947        "st-mirror-p-t",     // PerOxyd stone 0x4b
948        "st-mirror-p\\t",    // PerOxyd stone 0x4c
949        "st-mirror-3>",      // PerOxyd stone 0x4d
950        "st-mirror-3^",      // PerOxyd stone 0x4e
951        "st-mirror-3<",      // PerOxyd stone 0x4f
952        "st-mirror-3v",      // PerOxyd stone 0x50
953        "st-puzzle-es",      // PerOxyd stone 0x51
954        "st-puzzle-sw",      // PerOxyd stone 0x52
955        "st-puzzle-nw",      // PerOxyd stone 0x53
956        "st-puzzle-ne",      // PerOxyd stone 0x54
957        "st-puzzle-ew",      // PerOxyd stone 0x55
958        "st-puzzle-ns",      // PerOxyd stone 0x56
959        "st-puzzle-n",       // PerOxyd stone 0x57
960        "st-puzzle-s",       // PerOxyd stone 0x58
961        "st-puzzle-w",       // PerOxyd stone 0x59
962        "st-puzzle-e",       // PerOxyd stone 0x5a
963        "st-puzzle-nesw",    // PerOxyd stone 0x5b
964        "st-puzzle-hollow",  // PerOxyd stone 0x5c
965        0,                   // PerOxyd stone 0x5d
966        0,                   // PerOxyd stone 0x5e
967        0,                   // PerOxyd stone 0x5f
968        0,                   // PerOxyd stone 0x60
969        0,                   // PerOxyd stone 0x61
970        "st-bombs",          // PerOxyd stone 0x62
971        0,                   // PerOxyd stone 0x63 (common was 'st-stone_break')
972        "st-coinslot",       // PerOxyd stone 0x64
973        0,                   // PerOxyd stone 0x65 (common was 'st-thief')
974        0,                   // PerOxyd stone 0x66 (common was 'st-shogun-s')
975        0,                   // PerOxyd stone 0x67 (common was 'st-shogun-m')
976        0,                   // PerOxyd stone 0x68 (common was 'st-shogun-l')
977        0,                   // PerOxyd stone 0x69 (common was 'st-shogun-sml')
978        0,                   // PerOxyd stone 0x6a (common was 'st-shogun-ml')
979        0,                   // PerOxyd stone 0x6b (common was 'st-shogun-sl')
980        0,                   // PerOxyd stone 0x6c (common was 'st-shogun-sm')
981        "st-stoneimpulse",   // PerOxyd stone 0x6d
982        0,                   // PerOxyd stone 0x6e
983        "st-mail-n",         // PerOxyd stone 0x6f
984        "st-mail-w",         // PerOxyd stone 0x70
985        "st-mail-e",         // PerOxyd stone 0x71
986        "st-mail-s",         // PerOxyd stone 0x72
987        0,                   // PerOxyd stone 0x73 (common was 'st-door-h')
988        0,                   // PerOxyd stone 0x74 (common was 'st-door-v')
989        0,                   // PerOxyd stone 0x75 (common was 'st-rock2')
990        "st-invisible",      // PerOxyd stone 0x76
991        0,                   // PerOxyd stone 0x77
992        0,                   // PerOxyd stone 0x78
993        "st-white1",         // PerOxyd stone 0x79
994        "st-black1",         // PerOxyd stone 0x7a
995        0,                   // PerOxyd stone 0x7b
996        0,                   // PerOxyd stone 0x7c
997        "st-yinyang1",       // PerOxyd stone 0x7d
998        "st-break_acwhite",  // PerOxyd stone 0x7e
999        "st-break_acblack",  // PerOxyd stone 0x7f
1000        0,                   // PerOxyd stone 0x80
1001        0,                   // PerOxyd stone 0x81
1002        0,                   // PerOxyd stone 0x82
1003        "st-bolder-n",       // PerOxyd stone 0x83
1004        "st-bolder-s",       // PerOxyd stone 0x84
1005        "st-bolder-w",       // PerOxyd stone 0x85
1006        "st-bolder-e",       // PerOxyd stone 0x86
1007        0,                   // PerOxyd stone 0x87
1008        UNUSED,              // PerOxyd stone 0x88
1009        UNUSED,              // PerOxyd stone 0x89
1010        0,                   // PerOxyd stone 0x8a
1011        0,                   // PerOxyd stone 0x8b
1012        "st-rock3",          // PerOxyd stone 0x8c
1013        0,                   // PerOxyd stone 0x8d
1014        0,                   // PerOxyd stone 0x8e (common was 'st-rock6')
1015        UNUSED,              // PerOxyd stone 0x8f
1016        0,                   // PerOxyd stone 0x90
1017        "st-rotator-left",   // PerOxyd stone 0x91
1018        "st-rotator-right",  // PerOxyd stone 0x92
1019        0,                   // PerOxyd stone 0x93 (common was 'st-swap')
1020        0,                   // PerOxyd stone 0x94
1021        0,                   // PerOxyd stone 0x95
1022        "st-rubberband",     // PerOxyd stone 0x96
1023        "st-scissors",       // PerOxyd stone 0x97
1024        "st-grate3",         // PerOxyd stone 0x98
1025        0,                   // PerOxyd stone 0x99 (common was 'st-blocker')
1026        0,                   // PerOxyd stone 0x9a (common was 'st-grate1')
1027        0,                   // PerOxyd stone 0x9b
1028        "st-stone1",         // PerOxyd stone 0x9c
1029        0,                   // PerOxyd stone 0x9d
1030        0,                   // PerOxyd stone 0x9e (common was 'st-turnstile')
1031        0,                   // PerOxyd stone 0x9f (common was 'st-turnstile-n')
1032        0,                   // PerOxyd stone 0xa0 (common was 'st-turnstile-s')
1033        0,                   // PerOxyd stone 0xa1 (common was 'st-turnstile-w')
1034        0,                   // PerOxyd stone 0xa2 (common was 'st-turnstile-e')
1035        UNUSED,              // PerOxyd stone 0xa3
1036        0,                   // PerOxyd stone 0xa4
1037        UNUSED,              // PerOxyd stone 0xa5
1038        UNUSED,              // PerOxyd stone 0xa6
1039        UNUSED,              // PerOxyd stone 0xa7
1040        UNUSED,              // PerOxyd stone 0xa8
1041        UNUSED,              // PerOxyd stone 0xa9
1042        UNUSED,              // PerOxyd stone 0xaa
1043        UNUSED,              // PerOxyd stone 0xab
1044        UNUSED,              // PerOxyd stone 0xac
1045        UNUSED,              // PerOxyd stone 0xad
1046        UNUSED,              // PerOxyd stone 0xae
1047        UNUSED,              // PerOxyd stone 0xaf
1048        UNUSED,              // PerOxyd stone 0xb0
1049        UNUSED,              // PerOxyd stone 0xb1
1050        UNUSED,              // PerOxyd stone 0xb2
1051        UNUSED,              // PerOxyd stone 0xb3
1052        UNUSED,              // PerOxyd stone 0xb4
1053        UNUSED,              // PerOxyd stone 0xb5
1054        UNUSED,              // PerOxyd stone 0xb6
1055        "st-easymode",       // PerOxyd stone 0xb7
1056        0,                   // PerOxyd stone 0xb8
1057        0,                   // PerOxyd stone 0xb9
1058        // codes >= 0xba are unused
1059    };
1060    
1061    static const char *PerOxyd_item_map[256] = {
1062        0,                   // PerOxyd item 0x00
1063        0,                   // PerOxyd item 0x01 (common was 'it-extralife')
1064        0,                   // PerOxyd item 0x02 (common was 'it-document')
1065        0,                   // PerOxyd item 0x03 (common was 'it-document')
1066        0,                   // PerOxyd item 0x04 (common was 'it-hammer')
1067        0,                   // PerOxyd item 0x05
1068        0,                   // PerOxyd item 0x06
1069        0,                   // PerOxyd item 0x07 (common was 'it-umbrella')
1070        0,                   // PerOxyd item 0x08
1071        0,                   // PerOxyd item 0x09
1072        0,                   // PerOxyd item 0x0a (common was 'it-dynamite')
1073        0,                   // PerOxyd item 0x0b (common was 'it-blackbomb')
1074        0,                   // PerOxyd item 0x0c (common was 'it-whitebomb')
1075        0,                   // PerOxyd item 0x0d
1076        0,                   // PerOxyd item 0x0e
1077        0,                   // PerOxyd item 0x0f
1078        0,                   // PerOxyd item 0x10
1079        0,                   // PerOxyd item 0x11 (common was 'it-coin1')
1080        0,                   // PerOxyd item 0x12 (common was 'it-coin2')
1081        0,                   // PerOxyd item 0x13 (common was 'it-coin4')
1082        0,                   // PerOxyd item 0x14
1083        0,                   // PerOxyd item 0x15
1084        0,                   // PerOxyd item 0x16
1085        0,                   // PerOxyd item 0x17 (common was 'it-floppy')
1086        "it-flagwhite",      // PerOxyd item 0x18
1087        "it-flagblack",      // PerOxyd item 0x19
1088        "it-soother",        // PerOxyd item 0x1a
1089        "it-pipe-wn",        // PerOxyd item 0x1b
1090        "it-pipe-sw",        // PerOxyd item 0x1c
1091        "it-pipe-ne",        // PerOxyd item 0x1d
1092        "it-pipe-es",        // PerOxyd item 0x1e
1093        "it-pipe-v",         // PerOxyd item 0x1f
1094        "it-pipe-h",         // PerOxyd item 0x20
1095        0,                   // PerOxyd item 0x21 (common was 'it-spade')
1096        0,                   // PerOxyd item 0x22
1097        0,                   // PerOxyd item 0x23
1098        0,                   // PerOxyd item 0x24 (common was 'it-seed')
1099        0,                   // PerOxyd item 0x25 (common was 'it-spring2')
1100        0,                   // PerOxyd item 0x26 (common was 'it-spring1')
1101        0,                   // PerOxyd item 0x27 (common was 'it-spring2')
1102        0,                   // PerOxyd item 0x28 (common was 'it-magnet')
1103        0,                   // PerOxyd item 0x29
1104        0,                   // PerOxyd item 0x2a
1105        0,                   // PerOxyd item 0x2b (common was 'it-shogun-s')
1106        "it-shogun-l",       // PerOxyd item 0x2c
1107        0,                   // PerOxyd item 0x2d
1108        0,                   // PerOxyd item 0x2e
1109        0,                   // PerOxyd item 0x2f (common was 'it-wormhole')
1110        0,                   // PerOxyd item 0x30 (common was 'it-hill')
1111        0,                   // PerOxyd item 0x31 (common was 'it-tinyhill')
1112        0,                   // PerOxyd item 0x32 (common was 'it-hollow')
1113        0,                   // PerOxyd item 0x33 (common was 'it-tinyhollow')
1114        0,                   // PerOxyd item 0x34
1115        0,                   // PerOxyd item 0x35
1116        "it-springboard",    // PerOxyd item 0x36
1117        0,                   // PerOxyd item 0x37
1118        0,                   // PerOxyd item 0x38
1119        UNUSED,              // PerOxyd item 0x39
1120        UNUSED,              // PerOxyd item 0x3a
1121        UNUSED,              // PerOxyd item 0x3b
1122        0,                   // PerOxyd item 0x3c
1123        0,                   // PerOxyd item 0x3d
1124        0,                   // PerOxyd item 0x3e
1125        0,                   // PerOxyd item 0x3f
1126        "it-trigger",        // PerOxyd item 0x40
1127        0,                   // PerOxyd item 0x41 (common was 'it-brush')
1128        0,                   // PerOxyd item 0x42
1129        0,                   // PerOxyd item 0x43
1130        0,                   // PerOxyd item 0x44 (common was 'it-brake')
1131        0,                   // PerOxyd item 0x45
1132        0,                   // PerOxyd item 0x46 (common was 'it-blocker')
1133        0,                   // PerOxyd item 0x47 (common was 'it-magicwand')
1134        0,                   // PerOxyd item 0x48
1135        UNUSED,              // PerOxyd item 0x49
1136        "it-odometer",       // PerOxyd item 0x4a
1137        0,                   // PerOxyd item 0x4b (common was 'it-puller-n')
1138        0,                   // PerOxyd item 0x4c (common was 'it-puller-s')
1139        0,                   // PerOxyd item 0x4d (common was 'it-puller-w')
1140        0,                   // PerOxyd item 0x4e (common was 'it-puller-e')
1141        UNUSED,              // PerOxyd item 0x4f
1142        UNUSED,              // PerOxyd item 0x50
1143        0,                   // PerOxyd item 0x51
1144        UNUSED,              // PerOxyd item 0x52
1145        0,                   // PerOxyd item 0x53
1146        UNUSED,              // PerOxyd item 0x54
1147        UNUSED,              // PerOxyd item 0x55
1148        UNUSED,              // PerOxyd item 0x56
1149        UNUSED,              // PerOxyd item 0x57
1150        0,                   // PerOxyd item 0x58
1151        0,                   // PerOxyd item 0x59
1152        UNUSED,              // PerOxyd item 0x5a
1153        UNUSED,              // PerOxyd item 0x5b
1154        UNUSED,              // PerOxyd item 0x5c
1155        UNUSED,              // PerOxyd item 0x5d
1156        UNUSED,              // PerOxyd item 0x5e
1157        UNUSED,              // PerOxyd item 0x5f
1158        UNUSED,              // PerOxyd item 0x60
1159        UNUSED,              // PerOxyd item 0x61
1160        UNUSED,              // PerOxyd item 0x62
1161        UNUSED,              // PerOxyd item 0x63
1162        UNUSED,              // PerOxyd item 0x64
1163        UNUSED,              // PerOxyd item 0x65
1164        UNUSED,              // PerOxyd item 0x66
1165        UNUSED,              // PerOxyd item 0x67
1166        UNUSED,              // PerOxyd item 0x68
1167        UNUSED,              // PerOxyd item 0x69
1168        0,                   // PerOxyd item 0x6a
1169        UNUSED,              // PerOxyd item 0x6b
1170        UNUSED,              // PerOxyd item 0x6c
1171        UNUSED,              // PerOxyd item 0x6d
1172        UNUSED,              // PerOxyd item 0x6e
1173        UNUSED,              // PerOxyd item 0x6f
1174        UNUSED,              // PerOxyd item 0x70
1175        UNUSED,              // PerOxyd item 0x71
1176        UNUSED,              // PerOxyd item 0x72
1177        UNUSED,              // PerOxyd item 0x73
1178        UNUSED,              // PerOxyd item 0x74
1179        UNUSED,              // PerOxyd item 0x75
1180        0,                   // PerOxyd item 0x76
1181        0,                   // PerOxyd item 0x77
1182        0,                   // PerOxyd item 0x78
1183        0,                   // PerOxyd item 0x79
1184        // codes >= 0x7a are unused
1185    };
1186    
1187    // ---------------------------------------------
1188    // OxydExtra mapping
1189    // ---------------------------------------------
1190    
1191    static const char *OxydExtra_floor_map[256] = {
1192        0,                   // OxydExtra floor 0x00 (common was 'fl-abyss')
1193        0,                   // OxydExtra floor 0x01 (common was 'fl-gray')
1194        0,                   // OxydExtra floor 0x02 (common was 'fl-metal')
1195        UNUSED,              // OxydExtra floor 0x03
1196        UNUSED,              // OxydExtra floor 0x04
1197        UNUSED,              // OxydExtra floor 0x05
1198        UNUSED,              // OxydExtra floor 0x06
1199        0,                   // OxydExtra floor 0x07 (common was 'fl-metal')
1200        0,                   // OxydExtra floor 0x08 (common was 'fl-rough')
1201        0,                   // OxydExtra floor 0x09 (common was 'fl-normal')
1202        0,                   // OxydExtra floor 0x0a (common was 'fl-normal')
1203        0,                   // OxydExtra floor 0x0b (common was 'fl-stone')
1204        0,                   // OxydExtra floor 0x0c (common was 'fl-inverse')
1205        0,                   // OxydExtra floor 0x0d
1206        UNUSED,              // OxydExtra floor 0x0e
1207        UNUSED,              // OxydExtra floor 0x0f
1208        UNUSED,              // OxydExtra floor 0x10
1209        UNUSED,              // OxydExtra floor 0x11
1210        UNUSED,              // OxydExtra floor 0x12
1211        0,                   // OxydExtra floor 0x13 (common was 'fl-water')
1212        UNUSED,              // OxydExtra floor 0x14
1213        UNUSED,              // OxydExtra floor 0x15
1214        UNUSED,              // OxydExtra floor 0x16
1215        0,                   // OxydExtra floor 0x17 (common was 'fl-ice_001')
1216        UNUSED,              // OxydExtra floor 0x18
1217        UNUSED,              // OxydExtra floor 0x19
1218        UNUSED,              // OxydExtra floor 0x1a
1219        UNUSED,              // OxydExtra floor 0x1b
1220        0,                   // OxydExtra floor 0x1c (common was 'fl-space')
1221        UNUSED,              // OxydExtra floor 0x1d
1222        UNUSED,              // OxydExtra floor 0x1e
1223        UNUSED,              // OxydExtra floor 0x1f
1224        UNUSED,              // OxydExtra floor 0x20
1225        UNUSED,              // OxydExtra floor 0x21
1226        UNUSED,              // OxydExtra floor 0x22
1227        UNUSED,              // OxydExtra floor 0x23
1228        UNUSED,              // OxydExtra floor 0x24
1229        0,                   // OxydExtra floor 0x25 (common was 'fl-gradient3')
1230        0,                   // OxydExtra floor 0x26 (common was 'fl-gradient4')
1231        UNUSED,              // OxydExtra floor 0x27
1232        UNUSED,              // OxydExtra floor 0x28
1233        UNUSED,              // OxydExtra floor 0x29
1234        UNUSED,              // OxydExtra floor 0x2a
1235        UNUSED,              // OxydExtra floor 0x2b
1236        UNUSED,              // OxydExtra floor 0x2c
1237        UNUSED,              // OxydExtra floor 0x2d
1238        UNUSED,              // OxydExtra floor 0x2e
1239        UNUSED,              // OxydExtra floor 0x2f
1240        UNUSED,              // OxydExtra floor 0x30
1241        0,                   // OxydExtra floor 0x31 (common was 'fl-gradient15')
1242        0,                   // OxydExtra floor 0x32 (common was 'fl-gradient16')
1243        UNUSED,              // OxydExtra floor 0x33
1244        0,                   // OxydExtra floor 0x34 (common was 'fl-rough')
1245        UNUSED,              // OxydExtra floor 0x35
1246        UNUSED,              // OxydExtra floor 0x36
1247        UNUSED,              // OxydExtra floor 0x37
1248        0,                   // OxydExtra floor 0x38
1249        UNUSED,              // OxydExtra floor 0x39
1250        UNUSED,              // OxydExtra floor 0x3a
1251        UNUSED,              // OxydExtra floor 0x3b
1252        0,                   // OxydExtra floor 0x3c
1253        UNUSED,              // OxydExtra floor 0x3d
1254        UNUSED,              // OxydExtra floor 0x3e
1255        UNUSED,              // OxydExtra floor 0x3f
1256        UNUSED,              // OxydExtra floor 0x40
1257        0,                   // OxydExtra floor 0x41 (common was 'fl-wood')
1258        UNUSED,              // OxydExtra floor 0x42
1259        0,                   // OxydExtra floor 0x43
1260        UNUSED,              // OxydExtra floor 0x44
1261        UNUSED,              // OxydExtra floor 0x45
1262        UNUSED,              // OxydExtra floor 0x46
1263        0,                   // OxydExtra floor 0x47
1264        0,                   // OxydExtra floor 0x48
1265        UNUSED,              // OxydExtra floor 0x49
1266        UNUSED,              // OxydExtra floor 0x4a
1267        UNUSED,              // OxydExtra floor 0x4b
1268        0,                   // OxydExtra floor 0x4c
1269        UNUSED,              // OxydExtra floor 0x4d
1270        UNUSED,              // OxydExtra floor 0x4e
1271        UNUSED,              // OxydExtra floor 0x4f
1272        UNUSED,              // OxydExtra floor 0x50
1273        UNUSED,              // OxydExtra floor 0x51
1274        UNUSED,              // OxydExtra floor 0x52
1275        UNUSED,              // OxydExtra floor 0x53
1276        0,                   // OxydExtra floor 0x54
1277        0,                   // OxydExtra floor 0x55 (common was 'fl-plank')
1278        UNUSED,              // OxydExtra floor 0x56
1279        UNUSED,              // OxydExtra floor 0x57
1280        UNUSED,              // OxydExtra floor 0x58
1281        0,                   // OxydExtra floor 0x59
1282        UNUSED,              // OxydExtra floor 0x5a
1283        0,                   // OxydExtra floor 0x5b
1284        // codes >= 0x5c are unused
1285    };
1286    
1287    static const char *OxydExtra_stone_map[256] = {
1288        0,                   // OxydExtra stone 0x00
1289        0,                   // OxydExtra stone 0x01
1290        0,                   // OxydExtra stone 0x02
1291        0,                   // OxydExtra stone 0x03
1292        0,                   // OxydExtra stone 0x04
1293        0,                   // OxydExtra stone 0x05
1294        0,                   // OxydExtra stone 0x06
1295        0,                   // OxydExtra stone 0x07
1296        0,                   // OxydExtra stone 0x08
1297        0,                   // OxydExtra stone 0x09
1298        0,                   // OxydExtra stone 0x0a
1299        0,                   // OxydExtra stone 0x0b
1300        0,                   // OxydExtra stone 0x0c
1301        0,                   // OxydExtra stone 0x0d
1302        0,                   // OxydExtra stone 0x0e
1303        0,                   // OxydExtra stone 0x0f
1304        0,                   // OxydExtra stone 0x10
1305        0,                   // OxydExtra stone 0x11 (common was 'st-fakeoxyd')
1306        0,                   // OxydExtra stone 0x12 (common was 'st-bluegray')
1307        0,                   // OxydExtra stone 0x13
1308        UNUSED,              // OxydExtra stone 0x14
1309        0,                   // OxydExtra stone 0x15 (common was 'st-rock5')
1310        0,                   // OxydExtra stone 0x16
1311        UNUSED,              // OxydExtra stone 0x17
1312        0,                   // OxydExtra stone 0x18 (common was 'st-grate1')
1313        UNUSED,              // OxydExtra stone 0x19
1314        UNUSED,              // OxydExtra stone 0x1a
1315        UNUSED,              // OxydExtra stone 0x1b
1316        0,                   // OxydExtra stone 0x1c (common was 'st-rock4')
1317        UNUSED,              // OxydExtra stone 0x1d
1318        UNUSED,              // OxydExtra stone 0x1e
1319        0,                   // OxydExtra stone 0x1f
1320        0,                   // OxydExtra stone 0x20
1321        0,                   // OxydExtra stone 0x21
1322        0,                   // OxydExtra stone 0x22 (common was 'st-glass')
1323        UNUSED,              // OxydExtra stone 0x23
1324        0,                   // OxydExtra stone 0x24
1325        0,                   // OxydExtra stone 0x25
1326        0,                   // OxydExtra stone 0x26
1327        "st-wood",           // OxydExtra stone 0x27
1328        0,                   // OxydExtra stone 0x28
1329        UNUSED,              // OxydExtra stone 0x29
1330        UNUSED,              // OxydExtra stone 0x2a
1331        UNUSED,              // OxydExtra stone 0x2b
1332        UNUSED,              // OxydExtra stone 0x2c
1333        0,                   // OxydExtra stone 0x2d
1334        UNUSED,              // OxydExtra stone 0x2e
1335        0,                   // OxydExtra stone 0x2f (common was 'st-death')
1336        0,                   // OxydExtra stone 0x30
1337        0,                   // OxydExtra stone 0x31 (common was 'st-oneway_black-w')
1338        UNUSED,              // OxydExtra stone 0x32
1339        0,                   // OxydExtra stone 0x33 (common was 'st-oneway_black-n')
1340        0,                   // OxydExtra stone 0x34 (common was 'st-oneway_black-s')
1341        UNUSED,              // OxydExtra stone 0x35
1342        UNUSED,              // OxydExtra stone 0x36
1343        UNUSED,              // OxydExtra stone 0x37
1344        UNUSED,              // OxydExtra stone 0x38
1345        UNUSED,              // OxydExtra stone 0x39
1346        UNUSED,              // OxydExtra stone 0x3a
1347        UNUSED,              // OxydExtra stone 0x3b
1348        "st-stoneimpulse",   // OxydExtra stone 0x3c
1349        UNUSED,              // OxydExtra stone 0x3d
1350        "st-laser-n",        // OxydExtra stone 0x3e
1351        "st-laser-s",        // OxydExtra stone 0x3f
1352        "st-laser-e",        // OxydExtra stone 0x40
1353        UNUSED,              // OxydExtra stone 0x41
1354        UNUSED,              // OxydExtra stone 0x42
1355        "st-mirror-p-",      // OxydExtra stone 0x43
1356        "st-mirror-p\\",     // OxydExtra stone 0x44
1357        UNUSED,              // OxydExtra stone 0x45
1358        "st-mirror-p/",      // OxydExtra stone 0x46
1359        UNUSED,              // OxydExtra stone 0x47
1360        UNUSED,              // OxydExtra stone 0x48
1361        UNUSED,              // OxydExtra stone 0x49
1362        UNUSED,              // OxydExtra stone 0x4a
1363        "st-mirror-p-t",     // OxydExtra stone 0x4b
1364        UNUSED,              // OxydExtra stone 0x4c
1365        "st-mirror-3>",      // OxydExtra stone 0x4d
1366        "st-mirror-3^",      // OxydExtra stone 0x4e
1367        "st-mirror-3<",      // OxydExtra stone 0x4f
1368        "st-mirror-3v",      // OxydExtra stone 0x50
1369        UNUSED,              // OxydExtra stone 0x51
1370        UNUSED,              // OxydExtra stone 0x52
1371        UNUSED,              // OxydExtra stone 0x53
1372        UNUSED,              // OxydExtra stone 0x54
1373        UNUSED,              // OxydExtra stone 0x55
1374        UNUSED,              // OxydExtra stone 0x56
1375        UNUSED,              // OxydExtra stone 0x57
1376        UNUSED,              // OxydExtra stone 0x58
1377        UNUSED,              // OxydExtra stone 0x59
1378        UNUSED,              // OxydExtra stone 0x5a
1379        UNUSED,              // OxydExtra stone 0x5b
1380        UNUSED,              // OxydExtra stone 0x5c
1381        0,                   // OxydExtra stone 0x5d
1382        UNUSED,              // OxydExtra stone 0x5e
1383        UNUSED,              // OxydExtra stone 0x5f
1384        UNUSED,              // OxydExtra stone 0x60
1385        UNUSED,              // OxydExtra stone 0x61
1386        UNUSED,              // OxydExtra stone 0x62
1387        UNUSED,              // OxydExtra stone 0x63
1388        0,                   // OxydExtra stone 0x64
1389        0,                   // OxydExtra stone 0x65 (common was 'st-thief')
1390        0,                   // OxydExtra stone 0x66 (common was 'st-shogun-s')
1391        UNUSED,              // OxydExtra stone 0x67
1392        UNUSED,              // OxydExtra stone 0x68
1393        UNUSED,              // OxydExtra stone 0x69
1394        UNUSED,              // OxydExtra stone 0x6a
1395        UNUSED,              // OxydExtra stone 0x6b
1396        UNUSED,              // OxydExtra stone 0x6c
1397        0,                   // OxydExtra stone 0x6d
1398        UNUSED,              // OxydExtra stone 0x6e
1399        UNUSED,              // OxydExtra stone 0x6f
1400        UNUSED,              // OxydExtra stone 0x70
1401        UNUSED,              // OxydExtra stone 0x71
1402        UNUSED,              // OxydExtra stone 0x72
1403        0,                   // OxydExtra stone 0x73 (common was 'st-door-h')
1404        0,                   // OxydExtra stone 0x74 (common was 'st-door-v')
1405        UNUSED,              // OxydExtra stone 0x75
1406        "st-invisible",      // OxydExtra stone 0x76
1407        UNUSED,              // OxydExtra stone 0x77
1408        UNUSED,              // OxydExtra stone 0x78
1409        UNUSED,              // OxydExtra stone 0x79
1410        UNUSED,              // OxydExtra stone 0x7a
1411        UNUSED,              // OxydExtra stone 0x7b
1412        UNUSED,              // OxydExtra stone 0x7c
1413        UNUSED,              // OxydExtra stone 0x7d
1414        UNUSED,              // OxydExtra stone 0x7e
1415        UNUSED,              // OxydExtra stone 0x7f
1416        UNUSED,              // OxydExtra stone 0x80
1417        UNUSED,              // OxydExtra stone 0x81
1418        UNUSED,              // OxydExtra stone 0x82
1419        UNUSED,              // OxydExtra stone 0x83
1420        UNUSED,              // OxydExtra stone 0x84
1421        UNUSED,              // OxydExtra stone 0x85
1422        UNUSED,              // OxydExtra stone 0x86
1423        UNUSED,              // OxydExtra stone 0x87
1424        UNUSED,              // OxydExtra stone 0x88
1425        UNUSED,              // OxydExtra stone 0x89
1426        0,                   // OxydExtra stone 0x8a
1427        0,                   // OxydExtra stone 0x8b
1428        UNUSED,              // OxydExtra stone 0x8c
1429        UNUSED,              // OxydExtra stone 0x8d
1430        UNUSED,              // OxydExtra stone 0x8e
1431        UNUSED,              // OxydExtra stone 0x8f
1432        UNUSED,              // OxydExtra stone 0x90
1433        UNUSED,              // OxydExtra stone 0x91
1434        UNUSED,              // OxydExtra stone 0x92
1435        UNUSED,              // OxydExtra stone 0x93
1436        UNUSED,              // OxydExtra stone 0x94
1437        UNUSED,              // OxydExtra stone 0x95
1438        UNUSED,              // OxydExtra stone 0x96
1439        UNUSED,              // OxydExtra stone 0x97
1440        UNUSED,              // OxydExtra stone 0x98
1441        UNUSED,              // OxydExtra stone 0x99
1442        UNUSED,              // OxydExtra stone 0x9a
1443        UNUSED,              // OxydExtra stone 0x9b
1444        UNUSED,              // OxydExtra stone 0x9c
1445        UNUSED,              // OxydExtra stone 0x9d
1446        0,                   // OxydExtra stone 0x9e (common was 'st-turnstile')
1447        0,                   // OxydExtra stone 0x9f (common was 'st-turnstile-n')
1448        0,                   // OxydExtra stone 0xa0 (common was 'st-turnstile-s')
1449        0,                   // OxydExtra stone 0xa1 (common was 'st-turnstile-w')
1450        0,                   // OxydExtra stone 0xa2 (common was 'st-turnstile-e')
1451        UNUSED,              // OxydExtra stone 0xa3
1452        0,                   // OxydExtra stone 0xa4
1453        UNUSED,              // OxydExtra stone 0xa5
1454        UNUSED,              // OxydExtra stone 0xa6
1455        UNUSED,              // OxydExtra stone 0xa7
1456        UNUSED,              // OxydExtra stone 0xa8
1457        UNUSED,              // OxydExtra stone 0xa9
1458        UNUSED,              // OxydExtra stone 0xaa
1459        UNUSED,              // OxydExtra stone 0xab
1460        UNUSED,              // OxydExtra stone 0xac
1461        UNUSED,              // OxydExtra stone 0xad
1462        UNUSED,              // OxydExtra stone 0xae
1463        UNUSED,              // OxydExtra stone 0xaf
1464        UNUSED,              // OxydExtra stone 0xb0
1465        UNUSED,              // OxydExtra stone 0xb1
1466        UNUSED,              // OxydExtra stone 0xb2
1467        UNUSED,              // OxydExtra stone 0xb3
1468        UNUSED,              // OxydExtra stone 0xb4
1469        UNUSED,              // OxydExtra stone 0xb5
1470        UNUSED,              // OxydExtra stone 0xb6
1471        UNUSED,              // OxydExtra stone 0xb7
1472        UNUSED,              // OxydExtra stone 0xb8
1473        UNUSED,              // OxydExtra stone 0xb9
1474        UNUSED,              // OxydExtra stone 0xba
1475        0,                   // OxydExtra stone 0xbb
1476        // codes >= 0xbc are unused
1477    };
1478    
1479    static const char *OxydExtra_item_map[256] = {
1480        0,                   // OxydExtra item 0x00
1481        0,                   // OxydExtra item 0x01 (common was 'it-extralife')
1482        0,                   // OxydExtra item 0x02 (common was 'it-document')
1483        0,                   // OxydExtra item 0x03 (common was 'it-document')
1484        0,                   // OxydExtra item 0x04 (common was 'it-hammer')
1485        0,                   // OxydExtra item 0x05
1486        0,                   // OxydExtra item 0x06
1487        0,                   // OxydExtra item 0x07 (common was 'it-umbrella')
1488        0,                   // OxydExtra item 0x08
1489        UNUSED,              // OxydExtra item 0x09
1490        0,                   // OxydExtra item 0x0a (common was 'it-dynamite')
1491        UNUSED,              // OxydExtra item 0x0b
1492        UNUSED,              // OxydExtra item 0x0c
1493        0,                   // OxydExtra item 0x0d
1494        0,                   // OxydExtra item 0x0e
1495        0,                   // OxydExtra item 0x0f
1496        0,                   // OxydExtra item 0x10
1497        0,                   // OxydExtra item 0x11 (common was 'it-coin1')
1498        0,                   // OxydExtra item 0x12 (common was 'it-coin2')
1499        0,                   // OxydExtra item 0x13 (common was 'it-coin4')
1500        0,                   // OxydExtra item 0x14
1501        0,                   // OxydExtra item 0x15
1502        0,                   // OxydExtra item 0x16
1503        0,                   // OxydExtra item 0x17 (common was 'it-floppy')
1504        UNUSED,              // OxydExtra item 0x18
1505        UNUSED,              // OxydExtra item 0x19
1506        UNUSED,              // OxydExtra item 0x1a
1507        UNUSED,              // OxydExtra item 0x1b
1508        UNUSED,              // OxydExtra item 0x1c
1509        UNUSED,              // OxydExtra item 0x1d
1510        UNUSED,              // OxydExtra item 0x1e
1511        UNUSED,              // OxydExtra item 0x1f
1512        UNUSED,              // OxydExtra item 0x20
1513        0,                   // OxydExtra item 0x21 (common was 'it-spade')
1514        0,                   // OxydExtra item 0x22
1515        0,                   // OxydExtra item 0x23
1516        UNUSED,              // OxydExtra item 0x24
1517        UNUSED,              // OxydExtra item 0x25
1518        UNUSED,              // OxydExtra item 0x26
1519        0,                   // OxydExtra item 0x27 (common was 'it-spring2')
1520        UNUSED,              // OxydExtra item 0x28
1521        UNUSED,              // OxydExtra item 0x29
1522        0,                   // OxydExtra item 0x2a
1523        0,                   // OxydExtra item 0x2b (common was 'it-shogun-s')
1524        UNUSED,              // OxydExtra item 0x2c
1525        0,                   // OxydExtra item 0x2d
1526        UNUSED,              // OxydExtra item 0x2e
1527        0,                   // OxydExtra item 0x2f (common was 'it-wormhole')
1528        0,                   // OxydExtra item 0x30 (common was 'it-hill')
1529        0,                   // OxydExtra item 0x31 (common was 'it-tinyhill')
1530        0,                   // OxydExtra item 0x32 (common was 'it-hollow')
1531        0,                   // OxydExtra item 0x33 (common was 'it-tinyhollow')
1532        UNUSED,              // OxydExtra item 0x34
1533        UNUSED,              // OxydExtra item 0x35
1534        UNUSED,              // OxydExtra item 0x36
1535        0,                   // OxydExtra item 0x37
1536        UNUSED,              // OxydExtra item 0x38
1537        UNUSED,              // OxydExtra item 0x39
1538        UNUSED,              // OxydExtra item 0x3a
1539        UNUSED,              // OxydExtra item 0x3b
1540        0,                   // OxydExtra item 0x3c
1541        UNUSED,              // OxydExtra item 0x3d
1542        UNUSED,              // OxydExtra item 0x3e
1543        UNUSED,              // OxydExtra item 0x3f
1544        0,                   // OxydExtra item 0x40
1545        0,                   // OxydExtra item 0x41 (common was 'it-brush')
1546        0,                   // OxydExtra item 0x42
1547        // codes >= 0x43 are unused
1548    };
1549    
1550  namespace enigma_mapping {  namespace enigma_mapping {
   
1551      Mapping::Mapping(OxydVersion version)      Mapping::Mapping(OxydVersion version)
1552            : floor_map(0)
1553            , item_map(0)
1554            , stone_map(0)
1555      {      {
1556  #if defined(CHECK_MAPS)          switch (version) {
1557          if (!checked) check();              case OxydVersion_Oxyd1:
1558  #endif // CHECK_MAPS                  floor_map = Oxyd1_floor_map;
1559                    item_map  = Oxyd1_item_map;
1560          copy (common_stone_map, common_stone_map+256, stone_map);                  stone_map = Oxyd1_stone_map;
1561          copy (common_item_map, common_item_map+256, item_map);                  break;
1562          copy (common_floor_map, common_floor_map+256, floor_map);              case OxydVersion_OxydMagnum:
1563                case OxydVersion_OxydMagnumGold:
1564          patch_mapping(floor_map, item_map, stone_map, version);                  floor_map = OxydMagnum_floor_map;
1565                    item_map  = OxydMagnum_item_map;
1566                    stone_map = OxydMagnum_stone_map;
1567                    break;
1568                case OxydVersion_PerOxyd:
1569                    floor_map = PerOxyd_floor_map;
1570                    item_map  = PerOxyd_item_map;
1571                    stone_map = PerOxyd_stone_map;
1572                    break;
1573                case OxydVersion_OxydExtra:
1574                    floor_map = OxydExtra_floor_map;
1575                    item_map  = OxydExtra_item_map;
1576                    stone_map = OxydExtra_stone_map;
1577                    break;
1578                default :
1579                    assert(0);
1580                    break;
1581            }
1582      }      }
   
1583  }  }
   

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26