Hi! I'm playing with the Linux 64-bit client, and experience crashes due to a failed assertion: Code: Dredmor-amd64: /home/nvining/dredmor/monster.cpp:2231: virtual void Monster::TeleportTo(int, int, Level*, BOOL): Assertion `0 && "moved onto player square"' failed. I can't reproduce this realiably, but it happens when fighting monsters. I'm only on level two so far, but the game has crashed 3-4 times already, so it happens a bit too frequently to be comfortable.
Unless you put the assert in a code section that should never be reached to make sure you never get there. Using assert(false && "some message") is actually not that uncommon. I can add that this bug makes it annoying to clear out zoos. I still haven't found any way of reproducing the bug, it just seems to happen once in a while when you're next to a monster. Clearing a zoo means that it's quite probable that the game will crash sometime, so you need to slow save (i.e. save & quit and then load) now and then to avoid having to do the zoo all over again.
Hm, at a random guess, perhaps it happens if the monster forgets the player exists (due to sneakiness) and tries to walk onto the player's tile? You could see if it happens more often if you turn invisible and just stand around, or if you play as a high-level mage (who, thanks to high Savviness, tends to have high Sneakiness too).
Ok, I've played a bit more now, and I think I'm starting to see a pattern. It seems as though the assertion only triggers when I'm standing before an open door, such as when I've just opened a door. Enemies just behind the door then steps forward into the tiles where the door used to be, but sometimes they seem to go too far. I once had a diggle that appeared just behind me when I opened a door, so presumably they might sometimes try to teleport onto the same tile as I'm standing on. The assertion also triggers when I'm just standing around an open door and getting attacked, so it's doesn't happen only when I've just opened the door. If I destroy the door by kicking it down I seem to be safe though, so my guess is that there's something weird going on with how monsters interact with doors. I'm also playing as a heavy armor-wearing warrior, so I don't think sneakiness has anything to do with it since my sneakiness is zero.
I'm able to reproduce this on an amd64 system pretty consistently by fighting in front of open (but not broken) doorways as perost described. I have not been able to reproduce on a 32-bit system.
Just ran into this bug or the first time. Exactly the situation as described by Perost, standing in front of an open door and attacking an enemy. Terminal output was this: Code: Player kills monster, gains 10 XP total xp: 10 Dredmor-amd64: /home/nvining/dredmor/monster.cpp:2231: virtual void Monster::TeleportTo(int, int, Level*, BOOL): Assertion `0 && "moved onto player square"' failed. attempting to damage object: attempting to damage object: attempting to damage object: Aborted OS is Ubuntu 11.04, 64-bit. Please let me know if you need more information, happy to help.