Cleanup warnings
This commit is contained in:
+25
-12
@@ -10,7 +10,7 @@ module Dodge.LevelGen
|
||||
) where
|
||||
import Dodge.Data
|
||||
import Dodge.Base
|
||||
import Dodge.Room.Data
|
||||
--import Dodge.Room.Data
|
||||
import Dodge.LevelGen.Block
|
||||
import Dodge.LevelGen.LineBlock
|
||||
import Dodge.LevelGen.Pathing
|
||||
@@ -22,16 +22,16 @@ import Dodge.LevelGen.Data
|
||||
import Geometry
|
||||
import Picture
|
||||
|
||||
import System.Random
|
||||
--import System.Random
|
||||
import Control.Monad.State
|
||||
import Control.Applicative
|
||||
--import Control.Applicative
|
||||
import Control.Lens
|
||||
import Data.List.Extra
|
||||
import Data.Function
|
||||
import Data.Maybe
|
||||
--import Data.Function
|
||||
--import Data.Maybe
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import qualified Data.Set as S
|
||||
import qualified Data.Map as M
|
||||
--import qualified Data.Set as S
|
||||
--import qualified Data.Map as M
|
||||
|
||||
placeSpots :: [Placement] -> World -> World
|
||||
placeSpots pss w = foldr (placeSpot . _placementSpot) w' singlePlacements
|
||||
@@ -43,7 +43,7 @@ placeSpots pss w = foldr (placeSpot . _placementSpot) w' singlePlacements
|
||||
gplmnts = groupOn _groupPlacementID $ sortOn _groupPlacementID groupedPlacements
|
||||
w' = foldr putGroup w gplmnts
|
||||
putGroup :: [Placement] -> World -> World
|
||||
putGroup gps w = (_groupUpdate $ head gps) w gps
|
||||
putGroup gps w'' = (_groupUpdate $ head gps) w'' gps
|
||||
|
||||
{- | OK, this is perhaps slightly impenetrable.
|
||||
- The idea is that for a list of collected group placements, we first update
|
||||
@@ -81,17 +81,17 @@ placeSpot ps w = case _psType ps of
|
||||
mapBoth fn (x,y) = (fn x, fn y)
|
||||
PutDoubleDoor col f a b -> putDoubleDoor col f (shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
PutAutoDoor a b -> addAutoDoor (shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
PutBlock (hp:hps) col ps -> putBlock (map (shiftPointBy (p,rot)) ps) hp col False hps w
|
||||
PutBlock (hp:hps) col ps' -> putBlock (map (shiftPointBy (p,rot)) ps') hp col False hps w
|
||||
PutBtDoor c bp f a b -> addButtonDoor c (shiftPointBy (p,rot) bp) (f + rot)
|
||||
(shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
PutSwitchDoor c bp f a b -> addSwitchDoor c (shiftPointBy (p,rot) bp) (f + rot)
|
||||
(shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
PutLineBlock wl width depth a b
|
||||
-> putLineBlock wl width depth (shiftPointBy (p,rot) a) (shiftPointBy (p,rot) b) w
|
||||
PutWall { _pwPoly = ps, _pwWall = wl } -> rmCrossPaths $ over walls (addWalls (q:qs) wl) w
|
||||
PutWall { _pwPoly = ps', _pwWall = wl } -> rmCrossPaths $ over walls (addWalls (q:qs) wl) w
|
||||
where
|
||||
(q:qs) = map (shiftPointBy (p,rot)) ps
|
||||
rmCrossPaths w = foldr (uncurry removePathsCrossing) w $ zip (q:qs) (qs++[q])
|
||||
(q:qs) = map (shiftPointBy (p,rot)) ps'
|
||||
rmCrossPaths w' = foldr (uncurry removePathsCrossing) w' $ zip (q:qs) (qs++[q])
|
||||
_ -> w
|
||||
where
|
||||
p = _psPos ps
|
||||
@@ -118,6 +118,7 @@ instance Shiftable PlacementSpot where
|
||||
translateS p' (PS p r x) = PS (p +.+ p') r x
|
||||
rotateS r' (PS p r x) = PS (rotateV r' p) (r + r') x
|
||||
|
||||
shiftPointBy :: (Point2,Float) -> Point2 -> Point2
|
||||
shiftPointBy (pos,rot) p = pos +.+ rotateV rot p
|
||||
|
||||
addWalls :: [Point2] -> Wall -> IM.IntMap Wall -> IM.IntMap Wall
|
||||
@@ -133,6 +134,12 @@ addPane wl (p0,p1) wls = IM.insert (newKey wls) (wl
|
||||
})
|
||||
wls
|
||||
|
||||
placeBt
|
||||
:: Button
|
||||
-> Point2
|
||||
-> Float -- ^ Rotation
|
||||
-> World
|
||||
-> World
|
||||
placeBt bt p rot = over buttons addBT
|
||||
where
|
||||
addBT bts = IM.insert (newKey bts) (bt {_btPos = p, _btRot = rot, _btID = newKey bts}) bts
|
||||
@@ -154,6 +161,12 @@ placeFlIt itm p rot = floorItems %~
|
||||
}
|
||||
) fis
|
||||
|
||||
placePressPlate
|
||||
:: PressPlate
|
||||
-> Point2
|
||||
-> Float -- ^ Rotation
|
||||
-> World
|
||||
-> World
|
||||
placePressPlate pp p rot = over pressPlates addPP
|
||||
where
|
||||
addPP pps = IM.insert (newKey pps) (pp {_ppPos = p,_ppRot = rot}) pps
|
||||
|
||||
Reference in New Issue
Block a user