[hedgewars] 01/03: Imported Upstream version 0.9.20.3

Gianfranco Costamagna locutusofborg-guest at moszumanska.debian.org
Thu Jan 2 12:11:38 UTC 2014


This is an automated email from the git hooks/post-receive script.

locutusofborg-guest pushed a commit to branch master
in repository hedgewars.

commit 7b18fb03d9c11a6f61facad33519c431b89b3a34
Author: Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
Date:   Thu Jan 2 12:31:34 2014 +0100

    Imported Upstream version 0.9.20.3
---
 CMakeLists.txt                              |  10 +--
 QTfrontend/CMakeLists.txt                   |   4 +-
 QTfrontend/res/css/chat.css                 |   2 +-
 QTfrontend/servermessages.h                 |  12 +--
 QTfrontend/ui/page/pagemain.cpp             |   8 +-
 cmake_modules/CMakePascalInformation.cmake  |   4 +-
 cmake_modules/paths.cmake                   |  28 ++++---
 cmake_modules/platform.cmake                |  36 ++++-----
 gameServer/Actions.hs                       |   3 +-
 gameServer/CoreTypes.hs                     |   2 +-
 gameServer/OfficialServer/checker.hs        |   6 +-
 gameServer/OfficialServer/extdbinterface.hs |  13 +--
 hedgewars/CMakeLists.txt                    |   4 +
 hedgewars/uGearsHandlersMess.pas            |   2 +-
 hedgewars/uLand.pas                         |   4 +-
 hedgewars/uLandGraphics.pas                 | 118 ++++++++++++++--------------
 misc/libphysfs/platform_unix.c              |   2 +-
 share/hedgewars/Data/misc/hedgewars.desktop |   2 +-
 share/version_info.txt                      |   4 +-
 tools/CreateMacBundle.cmake.in              |  18 +++--
 20 files changed, 143 insertions(+), 139 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f9337b2..20ab9b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,9 +51,10 @@ message(STATUS "Building ${HEDGEWARS_VERSION}-r${HEDGEWARS_REVISION} (${HEDGEWAR
 
 #general utilities
 include(${CMAKE_MODULE_PATH}/utils.cmake)
+#paths initialization
+include(${CMAKE_MODULE_PATH}/paths.cmake)
 #platform specific init code
 include(${CMAKE_MODULE_PATH}/platform.cmake)
-include(${CMAKE_MODULE_PATH}/paths.cmake)
 
 
 #when build type is not specified, assume Debug/Release according to build version information
@@ -73,14 +74,11 @@ include(${CMAKE_MODULE_PATH}/compilerchecks.cmake)
 
 #set default compiler flags
 add_flag_append(CMAKE_C_FLAGS "-Wall -pipe")
-add_flag_append(CMAKE_C_FLAGS_RELEASE "-Os")
+add_flag_append(CMAKE_C_FLAGS_RELEASE "-O2")
 add_flag_append(CMAKE_C_FLAGS_DEBUG "-Wextra -O0")
 add_flag_append(CMAKE_CXX_FLAGS "-Wall -pipe")
-add_flag_append(CMAKE_CXX_FLAGS_RELEASE "-Os")
+add_flag_append(CMAKE_CXX_FLAGS_RELEASE "-O2")
 add_flag_append(CMAKE_CXX_FLAGS_DEBUG "-Wextra -O0")
-add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000")
-add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-O- -gv")
-add_flag_append(CMAKE_Pascal_FLAGS_RELEASE "-Os -Xs")
 
 #CMake adds a lot of additional configuration flags, so let's clear them up
 if(${MINIMAL_FLAGS})
diff --git a/QTfrontend/CMakeLists.txt b/QTfrontend/CMakeLists.txt
index 02da735..a8e427b 100644
--- a/QTfrontend/CMakeLists.txt
+++ b/QTfrontend/CMakeLists.txt
@@ -61,8 +61,8 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util/platform)
 include_directories(${SDL_INCLUDE_DIR})
 include_directories(${SDLMIXER_INCLUDE_DIR})
-include_directories(${PHYSFS_INCLUDE_DIR})
-include_directories(${PHYSLAYER_INCLUDE_DIR})
+include_directories(BEFORE ${PHYSFS_INCLUDE_DIR})
+include_directories(BEFORE ${PHYSLAYER_INCLUDE_DIR})
 
 
 if(UNIX)
diff --git a/QTfrontend/res/css/chat.css b/QTfrontend/res/css/chat.css
index a914c7f..19dc58f 100644
--- a/QTfrontend/res/css/chat.css
+++ b/QTfrontend/res/css/chat.css
@@ -9,7 +9,7 @@
  *
  * In the QTfrontend of hedgewars also display:none; will work for class names
  * that start with msg_ and .timestamp -  as long as they are referenced
- * directly and not within any class hierachy.
+ * directly and not within any class hierarchy.
  * Note: Will only effect new lines!
  *
  ******************************************************************************
diff --git a/QTfrontend/servermessages.h b/QTfrontend/servermessages.h
index 96bc20a..e57b1ff 100644
--- a/QTfrontend/servermessages.h
+++ b/QTfrontend/servermessages.h
@@ -1,5 +1,4 @@
 const char * serverMessages[] = {
-QT_TRANSLATE_NOOP("server", "Empty config entry"),
 QT_TRANSLATE_NOOP("server", "Restricted"),
 QT_TRANSLATE_NOOP("server", "Not room master"),
 QT_TRANSLATE_NOOP("server", "Corrupted hedgehogs info"),
@@ -13,20 +12,21 @@ QT_TRANSLATE_NOOP("server", "Not team owner!"),
 QT_TRANSLATE_NOOP("server", "Less than two clans!"),
 QT_TRANSLATE_NOOP("server", "Illegal room name"),
 QT_TRANSLATE_NOOP("server", "Room with such name already exists"),
+QT_TRANSLATE_NOOP("server", "Nickname already chosen"),
+QT_TRANSLATE_NOOP("server", "Illegal nickname"),
+QT_TRANSLATE_NOOP("server", "Protocol already known"),
+QT_TRANSLATE_NOOP("server", "Bad number"),
 QT_TRANSLATE_NOOP("server", "Nickname is already in use"),
 QT_TRANSLATE_NOOP("server", "No checker rights"),
 QT_TRANSLATE_NOOP("server", "Authentication failed"),
 QT_TRANSLATE_NOOP("server", "60 seconds cooldown after kick"),
 QT_TRANSLATE_NOOP("server", "kicked"),
 QT_TRANSLATE_NOOP("server", "Ping timeout"),
+QT_TRANSLATE_NOOP("server", "bye"),
 QT_TRANSLATE_NOOP("server", "No such room"),
 QT_TRANSLATE_NOOP("server", "Room version incompatible to your hedgewars version"),
 QT_TRANSLATE_NOOP("server", "Joining restricted"),
 QT_TRANSLATE_NOOP("server", "Registered users only"),
 QT_TRANSLATE_NOOP("server", "You are banned in this room"),
-QT_TRANSLATE_NOOP("server", "Nickname already chosen"),
-QT_TRANSLATE_NOOP("server", "Illegal nickname"),
-QT_TRANSLATE_NOOP("server", "Protocol already known"),
-QT_TRANSLATE_NOOP("server", "Bad number"),
-QT_TRANSLATE_NOOP("server", "bye")
+QT_TRANSLATE_NOOP("server", "Empty config entry")
 };
diff --git a/QTfrontend/ui/page/pagemain.cpp b/QTfrontend/ui/page/pagemain.cpp
index f43c80b..d75376c 100644
--- a/QTfrontend/ui/page/pagemain.cpp
+++ b/QTfrontend/ui/page/pagemain.cpp
@@ -158,7 +158,7 @@ QString PageMain::randomTip()
 #else
     int platform = 3;
 #endif
-    if(Tips.length() == 0)
+    if(!Tips.length())
     {
         DataManager & dataMgr = DataManager::instance();
 
@@ -209,7 +209,11 @@ QString PageMain::randomTip()
 
         file.close();
     }
-    return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
+    
+    if(Tips.length())
+        return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
+    else
+        return QString();
 }
 
 void PageMain::toggleNetworkChoice()
diff --git a/cmake_modules/CMakePascalInformation.cmake b/cmake_modules/CMakePascalInformation.cmake
index c78e157..f2af300 100644
--- a/cmake_modules/CMakePascalInformation.cmake
+++ b/cmake_modules/CMakePascalInformation.cmake
@@ -9,9 +9,9 @@ set(CMAKE_SYSTEM_AND_Pascal_COMPILER_INFO_FILE
 include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
 
 # This section should actually be in Platform/${CMAKE_SYSTME_NAME}-fpc.cmake
-set(CMAKE_Pascal_FLAGS_DEBUG_INIT "-g -gl -gp -gh")
+set(CMAKE_Pascal_FLAGS_DEBUG_INIT "-O- -g -gl -gp -gh")
 set(CMAKE_Pascal_FLAGS_MINSIZEREL_INIT "-Os -dNDEBUG")
-set(CMAKE_Pascal_FLAGS_RELEASE_INIT "-O3 -dNDEBUG")
+set(CMAKE_Pascal_FLAGS_RELEASE_INIT "-O2 -dNDEBUG")
 set(CMAKE_Pascal_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -gl -gp")
 
 # This should be included before the _INIT variables are
diff --git a/cmake_modules/paths.cmake b/cmake_modules/paths.cmake
index ddf2623..6cdcd2d 100644
--- a/cmake_modules/paths.cmake
+++ b/cmake_modules/paths.cmake
@@ -14,8 +14,8 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${LIBRARY_OUTPUT_PATH})
 
 #resource paths
 if(UNIX AND NOT APPLE)
-    set(target_binary_install_dir "bin")
-    set(target_library_install_dir "lib")
+    set(target_binary_install_dir "bin" CACHE PATH "install dest for binaries")
+    set(target_library_install_dir "lib" CACHE PATH "install dest for libs")
 
     string(SUBSTRING "${DATA_INSTALL_DIR}" 0 1 sharepath_start)
     if (NOT (${sharepath_start} MATCHES "/"))
@@ -55,14 +55,16 @@ set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
 #which point to directories outside the build tree to the install RPATH
 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
 
-#paths where to find libraries (final slash not optional):
-# - the first is relative to the executable
-# - the second is the same directory of the executable (so it runs in bin/)
-# - the third one is the full path of the system dir
-#source http://www.cmake.org/pipermail/cmake/2008-January/019290.html
-set(CMAKE_INSTALL_RPATH "$ORIGIN/../${target_library_install_dir}/:$ORIGIN/:${CMAKE_INSTALL_PREFIX}/${target_library_install_dir}/")
-
-
-#install_name_tool magic for OS X
-set(CMAKE_INSTALL_NAME_DIR "@executable_path/../Frameworks")
-
+if(APPLE)
+    #@rpath mangling
+    set(CMAKE_INSTALL_RPATH "@executable_path/../Frameworks")
+    #install_name_tool for libraries
+    set(CMAKE_INSTALL_NAME_DIR "@executable_path/../Frameworks")
+else(APPLE)
+    #paths where to find libraries (final slash not optional):
+    # - the first is relative to the executable
+    # - the second is the same directory of the executable (so it runs in bin/)
+    # - the third one is the full path of the system dir
+    #source http://www.cmake.org/pipermail/cmake/2008-January/019290.html
+    set(CMAKE_INSTALL_RPATH "$ORIGIN/../${target_library_install_dir}/:$ORIGIN/:${CMAKE_INSTALL_PREFIX}/${target_library_install_dir}/")
+endif(APPLE)
diff --git a/cmake_modules/platform.cmake b/cmake_modules/platform.cmake
index bd5342c..fcb5bef 100644
--- a/cmake_modules/platform.cmake
+++ b/cmake_modules/platform.cmake
@@ -31,24 +31,15 @@ if(APPLE)
         set(minimum_macosx_version ${current_macosx_version})
     endif()
 
-    #lower systems don't have enough processing power anyway
-    if (minimum_macosx_version VERSION_LESS "10.4")
-        message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4")
-    endif()
-
-    #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2)
-    if(current_macosx_version VERSION_EQUAL "10.4")
-        find_package(SDL_mixer REQUIRED)
-        set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
-        set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
-        add_flag_append(CMAKE_C_FLAGS "${DYLIB_SMPEG} ${DYLIB_MIKMOD}")
-        add_flag_append(CMAKE_CXX_FLAGS "${DYLIB_SMPEG} ${DYLIB_MIKMOD}")
-        add_flag_append(CMAKE_Pascal_FLAGS "-k${DYLIB_SMPEG} -k${DYLIB_MIKMOD}")
+    #10.3 systems don't have enough processing power anyway
+    #10.4 does not have @rpath support (which SDL uses)
+    if(minimum_macosx_version VERSION_LESS "10.5")
+        message(FATAL_ERROR "Hedgewars is not supported on your version of Mac OS X")
     endif()
 
     if(NOT CMAKE_OSX_ARCHITECTURES)
         if(current_macosx_version VERSION_LESS "10.6")
-            #SDL is only 32 bit on lower OS
+            #SDL is only 32 bit on older OS version
             if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*")
                 set(CMAKE_OSX_ARCHITECTURES "ppc7400")
             else()
@@ -83,20 +74,21 @@ if(APPLE)
     #CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on
     #we need to provide the correct one when host and target differ
     if(NOT ${minimum_macosx_version} VERSION_EQUAL ${current_macosx_version})
-        if(minimum_macosx_version VERSION_EQUAL "10.4")
-            set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
-            set(CMAKE_C_COMPILER "/Developer/usr/bin/gcc-4.0")
-            set(CMAKE_CXX_COMPILER "/Developer/usr/bin/g++-4.0")
-        else()
-            string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
-            set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/")
-        endif()
+        string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
+        set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/")
         add_flag_append(CMAKE_Pascal_FLAGS "-XR${CMAKE_OSX_SYSROOT}")
         add_flag_append(CMAKE_Pascal_FLAGS "-k-macosx_version_min -k${minimum_macosx_version}")
     endif()
 
     #add user framework directory
     add_flag_append(CMAKE_Pascal_FLAGS "-Ff~/Library/Frameworks")
+
+    #workaround older cmake versions
+    if(${CMAKE_VERSION} VERSION_LESS "2.8.12")
+        add_flag_append(CMAKE_C_LINK_FLAGS "-Wl,-rpath -Wl,${CMAKE_INSTALL_RPATH}")
+        add_flag_append(CMAKE_CXX_LINK_FLAGS "-Wl,-rpath -Wl,${CMAKE_INSTALL_RPATH}")
+        add_flag_append(CMAKE_Pascal_LINK_FLAGS "-k-rpath -k${CMAKE_INSTALL_RPATH}")
+    endif()
 endif(APPLE)
 
 if(MINGW)
diff --git a/gameServer/Actions.hs b/gameServer/Actions.hs
index 447f254..2cebe4f 100644
--- a/gameServer/Actions.hs
+++ b/gameServer/Actions.hs
@@ -717,8 +717,9 @@ processAction (CheckFailed msg) = do
 
 processAction (CheckSuccess info) = do
     Just (CheckInfo fileName teams) <- client's checkInfo
+    p <- client's clientProto
     si <- gets serverInfo
-    io $ writeChan (dbQueries si) $ StoreAchievements (B.pack fileName) (map toPair teams) info
+    io $ writeChan (dbQueries si) $ StoreAchievements p (B.pack fileName) (map toPair teams) info
     io $ moveCheckedRecord fileName
     where
         toPair t = (teamname t, teamowner t)
diff --git a/gameServer/CoreTypes.hs b/gameServer/CoreTypes.hs
index 4ce60a2..8d6d988 100644
--- a/gameServer/CoreTypes.hs
+++ b/gameServer/CoreTypes.hs
@@ -275,7 +275,7 @@ data DBQuery =
     CheckAccount ClientIndex Int B.ByteString B.ByteString
     | ClearCache
     | SendStats Int Int
-    | StoreAchievements B.ByteString [(B.ByteString, B.ByteString)] [B.ByteString]
+    | StoreAchievements Word16 B.ByteString [(B.ByteString, B.ByteString)] [B.ByteString]
     | GetReplayName ClientIndex Int B.ByteString
     deriving (Show, Read)
 
diff --git a/gameServer/OfficialServer/checker.hs b/gameServer/OfficialServer/checker.hs
index 3c053d4..cb5d2bc 100644
--- a/gameServer/OfficialServer/checker.hs
+++ b/gameServer/OfficialServer/checker.hs
@@ -36,7 +36,7 @@ data Message = Packet [B.ByteString]
     deriving Show
 
 serverAddress = "netserver.hedgewars.org"
-protocolNumber = "45"
+protocolNumber = "47"
 
 getLines :: Handle -> IO [B.ByteString]
 getLines h = g
@@ -77,10 +77,10 @@ checkReplay coreChan msgs = do
     hFlush h
     hClose h
 
-    (_, _, Just hOut, _) <- createProcess (proc "/usr/home/unC0Rr/Sources/Hedgewars/Releases/0.9.19/bin/hwengine"
+    (_, _, Just hOut, _) <- createProcess (proc "/usr/home/unC0Rr/Sources/Hedgewars/Releases/0.9.20/bin/hwengine"
                 [fileName
                 , "--user-prefix", "/usr/home/unC0Rr/.hedgewars"
-                , "--prefix", "/usr/home/unC0Rr/Sources/Hedgewars/Releases/0.9.19/share/hedgewars/Data"
+                , "--prefix", "/usr/home/unC0Rr/Sources/Hedgewars/Releases/0.9.20/share/hedgewars/Data"
                 , "--nomusic"
                 , "--nosound"
                 , "--stats-only"
diff --git a/gameServer/OfficialServer/extdbinterface.hs b/gameServer/OfficialServer/extdbinterface.hs
index 0091a1e..f62de3a 100644
--- a/gameServer/OfficialServer/extdbinterface.hs
+++ b/gameServer/OfficialServer/extdbinterface.hs
@@ -26,9 +26,9 @@ dbQueryStats =
     "INSERT INTO gameserver_stats (players, rooms, last_update) VALUES (?, ?, UNIX_TIMESTAMP())"
 
 dbQueryAchievement =
-    "INSERT INTO achievements (time, typeid, userid, value, filename, location) \
+    "INSERT INTO achievements (time, typeid, userid, value, filename, location, protocol) \
     \ VALUES (?, (SELECT id FROM achievement_types WHERE name = ?), (SELECT uid FROM users WHERE name = ?), \
-    \ ?, ?, ?)"
+    \ ?, ?, ?, ?)"
 
 dbQueryReplayFilename = "SELECT filename FROM achievements WHERE id = ?"
 
@@ -70,15 +70,15 @@ dbInteractionLoop dbConn = forever $ do
         SendStats clients rooms ->
                 run dbConn dbQueryStats [SqlInt32 $ fromIntegral clients, SqlInt32 $ fromIntegral rooms] >> return ()
 --StoreAchievements (B.pack fileName) (map toPair teams) info
-        StoreAchievements fileName teams info -> 
-            mapM_ (run dbConn dbQueryAchievement) $ (parseStats fileName teams) info
+        StoreAchievements p fileName teams info -> 
+            mapM_ (run dbConn dbQueryAchievement) $ (parseStats p fileName teams) info
 
 
 readTime = read . B.unpack . B.take 19 . B.drop 8
 
 
-parseStats :: B.ByteString -> [(B.ByteString, B.ByteString)] -> [B.ByteString] -> [[SqlValue]]
-parseStats fileName teams = ps
+parseStats :: Word16 -> B.ByteString -> [(B.ByteString, B.ByteString)] -> [B.ByteString] -> [[SqlValue]]
+parseStats p fileName teams = ps
     where
     time = readTime fileName
     ps [] = []
@@ -91,6 +91,7 @@ parseStats fileName teams = ps
         , SqlInt32 (readInt_ value)
         , SqlByteString fileName
         , SqlByteString location
+        , SqlInt32 p
         ] : ps bs
     ps (b:bs) = ps bs
 
diff --git a/hedgewars/CMakeLists.txt b/hedgewars/CMakeLists.txt
index b5e4625..4f22453 100644
--- a/hedgewars/CMakeLists.txt
+++ b/hedgewars/CMakeLists.txt
@@ -8,6 +8,10 @@ include (CheckLibraryExists)
 
 
 enable_language(Pascal)
+add_flag_append(CMAKE_Pascal_FLAGS "-Cs2000000")
+add_flag_append(CMAKE_Pascal_FLAGS_DEBUG "-gv")
+add_flag_append(CMAKE_Pascal_FLAGS_RELEASE "-Xs")
+
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
diff --git a/hedgewars/uGearsHandlersMess.pas b/hedgewars/uGearsHandlersMess.pas
index bd8c5fd..677422a 100644
--- a/hedgewars/uGearsHandlersMess.pas
+++ b/hedgewars/uGearsHandlersMess.pas
@@ -5481,7 +5481,7 @@ begin
 
                 if (Timer = iceCollideWithGround) and ((GameTicks - Power) > groundFreezingTime) then
                     begin
-                    FillRoundInLand(target.x, target.y, iceRadius, icePixel);
+                    FillRoundInLandFT(target.x, target.y, iceRadius, icePixel);
                     landRect.x := min(max(target.x - iceRadius, 0), LAND_WIDTH - 1);
                     landRect.y := min(max(target.y - iceRadius, 0), LAND_HEIGHT - 1);
                     landRect.w := min(2*iceRadius, LAND_WIDTH - landRect.x - 1);
diff --git a/hedgewars/uLand.pas b/hedgewars/uLand.pas
index 71d3d37..c91b84d 100644
--- a/hedgewars/uLand.pas
+++ b/hedgewars/uLand.pas
@@ -123,7 +123,7 @@ begin
     
     for x:= 0 to LAND_WIDTH - 1 do
         for y:= 0 to LAND_HEIGHT - 1 do
-            if LandPixels[y, x] = 0 then
+            if Land[y, x] = 0 then
                 if s < y then
                     begin
                     for i:= max(s, y - 8) to y - 1 do
@@ -157,7 +157,7 @@ begin
     
     for y:= 0 to LAND_HEIGHT - 1 do
         for x:= 0 to LAND_WIDTH - 1 do
-            if LandPixels[y, x] = 0 then
+            if Land[y, x] = 0 then
                 if s < x then
                     begin
                     for i:= max(s, x - 8) to x - 1 do
diff --git a/hedgewars/uLandGraphics.pas b/hedgewars/uLandGraphics.pas
index 2609388..6a2ea66 100644
--- a/hedgewars/uLandGraphics.pas
+++ b/hedgewars/uLandGraphics.pas
@@ -40,7 +40,7 @@ function  DrawExplosion(X, Y, Radius: LongInt): Longword;
 procedure DrawHLinesExplosions(ar: PRangeArray; Radius: LongInt; y, dY: LongInt; Count: Byte);
 procedure DrawTunnel(X, Y, dX, dY: hwFloat; ticks, HalfWidth: LongInt);
 procedure FillRoundInLand(X, Y, Radius: LongInt; Value: Longword);
-function FillRoundInLand(X, Y, Radius: LongInt; fill: fillType): LongWord;
+function FillRoundInLandFT(X, Y, Radius: LongInt; fill: fillType): Longword;
 procedure ChangeRoundInLand(X, Y, Radius: LongInt; doSet, isCurrent: boolean);
 function  LandBackPixel(x, y: LongInt): LongWord;
 procedure DrawLine(X1, Y1, X2, Y2: LongInt; Color: Longword);
@@ -171,87 +171,87 @@ if Land[landY, landX] > 255 then Land[landY, landX] := Land[landY, landX] or lfI
 end;
 
 
-function FillLandCircleLine(y, fromPix, toPix: LongInt; fill : fillType): Longword;
+function FillLandCircleLineFT(y, fromPix, toPix: LongInt; fill : fillType): Longword;
 var px, py, i: LongInt;
 begin
 //get rid of compiler warning
     px := 0;
     py := 0;
-    FillLandCircleLine := 0;
+    FillLandCircleLineFT := 0;
     case fill of
     backgroundPixel:
-    for i:= fromPix to toPix do
-        begin
-        calculatePixelsCoordinates(i, y, px, py);
-        inc(FillLandCircleLine, drawPixelBG(i, y, px, py));
-        end;
+        for i:= fromPix to toPix do
+            begin
+            calculatePixelsCoordinates(i, y, px, py);
+            inc(FillLandCircleLineFT, drawPixelBG(i, y, px, py));
+            end;
     ebcPixel:
-    for i:= fromPix to toPix do
-        begin
-        calculatePixelsCoordinates(i, y, px, py);
-        drawPixelEBC(i, y, px, py);
-        end;
+        for i:= fromPix to toPix do
+            begin
+            calculatePixelsCoordinates(i, y, px, py);
+            drawPixelEBC(i, y, px, py);
+            end;
     nullPixel:
-    for i:= fromPix to toPix do
-        begin
-        calculatePixelsCoordinates(i, y, px, py);
-        if ((Land[y, i] and lfIndestructible) = 0) and (not disableLandBack or (Land[y, i] > 255))  then
-            LandPixels[py, px]:= 0
-        end;
+        for i:= fromPix to toPix do
+            begin
+            calculatePixelsCoordinates(i, y, px, py);
+            if ((Land[y, i] and lfIndestructible) = 0) and (not disableLandBack or (Land[y, i] > 255))  then
+                LandPixels[py, px]:= 0
+            end;
     icePixel:
-    for i:= fromPix to toPix do
-        begin
-        calculatePixelsCoordinates(i, y, px, py);
-        DrawPixelIce(i, y, px, py);
-        end;
+        for i:= fromPix to toPix do
+            begin
+            calculatePixelsCoordinates(i, y, px, py);
+            DrawPixelIce(i, y, px, py);
+            end;
     setNotCurrentMask:
-    for i:= fromPix to toPix do
-        begin
-        Land[y, i]:= Land[y, i] and lfNotCurrentMask;
-        end;
+        for i:= fromPix to toPix do
+            begin
+            Land[y, i]:= Land[y, i] and lfNotCurrentMask;
+            end;
     changePixelSetNotCurrent:
-    for i:= fromPix to toPix do
-        begin
-        if Land[y, i] and lfObjMask > 0 then
-            Land[y, i]:= (Land[y, i] and lfNotObjMask) or ((Land[y, i] and lfObjMask) - 1);
-        end;
+        for i:= fromPix to toPix do
+            begin
+            if Land[y, i] and lfObjMask > 0 then
+                Land[y, i]:= Land[y, i] - 1;
+            end;
     setCurrentHog:
-    for i:= fromPix to toPix do
-        begin
-        Land[y, i]:= Land[y, i] or lfCurrentHog
-        end;
+        for i:= fromPix to toPix do
+            begin
+            Land[y, i]:= Land[y, i] or lfCurrentHog
+            end;
     changePixelNotSetNotCurrent:
-    for i:= fromPix to toPix do
-        begin
-        if Land[y, i] and lfObjMask < lfObjMask then
-            Land[y, i]:= (Land[y, i] and lfNotObjMask) or ((Land[y, i] and lfObjMask) + 1)
-        end;
+        for i:= fromPix to toPix do
+            begin
+            if Land[y, i] and lfObjMask < lfObjMask then
+                Land[y, i]:= Land[y, i] + 1
+            end;
     end;
 end;
 
-function FillLandCircleSegment(x, y, dx, dy: LongInt; fill : fillType): Longword; inline;
+function FillLandCircleSegmentFT(x, y, dx, dy: LongInt; fill : fillType): Longword; inline;
 begin
-    FillLandCircleSegment := 0;
+    FillLandCircleSegmentFT := 0;
 if ((y + dy) and LAND_HEIGHT_MASK) = 0 then
-    inc(FillLandCircleSegment, FillLandCircleLine(y + dy, Max(x - dx, 0), Min(x + dx, LAND_WIDTH - 1), fill));
+    inc(FillLandCircleSegmentFT, FillLandCircleLineFT(y + dy, Max(x - dx, 0), Min(x + dx, LAND_WIDTH - 1), fill));
 if ((y - dy) and LAND_HEIGHT_MASK) = 0 then
-    inc(FillLandCircleSegment, FillLandCircleLine(y - dy, Max(x - dx, 0), Min(x + dx, LAND_WIDTH - 1), fill));
+    inc(FillLandCircleSegmentFT, FillLandCircleLineFT(y - dy, Max(x - dx, 0), Min(x + dx, LAND_WIDTH - 1), fill));
 if ((y + dx) and LAND_HEIGHT_MASK) = 0 then
-    inc(FillLandCircleSegment, FillLandCircleLine(y + dx, Max(x - dy, 0), Min(x + dy, LAND_WIDTH - 1), fill));
+    inc(FillLandCircleSegmentFT, FillLandCircleLineFT(y + dx, Max(x - dy, 0), Min(x + dy, LAND_WIDTH - 1), fill));
 if ((y - dx) and LAND_HEIGHT_MASK) = 0 then
-    inc(FillLandCircleSegment, FillLandCircleLine(y - dx, Max(x - dy, 0), Min(x + dy, LAND_WIDTH - 1), fill));
+    inc(FillLandCircleSegmentFT, FillLandCircleLineFT(y - dx, Max(x - dy, 0), Min(x + dy, LAND_WIDTH - 1), fill));
 end;
 
-function FillRoundInLand(X, Y, Radius: LongInt; fill: fillType): Longword; inline;
+function FillRoundInLandFT(X, Y, Radius: LongInt; fill: fillType): Longword; inline;
 var dx, dy, d: LongInt;
 begin
 dx:= 0;
 dy:= Radius;
 d:= 3 - 2 * Radius;
-FillRoundInLand := 0;
+FillRoundInLandFT := 0;
 while (dx < dy) do
     begin
-    inc(FillRoundInLand, FillLandCircleSegment(x, y, dx, dy, fill));
+    inc(FillRoundInLandFT, FillLandCircleSegmentFT(x, y, dx, dy, fill));
     if (d < 0) then
         d:= d + 4 * dx + 6
     else
@@ -262,7 +262,7 @@ while (dx < dy) do
     inc(dx)
     end;
 if (dx = dy) then
-    inc (FillRoundInLand, FillLandCircleSegment(x, y, dx, dy, fill));
+    inc (FillRoundInLandFT, FillLandCircleSegmentFT(x, y, dx, dy, fill));
 end;
 
 
@@ -343,13 +343,13 @@ end;
 procedure ChangeRoundInLand(X, Y, Radius: LongInt; doSet, isCurrent: boolean);
 begin
 if not doSet and isCurrent then
-    FillRoundInLand(X, Y, Radius, setNotCurrentMask)
+    FillRoundInLandFT(X, Y, Radius, setNotCurrentMask)
 else if not doSet and not IsCurrent then
-    FillRoundInLand(X, Y, Radius, changePixelSetNotCurrent)
+    FillRoundInLandFT(X, Y, Radius, changePixelSetNotCurrent)
 else if doSet and IsCurrent then
-    FillRoundInLand(X, Y, Radius, setCurrentHog)
+    FillRoundInLandFT(X, Y, Radius, setCurrentHog)
 else if doSet and not IsCurrent then
-    FillRoundInLand(X, Y, Radius, changePixelNotSetNotCurrent);
+    FillRoundInLandFT(X, Y, Radius, changePixelNotSetNotCurrent);
 end;
 
 procedure DrawIceBreak(x, y, iceRadius, iceHeight: Longint);
@@ -379,11 +379,11 @@ function DrawExplosion(X, Y, Radius: LongInt): Longword;
 var
     tx, ty, dx, dy: Longint;
 begin
-    DrawExplosion := FillRoundInLand(x, y, Radius, backgroundPixel);
+    DrawExplosion := FillRoundInLandFT(x, y, Radius, backgroundPixel);
     if Radius > 20 then
-        FillRoundInLand(x, y, Radius - 15, nullPixel);
+        FillRoundInLandFT(x, y, Radius - 15, nullPixel);
     FillRoundInLand(X, Y, Radius, 0);
-    FillRoundInLand(x, y, Radius + 4, ebcPixel);
+    FillRoundInLandFT(x, y, Radius + 4, ebcPixel);
     tx:= Max(X - Radius - 5, 0);
     dx:= Min(X + Radius + 5, LAND_WIDTH) - tx;
     ty:= Max(Y - Radius - 5, 0);
diff --git a/misc/libphysfs/platform_unix.c b/misc/libphysfs/platform_unix.c
index 51af43a..05356df 100644
--- a/misc/libphysfs/platform_unix.c
+++ b/misc/libphysfs/platform_unix.c
@@ -193,7 +193,7 @@ static char *findBinaryInPath(const char *bin, char *envr)
 
         if (access(exe, X_OK) == 0)  /* Exists as executable? We're done. */
         {
-            exe[size - binlen] = '\0'; /* chop off filename, leave '/' */
+            exe[size - binlen - 1] = '\0'; /* chop off filename, leave '/' */
             return exe;
         } /* if */
 
diff --git a/share/hedgewars/Data/misc/hedgewars.desktop b/share/hedgewars/Data/misc/hedgewars.desktop
index f8bd895..47f4d0b 100755
--- a/share/hedgewars/Data/misc/hedgewars.desktop
+++ b/share/hedgewars/Data/misc/hedgewars.desktop
@@ -20,5 +20,5 @@ Icon=hedgewars
 Exec=hedgewars %U
 Terminal=false
 StartupNotify=false
-Categories=Application;Game;StrategyGame;
+Categories=Game;StrategyGame;
 MimeType=x-scheme-handler/hwplay;
diff --git a/share/version_info.txt b/share/version_info.txt
index 5655aec..2cc4d44 100644
--- a/share/version_info.txt
+++ b/share/version_info.txt
@@ -1,3 +1,3 @@
 Hedgewars versioning information, do not modify
-rev 9821
-hash 2b8f928faa14
+rev 9860
+hash af0520a6bf00
diff --git a/tools/CreateMacBundle.cmake.in b/tools/CreateMacBundle.cmake.in
index 3b0bcc8..2813900 100644
--- a/tools/CreateMacBundle.cmake.in
+++ b/tools/CreateMacBundle.cmake.in
@@ -19,16 +19,18 @@ if(NOT ${NOPNG})
 endif()
 
 if(doBundle EQUAL 1)
-    execute_process(COMMAND cp -pPR ${sdl_library_only} ${frameworks_dir}/SDL.framework)
-    execute_process(COMMAND cp -pPR ${SDLIMAGE_LIBRARY} ${frameworks_dir}/SDL_image.framework)
-    execute_process(COMMAND cp -pPR ${SDLNET_LIBRARY}   ${frameworks_dir}/SDL_net.framework)
-    execute_process(COMMAND cp -pPR ${SDLTTF_LIBRARY}   ${frameworks_dir}/SDL_ttf.framework)
-    execute_process(COMMAND cp -pPR ${SDLMIXER_LIBRARY} ${frameworks_dir}/SDL_mixer.framework)
-    execute_process(COMMAND cp -pPR ${OGG_LIBRARY}      ${frameworks_dir}/Ogg.framework)
-    execute_process(COMMAND cp -pPR ${VORBIS_LIBRARY}   ${frameworks_dir}/Vorbis.framework)
+    execute_process(COMMAND cp ${PNG_LIBRARY} ${frameworks_dir})
+
+    execute_process(COMMAND cp -pPR ${sdl_library_only} ${frameworks_dir})
+    execute_process(COMMAND cp -pPR ${SDLIMAGE_LIBRARY} ${frameworks_dir})
+    execute_process(COMMAND cp -pPR ${SDLNET_LIBRARY}   ${frameworks_dir})
+    execute_process(COMMAND cp -pPR ${SDLTTF_LIBRARY}   ${frameworks_dir})
+    execute_process(COMMAND cp -pPR ${SDLMIXER_LIBRARY} ${frameworks_dir})
+    execute_process(COMMAND cp -pPR ${OGG_LIBRARY}      ${frameworks_dir})
+    execute_process(COMMAND cp -pPR ${VORBIS_LIBRARY}   ${frameworks_dir})
 
     if(${SPARKLE_FOUND})
-        execute_process(COMMAND cp -pPR ${SPARKLE_LIBRARY} ${frameworks_dir}/Sparkle.framework)
+        execute_process(COMMAND cp -pPR ${SPARKLE_LIBRARY} ${frameworks_dir})
     endif()
     message(STATUS "Frameworks and libraries successfully copied...")
 else()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/hedgewars.git



More information about the Pkg-games-commits mailing list