Tweak view distances
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
module Dodge.Viewpoints (
|
||||
getViewpoints,
|
||||
-- farWallPoints,
|
||||
) where
|
||||
|
||||
import Dodge.Data.CWorld
|
||||
import Dodge.GameRoom
|
||||
import Geometry
|
||||
|
||||
--farWallPoints :: Point2 -> CWorld -> [Point2]
|
||||
--farWallPoints p w = concatMap _grViewpoints grs ++ extendedViewPoints p grs
|
||||
-- where
|
||||
-- grs = filter (pointInOrOnPolygon p . _grBound) (_cwgGameRooms $ _cwGen w)
|
||||
--
|
||||
--extendedViewPoints :: Point2 -> [GameRoom] -> [Point2]
|
||||
--extendedViewPoints p grs =
|
||||
-- map
|
||||
-- extend
|
||||
-- ( concatMap _grViewpointsEx grs
|
||||
-- ++ map addDir (concatMap _grLinkDirs grs)
|
||||
-- )
|
||||
-- where
|
||||
-- extend outp = p +.+ maxViewDistance *.* squashNormalizeV (outp -.- p)
|
||||
-- addDir a = p +.+ unitVectorAtAngle a
|
||||
|
||||
maxViewDistance :: Float
|
||||
maxViewDistance = 800
|
||||
|
||||
getViewpoints :: Point2 -> CWorld -> [Point2]
|
||||
{-# INLINE getViewpoints #-}
|
||||
getViewpoints p w =
|
||||
concatMap (gameRoomViewpoints p) $
|
||||
filter (pointInOrOnPolygon p . _grBound) (_cwgGameRooms $ _cwGen w)
|
||||
|
||||
gameRoomViewpoints :: Point2 -> GameRoom -> [Point2]
|
||||
{-# INLINE gameRoomViewpoints #-}
|
||||
gameRoomViewpoints p gr =
|
||||
_grViewpoints gr
|
||||
<> map extend (_grViewpointsEx gr <> map addDir (_grLinkDirs gr))
|
||||
where
|
||||
extend outp = p +.+ maxViewDistance *.* squashNormalizeV (outp -.- p)
|
||||
addDir a = p +.+ unitVectorAtAngle a
|
||||
Reference in New Issue
Block a user