I was doing some more work on this bug. I think I've got a fix for the actual bug this time:
--- ../../../slashem-0.0.8E0/src/engrave.c 2005-07-02 00:31:37.000000000 -0700
+++ ./engrave.c 2006-11-29 18:11:38.000000000 -0800
@@ -155,13 +155,17 @@
boolean
can_reach_floor()
{
+ struct trap *trap = 0;
return (boolean)(!u.uswallow &&
#ifdef STEED
/* Restricted/unskilled riders can't reach the floor */
!(u.usteed && P_SKILL(P_RIDING) < P_BASIC)
&&
#endif
- (!Levitation ||
- Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)));
+ (!Levitation ||
+ Is_airlevel(&u.uz) || Is_waterlevel(&u.uz)) &&
+ !(Flying && (trap = t_at(u.ux,u.uy))
&&
+ (trap->ttyp == PIT || trap->ttyp == SPIKED_PIT)
+ && !u.utrap));
}
#endif /* OVLB */
#ifdef OVL0
I added in a bit to describe when you flying over a pit or spiked pit you should not be able to pick things up (which is the same function used for eating. so you also cannot eat things while flying over a pit). I gave it a try and it worked for me (I was trying it on the version where you can fly into a pit (at which point I was able to eat/pickup things) I can't think of any reason that it should cause any problems though.
Cheers,
Michael DiPietro
Access over 1 million songs -
Yahoo! Music Unlimited.-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV_______________________________________________
Slashem-devel mailing list
Slashem-devel@...
https://lists.sourceforge.net/lists/listinfo/slashem-devel