Hi, I don't know if it's a bug or if it was pure dumb luck, but if you wear a Veiling ring, your summoned Automatons like Zombies and Skeletons can't seem to find enemies and just wander around, even if the enemy is in their LOS. I tried to lure an enemy towards my Zombie and I had to remove my ring for the Zombie to finally make a beeline towards it.
Viewing post in Caverns of Xaskazien II comments
Hi, I found a very concerning bug: If you free a damsel from a sacrificial stone, and that damsel is a uniquely named NPC, it will give you an insane amount of XP and make the game lag like hell.

I started at level 21 and managed to raise it up to level 128, upon which it looped back to level -128 (I guess this is because level is stored as a byte):


Confirmed, this is fixed. If the damsel had an unusual hero number (which could happen if nothing was assigned) all bets were off in terms of the experience gain you can get from them. I've fixed it everywhere random damsels can be generated and put in an extra catch to treat them as non-heroes if their hero value is out of the ordinary.
Hi, new minor bug: If you have a bone scroll case in your inventory (and no nother items that increase inventory size), and then you click on Reorganize, it's very likely to remove that bone scroll casefrom your inventory and drop a ton of items in the process. This doesn't happen with other containers (potion belt, herb pouch, etc) and it doesn't happen if you have any of those in addition to the case neither.
WAIT A MINUTE! Just looked through the summonrandomspirit function again and saw this line:
potentialalternateswap(dice2);
Which should have been this line:
montype[loop] = potentialalternateswap(dice2);
Which means the game is not considering the new spirits, and YES, this could crash (or more likely freeze) the game! Thank you!
It's about 1500 lines of code - just checked. Not sure how to feed that to you. In general though, if I recall, it picks a side of the map to start on, and an x or y position there. It chooses a different side of the map to target as an end point. It likely uses Bresenham's Algorithm to start wandering in that direction, but with random variables thrown at it to bump it off course every so often. It determines a thickness (randomly) and then retraces the steps to fill in the extra squares for that, offset. It checks randomly to see if we want any forks, and if so, how many. For each fork, pick a random point in the river, then a random map edge and repeat the process between those two points.

