Server:
* Added support for flags (this still needs further adjustments to restore compatibility with older versions (team datasets)!)
Engine:
* Added support for flags
* Added weapon tooltips
* Moved SplitBySpace to uMisc
* Set file operations to readonly to avoid conflicts running multiple copies networked and synced on one (fast) machine
* Flash active team while green arrow is shown (waiting for input or camera centered on active hog)
* Updated English locale
Frontend:
* Added support for flags
* Added flag selection to edit team page
* Added checkbox for weapon tooltips in options
* "Random team" button may now be translated
* Disabled "official server" button till protocol is handled for all versions (see above; nemo's server is updated to new protocol)
Graphics:
* Added basic set of example flags
{-# LANGUAGE CPP, ScopedTypeVariables #-}
module Main where
import Network.Socket
import qualified Network
import Control.Concurrent.STM
import Control.Concurrent.Chan
#if defined(NEW_EXCEPTIONS)
import qualified Control.OldException as Exception
#else
import qualified Control.Exception as Exception
#endif
import System.Log.Logger
-----------------------------------
import Opts
import CoreTypes
import OfficialServer.DBInteraction
import ServerCore
import Utils
#if !defined(mingw32_HOST_OS)
import System.Posix
#endif
setupLoggers =
updateGlobalLogger "Clients"
(setLevel INFO)
main = withSocketsDo $ do
#if !defined(mingw32_HOST_OS)
installHandler sigPIPE Ignore Nothing;
installHandler sigCHLD Ignore Nothing;
#endif
setupLoggers
stats <- atomically $ newTMVar (StatisticsInfo 0 0)
dbQueriesChan <- newChan
coreChan <- newChan
serverInfo' <- getOpts $ newServerInfo stats coreChan dbQueriesChan
#if defined(OFFICIAL_SERVER)
dbHost' <- askFromConsole "DB host: "
dbLogin' <- askFromConsole "login: "
dbPassword' <- askFromConsole "password: "
let serverInfo = serverInfo'{dbHost = dbHost', dbLogin = dbLogin', dbPassword = dbPassword'}
#else
let serverInfo = serverInfo'
#endif
Exception.bracket
(Network.listenOn $ Network.PortNumber $ listenPort serverInfo)
sClose
(startServer serverInfo)