18 lines
462 B
Haskell
18 lines
462 B
Haskell
{-# OPTIONS -Wno-incomplete-uni-patterns #-}
|
|
module Dodge.WdP2f
|
|
( doWdP2f
|
|
) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Data.World
|
|
import Geometry.Data
|
|
import Geometry.Vector
|
|
|
|
-- # OPTIONS -Wno-incomplete-uni-patterns #-}
|
|
doWdP2f :: WdP2f -> World -> (Point2, Float)
|
|
doWdP2f x = case x of
|
|
WdP2f0 -> const (0, 0)
|
|
WdP2fDoorPosition drid -> \w ->
|
|
let Just (a, b) = w ^? cWorld . lWorld . doors . ix drid . drPos
|
|
in (b, argV (a -.- b))
|