# HG changeset patch # User sheepluva # Date 1446590012 -3600 # Node ID a3f3fc9af429f653958c354ffbaefc5611cc85dd # Parent f35b207087a64cd4ec3d5898d3cc58d118687b8c# Parent 48a3145cd11818625cc6316de26dccafc17eaec7 merge changelog changes of 0.9.22 into default diff -r 48a3145cd118 -r a3f3fc9af429 CMakeLists.txt --- a/CMakeLists.txt Tue Nov 03 23:32:14 2015 +0100 +++ b/CMakeLists.txt Tue Nov 03 23:33:32 2015 +0100 @@ -53,7 +53,7 @@ set(CPACK_PACKAGE_VERSION_MAJOR 0) set(CPACK_PACKAGE_VERSION_MINOR 9) set(CPACK_PACKAGE_VERSION_PATCH 22) -set(HEDGEWARS_PROTO_VER 51) +set(HEDGEWARS_PROTO_VER 52) set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") include(${CMAKE_MODULE_PATH}/revinfo.cmake) diff -r 48a3145cd118 -r a3f3fc9af429 ChangeLog.txt --- a/ChangeLog.txt Tue Nov 03 23:32:14 2015 +0100 +++ b/ChangeLog.txt Tue Nov 03 23:33:32 2015 +0100 @@ -1,6 +1,9 @@ + features * bugfixes +0.9.22 -> 0.9.23 + * Hammer damage is now rounded down. This means it will cause NO DAMAGE to a hedgehog with less than 3 hp. + 0.9.21 -> 0.9.22 + New Weapon / Map object: AirMine (floating mine that will follow nearby hedgehogs) + Extensive changes to TechRacer: Variable terrain types, enhanced parameters, hwmap interpreter, fuel limiter, etc. diff -r 48a3145cd118 -r a3f3fc9af429 gameServer/OfficialServer/extdbinterface.hs --- a/gameServer/OfficialServer/extdbinterface.hs Tue Nov 03 23:32:14 2015 +0100 +++ b/gameServer/OfficialServer/extdbinterface.hs Tue Nov 03 23:33:32 2015 +0100 @@ -55,8 +55,10 @@ "INSERT INTO rating_games (script, protocol, filename, time) \ \ VALUES (?, ?, ?, ?)" +dbQueryGameId = "SELECT LAST_INSERT_ID()" + dbQueryGamesHistoryPlaces = "INSERT INTO rating_players (userid, gameid, place) \ - \ VALUES ((SELECT uid FROM users WHERE name = ?), LAST_INSERT_ID(), ?)" + \ VALUES ((SELECT uid FROM users WHERE name = ?), ?, ?)" dbQueryReplayFilename = "SELECT filename FROM achievements WHERE id = ?" @@ -112,10 +114,10 @@ ps :: [B.ByteString] -> [IO Int64] ps [] = [] ps ("DRAW" : bs) = execute dbConn dbQueryGamesHistory (script, (fromIntegral p) :: Int, fileName, time) - : executeMany dbConn dbQueryGamesHistoryPlaces (map drawParams teams) + : places (map drawParams teams) : ps bs ps ("WINNERS" : n : bs) = let winNum = readInt_ n in execute dbConn dbQueryGamesHistory (script, (fromIntegral p) :: Int, fileName, time) - : executeMany dbConn dbQueryGamesHistoryPlaces (map (placeParams (take winNum bs)) teams) + : places (map (placeParams (take winNum bs)) teams) : ps (drop winNum bs) ps ("ACHIEVEMENT" : typ : teamname : location : value : bs) = execute dbConn dbQueryAchievement ( time @@ -129,6 +131,16 @@ ps (b:bs) = ps bs drawParams t = (snd t, 0 :: Int) placeParams winners t = (snd t, if (fst t) `elem` winners then 1 else 2 :: Int) + places :: [(B.ByteString, Int)] -> IO Int64 + places params = do + res <- query_ dbConn dbQueryGameId + let gameId = case res of + [Only a] -> a + _ -> 0 + mapM_ (execute dbConn dbQueryGamesHistoryPlaces . midInsert gameId) params + return 0 + midInsert :: Int -> (a, b) -> (a, Int, b) + midInsert g (a, b) = (a, g, b) dbConnectionLoop mySQLConnectionInfo = Control.Exception.handle (\(e :: SomeException) -> hPutStrLn stderr $ show e) $ diff -r 48a3145cd118 -r a3f3fc9af429 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Tue Nov 03 23:32:14 2015 +0100 +++ b/hedgewars/uGearsHandlersMess.pas Tue Nov 03 23:33:32 2015 +0100 @@ -5255,13 +5255,12 @@ d:= 2 else d:= 3; - // always round up - if dmg mod d > 0 then - dmg:= dmg div d + 1 - else - dmg:= dmg div d; - - ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown); + + // always rounding down + dmg:= dmg div d; + + if dmg > 0 then + ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown); end; end;