ID:53465
 
I've updated Jp_DungeonGen a bit. The helpfile hasn't really been updated particularly well, so it's sort of out-of-date. Sorry. I'll probably fix that eventually. In the meantime, there are examples in demo.dm that show you how to use the new features.

New features:
- You can now specify that rooms have multiple disjoint sets of borders - think of, for example, a room that's a square with a rift going through the middle. The walls on both sides of the rift are borders, but you can't cross the rift, so you could occasionally get dungeons where stuff wasn't reachable if you just specified that all the walls were borders. You can now say that the walls on one side of the rift are one border, and the walls on the other side are a different border, and it'll get connected correctly.

- You can now turn on a 'doAccurateRoomPlacementCheck' flag, which changes the way that the generator checks to see if it can place a room or not. It uses AABB if you're not using the accurate placement check - so it's fast, but there can be lots of false positives, particularly with some room geometries. With accurate checking on, rooms are checked for collision tile-by-tile - a bit slower, but doesn't have the same false-positive issues. However, rooms need to support accurate room-placement checking by populating their list of stuff at New(), or the generator just defaults to AABB for that room. This is mostly useful in conjunction with the next feature...

- The generator can now incorporate preexisting features into the dungeon generated. If you turn on the 'usePreexistingRegions' flag, the generator will treat any non-dense regions as rooms and will connect them up to the dungeon. The demonstration for this feature in the current version of the generator generates a cavern and then generates a simple dungeon on top of it, for example, to give you a dungeon with some caverny bits with rectangular worked rooms connected to them - maybe the orc lair attached to a natural cave, for example.

- The generator can now have maximum and minimum sizes specified on a per-room basis, and you can also specify whether a given room is required to be placed in the dungeon (Say, a throne room) and how many times it's required to be placed (Say, the two guard barrackses). You can also specify that there's a limit to the number of times a given room can be placed in the dungeon (Say, for a treasure room - you only want one per level at the most). It still supports the old style, but you can use the new stuff if you want.

None of these changes should break backwards compatibility, but you might want to look into adapting anything you've done with the generator to work with it, anyway.
It keeps telling me that the maximum iterations were met and that connectivity could not be guaranteed. (Which ends up with pillars in walls and unreachable rooms)
Which demo are you generating? I don't have that issue with them.

You will get it sometimes, but you certainly shouldn't get it all the time. Have you changed something?
I changed the density and icon of the mob, and that's about it. I'm just trying all of the different options in the demo and they all cause it.
That's really quite strange. Are you absolutely certain you've changed nothing else?

Are any paths being drawn between rooms at all? Are any rooms being placed? Does the 'centred' demo hit maximum iterations?

Did you perhaps change world.turf or make a map file with something other than the wall turf? If you do that, you'll have to tell it that the new turf should be considered a wall.

I just tried setting the mob's density to 1 and setting wall density to 1, that hasn't changed anything.

I could understand if it was stored_seed that was always erroring (It always generates the same map), but all of them?