This solution is mostly a band-aid. Make sure information set by join_map that is overlaid by the MAP is cleared out. This ensures that place_branch will never consider invalid data. A new function, remove_rooms(), with a helper, remove_room(), takes care of this, but only for rooms created by join_map, which addresses the only known case that causes this problem. There's a possibility that some other strange behavior, especially in minetn-6, will be fixed by this as well. The problem of disconnected caves on minetn-6 is not yet addressed. Also, add a check to lev_comp.y to make sure the required fg semantics of joined levels (fg must be ROOM or CORR) are actually met. Doesn't affect any levels currently included in the distro, but might address levels others are trying to make.
39 KiB
39 KiB