Kalle Olavi Niemitalo <k...@iki.fi> writes:

> Normally, if you try to jump above the top of the level, the
> hero hits a ceiling.  However, at the left side of the NPC who
> asks for Anneludine Shells, there is a hole in the ceiling.  By
> wearing Winged Boots, Pyralis was able to jump through that
> hole and then walk to the right above the ceiling.

The ceiling appears to be an unintended feature.
There is no such ceiling in the Sempridge5 map data.
Instead, if the player character tries to jump above the map,
then abs_y becomes negative in play_level.Character.sense.
and the [abs_y/40] index becomes [-1], which Python interprets
as counting from the end of the array, so the collision check
ends up looking at the bottom of the map.
In this part of Worm Woods, there is a gap in the floor of the
lower level, and that then becomes the hole in the ceiling.

Therefore, fixing this bug should not involve editing the map data.
play_level.Character.sense should instead be changed to return False
if abs_y < 0.  It already has a similar check for abs_y >= 480.

Attachment: pgpOINgcLup7D.pgp
Description: PGP signature

Reply via email to