enigma-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Enigma-devel] BUG: easy-mode in "A-way"


From: Malla
Subject: Re: [Enigma-devel] BUG: easy-mode in "A-way"
Date: Thu, 30 Nov 2006 14:49:45 +0100
User-agent: Opera Mail/9.00 (Win32)

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...
Good work!

I asked Daniel, and he said, that we should look out for at least:
Stones: 0xb7 and 0xb9
Objects: 0x76 und 0x77
And a few things deeper in the oxydlib ...

So what does 0xb9 do?

I see, that you didn't search for 0xb9.
Here is the result:
0xb9: 108 117 150 168 181 193 200

Levels, you don't have:
117, 150, 181, 193

I've just played these levels and can't find the difference between normal and easy mode. Maybe the length of the rubberband in 181 is different, but that's all I could figure out. Do you see any differences there?

For the first step I would like to take you table based only on these 4
objects.
This will probably be before 1.0.
Then, in a second step, we will look at the exceptions you mentioned.

Any objections?

I included the exceptions in the table, since most of them are emulated correctly in enigma, so why shouldn't they be in the table?

best regards
Manuel






reply via email to

[Prev in Thread] Current Thread [Next in Thread]