199 |
|
|
200 |
|
|
201 |
//---------------------------------------- |
//---------------------------------------- |
202 |
|
// Grate1/Grate2 |
203 |
|
// |
204 |
|
// Actor may pass if on floor |
205 |
|
//---------------------------------------- |
206 |
|
namespace |
207 |
|
{ |
208 |
|
class Grate1 : public Stone { |
209 |
|
SINGLETONOBJ(Grate1); |
210 |
|
public: |
211 |
|
Grate1() : Stone("st-grate1") {} |
212 |
|
|
213 |
|
StoneResponse collision_response(const StoneContact &sc) { |
214 |
|
// tested with per.oxyd |
215 |
|
return sc.actor->is_on_floor() ? STONE_PASS : STONE_REBOUND; |
216 |
|
} |
217 |
|
}; |
218 |
|
class Grate2 : public Stone { |
219 |
|
SINGLETONOBJ(Grate2); |
220 |
|
public: |
221 |
|
Grate2() : Stone("st-grate2") {} |
222 |
|
|
223 |
|
StoneResponse collision_response(const StoneContact &sc) { |
224 |
|
// tested with per.oxyd |
225 |
|
return sc.actor->is_on_floor() ? STONE_PASS : STONE_REBOUND; |
226 |
|
} |
227 |
|
}; |
228 |
|
} |
229 |
|
|
230 |
|
|
231 |
|
//---------------------------------------- |
232 |
// Grate3 |
// Grate3 |
233 |
// |
// |
234 |
// Horses and small marbles can move through this stone, but normal |
// Horses and small marbles can move through this stone, but normal |
2068 |
Register(new FartStone); |
Register(new FartStone); |
2069 |
Register(new FloppyStone); |
Register(new FloppyStone); |
2070 |
Register(new FourSwitch); |
Register(new FourSwitch); |
2071 |
|
Register(new Grate1); |
2072 |
|
Register(new Grate2); |
2073 |
Register(new Grate3); |
Register(new Grate3); |
2074 |
Register(new InvisibleMagic); |
Register(new InvisibleMagic); |
2075 |
Register(new LaserSwitch); |
Register(new LaserSwitch); |