Correctly filter walls for distance test
This commit is contained in:
@@ -22,7 +22,7 @@ import qualified Data.Map.Strict as M
|
|||||||
import Data.Foldable
|
import Data.Foldable
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as Set
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified Data.IntMap.Strict as IM
|
||||||
import qualified SDL
|
import qualified SDL
|
||||||
--import Data.Monoid
|
--import Data.Monoid
|
||||||
@@ -168,8 +168,8 @@ rotateCamera cfig w
|
|||||||
| keyr = rotateCameraBy (-0.025) w
|
| keyr = rotateCameraBy (-0.025) w
|
||||||
| otherwise = ifConfigWallRotate cfig w
|
| otherwise = ifConfigWallRotate cfig w
|
||||||
where
|
where
|
||||||
keyl = SDL.ScancodeQ `S.member` _keys w && notAtTerminal w
|
keyl = SDL.ScancodeQ `Set.member` _keys w && notAtTerminal w
|
||||||
keyr = SDL.ScancodeE `S.member` _keys w && notAtTerminal w
|
keyr = SDL.ScancodeE `Set.member` _keys w && notAtTerminal w
|
||||||
|
|
||||||
-- TODO check where/how this is used
|
-- TODO check where/how this is used
|
||||||
notAtTerminal :: World -> Bool
|
notAtTerminal :: World -> Bool
|
||||||
@@ -216,7 +216,7 @@ farWallDistDirection p w = foldl' (flip (m . f)) (0,0,0,0) vps
|
|||||||
f q = g $ rotateV (negate $ _cameraRot w)
|
f q = g $ rotateV (negate $ _cameraRot w)
|
||||||
-- $ collidePointWallsFilt wlIsOpaque p q (wallsAlongLine p q w) -.- p
|
-- $ collidePointWallsFilt wlIsOpaque p q (wallsAlongLine p q w) -.- p
|
||||||
-- $ L.purely S.fold_ (collidePointWallsL p q) (wallsAlongLineStream p q w) -.- p
|
-- $ L.purely S.fold_ (collidePointWallsL p q) (wallsAlongLineStream p q w) -.- p
|
||||||
$ runIdentity (L.purely S.fold_ (collidePointWallsL p q) (wallsAlongLineStream p q w)) -.- p
|
$ runIdentity (L.purely S.fold_ (collidePointWallsL p q) (S.filter wlIsOpaque $ wallsAlongLineStream p q w)) -.- p
|
||||||
g (V2 x y) = (y, negate y, x, negate x)
|
g (V2 x y) = (y, negate y, x, negate x)
|
||||||
m (a,b,c,d) (x,y,z,w') = (max a x, max b y, max c z, max d w')
|
m (a,b,c,d) (x,y,z,w') = (max a x, max b y, max c z, max d w')
|
||||||
vps = concatMap _grViewpoints grs ++ extendedViewPoints p grs
|
vps = concatMap _grViewpoints grs ++ extendedViewPoints p grs
|
||||||
|
|||||||
Reference in New Issue
Block a user