Bug#718883: ardentryst: IndexError in Worm Woods

Kalle Olavi Niemitalo kon at iki.fi
Thu Jul 10 00:32:24 UTC 2014


Kalle Olavi Niemitalo <kon at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-games-devel/attachments/20140710/f00a33e0/attachment.sig>


More information about the Pkg-games-devel mailing list