diff --git a/src/Dodge/Base/Window.hs b/src/Dodge/Base/Window.hs index d749f814b..2b06ab685 100644 --- a/src/Dodge/Base/Window.hs +++ b/src/Dodge/Base/Window.hs @@ -5,6 +5,7 @@ module Dodge.Base.Window ( screenPolygon, screenPolygonBord, screenBox, + pointIsOnScreen, ) where import Control.Lens @@ -54,3 +55,6 @@ screenBox w = rectNSWE hh (- hh) (- hw) hw where hw = halfWidth w hh = halfHeight w + +pointIsOnScreen :: Configuration -> Camera -> Point2 -> Bool +pointIsOnScreen cfig w p = pointInPolygon p $ screenPolygon cfig w diff --git a/src/Dodge/Debug/Picture.hs b/src/Dodge/Debug/Picture.hs index ef37b17f3..892aba579 100644 --- a/src/Dodge/Debug/Picture.hs +++ b/src/Dodge/Debug/Picture.hs @@ -1,28 +1,20 @@ module Dodge.Debug.Picture where import Control.Lens -import Control.Monad (guard) import Data.Foldable import qualified Data.Graph.Inductive as FGL import qualified Data.Map.Strict as M import Data.Maybe -import qualified Data.Set as Set import Dodge.Base -import Dodge.Creature.Picture import Dodge.Creature.Picture.Awareness import Dodge.Data.Universe -import Dodge.Base.Coordinate -import Dodge.Draw -import Dodge.Flare import Dodge.GameRoom import Dodge.Graph import Dodge.Path import Dodge.Picture.SizeInvariant -import Dodge.RadarBlip import Dodge.Render.InfoBox import Dodge.Render.List -import Dodge.Render.Picture import Dodge.ShortShow import Dodge.SoundLogic.LoadSound import Dodge.Viewpoints @@ -34,31 +26,11 @@ import qualified IntMapHelp as IM import Padding import Picture import SDL (MouseButton (..)) -import Shape -import ShapePicture import ShortShow import Sound.Data -import Dodge.Zoning.Wall -import Dodge.Path -import Dodge.Creature.Picture.Awareness -import qualified Data.Graph.Inductive as FGL -import Sound.Data -import Control.Lens -import qualified Data.IntMap.Strict as IM -import qualified Data.Map.Strict as M -import Data.Maybe import qualified Data.Set as S -import Dodge.Base.Wall -import Dodge.Base.Window -import Dodge.Data.Universe import Dodge.Render.Label -import Dodge.Render.List import Dodge.WorldEvent.ThingsHit -import Dodge.Zoning.Base -import Dodge.Zoning.Creature -import Geometry -import Picture -import SDL (MouseButton (..)) printPoint :: Point2 -> Picture printPoint p = color white $ uncurryV translate p $ pictures [circle 3, scale 0.05 0.05 $ text (show p)] @@ -369,20 +341,20 @@ drawCrInfo :: Configuration -> World -> Picture drawCrInfo cfig w = setLayer FixedCoordLayer $ renderInfoListsAt (2 * hw - 400) 0 cfig cam $ - mapMaybe (crDisplayInfo cfig cam) $ IM.elems $ w ^. cWorld . lWorld . creatures + mapMaybe crDisplayInfo $ IM.elems $ w ^. cWorld . lWorld . creatures where cam = w ^. wCam - drawPathing :: Configuration -> World -> Picture - drawPathing cfig w = - setLayer DebugLayer $ - foldMap (edgeToPic (screenPolygon cfig (w ^. wCam)) . (^?! _3)) (FGL.labEdges gr) - <> foldMap dispInc (graphToIncidence gr) - where - dispInc (p, n) = setDepth 2 . uncurryV translate p . scale 0.1 0.1 $ text $ show n - gr = w ^. cWorld . pathGraph +-- drawPathing :: Configuration -> World -> Picture +-- drawPathing cfig w = +-- setLayer DebugLayer $ +-- foldMap (edgeToPic (screenPolygon cfig (w ^. wCam)) . (^?! _3)) (FGL.labEdges gr) +-- <> foldMap dispInc (graphToIncidence gr) +-- where +-- dispInc (p, n) = setDepth 2 . uncurryV translate p . scale 0.1 0.1 $ text $ show n +-- gr = w ^. cWorld . pathGraph - crDisplayInfo :: Configuration -> Camera -> Creature -> Maybe (Point2, [String]) - crDisplayInfo cfig cam cr + crDisplayInfo :: Creature -> Maybe (Point2, [String]) + crDisplayInfo cr | _crID cr == 0 = Nothing | crOnScreen = Just @@ -401,7 +373,7 @@ drawCrInfo cfig w = | otherwise = Nothing where ap = _crActionPlan cr - crOnScreen = pointOnScreen cfig cam $ _crPos cr + crOnScreen = pointIsOnScreen cfig cam $ _crPos cr fpreShow :: (Show a, Functor f) => String -> f a -> f String fpreShow str = fmap (((rightPad 7 '.' str ++ "...") ++) . show) diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index c5ca0fbfb..63754aecc 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -5,40 +5,20 @@ module Dodge.Render.ShapePicture ( import Control.Lens import Control.Monad (guard) import Data.Foldable -import qualified Data.Graph.Inductive as FGL -import qualified Data.Map.Strict as M import Data.Maybe -import qualified Data.Set as Set import Dodge.Base import Dodge.Creature.Picture -import Dodge.Creature.Picture.Awareness import Dodge.Data.Universe import Dodge.Debug.Picture import Dodge.Draw import Dodge.Flare -import Dodge.GameRoom -import Dodge.Graph -import Dodge.Path -import Dodge.Picture.SizeInvariant import Dodge.RadarBlip -import Dodge.Render.InfoBox -import Dodge.Render.List import Dodge.Render.Picture -import Dodge.ShortShow -import Dodge.SoundLogic.LoadSound -import Dodge.Viewpoints -import Dodge.Zoning -import Dodge.Zoning.Base import Geometry -import Geometry.ConvexPoly import qualified IntMapHelp as IM -import Padding import Picture -import SDL (MouseButton (..)) import Shape import ShapePicture -import ShortShow -import Sound.Data worldSPic :: Configuration -> Universe -> SPic worldSPic cfig u = diff --git a/src/Picture/Base.hs b/src/Picture/Base.hs index a02e185cd..f49537430 100644 --- a/src/Picture/Base.hs +++ b/src/Picture/Base.hs @@ -201,7 +201,7 @@ stackText = mconcat . zipWith (\y s -> translate 0 y $ centerText s) [0, 100 ..] text :: String -> Picture {-# INLINE text #-} -text = translate (-50) (-100) . drawText (-10) +text = translate (-50) (-100) . drawText (10) drawText :: Float -> String -> [Verx] drawText gap = map f . stringToList gap diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 9553af93e..9868a4df5 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -84,7 +84,9 @@ preloadRender = do eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] [3, 4] pmTriangles cslist <- makeShaderVBO "picture/charArray" [vert, frag] [3, 4, 4] pmTriangles - initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_NEAREST_MIPMAP_LINEAR GL_LINEAR +-- initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_NEAREST_MIPMAP_LINEAR GL_LINEAR +-- initTexture2DArray 50 "data/texture/charMapVert16Block.png" 2 16 32 95 GL_NEAREST GL_NEAREST + initTexture2DArray 50 "data/texture/charMapVert8Block.png" 2 8 16 95 GL_NEAREST GL_NEAREST --initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR --initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_LINEAR_MIPMAP_NEAREST GL_LINEAR