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 |
// // |
// // |
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 |
} |
} |
|
|
|