Hi,
Does anybody know how the method should look like for Per.Oxyd? Which
Levels do provide an easy mode?
There is no simple way to determine this, IIRC. Easy mode in Per.Oxyd
is implemented by having a couple of objects that remove items and/or
stones from the landscape. I don't think there is a flag in the level
file that can simply be read out.
Using a large table may be the only reasonable solution.
Fixed with revision 477 - a table is added to "ox_peroxyd.cc". Currently
all per.oxyd levels are set to provide an easy mode. Now we just need to
set up the table correctly.
Ok, I made a list of levels which include "st-easymode" (PerOxyd stone
0xb7), it_easykillstone (0x76) or it_easykeepstone (0x77):
3 7 8 9 10 11 14 17 24 26 27 30 31 33 34 37 38 41 42 43 45 47 48 50 51 52
54 55 56 58 60 61 65 67 68 72 73 74 75 76 77 79 80 81 82 83 84 86 88 89 90
94 95 96 97 98 99 100 104 105 108 110 112 114 115 116 121 124 129 133 134
136 138 139 140 143 146 148 149 151 152 153 154 156 157 158 161 163 164
165 166 168 169 170 172 174 175 176 177 178 179 180 182 185 186 188 190
192 195 196 197 198 199 200
But there are some more levels which provide an easy mode: 29 (those tops
move quite faster in normal mode than in easy mode), 40 (player controls 2
marbels, one rubberband removed),70 (gradient force is much stronger in
normal mode),74 (not emulated correctly in enigma, there should be an
it-brake in easy mode), 78 (speed of tops), 92 (speed of tops), 103 (there
is no rubberband in easy mode. I don't really know how this is
accomplished, but in enigma it works correctly), 147 (speed of tops), 162
(timer is much slower in easy mode), 173 and 184 (speed of tops again).
Well, to cut a long story short, this is the table:
bool LP_PerOxyd::hasEasymode(size_t index) {
static const bool easymode_map[200] = { // 1-100 single, 101 - 200
netplay
false, false, true, false, false, false, false, true, true, true,
// 1 - 10
true, false, false, true, false, false, true, false, false,
false, // 11 - 20
false, false, false, true, false, true, true, false, true, true,
// 21 - 30
true, false, true, true, false, false, true, true, false, true,
// 31 - 40
true, true, true, false, true, false, true, true, false, true, //
41 - 50
true, true, false, true, true, true, false, true, false, true, //
51 - 60
true, false, false, false, true, false, true, true, false, true,
// 61 - 70
false, true, true, true, true, true, true, true, true, true, //
71 - 80
true, true, true, true, false, true, false, true, true, true, //
81 - 90
false, true, false, true, true, true, true, true, true, true, //
91 - 100
false, false, true, true, true, false, false, true, false, true,
//101 - 110
false, true, false, true, true, true, false, false, false, false,
//111 - 120
true, false, false, true, false, false, false, false, true,
false, //121 - 130
false, false, true, true, false, true, false, true, true, true,
//131 - 140
false, false, true, false, false, true, true, true, true, false,
//141 - 150
true, true, true, true, false, true, true, true, false, false,
//151 - 160
true, true, true, true, true, true, false, true, true, true,
//161 - 170
false, true, true, true, true, true, true, true, true, true,
//171 - 180
false, true, false, true, true, true, false, true, false, true,
//181 - 190
false, true, false, false, true, true, true, true, true, true
//191 - 200
};
return easymode_map[index];
}
I don't know if this is all correct, maybe there are even more levels with
an easy mode...
best regards
Manuel
_______________________________________________
Enigma-devel mailing list
Enigma-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/enigma-devel