Use strict-containers for IntMaps
This commit is contained in:
+1
-1
@@ -26,7 +26,7 @@ import Control.Lens
|
|||||||
import Control.Monad
|
import Control.Monad
|
||||||
--import Control.Monad.Parallel
|
--import Control.Monad.Parallel
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import qualified Data.IntMap as IM
|
import qualified IntMapHelp as IM
|
||||||
import Graphics.Rendering.OpenGL hiding (color, rotate, scale, translate)
|
import Graphics.Rendering.OpenGL hiding (color, rotate, scale, translate)
|
||||||
import qualified SDL
|
import qualified SDL
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ description: Description text, TODO link to README.md
|
|||||||
dependencies:
|
dependencies:
|
||||||
- base >= 4.7 && < 5
|
- base >= 4.7 && < 5
|
||||||
- containers
|
- containers
|
||||||
|
- strict-containers
|
||||||
|
- strict-containers-lens
|
||||||
- unordered-containers
|
- unordered-containers
|
||||||
- bitwise-enum
|
- bitwise-enum
|
||||||
- graphviz
|
- graphviz
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ import Dodge.Base.Wall
|
|||||||
import Geometry
|
import Geometry
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import StreamingHelp
|
import StreamingHelp
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ module Dodge.Base.Item
|
|||||||
--import Dodge.Base.You
|
--import Dodge.Base.You
|
||||||
--import LensHelp
|
--import LensHelp
|
||||||
--
|
--
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
--selectedObject :: World -> Maybe (Either FloorItem Button)
|
--selectedObject :: World -> Maybe (Either FloorItem Button)
|
||||||
--selectedObject w = lookup (_crInvSel ycr) $ zip [n..] $ _closeObjects w
|
--selectedObject w = lookup (_crInvSel ycr) $ zip [n..] $ _closeObjects w
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ import Picture
|
|||||||
--import Data.List (sortOn)
|
--import Data.List (sortOn)
|
||||||
--import MonadHelp
|
--import MonadHelp
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
doBeamCombine :: BeamCombineType
|
doBeamCombine :: BeamCombineType
|
||||||
-> (Point2,(Point2,Point2,Beam),(Point2,Point2,Beam))
|
-> (Point2,(Point2,Point2,Beam),(Point2,Point2,Beam))
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ import Data.Foldable
|
|||||||
import Data.Function
|
import Data.Function
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntSet as IS
|
import qualified Data.IntSet as IS
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
import qualified Data.Graph.Inductive as FGL
|
import qualified Data.Graph.Inductive as FGL
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ import Geometry
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
import StreamingHelp
|
import StreamingHelp
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Dodge.Movement.Turn
|
import Dodge.Movement.Turn
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import Data.Map.Merge.Strict
|
|||||||
import Control.Monad
|
import Control.Monad
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.Bifunctor
|
import Data.Bifunctor
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
--import qualified Data.IntSet as IS
|
--import qualified Data.IntSet as IS
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
--import Data.Map.Merge.Strict
|
--import Data.Map.Merge.Strict
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import Control.Monad.State
|
|||||||
import Control.Monad
|
import Control.Monad
|
||||||
import System.Random
|
import System.Random
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Foreign.ForeignPtr
|
import Foreign.ForeignPtr
|
||||||
import Control.Concurrent
|
import Control.Concurrent
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Dodge.Creature.ChaseCrit
|
|||||||
import Dodge.Item.Equipment
|
import Dodge.Item.Equipment
|
||||||
import Dodge.Item.Consumable
|
import Dodge.Item.Consumable
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
flockArmourChaseCrit :: Creature
|
flockArmourChaseCrit :: Creature
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Dodge.Item.Weapon.BulletGuns
|
|||||||
import Dodge.Item.Consumable
|
import Dodge.Item.Consumable
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
autoCrit :: Creature
|
autoCrit :: Creature
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Geometry
|
|||||||
|
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
interpWith :: Float -> Point2 -> Point2 -> Point2
|
interpWith :: Float -> Point2 -> Point2 -> Point2
|
||||||
interpWith x a b = x *.* a +.+ (1 - x) *.* b
|
interpWith x a b = x *.* a +.+ (1 - x) *.* b
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import Dodge.Item.Equipment
|
|||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
--import System.Random
|
--import System.Random
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Dodge.Data
|
|||||||
import Dodge.Base
|
import Dodge.Base
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
targetYouLOS :: Creature -> World -> Maybe Creature
|
targetYouLOS :: Creature -> World -> Maybe Creature
|
||||||
{-# INLINE targetYouLOS #-}
|
{-# INLINE targetYouLOS #-}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import Dodge.SoundLogic
|
|||||||
import Geometry
|
import Geometry
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import System.Random
|
import System.Random
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Bifunctor
|
import Data.Bifunctor
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Dodge.Creature.Statistics
|
|||||||
import Geometry
|
import Geometry
|
||||||
|
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
{- | Creature attempts to moves under its own steam.
|
{- | Creature attempts to moves under its own steam.
|
||||||
The idea is that this may or may not work, depending on the status of the creature.
|
The idea is that this may or may not work, depending on the status of the creature.
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import Dodge.Reloading
|
|||||||
import Dodge.Item.Location
|
import Dodge.Item.Location
|
||||||
import Dodge.HeldUse
|
import Dodge.HeldUse
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import qualified SDL
|
import qualified SDL
|
||||||
--import qualified Data.IntSet as IS
|
--import qualified Data.IntSet as IS
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Dodge.Default
|
|||||||
import Dodge.Item.Weapon.Launcher
|
import Dodge.Item.Weapon.Launcher
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
launcherCrit :: Creature
|
launcherCrit :: Creature
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Dodge.Item.Weapon.BulletGuns
|
|||||||
import Dodge.Item.Consumable
|
import Dodge.Item.Consumable
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
ltAutoCrit :: Creature
|
ltAutoCrit :: Creature
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import Sound.Data
|
|||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
|
|
||||||
perceptionUpdate
|
perceptionUpdate
|
||||||
@@ -35,7 +35,7 @@ chaseCritPerceptionUpdate is w =
|
|||||||
of attention -} -- TODO delete?
|
of attention -} -- TODO delete?
|
||||||
basicAwarenessUpdate :: Creature -> Creature
|
basicAwarenessUpdate :: Creature -> Creature
|
||||||
basicAwarenessUpdate cr = case _cpAttention $ _crPerception cr of
|
basicAwarenessUpdate cr = case _cpAttention $ _crPerception cr of
|
||||||
Fixated i -> cr & crPerception . cpAwareness
|
Fixated i -> cr & crPerception . cpAwareness
|
||||||
%~ (IM.insert i (Cognizant 10000) . IM.mapMaybe decreaseAwareness)
|
%~ (IM.insert i (Cognizant 10000) . IM.mapMaybe decreaseAwareness)
|
||||||
AttentiveTo is -> cr
|
AttentiveTo is -> cr
|
||||||
& crPerception . cpAwareness
|
& crPerception . cpAwareness
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ module Dodge.Creature.Perception.Data
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
data Perception = Perception
|
data Perception = Perception
|
||||||
{ _cpVigilance :: Vigilance
|
{ _cpVigilance :: Vigilance
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Dodge.Item.Weapon.BulletGuns
|
|||||||
import Dodge.Item.Consumable
|
import Dodge.Item.Consumable
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
pistolCrit :: Creature
|
pistolCrit :: Creature
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import Dodge.Zone
|
|||||||
import Dodge.Path
|
import Dodge.Path
|
||||||
import Geometry
|
import Geometry
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module Dodge.Creature.SetTarget where
|
|||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
{- | Assumes that you are id 0: if creature is cognizant of you, sets you as target -}
|
{- | Assumes that you are id 0: if creature is cognizant of you, sets you as target -}
|
||||||
targetYouWhenCognizant
|
targetYouWhenCognizant
|
||||||
:: World
|
:: World
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Dodge.Item.Weapon.BulletGuns
|
|||||||
import Dodge.Item.Consumable
|
import Dodge.Item.Consumable
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
spreadGunCrit :: Creature
|
spreadGunCrit :: Creature
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import qualified IntMapHelp as IM
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.IntMap.Merge.Strict
|
import Data.Strict.IntMap.Autogen.Merge.Strict
|
||||||
|
|
||||||
getCrDexterity :: Creature -> Int
|
getCrDexterity :: Creature -> Int
|
||||||
getCrDexterity cr = _dexterity (_crStatistics cr)
|
getCrDexterity cr = _dexterity (_crStatistics cr)
|
||||||
@@ -26,7 +26,7 @@ equipmentStrValue itm = case _iyBase $ _itType itm of
|
|||||||
_ -> 0
|
_ -> 0
|
||||||
|
|
||||||
crCurrentEquipment :: Creature -> IM.IntMap Item
|
crCurrentEquipment :: Creature -> IM.IntMap Item
|
||||||
crCurrentEquipment cr = merge dropMissing dropMissing (zipWithMatched (\_ _ itm -> itm))
|
crCurrentEquipment cr = merge dropMissing dropMissing (zipWithMatched (\_ _ itm -> itm))
|
||||||
(_crInvEquipped cr)
|
(_crInvEquipped cr)
|
||||||
(_crInv cr)
|
(_crInv cr)
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import SameConstr
|
|||||||
|
|
||||||
import Data.List (find)
|
import Data.List (find)
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
crIsReloading :: Creature -> Bool
|
crIsReloading :: Creature -> Bool
|
||||||
|
|||||||
+1
-1
@@ -147,7 +147,7 @@ import System.Random
|
|||||||
import Data.Graph.Inductive
|
import Data.Graph.Inductive
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.IntSet as IS
|
import qualified Data.IntSet as IS
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import SDL (Scancode, MouseButton)
|
import SDL (Scancode, MouseButton)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import Control.Monad.State
|
|||||||
import System.Random
|
import System.Random
|
||||||
import Data.Graph.Inductive
|
import Data.Graph.Inductive
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
import SDL (Scancode, MouseButton)
|
import SDL (Scancode, MouseButton)
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ module Dodge.Data.Item
|
|||||||
( module Dodge.Data.Item
|
( module Dodge.Data.Item
|
||||||
, module Dodge.Data.Item.Misc
|
, module Dodge.Data.Item.Misc
|
||||||
) where
|
) where
|
||||||
import Geometry.Data
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Dodge.Data.Item.Misc
|
import Dodge.Data.Item.Misc
|
||||||
import Dodge.Data.Item.Consumption
|
import Dodge.Data.Item.Consumption
|
||||||
@@ -17,7 +16,7 @@ import Dodge.Combine.Data
|
|||||||
import Dodge.Item.Attachment.Data
|
import Dodge.Item.Attachment.Data
|
||||||
import Color
|
import Color
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
data Item = Item
|
data Item = Item
|
||||||
{ _itConsumption :: ItemConsumption
|
{ _itConsumption :: ItemConsumption
|
||||||
, _itUse :: ItemUse
|
, _itUse :: ItemUse
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
module Dodge.Data.Zoning where
|
module Dodge.Data.Zoning where
|
||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import StreamingHelp
|
import StreamingHelp
|
||||||
|
|
||||||
data Zoning t a = Zoning
|
data Zoning t a = Zoning
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Dodge.Creature.Picture
|
|||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
@@ -71,8 +71,8 @@ defaultInvSize = 20
|
|||||||
defaultPerceptionState :: Perception
|
defaultPerceptionState :: Perception
|
||||||
defaultPerceptionState = Perception
|
defaultPerceptionState = Perception
|
||||||
{ _cpVigilance = Lethargic
|
{ _cpVigilance = Lethargic
|
||||||
, _cpAttention = AttentiveTo IM.empty
|
, _cpAttention = AttentiveTo mempty
|
||||||
, _cpAwareness = IM.empty
|
, _cpAwareness = mempty
|
||||||
, _cpVision = defaultVision
|
, _cpVision = defaultVision
|
||||||
, _cpAudition = defaultAudition
|
, _cpAudition = defaultAudition
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import Data.Tile
|
|||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
defaultRoom :: Room
|
defaultRoom :: Room
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import Geometry.Data
|
|||||||
import Geometry.Polygon
|
import Geometry.Polygon
|
||||||
|
|
||||||
import System.Random
|
import System.Random
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Graph.Inductive.Graph hiding ((&))
|
import Data.Graph.Inductive.Graph hiding ((&))
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import Geometry.Polygon
|
|||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import System.Random
|
import System.Random
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Graph.Inductive.Graph hiding ((&))
|
import Data.Graph.Inductive.Graph hiding ((&))
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
module Dodge.Equipment where
|
module Dodge.Equipment where
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Data.IntMap.Merge.Strict
|
import Data.Strict.IntMap.Autogen.Merge.Strict
|
||||||
|
|
||||||
getCrEquipment :: Creature -> IM.IntMap Item
|
getCrEquipment :: Creature -> IM.IntMap Item
|
||||||
getCrEquipment cr = merge dropMissing dropMissing (zipWithMatched $ \_ _ -> id)
|
getCrEquipment cr = merge dropMissing dropMissing (zipWithMatched $ \_ _ -> id)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import LensHelp
|
|||||||
--import Color
|
--import Color
|
||||||
|
|
||||||
--import Data.List
|
--import Data.List
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import SDL
|
import SDL
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Dodge.Data
|
|||||||
--import Picture
|
--import Picture
|
||||||
--import Geometry
|
--import Geometry
|
||||||
--
|
--
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
testEvent :: World -> World
|
testEvent :: World -> World
|
||||||
testEvent w = w
|
testEvent w = w
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ import RandomHelp
|
|||||||
import Data.List (intersperse)
|
import Data.List (intersperse)
|
||||||
--import Data.Sequence hiding (zipWith)
|
--import Data.Sequence hiding (zipWith)
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
initialAnoTree :: Annotation
|
initialAnoTree :: Annotation
|
||||||
initialAnoTree = OnwardList
|
initialAnoTree = OnwardList
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import Geometry.Data
|
|||||||
|
|
||||||
import System.Random
|
import System.Random
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
initialWorld :: World
|
initialWorld :: World
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Dodge.Base.You
|
|||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
putItemInInvID :: Int -> Int -> World -> (Maybe Int,World)
|
putItemInInvID :: Int -> Int -> World -> (Maybe Int,World)
|
||||||
putItemInInvID cid flid w = fromMaybe (Nothing,w) $ do
|
putItemInInvID cid flid w = fromMaybe (Nothing,w) $ do
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import Dodge.Default
|
|||||||
import Control.Lens hiding ((|>),(<|))
|
import Control.Lens hiding ((|>),(<|))
|
||||||
import Data.Sequence
|
import Data.Sequence
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
|
|
||||||
charFiringStratI
|
charFiringStratI
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import Dodge.SoundLogic
|
|||||||
|
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
medkit :: Int -> Item
|
medkit :: Int -> Item
|
||||||
medkit i = defaultConsumable
|
medkit i = defaultConsumable
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import ShapePicture
|
|||||||
import Dodge.Item.Equipment.Shape
|
import Dodge.Item.Equipment.Shape
|
||||||
import Dodge.Item.Draw.SPic
|
import Dodge.Item.Draw.SPic
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
itemEquipPict :: Creature -> Item -> SPic
|
itemEquipPict :: Creature -> Item -> SPic
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import LensHelp
|
|||||||
--import Data.List (sortOn)
|
--import Data.List (sortOn)
|
||||||
--import System.Random
|
--import System.Random
|
||||||
--import Data.Tuple
|
--import Data.Tuple
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
--import Control.Monad.State
|
--import Control.Monad.State
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Dodge.Default
|
|||||||
import Geometry
|
import Geometry
|
||||||
import Dodge.Item.Location
|
import Dodge.Item.Location
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
setRemoteBombScope :: Int -> Prop -> World -> World
|
setRemoteBombScope :: Int -> Prop -> World -> World
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import LensHelp
|
|||||||
--import Data.Bifunctor
|
--import Data.Bifunctor
|
||||||
--import System.Random
|
--import System.Random
|
||||||
--import Data.Tuple
|
--import Data.Tuple
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
sonicGun :: Item
|
sonicGun :: Item
|
||||||
sonicGun = defaultAutoGun
|
sonicGun = defaultAutoGun
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import Dodge.Data
|
|||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
useTargetPos
|
useTargetPos
|
||||||
:: (Maybe Point2 -> Creature -> World -> World)
|
:: (Maybe Point2 -> Creature -> World -> World)
|
||||||
-> Creature
|
-> Creature
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ import LensHelp
|
|||||||
|
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
import Data.Foldable
|
import Data.Foldable
|
||||||
|
|
||||||
type ChainEffect
|
type ChainEffect
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import qualified IntMapHelp as IM
|
|||||||
updateLampoid :: Creature -> World -> World
|
updateLampoid :: Creature -> World -> World
|
||||||
updateLampoid cr w = case cr ^?! crType . lampLSID of
|
updateLampoid cr w = case cr ^?! crType . lampLSID of
|
||||||
Nothing -> let i = IM.newKey (_lightSources w)
|
Nothing -> let i = IM.newKey (_lightSources w)
|
||||||
in w & lightSources . at i ?~ lsColPosID lcol (addZ h cpos) i
|
in w & lightSources %~ IM.insert i (lsColPosID lcol (addZ h cpos) i)
|
||||||
Just i
|
Just i
|
||||||
| _crHP cr < 0 -> w
|
| _crHP cr < 0 -> w
|
||||||
& explosionFlashAt cpos
|
& explosionFlashAt cpos
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import System.Directory
|
|||||||
import System.Random
|
import System.Random
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Text.IO as TIO
|
import qualified Data.Text.IO as TIO
|
||||||
|
|
||||||
generateWorldFromSeed :: Int -> IO World
|
generateWorldFromSeed :: Int -> IO World
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import Control.Lens
|
|||||||
--import Control.Monad.State
|
--import Control.Monad.State
|
||||||
--import System.Random
|
--import System.Random
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
--import Data.Bifunctor
|
--import Data.Bifunctor
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import Color
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import ShapePicture
|
|||||||
import Shape
|
import Shape
|
||||||
import Geometry
|
import Geometry
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
makeButton
|
makeButton
|
||||||
:: Color
|
:: Color
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Dodge.SoundLogic
|
|||||||
import Geometry
|
import Geometry
|
||||||
import Dodge.Base
|
import Dodge.Base
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
basicMachineUpdate :: (Machine -> World -> World) -> Machine -> World -> World
|
basicMachineUpdate :: (Machine -> World -> World) -> Machine -> World -> World
|
||||||
basicMachineUpdate f mc = basicMachineApplyDamage mc . f mc
|
basicMachineUpdate f mc = basicMachineApplyDamage mc . f mc
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import Dodge.WorldEvent.Explosion
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
destroyMachine :: Machine -> World -> World
|
destroyMachine :: Machine -> World -> World
|
||||||
destroyMachine mc = (machines %~ IM.delete (_mcID mc))
|
destroyMachine mc = (machines %~ IM.delete (_mcID mc))
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ import Data.Foldable
|
|||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.List
|
import Data.List
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
import Data.Graph.Inductive hiding ((&))
|
import Data.Graph.Inductive hiding ((&))
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
import Data.Set (Set)
|
import Data.Set (Set)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import Geometry
|
|||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.List
|
import Data.List
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
import Data.Graph.Inductive hiding ((&))
|
import Data.Graph.Inductive hiding ((&))
|
||||||
import Data.Set (Set)
|
import Data.Set (Set)
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import Dodge.Creature.Test
|
|||||||
import Dodge.LevelGen.Switch
|
import Dodge.LevelGen.Switch
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
putDoubleDoor :: EdgeObstacle -> Wall -> (World -> Bool) -> Point2 -> Point2 -> Float -> Placement
|
putDoubleDoor :: EdgeObstacle -> Wall -> (World -> Bool) -> Point2 -> Point2 -> Float -> Placement
|
||||||
putDoubleDoor eo wl cond a b speed
|
putDoubleDoor eo wl cond a b speed
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
module Dodge.Placement.Instance.LightSource.Flicker where
|
module Dodge.Placement.Instance.LightSource.Flicker where
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import System.Random
|
import System.Random
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import Color
|
|||||||
import Geometry
|
import Geometry
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
|
|
||||||
aRadarPulse :: Object -> Creature -> World -> World
|
aRadarPulse :: Object -> Creature -> World -> World
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import ListHelp
|
|||||||
import qualified Data.Vector as V
|
import qualified Data.Vector as V
|
||||||
--import Data.Foldable
|
--import Data.Foldable
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
--import qualified Data.Set as S
|
--import qualified Data.Set as S
|
||||||
--import qualified Data.IntSet as IS
|
--import qualified Data.IntSet as IS
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import Dodge.Data
|
|||||||
import Geometry
|
import Geometry
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Lazy as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
lightsToRender :: Configuration -> World -> [(Point3,Float,Point3)]
|
lightsToRender :: Configuration -> World -> [(Point3,Float,Point3)]
|
||||||
lightsToRender cfig w = mapMaybe getLS (IM.elems $ _lightSources w)
|
lightsToRender cfig w = mapMaybe getLS (IM.elems $ _lightSources w)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import ShortShow
|
|||||||
import Polyhedra
|
import Polyhedra
|
||||||
|
|
||||||
import StreamingHelp
|
import StreamingHelp
|
||||||
import qualified Data.IntMap.Strict as IM -- Lazy?
|
import qualified IntMapHelp as IM -- Lazy?
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import Geometry.ConvexPoly
|
|||||||
--import Dodge.Base.Collide
|
--import Dodge.Base.Collide
|
||||||
|
|
||||||
--import Data.Foldable
|
--import Data.Foldable
|
||||||
import qualified Data.IntMap.Strict as IM -- Lazy?
|
import qualified IntMapHelp as IM -- Lazy?
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
--import qualified Data.Set as Set
|
--import qualified Data.Set as Set
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import Control.Lens
|
|||||||
import qualified Control.Foldl as L
|
import qualified Control.Foldl as L
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
--import Data.List
|
--import Data.List
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
wallsToDraw
|
wallsToDraw
|
||||||
:: World
|
:: World
|
||||||
-> ( [((Point2,Point2),Point4)] ,[((Point2,Point2),Point4)], SPic )
|
-> ( [((Point2,Point2),Point4)] ,[((Point2,Point2),Point4)], SPic )
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import Geometry
|
|||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
{- | A passage with a switch that opens forward access while closing backwards access. -}
|
{- | A passage with a switch that opens forward access while closing backwards access. -}
|
||||||
airlock :: RandomGen g => State g Room
|
airlock :: RandomGen g => State g Room
|
||||||
airlock = takeOne [airlock0,airlock90,airlockCrystal,airlockZ]
|
airlock = takeOne [airlock0,airlock90,airlockCrystal,airlockZ]
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import Dodge.Placement.Instance
|
|||||||
import Color
|
import Color
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
|
|
||||||
door :: Room
|
door :: Room
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import LensHelp
|
|||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
import qualified Data.IntMap as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
twinSlowDoorRoom
|
twinSlowDoorRoom
|
||||||
:: Float -- ^ Half width
|
:: Float -- ^ Half width
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import Data.Tile
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
-- This will need a cleanup, but it might change a bit first
|
-- This will need a cleanup, but it might change a bit first
|
||||||
{- A simple rectangular room with a light in the center.
|
{- A simple rectangular room with a light in the center.
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import LensHelp
|
|||||||
|
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
powerFakeout' :: RandomGen g => State g (MetaTree Room String)
|
powerFakeout' :: RandomGen g => State g (MetaTree Room String)
|
||||||
powerFakeout' = tToBTree "powerFakeout'" <$> powerFakeout
|
powerFakeout' = tToBTree "powerFakeout'" <$> powerFakeout
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ module Dodge.SoundLogic.LoadSound
|
|||||||
--import Sound.Data
|
--import Sound.Data
|
||||||
import Dodge.SoundLogic.ExternallyGeneratedSounds
|
import Dodge.SoundLogic.ExternallyGeneratedSounds
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
|
|
||||||
loadSound :: (Int,String) -> IO (Int, Mix.Chunk)
|
loadSound :: (Int,String) -> IO (Int, Mix.Chunk)
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ import Geometry
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
import Color
|
import Color
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
import System.Random
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import Data.Char
|
|||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.Foldable
|
import Data.Foldable
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
--import Text.Read
|
--import Text.Read
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ import Dodge.ArcStep
|
|||||||
--import Dodge.Base.Collide
|
--import Dodge.Base.Collide
|
||||||
--import Shape
|
--import Shape
|
||||||
|
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
--import Data.List (sortOn)
|
--import Data.List (sortOn)
|
||||||
import MonadHelp
|
import MonadHelp
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
aTeslaArcAt :: Color -> [ArcStep] -> Particle
|
aTeslaArcAt :: Color -> [ArcStep] -> Particle
|
||||||
aTeslaArcAt col thearc = PtTeslaArc
|
aTeslaArcAt col thearc = PtTeslaArc
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Shape
|
|||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.List (sortOn)
|
import Data.List (sortOn)
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
defaultArcStep :: RandomGen g => ItemParams -> World -> ArcStep
|
defaultArcStep :: RandomGen g => ItemParams -> World -> ArcStep
|
||||||
-> State g (Maybe ArcStep)
|
-> State g (Maybe ArcStep)
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ import FoldableHelp
|
|||||||
|
|
||||||
import Data.List
|
import Data.List
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import qualified Data.Map.Strict as M
|
|||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import qualified Data.Set as Set
|
import qualified Data.Set as Set
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified SDL
|
import qualified SDL
|
||||||
--import Data.Monoid
|
--import Data.Monoid
|
||||||
--import Data.Semigroup
|
--import Data.Semigroup
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module Dodge.Update.WallDamage where
|
|||||||
import Dodge.Wall.Damage
|
import Dodge.Wall.Damage
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import Dodge.Data
|
|||||||
import Dodge.Wall.Zone
|
import Dodge.Wall.Zone
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.IntSet as IS
|
import qualified Data.IntSet as IS
|
||||||
|
|
||||||
deleteWallID :: Int -> World -> World
|
deleteWallID :: Int -> World -> World
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import Dodge.Wall.Zone
|
|||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
moveWallIDUnsafe :: Int -> (Point2,Point2) -> World -> World
|
moveWallIDUnsafe :: Int -> (Point2,Point2) -> World -> World
|
||||||
moveWallIDUnsafe wlid wlline w = case w ^? walls . ix wlid of
|
moveWallIDUnsafe wlid wlline w = case w ^? walls . ix wlid of
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module Dodge.Wall.Zone
|
|||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.Zone
|
import Dodge.Zone
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
--import Data.Foldable
|
--import Data.Foldable
|
||||||
--import Streaming
|
--import Streaming
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import Data.Monoid
|
|||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.Function
|
import Data.Function
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified IntMapHelp as IM
|
||||||
|
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import Shape
|
|||||||
import Color
|
import Color
|
||||||
import Dodge.Room.Foreground
|
import Dodge.Room.Foreground
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
floorWire :: Point2 -> Point2 -> ForegroundShape
|
floorWire :: Point2 -> Point2 -> ForegroundShape
|
||||||
floorWire a b = defaultForeground
|
floorWire a b = defaultForeground
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import Picture
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
--import Data.Foldable
|
--import Data.Foldable
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
-- currently very effective against walls
|
-- currently very effective against walls
|
||||||
makeShockwaveAt
|
makeShockwaveAt
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ module Dodge.Zone.Update
|
|||||||
import Dodge.Data.Zoning
|
import Dodge.Data.Zoning
|
||||||
import StreamingHelp
|
import StreamingHelp
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import Geometry
|
import Geometry
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -1,5 +1,6 @@
|
|||||||
|
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
||||||
module IntMapHelp
|
module IntMapHelp
|
||||||
( module Data.IntMap.Strict
|
( module Data.Strict.IntMap
|
||||||
, newKey
|
, newKey
|
||||||
, insertNewKey
|
, insertNewKey
|
||||||
, insertWithNewKeys
|
, insertWithNewKeys
|
||||||
@@ -9,7 +10,8 @@ module IntMapHelp
|
|||||||
) where
|
) where
|
||||||
import LensHelp
|
import LensHelp
|
||||||
--import Data.List hiding (foldr,insert)
|
--import Data.List hiding (foldr,insert)
|
||||||
import Data.IntMap.Strict
|
import Data.Strict.IntMap
|
||||||
|
import Data.Strict.Containers.Lens
|
||||||
{- | Find a key value one higher than any key in the map, or zero if the map is
|
{- | Find a key value one higher than any key in the map, or zero if the map is
|
||||||
- empty -}
|
- empty -}
|
||||||
newKey :: IntMap a -> Int
|
newKey :: IntMap a -> Int
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{-# LANGUAGE TupleSections #-}
|
{-# LANGUAGE TupleSections #-}
|
||||||
module Multiset where
|
module Multiset where
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.IntSet as IS
|
import qualified Data.IntSet as IS
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ module Music
|
|||||||
( MusicData (..)
|
( MusicData (..)
|
||||||
) where
|
) where
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
|
|
||||||
newtype MusicData = MusicData
|
newtype MusicData = MusicData
|
||||||
{ _loadedMusic :: IM.IntMap Mix.Music
|
{ _loadedMusic :: IM.IntMap Mix.Music
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import Sound.Data
|
|||||||
|
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Streaming.Prelude as S
|
import qualified Streaming.Prelude as S
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
module Sound.Data
|
module Sound.Data
|
||||||
where
|
where
|
||||||
import qualified SDL.Mixer as Mix
|
import qualified SDL.Mixer as Mix
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified IntMapHelp as IM
|
||||||
--import qualified Data.Map.Strict as M
|
--import qualified Data.Map.Strict as M
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ extra-deps:
|
|||||||
#- SDL-0.6.7.0@sha256:9d6ba75c0cab575ec38468c8277803983e985f9622437aeca6a53e6a7337a7d5,2045
|
#- SDL-0.6.7.0@sha256:9d6ba75c0cab575ec38468c8277803983e985f9622437aeca6a53e6a7337a7d5,2045
|
||||||
- sdl2-mixer-1.2.0.0@sha256:6a6b5a46c035c9e77eaf9c244e45de9e4a9b9a110890cfeeb9fa72faa2419cef,4497
|
- sdl2-mixer-1.2.0.0@sha256:6a6b5a46c035c9e77eaf9c244e45de9e4a9b9a110890cfeeb9fa72faa2419cef,4497
|
||||||
- repa-3.4.1.5@sha256:4d94845e66d668345130f75f5de8f7c69139b91495c8c4b5a825014e8985e2fd,3562
|
- repa-3.4.1.5@sha256:4d94845e66d668345130f75f5de8f7c69139b91495c8c4b5a825014e8985e2fd,3562
|
||||||
|
- strict-containers-0.1@sha256:d751696a8a74e368cf778cf98410b43fcd192d68febd4c691faaac1d6c3ab63f,10591
|
||||||
|
- strict-containers-lens-0.1@sha256:97c0e68e2e23578074d41fa45690a9ff7b1d47057ea6635d863af99f0daa2f9d,1103
|
||||||
#- repa-3.4.1.4@sha256:5a99bde69fe96a18d70aae23f47c8f719b1134558dca3ee5a7c15423b68a132e,3323
|
#- repa-3.4.1.4@sha256:5a99bde69fe96a18d70aae23f47c8f719b1134558dca3ee5a7c15423b68a132e,3323
|
||||||
#- sdl2-mixer-1.1.0@sha256:c809aecd91ebf9c759af66eebaa4f45f766f2603c13a73412abfd0bd1e02071a,3067
|
#- sdl2-mixer-1.1.0@sha256:c809aecd91ebf9c759af66eebaa4f45f766f2603c13a73412abfd0bd1e02071a,3067
|
||||||
# # for threadscope
|
# # for threadscope
|
||||||
|
|||||||
Reference in New Issue
Block a user