gameServer/EngineInteraction.hs
changeset 11337 41ca5f8ace18
parent 11328 2400c9496288
child 11345 d3317d6162fe
equal deleted inserted replaced
11336:14de659a4b79 11337:41ca5f8ace18
   127             && (not . null . drop 41 $ scheme)
   127             && (not . null . drop 41 $ scheme)
   128             && (not . null . tail $ prms Map.! "AMMO")
   128             && (not . null . tail $ prms Map.! "AMMO")
   129             && ((B.length . head . tail $ prms Map.! "AMMO") > 200)
   129             && ((B.length . head . tail $ prms Map.! "AMMO") > 200)
   130         mapGenTypes = ["+rnd+", "+maze+", "+drawn+", "+perlin+"]
   130         mapGenTypes = ["+rnd+", "+maze+", "+drawn+", "+perlin+"]
   131         scriptName = head . fromMaybe ["Normal"] $ Map.lookup "SCRIPT" prms
   131         scriptName = head . fromMaybe ["Normal"] $ Map.lookup "SCRIPT" prms
   132         maybeScript = let s = scriptName in if s == "Normal" then [] else [eml ["escript Scripts/Multiplayer/", s, ".lua"]]
   132         maybeScript = let s = scriptName in if s == "Normal" then [] else [eml ["escript Scripts/Multiplayer/", spaces2Underlining s, ".lua"]]
   133         maybeMap = let m = mParams Map.! "MAP" in if m `elem` mapGenTypes then [] else [eml ["emap ", m]]
   133         maybeMap = let m = mParams Map.! "MAP" in if m `elem` mapGenTypes then [] else [eml ["emap ", m]]
   134         scheme = tail $ prms Map.! "SCHEME"
   134         scheme = tail $ prms Map.! "SCHEME"
   135         mapgen = mParams Map.! "MAPGEN"
   135         mapgen = mParams Map.! "MAPGEN"
   136         mazeSizeMsg = eml ["e$maze_size ", mParams Map.! "MAZE_SIZE"]
   136         mazeSizeMsg = eml ["e$maze_size ", mParams Map.! "MAZE_SIZE"]
   137         mapgenSpecific = case mapgen of
   137         mapgenSpecific = case mapgen of
   164                         $ hedgehogs t
   164                         $ hedgehogs t
   165                         )
   165                         )
   166         infRopes = ammoStr `B.index` 7  == '9'
   166         infRopes = ammoStr `B.index` 7  == '9'
   167         vamp = gameFlags .&. 0x00000200 /= 0
   167         vamp = gameFlags .&. 0x00000200 /= 0
   168         infattacks = gameFlags .&. 0x00100000 /= 0
   168         infattacks = gameFlags .&. 0x00100000 /= 0
       
   169         spaces2Underlining = B.map (\c -> if c == ' ' then '_' else c)
   169 
   170 
   170 drawnMapData :: B.ByteString -> [B.ByteString]
   171 drawnMapData :: B.ByteString -> [B.ByteString]
   171 drawnMapData =
   172 drawnMapData =
   172           L.map (\m -> eml ["edraw ", BW.pack m])
   173           L.map (\m -> eml ["edraw ", BW.pack m])
   173         . L.unfoldr by200
   174         . L.unfoldr by200