diff --git a/src/Dodge/DrWdWd.hs b/src/Dodge/DrWdWd.hs index d98f26627..4e8b14bdc 100644 --- a/src/Dodge/DrWdWd.hs +++ b/src/Dodge/DrWdWd.hs @@ -72,15 +72,15 @@ doorLerp dr w = case newlerp of wlposs x = (dr ^. drFootPrint) & each . each %~ shiftPointBy (p2a x) clerp = dr ^. drLerp newlerp - | toOpen && clerp < 1 = Just . min 1 $ clerp + 0.1 - | clerp > 0 = Just . max 1 $ clerp - 0.1 + | toOpen && clerp < 1 = Just . min 1 $ clerp + speed + | clerp > 0 && not toOpen = Just . max 0 $ clerp - speed | otherwise = Nothing toOpen = doWdBl (_drTrigger dr) w - mvDir - | toOpen && _drStatus dr == DoorOpen = Nothing -- Not sure why necessary - | toOpen && dist dpos dop > 0.5 = Just $ vecBetweenSpeed speed dpos dop - | dist dpos dcp > 0.5 = Just $ vecBetweenSpeed speed dpos dcp - | otherwise = Nothing +-- mvDir +-- | toOpen && _drStatus dr == DoorOpen = Nothing -- Not sure why necessary +-- | toOpen && dist dpos dop > 0.5 = Just $ vecBetweenSpeed speed dpos dop +-- | dist dpos dcp > 0.5 = Just $ vecBetweenSpeed speed dpos dcp +-- | otherwise = Nothing speed = _drSpeed dr drid = _drID dr moveUpdate = playSound . setStatus diff --git a/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs b/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs index bc56b5f47..b9bc7e7c5 100644 --- a/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs +++ b/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs @@ -4,6 +4,7 @@ module Dodge.Placement.PlaceSpot.TriggerDoor ( updateDoorEdges, ) where +import Linear import Dodge.Data.GenWorld import qualified Data.IntSet as IS import Data.List @@ -91,11 +92,17 @@ plSlideDoor dr wl eo shiftOffset a b gw = { _drID = drid , _drWallIDs = IS.fromList wlids , _drStatus = DoorClosed - , _drMech = DoorMechanism +-- , _drMech = DoorMechanism + , _drMech = DoorLerp , _drPos = (a, b) , _drOpenPos = (shiftLeft a, shiftLeft b) , _drClosePos = (a, b) + , _drZeroPos = (a, 0) + , _drOnePos = (shiftLeft a, 0) + , _drLerp = 0 + , _drFootPrint = IM.fromList $ zip wlids $ rectanglePairs 9 0 (b-a) , _drObstacleType = eo + , _drSpeed = 1 / distance a (shiftLeft a) } addDoorWalls w' = foldl' (addDoorWall eo drid wl) w' $ zip wlids pairs pairs = rectanglePairs 9 a b