Massive Continental supplies update
List of changes:
* Invulnerability protects from sabotage damage
* Sabotage kills hog instantly when health reaches 0
* Reliably prevent using of Lonely Cries and baseball bat specials when usage not allowed
* Don't explode Anno 1302 and Medicine if drowning
* Don't play “Missed” and “Laugh” taunt when those don't make sense
* Major rewrite of ALL strings for better usability
* Add custom weapon tooltips
* Major refactoring
* Improve audiovisual effects
* Show message when hog receives new continent ammo
* Sabotaged hedgehogs also emit smoke when it's not their turn
* Can switch continent in reverse order with [Precise]+[Switch]
* Fix retreat timer not turning red for some weapons
{-
* Hedgewars, a free turn based strategy game
* Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
\-}
{-# LANGUAGE CPP #-}
module Opts
(
getOpts,
) where
import System.Environment
import System.Console.GetOpt
import Data.Maybe ( fromMaybe )
-------------------
import CoreTypes
import Utils
options :: [OptDescr (ServerInfo -> ServerInfo)]
options = [
Option "p" ["port"] (ReqArg readListenPort "PORT") "listen on PORT",
Option "d" ["dedicated"] (ReqArg readDedicated "BOOL") "start as dedicated (True or False)"
]
readListenPort
, readDedicated
:: String -> ServerInfo -> ServerInfo
readListenPort str opts = opts{listenPort = readPort}
where
readPort = fromInteger $ fromMaybe 46631 (maybeRead str :: Maybe Integer)
readDedicated str opts = opts{isDedicated = readDed}
where
readDed = fromMaybe True (maybeRead str :: Maybe Bool)
getOpts :: ServerInfo -> IO ServerInfo
getOpts opts = do
args <- getArgs
case getOpt Permute options args of
(o, [], []) -> return $ foldr ($) opts{runArgs = args} o
(_,_,errs) -> ioError (userError (concat errs ++ usageInfo header options))
where header = "Usage: hedgewars-server [OPTION...]"