diff --git a/src/Dodge/Render/Picture.hs b/src/Dodge/Render/Picture.hs index a00bec1a3..3af49944d 100644 --- a/src/Dodge/Render/Picture.hs +++ b/src/Dodge/Render/Picture.hs @@ -78,7 +78,14 @@ soundPic :: World -> Sound -> Picture soundPic w s = fixedSizePicClampArrow 50 50 thePic p w where p = _soundPos s - thePic = scale 0.15 0.15 $ text $ soundToOnomato $ _soundChunkID s + thePic + = rotate (_cameraRot w) + . scale theScale theScale + . centerText + . soundToOnomato + $ _soundChunkID s + theScale = 0.15 * f (_soundVolume s * 0.0001) + f x = 1 - 0.5 * (1 - x) crDraw :: World -> Creature -> Picture crDraw w c = _crPict c c w diff --git a/src/Dodge/WorldEvent/SpawnParticle.hs b/src/Dodge/WorldEvent/SpawnParticle.hs index e58f52b25..752f74bb4 100644 --- a/src/Dodge/WorldEvent/SpawnParticle.hs +++ b/src/Dodge/WorldEvent/SpawnParticle.hs @@ -99,7 +99,7 @@ moveFlame rotd w pt _ -> (glare $ doSound damcrs , mvPt) where time = _btTimer' pt - doSound = soundContinue Flame (V2 x y) fireS (Just 2) -- . over worldEvents ((.) $ flameGlareAt ep) + doSound = soundContinue Flame (V2 x y) fireLoudS (Just 2) -- . over worldEvents ((.) $ flameGlareAt ep) glare | time `mod` 5 == 0 = tempLightSources %~ (theTLS :) diff --git a/src/Picture.hs b/src/Picture.hs index ac4b471f1..271d1d1b1 100644 --- a/src/Picture.hs +++ b/src/Picture.hs @@ -22,6 +22,7 @@ module Picture , line , lineCol , text + , centerText , pictures , concatMapPic , appendPic @@ -244,6 +245,10 @@ circle :: Float -> Picture {-# INLINE circle #-} circle rad = thickArc 0 (2*pi) rad 1 +centerText :: String -> Picture +{-# INLINE centerText #-} +centerText s = translate (25 * (negate . fromIntegral $ length s)) 0 $ text s + text :: String -> Picture {-# INLINE text #-} text s = map f $ stringToList s