From 5916f302a63139e853360d592a3c3f714015d35f Mon Sep 17 00:00:00 2001 From: nek0 Date: Sun, 2 Sep 2018 10:44:33 +0200 Subject: [PATCH] linting in progress --- src/Floorplan.hs | 5 ++--- src/Interior.hs | 7 +++---- src/Load.hs | 2 +- src/MainGame/WorldMap.hs | 10 +++++----- src/MindMap.hs | 10 +++++----- src/NPC.hs | 22 +++++++++++----------- src/Navigation.hs | 6 +++--- src/Object.hs | 12 ++++++------ src/Util.hs | 26 ++++++++++++++------------ 9 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/Floorplan.hs b/src/Floorplan.hs index a729819..d6774d6 100644 --- a/src/Floorplan.hs +++ b/src/Floorplan.hs @@ -263,7 +263,7 @@ closeOffices input = let tups mat = (,) <$> [2 .. nrows mat - 1] <*> [2 .. ncols mat - 1] isNeighbor (row, col) = let subm = M.submatrix (row -1) (row + 1) (col - 1) (col + 1) input - in Hall `elem` (M.toList subm) + in Hall `elem` M.toList subm in foldl (\acc coord -> if input M.! coord == Offi && isNeighbor coord then M.setElem Wall coord acc @@ -393,8 +393,7 @@ buildDoorsGraph mat = in buildGraph mat [GHall []] (2, 2) buildDoors :: Matrix TileState -> [Graph] -> IO (Matrix TileState) -buildDoors input graph = - foldM placeDoors input graph +buildDoors = foldM placeDoors where placeDoors :: Matrix TileState -> Graph -> IO (Matrix TileState) placeDoors amat (GHall conns) = diff --git a/src/Interior.hs b/src/Interior.hs index 069c5f2..6c0ec5c 100644 --- a/src/Interior.hs +++ b/src/Interior.hs @@ -40,12 +40,11 @@ placeInteriorIO imat imgmat irp graph = foldl traverseGraph acc sub traverseGraph putt (GRoom _ bnds) = let applicable = - (L.sortBy (\b a -> size a `compare` size b) ( + L.sortBy (\b a -> size a `compare` size b) ( L.filter (\a -> roomType `elem` clusterRoom a && size a <= size bnds) [minBound .. maxBound] :: [Cluster]) - ) - roomType = fst (head $ L.sortBy + roomType = fst (L.minimumBy (\b a -> (snd a :: Int) `compare` (snd b :: Int)) $ Map.toList $ foldl (\acc a -> if a `Map.member` acc then Map.insert a (acc Map.! a + 1) acc @@ -75,7 +74,7 @@ placeInteriorIO imat imgmat irp graph = let (pr, g1) = randomR (fst (matmin bnds) - 1, fst (matmax bnds) - 1) rng (pc, g2) = randomR (snd (matmin bnds) - 1, snd (matmax bnds) - 1) g1 freeRoom = foldl - (\acc a -> if a == Nothing then acc + 1 else acc) + (\acc a -> if isNothing a then acc + 1 else acc) 0 (M.toList $ M.submatrix (fst $ matmin bnds) (fst $ matmax bnds) diff --git a/src/Load.hs b/src/Load.hs index 0e3d4f6..b71c1d0 100644 --- a/src/Load.hs +++ b/src/Load.hs @@ -29,7 +29,7 @@ loadLoad = do ad <- A.get ud <- getAffection progress <- liftIO $ newMVar (0, "Starting up") - future <- liftIO $ newEmptyMVar + future <- liftIO newEmptyMVar _ <- liftIO $ createFont (nano ud) "bedstead" (FileName "assets/font/Bedstead-Semicondensed.ttf") _ <- liftIO $ forkIO $ diff --git a/src/MainGame/WorldMap.hs b/src/MainGame/WorldMap.hs index 2b99696..2f4c8d8 100644 --- a/src/MainGame/WorldMap.hs +++ b/src/MainGame/WorldMap.hs @@ -105,7 +105,7 @@ loadMapFork ud ad future progress = do npcposs <- placeNPCs inter mat rps 40 -- (length $ filter (\a -> pointType a == Table) nnex) _ <- liftIO $ swapMVar progress (14 / loadSteps, "Preparing MindMap graph") A.logIO A.Debug $ "number of placed NPCs: " ++ show (length npcposs) - !(mmintmat, mmgraph) <- buildFloorMap . springField <$> + (mmintmat, mmgraph) <- buildFloorMap . springField <$> buildMindMap (length npcposs) 2 _ <- liftIO $ swapMVar progress (15 / loadSteps, "Unfolding and Converting MindMap to images") let !mmimgmat = convertTileToImg $ manhattan mmgraph mmintmat @@ -140,7 +140,7 @@ loadMapFork ud ad future progress = do { pos = Just $ reachCoord - V2 1 0 , obstacle = Just $ Boundaries (10/36, 8/36) (28/36, 30/36) , anim = Just $ AnimState (AnimId "copier" "open" N) 0 0 - , objAccess = Just $ (V2 1 0, NW) + , objAccess = Just (V2 1 0, NW) , objType = Just ObjCopier , objState = Just "idle" } @@ -155,7 +155,7 @@ loadMapFork ud ad future progress = do _ -> error "not yet defined" -- , obstacle = Just $ Boundaries (10/36, 8/36) (28/36, 30/36) , anim = Just $ AnimState (AnimId "computer" "off" N) 0 0 - , objAccess = Just $ (V2 1 (-1), dir) + , objAccess = Just (V2 1 (-1), dir) , objType = Just ObjComputer , objState = Just "off" } @@ -168,7 +168,7 @@ loadMapFork ud ad future progress = do { pos = Just $ reachCoord - V2 0 (-1) , obstacle = Just $ Boundaries (0, 0) (1, 1) , anim = Just $ AnimState (AnimId "toilet" "free" N) 0 0 - , objAccess = Just $ (V2 0 (-1), dir) + , objAccess = Just (V2 0 (-1), dir) , objType = Just ObjToilet } ) (A.log A.Debug ("number of toilets: " ++ show (length toilets)) toilets) @@ -272,7 +272,7 @@ playerInteract (MsgMouseButton _ _ SDL.Pressed _ SDL.ButtonRight _ m) = do otype <- query objType ostate <- query objState ent <- queryEnt - if (fmap floor ppos == fmap floor pos' || + if ((fmap floor ppos :: V2 Int) == (fmap floor pos' :: V2 Int) || (fmap floor ppos :: V2 Int) == (fmap floor pos' :: V2 Int) + rel) && (fmap floor (ppos + V2 dr dc) :: V2 Int) == (fmap floor pos' ::V2 Int) && pdir == dir diff --git a/src/MindMap.hs b/src/MindMap.hs index 532da75..22b198d 100644 --- a/src/MindMap.hs +++ b/src/MindMap.hs @@ -34,7 +34,7 @@ buildMindMap num difficulty = do aux <- randomRIO (0, floor (fromIntegral num * 5 / 8 :: Double)) :: IO Int auxPaths <- mapM (\_ -> do ln <- randomRIO (0, num `div` 10) - (path . (MMNode (V2 0 0) 0 :)) <$> foldM makeVert [] [1 .. ln] + path . (MMNode (V2 0 0) 0 :) <$> foldM makeVert [] [1 .. ln] ) [0 .. aux] return $ overlays (mainPath : auxPaths) @@ -65,7 +65,7 @@ springField = (vertexList graph) ngraph = fmap (\n -> fromJust (find ((== mmId n) . mmId) deltaNodes)) graph in -- A.log A.Debug "\n\nRECURSING\n" - (calcul ngraph) + calcul ngraph else graph len :: (Floating a, Metric f) => f a -> a @@ -138,13 +138,13 @@ calculDelta2 graph = sproing2 [] = [] sproing2 ((cnode, cacc):nodeaccs) = ( mmId cnode - , if (len (V2 100 100 * normv deltasum)) < len deltasum + , if len (V2 100 100 * normv deltasum) < len deltasum then V2 100 100 * normv deltasum else deltasum ) : sproing2 dnodeaccs where deltasum = cacc + sum deltas - deltas = map ((fmap (* friction)) . doForce) (map fst nodeaccs) + deltas = map (fmap (* friction) . doForce) (map fst nodeaccs) doForce n -- are the nodes identic? (unlikely) | mmId cnode == mmId n = @@ -159,7 +159,7 @@ calculDelta2 graph = (normv (mmPos cnode - mmPos n)) -- Do gravitational push in all other cases | otherwise = - - fmap (* (1000 / ((distance (mmPos cnode) (mmPos n)) ^ (2 :: Int)))) + - fmap (* (1000 / (distance (mmPos cnode) (mmPos n)) ^ (2 :: Int))) (normv (mmPos n - mmPos cnode)) dnodeaccs = zipWith (\(n, a) d -> (n, a - d)) nodeaccs deltas in accel2 diff --git a/src/NPC.hs b/src/NPC.hs index 9937245..7e30fa7 100644 --- a/src/NPC.hs +++ b/src/NPC.hs @@ -42,12 +42,12 @@ placeNPCs imgmat tilemat rp count = c <- randomRIO (1, M.ncols imgmat) if null (maybe [] collisionObstacle $ imgmat M.! (r, c)) && tilemat M.! (r, c) == Hall - then doPlace (nr + 1) ((V2 (fromIntegral r) (fromIntegral c)) : acc) + then doPlace (nr + 1) (V2 (fromIntegral r) (fromIntegral c) : acc) else do i <- randomRIO (0, length nonexits - 1) doPlace (nr + 1) - ((fmap fromIntegral $ pointCoord (nonexits !! i)) : acc) + (fmap fromIntegral (pointCoord (nonexits !! i)) : acc) else return acc nonexits = @@ -79,7 +79,7 @@ updateNPCs imgmat rp dt = do e <- queryEnt return (e, pos') eaccess <- getObjects npcposs - moent <- catMaybes <$> (eover allEnts $ do + moent <- catMaybes <$> eover allEnts (do with pos with npcMoveState with vel @@ -93,7 +93,7 @@ updateNPCs imgmat rp dt = do let nttl = ttl - dt if nttl > 0 then - return $ (Nothing, unchanged + return (Nothing, unchanged { npcMoveState = Set $ NPCStanding nttl future , vel = Set $ V2 0 0 }) @@ -101,24 +101,24 @@ updateNPCs imgmat rp dt = do mpath <- liftIO $ tryTakeMVar future case mpath of Just path -> - return $ (Nothing, unchanged + return (Nothing, unchanged { npcMoveState = Set $ NPCWalking path }) Nothing -> - return $ (Nothing, unchanged + return (Nothing, unchanged { npcMoveState = Set $ NPCStanding 1 future }) - NPCWalking path -> do + NPCWalking path -> if not (null path) then do let itarget = V2 0.5 0.5 + (fromIntegral <$> head path) :: V2 Double if distance pos' itarget < 0.1 then - return $ (Nothing, unchanged + return (Nothing, unchanged { npcMoveState = Set $ NPCWalking (tail path) }) else - return $ (Nothing, unchanged + return (Nothing, unchanged { vel = Set $ (* 2) <$> signorm (itarget - pos') }) else do @@ -128,12 +128,12 @@ updateNPCs imgmat rp dt = do getPath (fmap floor pos') future rp imgmat posbounds e <- queryEnt let mdir = - (pointDir <$> find (\a -> pointCoord a == fmap floor pos') rp) + pointDir <$> find (\a -> pointCoord a == fmap floor pos') rp accessibles = fromMaybe [] $ lookup e eaccess case accessibles of [] -> do ttl <- liftIO $ randomRIO (5, 30) - return $ (Nothing, unchanged + return (Nothing, unchanged { npcMoveState = Set $ NPCStanding ttl future , vel = Set $ V2 0 0 , rot = Set $ fromMaybe rot' mdir diff --git a/src/Navigation.hs b/src/Navigation.hs index 14d4797..c43aeba 100644 --- a/src/Navigation.hs +++ b/src/Navigation.hs @@ -18,7 +18,7 @@ isReachable -> Bool isReachable imgmat animBounds reaches exits = let result = - (concatMap - (\exit -> map (astarAppl imgmat animBounds exit) reaches) - (map pointCoord exits)) + concatMap + ((\exit -> map (astarAppl imgmat animBounds exit) reaches) . pointCoord) + exits in all isJust result diff --git a/src/Object.hs b/src/Object.hs index 56f4a08..1295c1c 100644 --- a/src/Object.hs +++ b/src/Object.hs @@ -25,7 +25,7 @@ instance ObjectAction ObjType ObjState where { objStateTime = Set (actionTime t s) , objState = Set "copying" } - Just ttl -> do + Just ttl -> return unchanged { objStateTime = Set (ttl - dt) } @@ -50,7 +50,7 @@ instance ObjectAction ObjType ObjState where return unchanged { objStateTime = Set dur } - Just ttl -> do + Just ttl -> return unchanged { objStateTime = Set (ttl - dt) } @@ -60,10 +60,10 @@ instance ObjectAction ObjType ObjState where Nothing -> return Nothing Just ttl -> do pa <- query objPlayerActivated - if (ttl < 0) - then do + if ttl < 0 + then return (Just pa) - else if (pa && vl `dot` vl > 0) + else if pa && vl `dot` vl > 0 then return (Just pa) else return Nothing maybe @@ -84,7 +84,7 @@ instance ObjectAction ObjType ObjState where return unchanged { objStateTime = Set (actionTime t s) } - Just ttl -> do + Just ttl -> return unchanged { objStateTime = Set (ttl - dt) } diff --git a/src/Util.hs b/src/Util.hs index 2c5d093..2e8ede0 100644 --- a/src/Util.hs +++ b/src/Util.hs @@ -32,8 +32,10 @@ convertTileToImg :: Matrix TileState -> Matrix (Maybe ImgId) convertTileToImg mat = fromLists conversion where conversion = - map (\(i, ls) -> map (uncurry $ convertTile i) (zip [1..] ls)) - (zip [1..] (toLists mat)) + zipWith + (\i ls -> zipWith (convertTile i) [1..] ls) + [1..] + (toLists mat) convertTile irow icol tile = case tile of Wall -> Just (case neighWalls irow icol mat of @@ -148,7 +150,7 @@ astarAppl imgmat animBounds target = aStar (fmap (fromIntegral :: Int -> Double) a) (fmap (fromIntegral :: Int -> Double) b) ) - (\a -> distance (fmap fromIntegral target) (fmap fromIntegral a)) + (distance (fmap fromIntegral target) . fmap fromIntegral) (== target) naviGraph @@ -161,9 +163,9 @@ naviGraph imgmat animBounds (V2 r c) = foldl (\acc (rr, cc) -> if null - ((maybe [] collisionObstacle - (fromMaybe Nothing $ M.safeGet (r + rr) (c + cc) imgmat)) ++ - (map snd $ filter + (maybe [] collisionObstacle + (fromMaybe Nothing $ M.safeGet (r + rr) (c + cc) imgmat) ++ + map snd (filter (\(V2 br bc, _) -> floor br == r + rr && floor bc == c + cc) animBounds)) then V2 (r + rr) (c + cc): acc @@ -175,16 +177,16 @@ naviGraph imgmat animBounds (V2 r c) = foldl (\acc (rr, cc) -> if null - ((maybe [] collisionObstacle - (fromMaybe Nothing $ M.safeGet (r + rr) (c + cc) imgmat)) ++ - (map snd $ filter + (maybe [] collisionObstacle + (fromMaybe Nothing $ M.safeGet (r + rr) (c + cc) imgmat) ++ + map snd (filter (\(V2 br bc, _) -> floor br == r + rr && floor bc == c + cc) animBounds)) && all null (map (\(oor, ooc) -> (maybe [] collisionObstacle (fromMaybe Nothing $ M.safeGet (r + oor) (c + ooc) imgmat)) ++ - (map snd $ filter + map snd (filter (\(V2 br bc, _) -> floor br == r + oor && floor bc == c + ooc) animBounds)) [(0, cc), (rr, 0)]) @@ -227,7 +229,7 @@ loadAnimationSprites fp nvg idconfs = do Right dimg -> do let img = convertRGBA8 dimg mapM - (\(i, (AnimationConfig (xoffs, yoffs) (w, h) (sx, sy) count dur pb)) -> do + (\(i, AnimationConfig (xoffs, yoffs) (w, h) (sx, sy) count dur pb) -> do let crs = map (\iid -> crop (xoffs + (iid * sx)) (yoffs + (iid * sy)) w h img) [0 .. (count - 1)] @@ -242,7 +244,7 @@ loadAnimationSprites fp nvg idconfs = do exitFailure else return $ catMaybes mresimgs - return $ + return ( i , Animation dur imgs pb )