author | belphegorr <szabibibi@gmail.com> |
Mon, 23 Jul 2012 19:15:59 +0300 | |
changeset 7263 | 644eabbc9218 |
parent 6040 | a740069c21e3 |
child 8371 | 0551b5c3de9a |
permissions | -rw-r--r-- |
{-# LANGUAGE ScopedTypeVariables #-} module OfficialServer.GameReplayStore where import Data.Time import Control.Exception as E import qualified Data.Map as Map import Data.Sequence() import System.Log.Logger import Data.Maybe import Data.Unique import Control.Monad --------------- import CoreTypes saveReplay :: RoomInfo -> IO () saveReplay r = do time <- getCurrentTime u <- liftM hashUnique newUnique let fileName = "replays/" ++ show time ++ "-" ++ show u let gi = fromJust $ gameInfo r let replayInfo = (teamsAtStart gi, Map.toList $ mapParams r, Map.toList $ params r, roundMsgs gi) E.catch (writeFile fileName (show replayInfo)) (\(e :: IOException) -> warningM "REPLAYS" $ "Couldn't write to " ++ fileName ++ ": " ++ show e)