The default is now what I /think/ is the Lynx behavior: try to push the
block first, and only give it a pending direction if the push fails.
CC2 always uses the pending mechanism.
Since sliding happens either on cell arrival or in the actor's idle
phase, the actor will always have a pending slide by the end of a tic,
so this code doesn't actually do anything.
This seems to simplify things and also explain the CC2 semantics: force
floors activate while being stood on (which happens, I guess, during
idle), so it applies to objects that start the level on force floors.
This was probably done to make force floor flipping work, too. On the
other hand, ice still only activates when being stepped on.
This does simplify things a bit, and it also fixes the replay for CC2LP1
level 160, Sneak Around. It breaks three Voting replays, unfortunately,
but doesn't break anything else, so I'm inclined to call it better.
I had it mostly right based on experimentation, but had the conditions
inside-out, which allowed this case to slip through the cracks. This
makes the Settlement of Arrakis replay sync.
Eliminates a number of annoying little hacks by getting rid of
`slide_mode` and instead trusting the terrain, live, like CC2 seems to
do (and Lynx definitely does).
- Players and monsters do, in fact, block each other. The helmet only
prevents death.
- Death happens during collision check, which is the entire reason items
don't save you: you're collided with first! This allows removing
several special cases.
- Spring mining is prevented almost incidentally, by virtue of collision
being checked both at decision time and movement time. It /can/
happen to actors other than the player, but seemingly not blocks.
- Some monsters, whose movement is essentially forced anyway, skip the
decision time collision check. This includes doppelgangers, which is
why they always spring mine.
- `Tileset.animation_slowdown` is gone!
- Actors are now free to animate every move or every two moves, and have
been configured to do so appropriately. This fixes the appearance of
blobs, most noticeably. (Also fixes #36.)
- Actors that are always animated in CC2 are now always animated in LL.
- Lilypads/turtles now bob randomly. More randomly than CC2, even.
- Players no longer appear to be swimming when stepping off of lilypads.
- Invisible walls no longer temporarily reveal themselves when you have
the x-ray glasses (secret eye).
- There's a new option for using the CC2 animation timing, though god
knows why you would want to.