This is a simple bug which takes only one extra C code line to fix, however,
without that line player can be trapped and is therefore important. (If it
crashed it would be critical)
You see, the Lua function has_teleport_anchor() prevents you from being
teleported to an invalid position if Me.teleport_anchor.z is set to -1.
This works fairly well, except for one thing: Me.teleport_anchor.z is not
declared in influ.c
As a result, when has_teleport_anchor() is called by the first time,
Me.teleport_anchor.z may NOT exist, and therefore, C will report so, by sending
a default value of ZERO.
We have a problem, though. Zero is a valid level. In fact, (0,0,0) are
perfectly valid coordinates, and therefore, the game teleports Tux to this
position... which is at the middle of the Sea.
You cannot walk off to level -1 to there, but you are trapped nonetheless.
Fixing this bug should be accomplishable by adding the following line to
influ.c:1704
Me.teleport_anchor.z = -1;
And this is all that you need, to initialize the value as -1, and the bug shall
vanish. It can be reproduced by creating a new character and using Town
Teleporter. I advise walking from level 12 to that spot.
|