Use strict-containers for IntMaps

This commit is contained in:
2022-07-21 15:27:00 +01:00
parent 22787abf8f
commit cf5ec4a261
92 changed files with 103 additions and 98 deletions
+1 -1
View File
@@ -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
+2
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 #-}
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -2
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
} }
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 ((&))
+1 -1
View File
@@ -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 ((&))
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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)
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 )
+1 -1
View File
@@ -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]
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+2
View File
@@ -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