diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index e1c650fd9..be98b3373 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -19,7 +19,6 @@ import Dodge.Base import Dodge.Zone import Dodge.Base.Collide import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound --import Dodge.WorldEvent import Dodge.Inventory --import Dodge.LightSources diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index 78d28c615..a03ed418c 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -13,6 +13,7 @@ import Dodge.Creature.State import Dodge.Creature.State.Data import Dodge.Item.Consumable import Dodge.Picture.Layer +import Dodge.SoundLogic --import Geometry import Picture --import Dodge.RandomHelp @@ -40,7 +41,6 @@ chaseCrit = defaultCreature overrideMeleeCloseTargetR >=> setViewPos >=> setMvPos >=> --- setTargetMv (pure . _crTarget) >=> goToTarget >=> perceptionUpdate [0] >=> targetYouWhenCognizantR >=> @@ -50,6 +50,7 @@ chaseCrit = defaultCreature , _crInv = IM.fromList [(0,medkit 200)] , _crMeleeCooldown = 0 , _crFaction = ColorFaction green + , _crVocalization = Vocalization seagullBarkS 50 0 , _crMvType = ChaseMvType { _mvSpeed = 3 , _mvTurnRad = f diff --git a/src/Dodge/Creature/Impulse.hs b/src/Dodge/Creature/Impulse.hs index c403e196d..fb3226651 100644 --- a/src/Dodge/Creature/Impulse.hs +++ b/src/Dodge/Creature/Impulse.hs @@ -10,7 +10,6 @@ import Dodge.Creature.Impulse.UseItem import Dodge.Creature.State.Data import Dodge.Creature.Stance.Data import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Geometry import qualified Data.IntMap.Strict as IM @@ -45,6 +44,7 @@ followImpulse -> Impulse -> (World -> World , Creature) followImpulse cr w imp = case imp of + Bark sid -> (soundStart (CrMouth cid) cpos sid Nothing, resetCrVocCoolDown cr) Move p -> (id, crMvBy p cr) MoveForward x -> (id, crMvForward x cr) Turn a -> (id, creatureTurn a cr) @@ -85,3 +85,8 @@ followImpulse cr w imp = case imp of hitCr i = over (creatures . ix i . crState . crDamage) (addDam i) . soundStart (CrSound cid) cpos hitS Nothing addDam i dams = Blunt 100 cpos (posFromID i) (posFromID i) : dams + +resetCrVocCoolDown :: Creature -> Creature +resetCrVocCoolDown cr = case cr ^? crVocalization . vcMaxCoolDown of + Just i -> cr & crVocalization . vcCoolDown .~ i + Nothing -> cr diff --git a/src/Dodge/Creature/Inanimate.hs b/src/Dodge/Creature/Inanimate.hs index 885ad75a3..354016070 100644 --- a/src/Dodge/Creature/Inanimate.hs +++ b/src/Dodge/Creature/Inanimate.hs @@ -30,7 +30,6 @@ import Shape import Dodge.WorldEvent import Dodge.SoundLogic import Dodge.Data.SoundOrigin -import Dodge.SoundLogic.LoadSound import System.Random import Data.List diff --git a/src/Dodge/Creature/Perception.hs b/src/Dodge/Creature/Perception.hs index 67444080b..72ed1fa2c 100644 --- a/src/Dodge/Creature/Perception.hs +++ b/src/Dodge/Creature/Perception.hs @@ -8,6 +8,7 @@ import Dodge.Data import Dodge.Creature.Perception.Data import Dodge.Creature.Memory.Data import Dodge.Base.Collide +import Dodge.SoundLogic import Geometry.Vector --import Geometry.Data import Geometry.Data @@ -25,7 +26,8 @@ perceptionUpdate :: [Int] -- ^ List of creature ids that may direct attention and awareness -> Creature -> Reader World Creature -perceptionUpdate is cr = basicAttentionUpdate is cr >>= basicAwarenessUpdate +perceptionUpdate is cr = basicAttentionUpdate is cr + >>= basicAwarenessUpdate >>= rememberSounds {- | Update a creatures awareness based upon the creatures' current direction @@ -33,11 +35,34 @@ perceptionUpdate is cr = basicAttentionUpdate is cr >>= basicAwarenessUpdate basicAwarenessUpdate :: Creature -> Reader World Creature basicAwarenessUpdate cr = case _crAttentionDir $ _crPerception cr of - AttentiveTo is -> pure $ cr & crPerception . crAwarenessLevel - %~ (IM.mapMaybe decreaseAwareness . IM.unionWith combineAwareness is) + AttentiveTo is -> pure $ cr + & crPerception . crAwarenessLevel + %~ (IM.mapMaybe decreaseAwareness . IM.unionWith combineAwareness is) + & maybeBark + where + oldAwareness = _crAwarenessLevel $ _crPerception cr + newAwareness = (IM.mapMaybe decreaseAwareness . IM.unionWith combineAwareness is) oldAwareness + becomesCognizant = any isCognizant $ IM.unionWith cogRaised oldAwareness newAwareness + maybeBark | becomesCognizant = case vocalizationTest cr of + Just sid -> crActionPlan . crImpulse .~ [Bark sid] + Nothing -> id + | otherwise = id Fixated i -> pure $ cr & crPerception . crAwarenessLevel %~ ( IM.insert i (Cognizant 10000) . IM.mapMaybe decreaseAwareness) +vocalizationTest :: Creature -> Maybe SoundID +vocalizationTest cr = case cr ^? crVocalization . vcCoolDown of + Just 0 -> Just $ _vcSound $ _crVocalization cr + Nothing -> Nothing + +cogRaised :: AwarenessLevel -> AwarenessLevel -> AwarenessLevel +cogRaised Suspicious{} Cognizant{} = Cognizant 100 +cogRaised _ _ = Suspicious 0 + +isCognizant :: AwarenessLevel -> Bool +isCognizant Cognizant {} = True +isCognizant _ = False + combineAwareness :: AwarenessLevel -> AwarenessLevel -> AwarenessLevel combineAwareness (Suspicious x) (Suspicious y) | x + y < 10000 = Suspicious $ x + y diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index ec18039b0..aca9a57c0 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -153,7 +153,6 @@ watchUpdateStratR fs cr = reader $ \w -> case cr ^? crActionPlan . crStrategy of & crActionPlan . crStrategy .~ listGuard (fs, \_ _ -> WatchAndWait) (w, cr) w cr _ -> cr - listGuard :: ([(a -> Bool, b)] , b) -> a -> b listGuard ( (test,y):ps, z ) x | test x = y diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index c5431684c..4ccfe81cb 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -11,7 +11,6 @@ import Dodge.Creature.Stance.Data --import Dodge.Creature.Test --import Dodge.Base import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.RandomHelp import Dodge.WorldEvent --import Dodge.WallCreatureCollisions diff --git a/src/Dodge/Creature/State/WalkCycle.hs b/src/Dodge/Creature/State/WalkCycle.hs index 5165e6115..fbff0317a 100644 --- a/src/Dodge/Creature/State/WalkCycle.hs +++ b/src/Dodge/Creature/State/WalkCycle.hs @@ -7,7 +7,6 @@ import Dodge.Data import Dodge.Data.SoundOrigin import Dodge.Creature.Stance.Data import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Geometry.Data import Sound.Data diff --git a/src/Dodge/Data.hs b/src/Dodge/Data.hs index 35468f9bd..97cb6ed2f 100644 --- a/src/Dodge/Data.hs +++ b/src/Dodge/Data.hs @@ -218,11 +218,19 @@ data Creature = Creature , _crMeleeCooldown :: !Int , _crPerception :: PerceptionState , _crMemory :: MemoryState + , _crVocalization :: Vocalization , _crFaction :: Faction , _crGroup :: CrGroup , _crIntention :: Intention , _crMvType :: CrMvType } +data Vocalization + = Mute + | Vocalization + {_vcSound :: SoundID + ,_vcMaxCoolDown :: Int + ,_vcCoolDown :: Int + } data Intention = Intention { _targetCr :: Maybe Creature , _mvToPoint :: Maybe Point2 @@ -649,7 +657,7 @@ data Impulse | DropItem -- | PickupNearby Int -- | UseWorldObject Int --- | Bark -- placeholder for various communication types + | Bark SoundID -- placeholder for various communication types -- | UseIntrinsicAbility | Melee Int | ChangePosture Posture @@ -820,3 +828,4 @@ makeLenses ''Machine makeLenses ''MachineType makeLenses ''Zone makeLenses ''ItemDimension +makeLenses ''Vocalization diff --git a/src/Dodge/Data/SoundOrigin.hs b/src/Dodge/Data/SoundOrigin.hs index 8a071167a..7d5169e90 100644 --- a/src/Dodge/Data/SoundOrigin.hs +++ b/src/Dodge/Data/SoundOrigin.hs @@ -4,6 +4,7 @@ data SoundOrigin = InventorySound | BackgroundSound | OnceSound | CrSound Int + | CrMouth Int | CrWeaponSound Int Int | MachineSound Int | WallSound Int diff --git a/src/Dodge/Default.hs b/src/Dodge/Default.hs index b2a869a48..a400501b6 100644 --- a/src/Dodge/Default.hs +++ b/src/Dodge/Default.hs @@ -14,7 +14,6 @@ import Dodge.Creature.State.Data import Dodge.Creature.Perception.Data import Dodge.Creature.Memory.Data import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.Picture.Layer import Dodge.Wall.Delete import Geometry @@ -53,6 +52,7 @@ defaultCreature = Creature ,_posture=AtEase ,_strideLength = 40 } + , _crVocalization = Mute , _crActionPlan = ActionPlan [] [] WatchAndWait [LiveLongAndProsper] , _crPerception = defaultPerceptionState , _crMemory = defaultCreatureMemory diff --git a/src/Dodge/Floor.hs b/src/Dodge/Floor.hs index aa0ba1db7..17a5c21ec 100644 --- a/src/Dodge/Floor.hs +++ b/src/Dodge/Floor.hs @@ -18,6 +18,7 @@ import Dodge.LevelGen.Switch import Dodge.Item.Weapon.Launcher import Dodge.PlacementSpot import Dodge.RoomPos +import Dodge.Room.RunPast import MonadHelp import Data.Tree import Color diff --git a/src/Dodge/Initialisation.hs b/src/Dodge/Initialisation.hs index 8ce51679a..5cf5adf59 100644 --- a/src/Dodge/Initialisation.hs +++ b/src/Dodge/Initialisation.hs @@ -7,7 +7,6 @@ import Dodge.Creature import Dodge.Story import Dodge.WorldEvent.Cloud import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Geometry.Data import System.Random diff --git a/src/Dodge/Item/Consumable.hs b/src/Dodge/Item/Consumable.hs index 232cf0cec..869263749 100644 --- a/src/Dodge/Item/Consumable.hs +++ b/src/Dodge/Item/Consumable.hs @@ -6,7 +6,6 @@ import Dodge.Item.Data import Dodge.Picture.Layer import Dodge.Default import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Shape --import ShapePicture import Dodge.Item.Draw diff --git a/src/Dodge/Item/Weapon.hs b/src/Dodge/Item/Weapon.hs index e23be772c..0a46bd434 100644 --- a/src/Dodge/Item/Weapon.hs +++ b/src/Dodge/Item/Weapon.hs @@ -7,7 +7,6 @@ import Dodge.Base import Dodge.Zone import Dodge.Picture.Layer import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.Creature.Action import Dodge.WorldEvent import Dodge.Default diff --git a/src/Dodge/Item/Weapon/BulletGuns.hs b/src/Dodge/Item/Weapon/BulletGuns.hs index e4c13d195..c2a43ac6b 100644 --- a/src/Dodge/Item/Weapon/BulletGuns.hs +++ b/src/Dodge/Item/Weapon/BulletGuns.hs @@ -55,6 +55,7 @@ autoGun = defaultAutoGun ,('S', torqueBefore 0.05) ] , withSoundForI autoBS 5 + --, withSoundForI seagullChatterS 5 , useAmmo 1 , withRandomDirI (autogunSpread/2) , withMuzFlareI diff --git a/src/Dodge/Item/Weapon/Grenade.hs b/src/Dodge/Item/Weapon/Grenade.hs index d07f3157e..363ed0529 100644 --- a/src/Dodge/Item/Weapon/Grenade.hs +++ b/src/Dodge/Item/Weapon/Grenade.hs @@ -11,7 +11,6 @@ import Dodge.Default import Dodge.Base import Dodge.Zone import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.Item.Attachment.Data import Dodge.Item.Draw import Dodge.Item.Weapon.InventoryDisplay diff --git a/src/Dodge/LevelGen/Data.hs b/src/Dodge/LevelGen/Data.hs index a6d329680..610c00872 100644 --- a/src/Dodge/LevelGen/Data.hs +++ b/src/Dodge/LevelGen/Data.hs @@ -111,6 +111,9 @@ psPtCont ps pt = Placement ps pt Nothing sPS :: Point2 -> Float -> PSType -> Placement sPS p a pt = Placement (PS p a) pt Nothing (const Nothing) +plRRpt :: Int -> PSType -> Placement +plRRpt i pt = Placement (PSRoomRand i) pt Nothing (const Nothing) + jsps :: Point2 -> Float -> PSType -> Maybe Placement jsps p a pst = Just $ Placement (PS p a) pst Nothing $ const Nothing diff --git a/src/Dodge/LevelGen/Switch.hs b/src/Dodge/LevelGen/Switch.hs index aa63a8ea9..e9522612c 100644 --- a/src/Dodge/LevelGen/Switch.hs +++ b/src/Dodge/LevelGen/Switch.hs @@ -8,7 +8,6 @@ import Dodge.Data import Dodge.Default import Dodge.Data.SoundOrigin import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Picture import ShapePicture import Shape diff --git a/src/Dodge/Particle/Bullet/HitEffect.hs b/src/Dodge/Particle/Bullet/HitEffect.hs index 8468ec625..006f9392b 100644 --- a/src/Dodge/Particle/Bullet/HitEffect.hs +++ b/src/Dodge/Particle/Bullet/HitEffect.hs @@ -10,7 +10,6 @@ import Dodge.Wall.Damage import Dodge.WorldEvent import Dodge.Particle.Bullet.Spawn import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.RandomHelp import Dodge.WorldEvent.Shockwave import Dodge.Creature.State.Data diff --git a/src/Dodge/Placement/Instance/Button.hs b/src/Dodge/Placement/Instance/Button.hs index 20a83ce67..46e034300 100644 --- a/src/Dodge/Placement/Instance/Button.hs +++ b/src/Dodge/Placement/Instance/Button.hs @@ -66,3 +66,18 @@ putLitButOnPos col f subpl changeLight lsid = lightSources . ix lsid . lsIntensity .~ V3 0 0.5 0 ls = defaultLS { _lsRad = 75 , _lsIntensity = V3 0.5 0 0 } thePS = PSLnk f (const id) Nothing + +putLitButOnPosExtTrig :: Color -> (RoomPos -> Maybe PlacementSpot) -> Placement +putLitButOnPosExtTrig col f + = psPtCont thePS (PutTrigger (const False)) + $ \tp -> Just $ plSpot .~ _plSpot tp $ mntLSOn aShape (Just col) ls 0 (V3 0 (-40) 40) + $ \plmnt -> let lsid = fromJust $ _plMID plmnt + in jps0 (PutButton (makeButton col (changeLight lsid . oneff (trigid tp))) + {_btPos = V2 0 (-1), _btRot = pi}) + (const Nothing) <&> plSpot .~ _plSpot plmnt + where + trigid tp = fromJust $ _plMID tp + oneff tid = triggers . ix tid .~ const True + changeLight lsid = lightSources . ix lsid . lsIntensity .~ V3 0 0.5 0 + ls = defaultLS { _lsRad = 75 , _lsIntensity = V3 0.5 0 0 } + thePS = PSLnk f (const id) Nothing diff --git a/src/Dodge/Placement/Instance/LightSource.hs b/src/Dodge/Placement/Instance/LightSource.hs index 63a4f1572..3f68edbca 100644 --- a/src/Dodge/Placement/Instance/LightSource.hs +++ b/src/Dodge/Placement/Instance/LightSource.hs @@ -107,6 +107,13 @@ spanLSLightI ls h a b = ps0j (PutLS ls {_lsPos = V3 x y h}) where V2 x y = 0.5 *.* (a +.+ b) +spanLS :: LightSource -> Point2 -> Point2 -> Placement +spanLS ls a b = Placement (PS (V2 x y) 0) (PutLS ls) Nothing + $ const $ Just $ sps0 $ PutForeground $ thinHighBar h a b + where + V3 _ _ h = _lsPos ls + 5 + V2 x y = 0.5 *.* (a +.+ b) + spanColLightI :: Point3 -> Float -> Point2 -> Point2 -> Placement spanColLightI col h a b = ps0j (PutLS $ colorLightAt col (V3 x y (h-5)) 0) $ sps0 $ PutForeground $ thinHighBar h a b diff --git a/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs b/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs index 207e1f465..554b59b2e 100644 --- a/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs +++ b/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs @@ -11,7 +11,6 @@ import Picture import Geometry import qualified IntMapHelp as IM import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.Data.SoundOrigin import Data.List diff --git a/src/Dodge/PlacementSpot.hs b/src/Dodge/PlacementSpot.hs index 51b428e13..e270ec789 100644 --- a/src/Dodge/PlacementSpot.hs +++ b/src/Dodge/PlacementSpot.hs @@ -2,6 +2,9 @@ module Dodge.PlacementSpot where import Dodge.LevelGen.Data import Geometry +import Control.Monad.State +import System.Random + -- TODO rename to any unused link facing out anyLnkOutPS :: PlacementSpot anyLnkOutPS = PSLnk f (const id) Nothing @@ -21,3 +24,15 @@ anyLnkInPS x = PSLnk f (const id) Nothing where f (UnusedLink v a) = Just $ PS (v -.- x *.* unitVectorAtAngle (a + 0.5 * pi)) (a+ pi) f _ = Nothing + +useLnkRoomPos :: RoomPos -> Maybe PlacementSpot +useLnkRoomPos rp = case rp of + (UnusedLink (V2 x y) a) -> Just $ PS (V2 x y) a + _ -> Nothing + +psRandRanges :: (Float,Float) -> (Float,Float) -> (Float,Float) -> State StdGen (Point2,Float) +psRandRanges xranges yranges aranges = do + x <- state $ randomR xranges + y <- state $ randomR yranges + a <- state $ randomR aranges + return (V2 x y,a) diff --git a/src/Dodge/Room/Corridor.hs b/src/Dodge/Room/Corridor.hs index 15bdb18a7..ace0112e0 100644 --- a/src/Dodge/Room/Corridor.hs +++ b/src/Dodge/Room/Corridor.hs @@ -42,6 +42,19 @@ corridorN = defaultRoom ,(V2 20 10 ,pi) ] pth = doublePair (V2 20 70,V2 20 10) +corridorWallN :: Room +corridorWallN = defaultRoom + { _rmPolys = [rectNSWE 70 0 0 40 + ] + , _rmLinks = lnks + , _rmPath = pth + , _rmPmnts = [] + , _rmBound = [ rectNSWE 50 30 0 40 ] + } + where lnks = [(V2 20 70 ,0) + ,(V2 20 10 ,pi) + ] + pth = doublePair (V2 20 70,V2 20 10) tEast :: Room tEast = defaultRoom diff --git a/src/Dodge/Room/Procedural.hs b/src/Dodge/Room/Procedural.hs index 5ae31b320..e50762222 100644 --- a/src/Dodge/Room/Procedural.hs +++ b/src/Dodge/Room/Procedural.hs @@ -11,6 +11,7 @@ module Dodge.Room.Procedural ) where import Dodge.Data import Dodge.Default.Wall +import Dodge.PlacementSpot import Dodge.Placement.Instance import Dodge.Room.Link import Dodge.Room.Path @@ -55,6 +56,7 @@ roomRect x y xn yn = defaultRoom , _tileX = V2 1 0 , _tileZ = 16 } ] + , _rmRandPSs = [psRandRanges (10,x-10) (10,y-10) (0,2*pi)] } where yd = (y - 40) / fromIntegral yn diff --git a/src/Dodge/Room/RunPast.hs b/src/Dodge/Room/RunPast.hs index 3ce2660a3..15b2046c0 100644 --- a/src/Dodge/Room/RunPast.hs +++ b/src/Dodge/Room/RunPast.hs @@ -1 +1,79 @@ module Dodge.Room.RunPast where +import Dodge.LevelGen.Data +import Dodge.Data +import Dodge.Default +--import Dodge.Layout.Tree.Either +import Dodge.RandomHelp +import Dodge.Room.Door +--import Dodge.Room.Room +import Dodge.Room.Link +import Dodge.Room.Procedural +import Dodge.Room.Corridor +--import Dodge.Room.Foreground +--import Dodge.Room.RoadBlock +import Dodge.PlacementSpot +import Dodge.Placement.Instance +import Dodge.Layout.Tree.Polymorphic +import Dodge.Item.Random +--import Dodge.Item.Weapon.SprayGuns +--import Dodge.Item.Weapon.Grenade +--import Dodge.LevelGen.Data +import Geometry.Data +--import Padding +import Color +--import Shape + +import Data.Tree +import Control.Monad.State +import Control.Lens +import System.Random +--import qualified Data.IntMap.Strict as IM + +horEdgeTest :: (Float -> Bool) -> ((Point2,Float) -> Bool) +horEdgeTest t (V2 x _,_) = t x + + +roomCritLS :: RandomGen g => State g LightSource +roomCritLS = do + col <- takeOne [0.5, 0.6] + h <- takeOne [30,35] + rad <- takeOne [300] + return defaultLS + { _lsPos = V3 0 0 h + , _lsIntensity = col + , _lsRad = rad + } + +critRoom :: Room +critRoom = corridorWallN + { _rmRandPSs = [psRandRanges (15,25) (30,45) (pi,2*pi)] + } + +runPastRoom :: RandomGen g => State g (Tree (Either Room Room)) +runPastRoom = do + h <- state $ randomR (200,400::Float) + theedgetest <- takeOne [horEdgeTest (<1), horEdgeTest (>39)] + thels <- roomCritLS + --theweapon <- join $ takeOne [randBlockBreakWeapon,return grenade] + theweapon <- randBlockBreakWeapon + cenroom <- changeLinkFrom theedgetest + $ roomRectAutoLinks 40 h & rmPmnts .~ [plRRpt 0 (PutFlIt theweapon)] + --let cenroom = filterSortOutLinksOn theedgetest ((\(V2 a b) -> (a,b)) . fst) + let linkcor = critRoom {_rmPmnts = + [ spanLS thels (V2 0 65) (V2 40 65) + ] + } + critroom = linkcor & rmPmnts %~ ( plRRpt 0 randC1 :) + aswitchroom = corridorWallN + {_rmExtPmnt = Just $ putLitButOnPosExtTrig red useLnkRoomPos + ,_rmLabel = Just 0 + ,_rmPmnts = [] + } + switchdoor = switchDoorRoom & rmTakeFrom ?~ 0 + n = length $ filter theedgetest $ _rmLinks cenroom + controom = treeFromPost [Left switchdoor,Left linkcor] (Right door) + critrooms :: [Tree (Either Room Room)] + critrooms = treeFromPost [Left switchdoor] (Left critroom) : + replicate (n-2) (treeFromPost [Left switchdoor] (Left linkcor)) + return $ treeFromTrunk [Left door] + $ Node (Left cenroom) (controom : critrooms ++ [return $ Left aswitchroom]) diff --git a/src/Dodge/Room/Start.hs b/src/Dodge/Room/Start.hs index 53f53d861..e374973b7 100644 --- a/src/Dodge/Room/Start.hs +++ b/src/Dodge/Room/Start.hs @@ -1,5 +1,7 @@ -module Dodge.Room.Start where +module Dodge.Room.Start + where import Dodge.LevelGen.Data +import Dodge.Room.RunPast import Dodge.Data import Dodge.Default import Dodge.Layout.Tree.Either @@ -27,12 +29,24 @@ import System.Random startRoom :: RandomGen g => State g (Tree (Either Room Room)) startRoom = join $ takeOne - [ rezBoxesWp - , rezBoxesThenWeaponRoom - , rezBoxThenWeaponRoom - , rezBoxesWpCrit + [ -- rezBoxesWp +-- , rezBoxesThenWeaponRoom +-- , rezBoxThenWeaponRoom +-- , rezBoxesWpCrit + runPastStart ] +runPastStart :: RandomGen g => State g (Tree (Either Room Room)) +runPastStart = do + s <- rezBoxStart + rp <- runPastRoom + return $ s `appendEitherTree` [rp] + +rezBoxStart :: RandomGen g => State g (Tree (Either Room Room)) +rezBoxStart = do + ls <- rezColor + return $ treeFromPost [Left $ rezBox ls] (Right door) + rezBox :: LightSource -> Room rezBox ls = roomRect 40 60 1 1 & rmPmnts .~ [ sPS (V2 20 1) 0 $ PutLS ls] diff --git a/src/Dodge/SoundLogic.hs b/src/Dodge/SoundLogic.hs index 277c7484f..9d21a3127 100644 --- a/src/Dodge/SoundLogic.hs +++ b/src/Dodge/SoundLogic.hs @@ -16,6 +16,7 @@ module Dodge.SoundLogic ( , haltSound , resumeSound , pauseSound + , module Dodge.SoundLogic.LoadSound ) where import Dodge.Data import Dodge.Data.SoundOrigin diff --git a/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs b/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs new file mode 100644 index 000000000..62161db51 --- /dev/null +++ b/src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs @@ -0,0 +1,317 @@ +-- generated at 2021-11-18 01:13:04.234031373 UTC +module Dodge.SoundLogic.ExternallyGeneratedSounds where +import Sound.Data +soundToVol :: SoundID -> Float +soundToVol v = case _getSoundID v of + 0 -> 5000 + 1 -> 8000 + 2 -> 8000 + 3 -> 5000 + 4 -> 5000 + 5 -> 5000 + 6 -> 3000 + 7 -> 3000 + 8 -> 4000 + 9 -> 5000 + 10 -> 10000 + 11 -> 8000 + 12 -> 8000 + 13 -> 8000 + 14 -> 8000 + 15 -> 10000 + 16 -> 3000 + 17 -> 4000 + 18 -> 5000 + 19 -> 5000 + 20 -> 20000 + 21 -> 4000 + 22 -> 10000 + 23 -> 8000 + 24 -> 4000 + 25 -> 2000 + 26 -> 6000 + 27 -> 500 + 28 -> 5000 + 29 -> 8000 + 30 -> 8000 + 31 -> 8000 + 32 -> 5000 + 33 -> 8000 + 34 -> 4000 + 35 -> 3000 + 36 -> 8000 + 37 -> 2000 + 38 -> 10000 + 39 -> 5000 + 40 -> 2000 + 41 -> 3000 + 42 -> 12000 + 43 -> 5000 + 44 -> 10000 + 45 -> 12000 + 46 -> 2000 + 47 -> 3000 + 48 -> 8000 + 49 -> 5000 + 50 -> 2000 + 51 -> 3000 + 52 -> 10000 + 53 -> 10000 + 54 -> 3000 + 55 -> 15000 + 56 -> 10000 + 57 -> 3000 + 58 -> 15000 + 59 -> 10000 + 60 -> 8000 + _ -> 50 +soundToOnomato :: SoundID -> String +soundToOnomato v = case _getSoundID v of + 0 -> "HNH" + 1 -> "CRNKL" + 2 -> "ZMM" + 3 -> "WE-OH" + 4 -> "UGGAUGGA" + 5 -> "KRTNKL" + 6 -> "DWAAH" + 7 -> "BWAH" + 8 -> "TIPTOP" + 9 -> "TINKLE" + 10 -> "TATATA" + 11 -> "CRSK" + 12 -> "CRNK" + 13 -> "TAKH" + 14 -> "CRUNK" + 15 -> "SCREE" + 16 -> "TNKTNKTNK" + 17 -> "TIPTAP" + 18 -> "WRR" + 19 -> "HSS" + 20 -> "BOOM" + 21 -> "CLNK" + 22 -> "BRAP" + 23 -> "CRSNK" + 24 -> "TAPP" + 25 -> "BLIH" + 26 -> "TAPTIP" + 27 -> "CLICK" + 28 -> "FWUMP" + 29 -> "RINGGG" + 30 -> "BRAP" + 31 -> "CRUMPLE" + 32 -> "TRINKL" + 33 -> "TAK" + 34 -> "SMACK" + 35 -> "DRR" + 36 -> "CRASH" + 37 -> "SWSH" + 38 -> "CRAKLE" + 39 -> "CRTINK" + 40 -> "FHP" + 41 -> "CHPCHPCHP" + 42 -> "BRPBRPBRP" + 43 -> "CHNKCHNKCHUNK" + 44 -> "WRRR" + 45 -> "BRDBRDBRD" + 46 -> "PHF" + 47 -> "BWAAH" + 48 -> "BEP" + 49 -> "HSSS" + 50 -> "SHUHP" + 51 -> "THUD" + 52 -> "WHSSH" + 53 -> "BRAHCHCH" + 54 -> "TIP" + 55 -> "BANGG" + 56 -> "ZHM" + 57 -> "TAP" + 58 -> "BANG" + 59 -> "CHUGUGUG" + 60 -> "CRISH" + _ -> error "unitialised sound" +soundPathList :: [String] +soundPathList = + [ "grunt.HNH.5000.wav" + , "glassShat2.CRNKL.8000.wav" + , "buzz.ZMM.8000.wav" + , "seagullWhistle.WE-OH.5000.wav" + , "seagullBark.UGGAUGGA.5000.wav" + , "smallGlass2.KRTNKL.5000.wav" + , "skwareFadeTwoSec.DWAAH.3000.wav" + , "sineRaisePitchOneSec.BWAH.3000.wav" + , "twoStepSlow.TIPTOP.4000.wav" + , "smallGlass4.TINKLE.5000.wav" + , "autoB.TATATA.10000.wav" + , "glassShat4.CRSK.8000.wav" + , "glassShat3.CRNK.8000.wav" + , "tap2.TAKH.8000.wav" + , "impact2.CRUNK.8000.wav" + , "tone440sawtooth.SCREE.10000.wav" + , "reload.TNKTNKTNK.3000.wav" + , "twoStep.TIPTAP.4000.wav" + , "fire.WRR.5000.wav" + , "foamSprayFadeOut.HSS.5000.wav" + , "explosion.BOOM.20000.wav" + , "tapQuiet.CLNK.4000.wav" + , "autoGun.BRAP.10000.wav" + , "glassShat1.CRSNK.8000.wav" + , "foot3.TAPP.4000.wav" + , "heal.BLIH.2000.wav" + , "twoStep1.TAPTIP.6000.wav" + , "click1.CLICK.500.wav" + , "tap4.FWUMP.5000.wav" + , "tinitus.RINGGG.8000.wav" + , "tap3.BRAP.8000.wav" + , "impact3.CRUMPLE.8000.wav" + , "smallGlass1.TRINKL.5000.wav" + , "tap1.TAK.8000.wav" + , "hit1.SMACK.4000.wav" + , "slideDoor.DRR.3000.wav" + , "impact1.CRASH.8000.wav" + , "knife.SWSH.2000.wav" + , "elecCrackle.CRAKLE.10000.wav" + , "smallGlass3.CRTINK.5000.wav" + , "whiteNoiseFadeIn.FHP.2000.wav" + , "reload1.CHPCHPCHP.3000.wav" + , "mini.BRPBRPBRP.12000.wav" + , "crankSlow.CHNKCHNKCHUNK.5000.wav" + , "fireLoud.WRRR.10000.wav" + , "mini1.BRDBRDBRD.12000.wav" + , "whiteNoiseFadeOut.PHF.2000.wav" + , "sineRaisePitchTwoSec.BWAAH.3000.wav" + , "tone440.BEP.8000.wav" + , "foamSprayLoop.HSSS.5000.wav" + , "pickUp.SHUHP.2000.wav" + , "hit.THUD.3000.wav" + , "missileLaunch.WHSSH.10000.wav" + , "shotgun.BRAHCHCH.10000.wav" + , "foot1.TIP.3000.wav" + , "bangEcho.BANGG.15000.wav" + , "tele.ZHM.10000.wav" + , "foot2.TAP.3000.wav" + , "bang.BANG.15000.wav" + , "seagullChatter.CHUGUGUG.10000.wav" + , "impact4.CRISH.8000.wav" + ] +gruntS :: SoundID +gruntS = SoundID 0 +glassShat2S :: SoundID +glassShat2S = SoundID 1 +buzzS :: SoundID +buzzS = SoundID 2 +seagullWhistleS :: SoundID +seagullWhistleS = SoundID 3 +seagullBarkS :: SoundID +seagullBarkS = SoundID 4 +smallGlass2S :: SoundID +smallGlass2S = SoundID 5 +skwareFadeTwoSecS :: SoundID +skwareFadeTwoSecS = SoundID 6 +sineRaisePitchOneSecS :: SoundID +sineRaisePitchOneSecS = SoundID 7 +twoStepSlowS :: SoundID +twoStepSlowS = SoundID 8 +smallGlass4S :: SoundID +smallGlass4S = SoundID 9 +autoBS :: SoundID +autoBS = SoundID 10 +glassShat4S :: SoundID +glassShat4S = SoundID 11 +glassShat3S :: SoundID +glassShat3S = SoundID 12 +tap2S :: SoundID +tap2S = SoundID 13 +impact2S :: SoundID +impact2S = SoundID 14 +tone440sawtoothS :: SoundID +tone440sawtoothS = SoundID 15 +reloadS :: SoundID +reloadS = SoundID 16 +twoStepS :: SoundID +twoStepS = SoundID 17 +fireS :: SoundID +fireS = SoundID 18 +foamSprayFadeOutS :: SoundID +foamSprayFadeOutS = SoundID 19 +explosionS :: SoundID +explosionS = SoundID 20 +tapQuietS :: SoundID +tapQuietS = SoundID 21 +autoGunS :: SoundID +autoGunS = SoundID 22 +glassShat1S :: SoundID +glassShat1S = SoundID 23 +foot3S :: SoundID +foot3S = SoundID 24 +healS :: SoundID +healS = SoundID 25 +twoStep1S :: SoundID +twoStep1S = SoundID 26 +click1S :: SoundID +click1S = SoundID 27 +tap4S :: SoundID +tap4S = SoundID 28 +tinitusS :: SoundID +tinitusS = SoundID 29 +tap3S :: SoundID +tap3S = SoundID 30 +impact3S :: SoundID +impact3S = SoundID 31 +smallGlass1S :: SoundID +smallGlass1S = SoundID 32 +tap1S :: SoundID +tap1S = SoundID 33 +hit1S :: SoundID +hit1S = SoundID 34 +slideDoorS :: SoundID +slideDoorS = SoundID 35 +impact1S :: SoundID +impact1S = SoundID 36 +knifeS :: SoundID +knifeS = SoundID 37 +elecCrackleS :: SoundID +elecCrackleS = SoundID 38 +smallGlass3S :: SoundID +smallGlass3S = SoundID 39 +whiteNoiseFadeInS :: SoundID +whiteNoiseFadeInS = SoundID 40 +reload1S :: SoundID +reload1S = SoundID 41 +miniS :: SoundID +miniS = SoundID 42 +crankSlowS :: SoundID +crankSlowS = SoundID 43 +fireLoudS :: SoundID +fireLoudS = SoundID 44 +mini1S :: SoundID +mini1S = SoundID 45 +whiteNoiseFadeOutS :: SoundID +whiteNoiseFadeOutS = SoundID 46 +sineRaisePitchTwoSecS :: SoundID +sineRaisePitchTwoSecS = SoundID 47 +tone440S :: SoundID +tone440S = SoundID 48 +foamSprayLoopS :: SoundID +foamSprayLoopS = SoundID 49 +pickUpS :: SoundID +pickUpS = SoundID 50 +hitS :: SoundID +hitS = SoundID 51 +missileLaunchS :: SoundID +missileLaunchS = SoundID 52 +shotgunS :: SoundID +shotgunS = SoundID 53 +foot1S :: SoundID +foot1S = SoundID 54 +bangEchoS :: SoundID +bangEchoS = SoundID 55 +teleS :: SoundID +teleS = SoundID 56 +foot2S :: SoundID +foot2S = SoundID 57 +bangS :: SoundID +bangS = SoundID 58 +seagullChatterS :: SoundID +seagullChatterS = SoundID 59 +impact4S :: SoundID +impact4S = SoundID 60 diff --git a/src/Dodge/SoundLogic/LoadSound.hs b/src/Dodge/SoundLogic/LoadSound.hs index 703edd411..4bd225faf 100644 --- a/src/Dodge/SoundLogic/LoadSound.hs +++ b/src/Dodge/SoundLogic/LoadSound.hs @@ -1,6 +1,9 @@ module Dodge.SoundLogic.LoadSound - where -import Sound.Data + ( module Dodge.SoundLogic.LoadSound + , module Dodge.SoundLogic.ExternallyGeneratedSounds + ) where +--import Sound.Data +import Dodge.SoundLogic.ExternallyGeneratedSounds import qualified Data.IntMap.Strict as IM import qualified SDL.Mixer as Mix @@ -15,306 +18,6 @@ loadSounds = do Mix.openAudio Mix.defaultAudio 128 fmap IM.fromList $ mapM loadSound $ zip [0..] soundPathList -soundToVol :: SoundID -> Float -soundToVol v = case _getSoundID v of - 0 -> 5000 - 1 -> 8000 - 2 -> 8000 - 3 -> 5000 - 4 -> 3000 - 5 -> 3000 - 6 -> 4000 - 7 -> 5000 - 8 -> 10000 - 9 -> 8000 - 10 -> 8000 - 11 -> 8000 - 12 -> 8000 - 13 -> 10000 - 14 -> 3000 - 15 -> 4000 - 16 -> 5000 - 17 -> 5000 - 18 -> 20000 - 19 -> 4000 - 20 -> 10000 - 21 -> 8000 - 22 -> 4000 - 23 -> 2000 - 24 -> 6000 - 25 -> 500 - 26 -> 5000 - 27 -> 8000 - 28 -> 8000 - 29 -> 8000 - 30 -> 5000 - 31 -> 8000 - 32 -> 4000 - 33 -> 3000 - 34 -> 8000 - 35 -> 2000 - 36 -> 10000 - 37 -> 5000 - 38 -> 2000 - 39 -> 3000 - 40 -> 12000 - 41 -> 5000 - 42 -> 10000 - 43 -> 12000 - 44 -> 2000 - 45 -> 3000 - 46 -> 8000 - 47 -> 5000 - 48 -> 2000 - 49 -> 3000 - 50 -> 10000 - 51 -> 10000 - 52 -> 3000 - 53 -> 15000 - 54 -> 10000 - 55 -> 3000 - 56 -> 15000 - 57 -> 8000 - _ -> 50 -soundToOnomato :: SoundID -> String -soundToOnomato v = case _getSoundID v of - 0 -> "HNH" - 1 -> "CRNKL" - 2 -> "ZMM" - 3 -> "KRTNKL" - 4 -> "DWAAH" - 5 -> "BWAH" - 6 -> "TIPTOP" - 7 -> "TINKLE" - 8 -> "TATATA" - 9 -> "CRSK" - 10 -> "CRNK" - 11 -> "TAKH" - 12 -> "CRUNK" - 13 -> "SCREE" - 14 -> "TNKTNKTNK" - 15 -> "TIPTAP" - 16 -> "WRR" - 17 -> "HSS" - 18 -> "BOOM" - 19 -> "CLNK" - 20 -> "BRAP" - 21 -> "CRSNK" - 22 -> "TAPP" - 23 -> "BLIH" - 24 -> "TAPTIP" - 25 -> "CLICK" - 26 -> "FWUMP" - 27 -> "RINGGG" - 28 -> "BRAP" - 29 -> "CRUMPLE" - 30 -> "TRINKL" - 31 -> "TAK" - 32 -> "SMACK" - 33 -> "DRR" - 34 -> "CRASH" - 35 -> "SWSH" - 36 -> "CRAKLE" - 37 -> "CRTINK" - 38 -> "FHP" - 39 -> "CHPCHPCHP" - 40 -> "BRPBRPBRP" - 41 -> "CHNKCHNKCHUNK" - 42 -> "WRRR" - 43 -> "BRDBRDBRD" - 44 -> "PHF" - 45 -> "BWAAH" - 46 -> "BEP" - 47 -> "HSSS" - 48 -> "SHUHP" - 49 -> "THUD" - 50 -> "WHSSH" - 51 -> "BRAHCHCH" - 52 -> "TIP" - 53 -> "BANGG" - 54 -> "ZHM" - 55 -> "TAP" - 56 -> "BANG" - 57 -> "CRISH" - _ -> error "unitialised sound" -soundPathList :: [String] -soundPathList = - [ "grunt.HNH.5000.wav" - , "glassShat2.CRNKL.8000.wav" - , "buzz.ZMM.8000.wav" - , "smallGlass2.KRTNKL.5000.wav" - , "skwareFadeTwoSec.DWAAH.3000.wav" - , "sineRaisePitchOneSec.BWAH.3000.wav" - , "twoStepSlow.TIPTOP.4000.wav" - , "smallGlass4.TINKLE.5000.wav" - , "autoB.TATATA.10000.wav" - , "glassShat4.CRSK.8000.wav" - , "glassShat3.CRNK.8000.wav" - , "tap2.TAKH.8000.wav" - , "impact2.CRUNK.8000.wav" - , "tone440sawtooth.SCREE.10000.wav" - , "reload.TNKTNKTNK.3000.wav" - , "twoStep.TIPTAP.4000.wav" - , "fire.WRR.5000.wav" - , "foamSprayFadeOut.HSS.5000.wav" - , "explosion.BOOM.20000.wav" - , "tapQuiet.CLNK.4000.wav" - , "autoGun.BRAP.10000.wav" - , "glassShat1.CRSNK.8000.wav" - , "foot3.TAPP.4000.wav" - , "heal.BLIH.2000.wav" - , "twoStep1.TAPTIP.6000.wav" - , "click1.CLICK.500.wav" - , "tap4.FWUMP.5000.wav" - , "tinitus.RINGGG.8000.wav" - , "tap3.BRAP.8000.wav" - , "impact3.CRUMPLE.8000.wav" - , "smallGlass1.TRINKL.5000.wav" - , "tap1.TAK.8000.wav" - , "hit1.SMACK.4000.wav" - , "slideDoor.DRR.3000.wav" - , "impact1.CRASH.8000.wav" - , "knife.SWSH.2000.wav" - , "elecCrackle.CRAKLE.10000.wav" - , "smallGlass3.CRTINK.5000.wav" - , "whiteNoiseFadeIn.FHP.2000.wav" - , "reload1.CHPCHPCHP.3000.wav" - , "mini.BRPBRPBRP.12000.wav" - , "crankSlow.CHNKCHNKCHUNK.5000.wav" - , "fireLoud.WRRR.10000.wav" - , "mini1.BRDBRDBRD.12000.wav" - , "whiteNoiseFadeOut.PHF.2000.wav" - , "sineRaisePitchTwoSec.BWAAH.3000.wav" - , "tone440.BEP.8000.wav" - , "foamSprayLoop.HSSS.5000.wav" - , "pickUp.SHUHP.2000.wav" - , "hit.THUD.3000.wav" - , "missileLaunch.WHSSH.10000.wav" - , "shotgun.BRAHCHCH.10000.wav" - , "foot1.TIP.3000.wav" - , "bangEcho.BANGG.15000.wav" - , "tele.ZHM.10000.wav" - , "foot2.TAP.3000.wav" - , "bang.BANG.15000.wav" - , "impact4.CRISH.8000.wav" - ] -gruntS :: SoundID -gruntS = SoundID 0 -glassShat2S :: SoundID -glassShat2S = SoundID 1 -buzzS :: SoundID -buzzS = SoundID 2 -smallGlass2S :: SoundID -smallGlass2S = SoundID 3 -skwareFadeTwoSecS :: SoundID -skwareFadeTwoSecS = SoundID 4 -sineRaisePitchOneSecS :: SoundID -sineRaisePitchOneSecS = SoundID 5 -twoStepSlowS :: SoundID -twoStepSlowS = SoundID 6 -smallGlass4S :: SoundID -smallGlass4S = SoundID 7 -autoBS :: SoundID -autoBS = SoundID 8 -glassShat4S :: SoundID -glassShat4S = SoundID 9 -glassShat3S :: SoundID -glassShat3S = SoundID 10 -tap2S :: SoundID -tap2S = SoundID 11 -impact2S :: SoundID -impact2S = SoundID 12 -tone440sawtoothS :: SoundID -tone440sawtoothS = SoundID 13 -reloadS :: SoundID -reloadS = SoundID 14 -twoStepS :: SoundID -twoStepS = SoundID 15 -fireS :: SoundID -fireS = SoundID 16 -foamSprayFadeOutS :: SoundID -foamSprayFadeOutS = SoundID 17 -explosionS :: SoundID -explosionS = SoundID 18 -tapQuietS :: SoundID -tapQuietS = SoundID 19 -autoGunS :: SoundID -autoGunS = SoundID 20 -glassShat1S :: SoundID -glassShat1S = SoundID 21 -foot3S :: SoundID -foot3S = SoundID 22 -healS :: SoundID -healS = SoundID 23 -twoStep1S :: SoundID -twoStep1S = SoundID 24 -click1S :: SoundID -click1S = SoundID 25 -tap4S :: SoundID -tap4S = SoundID 26 -tinitusS :: SoundID -tinitusS = SoundID 27 -tap3S :: SoundID -tap3S = SoundID 28 -impact3S :: SoundID -impact3S = SoundID 29 -smallGlass1S :: SoundID -smallGlass1S = SoundID 30 -tap1S :: SoundID -tap1S = SoundID 31 -hit1S :: SoundID -hit1S = SoundID 32 -slideDoorS :: SoundID -slideDoorS = SoundID 33 -impact1S :: SoundID -impact1S = SoundID 34 -knifeS :: SoundID -knifeS = SoundID 35 -elecCrackleS :: SoundID -elecCrackleS = SoundID 36 -smallGlass3S :: SoundID -smallGlass3S = SoundID 37 -whiteNoiseFadeInS :: SoundID -whiteNoiseFadeInS = SoundID 38 -reload1S :: SoundID -reload1S = SoundID 39 -miniS :: SoundID -miniS = SoundID 40 -crankSlowS :: SoundID -crankSlowS = SoundID 41 -fireLoudS :: SoundID -fireLoudS = SoundID 42 -mini1S :: SoundID -mini1S = SoundID 43 -whiteNoiseFadeOutS :: SoundID -whiteNoiseFadeOutS = SoundID 44 -sineRaisePitchTwoSecS :: SoundID -sineRaisePitchTwoSecS = SoundID 45 -tone440S :: SoundID -tone440S = SoundID 46 -foamSprayLoopS :: SoundID -foamSprayLoopS = SoundID 47 -pickUpS :: SoundID -pickUpS = SoundID 48 -hitS :: SoundID -hitS = SoundID 49 -missileLaunchS :: SoundID -missileLaunchS = SoundID 50 -shotgunS :: SoundID -shotgunS = SoundID 51 -foot1S :: SoundID -foot1S = SoundID 52 -bangEchoS :: SoundID -bangEchoS = SoundID 53 -teleS :: SoundID -teleS = SoundID 54 -foot2S :: SoundID -foot2S = SoundID 55 -bangS :: SoundID -bangS = SoundID 56 -impact4S :: SoundID -impact4S = SoundID 57 - loadMusic :: IO (IM.IntMap Mix.Music) loadMusic = do undercity <- Mix.load "./data/music/firstCompo.mid" diff --git a/src/Dodge/WorldEvent/Explosion.hs b/src/Dodge/WorldEvent/Explosion.hs index 0a32bc8ba..e58a8d476 100644 --- a/src/Dodge/WorldEvent/Explosion.hs +++ b/src/Dodge/WorldEvent/Explosion.hs @@ -16,7 +16,6 @@ import Dodge.WorldEvent.SpawnParticle --import Dodge.WorldEvent.Flash import Dodge.RandomHelp import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.WorldEvent.Shockwave import Geometry import Geometry.Vector3D diff --git a/src/Dodge/WorldEvent/Sound.hs b/src/Dodge/WorldEvent/Sound.hs index 490c30c7a..45698c02b 100644 --- a/src/Dodge/WorldEvent/Sound.hs +++ b/src/Dodge/WorldEvent/Sound.hs @@ -7,7 +7,6 @@ module Dodge.WorldEvent.Sound import Dodge.Data import Dodge.Data.SoundOrigin import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Sound.Data import Geometry.Data import Dodge.RandomHelp diff --git a/src/Dodge/WorldEvent/SpawnParticle.hs b/src/Dodge/WorldEvent/SpawnParticle.hs index e660544ec..5fcfc7b23 100644 --- a/src/Dodge/WorldEvent/SpawnParticle.hs +++ b/src/Dodge/WorldEvent/SpawnParticle.hs @@ -16,7 +16,6 @@ import Dodge.WorldEvent.ThingsHit import Dodge.WorldEvent.Cloud import Dodge.WorldEvent.Flash import Dodge.SoundLogic -import Dodge.SoundLogic.LoadSound import Dodge.RandomHelp --import Dodge.Debug import Picture