Improve rendering of autodoor shadows, have leak though

This commit is contained in:
jgk
2021-03-05 14:27:23 +01:00
parent cb5a83d17a
commit e6a569a966
+5 -34
View File
@@ -2,14 +2,13 @@
{-# LANGUAGE FlexibleInstances #-}
module Dodge.LevelGen
( module Dodge.LevelGen
--, module Dodge.LevelGen.StaticWalls
, cutWalls
, createInnerWalls
, checkWalls
, nubWalls
)
where
-- imports {{{
import Dodge.Data
import Dodge.Base
import Dodge.SoundLogic
@@ -36,33 +35,6 @@ import qualified Data.Map as M
import Data.Graph.Inductive hiding ((&))
import Data.Graph.Inductive.NodeMap
import Data.Tree
-- }}}
--
--collidePointAllWalls :: Point2 -> Point2 -> IM.IntMap Wall -> IM.IntMap Wall
--collidePointAllWalls p1 p2 walls = IM.filter f walls
-- where f wall
-- = case myIntersectSegSeg p1 p2 (_wlLine wall !! 0) (_wlLine wall !! 1)
-- of Nothing -> False
-- _ -> True
--
---- returns walls that collide with lines, and the point of collision
--collidePointAllWallsPoints :: Point2 -> Point2 -> IM.IntMap Wall -> IM.IntMap (Wall,Point2)
--collidePointAllWallsPoints p1 p2 walls = IM.mapMaybe f walls
-- where f wall
-- = case myIntersectSegSeg p1 p2 (_wlLine wall !! 0) (_wlLine wall !! 1)
-- of Nothing -> Nothing
-- Just p -> Just (wall,p)
--
--collidePointAllWallsPoints' :: Point2 -> Point2 -> IM.IntMap Wall -> IM.IntMap (Wall,[Point2])
--collidePointAllWallsPoints' p1 p2 walls = IM.mapMaybe f walls
-- where f wall
-- = case myIntersectSegSeg p1 p2 (_wlLine wall !! 0) (_wlLine wall !! 1)
-- of Nothing -> Nothing
-- Just p -> Just (wall,[p])
treeTrunk :: [a] -> Tree a -> Tree a
treeTrunk [] t = t
@@ -335,7 +307,6 @@ putBlock (p:ps) i c b is w = foldr (uncurry removePathsCrossing) wWithBlock pair
wWithBlock = addBlock (p:ps) i c b is w
putWindowBlock :: Point2 -> Point2 -> World -> World
--putWindowBlock a b w = foldr makeBlockAt w $ zip ps ns
putWindowBlock a b w = removePathsCrossing a b $ foldr makeBlockAt w $ zip ps ns
where d = dist a b
rot = argV (b -.- a)
@@ -444,12 +415,12 @@ mkAutoDoor pl pr xs = addSound $ zipWith4 (autoDoorPane [pl,pr])
, [hwu,hwd]
, [hwd,prd,pr,hw]
]
[ [plld,pld]
[ [plld,pld,pl,pl]
, [pld,plu]
, [plu,pllu]
, [prru,pru]
, [plu,pllu,pl,pl]
, [prru,pru,pr,pr]
, [pru,prd]
, [prd,prrd]
, [prd,prrd,pr,pr]
]
where norm = 10 *.* errorNormalizeV 49 ( vNormal (pr -.- pl))
hw = 0.5 *.* (pl +.+ pr)