Attempt to stop reuse of link placement spots

This commit is contained in:
2021-11-09 17:00:42 +00:00
parent 28f8ac1fbd
commit 5b09c9aa37
7 changed files with 121 additions and 81 deletions
+5 -1
View File
@@ -42,7 +42,8 @@ generateLevelFromRoomList gr w
= initWallZoning
. setupWorldBounds
-- . flip (foldr $ flip placeSpot) plmnts
. flip (foldl' placeSpot) plmnts
-- . flip (foldl' placeSpot) plmnts
. flip (foldl' doRoomPlacements) rs
$ w { _walls = wallsFromRooms rs
, _floorTiles = floorsFromRooms rs
, _gameRooms = gameRoomsFromRooms rs
@@ -56,6 +57,9 @@ generateLevelFromRoomList gr w
rs = zipWith addTile zs . evalState gr $ _randGen w
zs = map fromIntegral $ randomRs (0,63::Int) $ _randGen w
doRoomPlacements :: World -> Room -> World
doRoomPlacements w rm = fst $ foldl' placeSpot' (w,rm) $ _rmPS rm
updatePSLnkUsing :: (Point2,Float) -> PlacementSpot -> PlacementSpot
updatePSLnkUsing pf PSLnk{_psLinkShift=f} = uncurry PS $ f pf
updatePSLnkUsing _ ps = ps