merge hedgeroid
authorXeli
Thu, 04 Aug 2011 17:44:55 +0200
branchhedgeroid
changeset 5495 272ed78e59a7
parent 5479 b9aed3de7c27 (current diff)
parent 5492 a0455a050ca8 (diff)
child 5497 011f765e560c
merge
CMakeLists.txt
hedgewars/PascalExports.pas
hedgewars/SDLh.pas
hedgewars/uAI.pas
hedgewars/uLand.pas
hedgewars/uScript.pas
hedgewars/uWorld.pas
--- a/.hgtags	Thu Aug 04 17:41:07 2011 +0200
+++ b/.hgtags	Thu Aug 04 17:44:55 2011 +0200
@@ -11,14 +11,34 @@
 ae71dff40ecc405a55647b0f52f628674c1ebb51 0.9.14.1-release
 ae0c6c35414ddc120c8ae94035f287f03a752e78 Hedgewars-iOS-1.2.3
 19ba506ed86b6306f7cd01b2613069391f4e34e6 0.9.13-release
+19ba506ed86b6306f7cd01b2613069391f4e34e6 0.9.13
+0000000000000000000000000000000000000000 0.9.13
 7d8d62a5566ed84688c596b8f55e83cfd171683e 0.9.12-release
+7d8d62a5566ed84688c596b8f55e83cfd171683e 0.9.12
+0000000000000000000000000000000000000000 0.9.12
 89d0fa6734af24e439755b102080cf6268c50aa6 0.9.11-release
+89d0fa6734af24e439755b102080cf6268c50aa6 0.9.11
+0000000000000000000000000000000000000000 0.9.11
 990f341a2332a7bef0822b313854544228375e36 0.9.10-release
+990f341a2332a7bef0822b313854544228375e36 0.9.10
+0000000000000000000000000000000000000000 0.9.10
 8c3e71880f492c61086c2ca2541b52f82a5957b0 0.9.9.2-release
+8c3e71880f492c61086c2ca2541b52f82a5957b0 0.9.9.2
+0000000000000000000000000000000000000000 0.9.9.2
 040cfeac98127d35f22ac8433b06b09e50d5b28f 0.9.8-release
 44cc464de8f320e8018ed9e9cbb7281fd42d0a00 0.9.7-release
 a32f1eed51a6df2513d471cb849eb110545c50b3 0.9.6-release
 6bc4389344c7d7f41bcbc46f986c1dcf88846189 0.9.5-release
 52c7981594f6bc3a7ed1b297b80cb38082015401 0.9.4-release
+52c7981594f6bc3a7ed1b297b80cb38082015401 0.9.4
+0000000000000000000000000000000000000000 0.9.4
 9b2abea1071f83da8fbda70b0bf6cec0ca481b07 0.9.3-release
+9b2abea1071f83da8fbda70b0bf6cec0ca481b07 0.9.3
+0000000000000000000000000000000000000000 0.9.3
 69f1dc50a1faddf1a52080600a3f4771bedd45c1 0.9.2-release
+69f1dc50a1faddf1a52080600a3f4771bedd45c1 0.9.2
+0000000000000000000000000000000000000000 0.9.2
+fee68e3a303998fdfcc69f74775dc84a36f587fb 0.9.9
+0000000000000000000000000000000000000000 0.9.9
+fee68e3a303998fdfcc69f74775dc84a36f587fb 0.9.9.1
+0000000000000000000000000000000000000000 0.9.9.1
--- a/CMakeLists.txt	Thu Aug 04 17:41:07 2011 +0200
+++ b/CMakeLists.txt	Thu Aug 04 17:44:55 2011 +0200
@@ -1,11 +1,15 @@
 project(hedgewars)
 
+
+#initialise cmake environment
 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
 FOREACH(policy CMP0003 CMP0012)
 	IF(POLICY ${policy})
 		CMAKE_POLICY(SET ${policy} NEW)
 	ENDIF()
 ENDFOREACH()
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
+
 
 #detect Mercurial revision (if present)
 set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
@@ -20,7 +24,7 @@
 				     OUTPUT_VARIABLE version_suffix
 				     )
 			STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix})
-			STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3:\\1" version_suffix ${version_suffix})
+			STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3-\\1" version_suffix ${version_suffix})
 			IF (HGCHANGED)
 				MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)")
 			ELSE()
@@ -33,11 +37,14 @@
 	set(HW_DEV false)
 ENDIF()
 
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
 
-set( CPACK_PACKAGE_VERSION_MAJOR 0 )
-set( CPACK_PACKAGE_VERSION_MINOR 9 )
-set( CPACK_PACKAGE_VERSION_PATCH 16${version_suffix} )
+#versioning
+set(CPACK_PACKAGE_VERSION_MAJOR 0)
+set(CPACK_PACKAGE_VERSION_MINOR 9)
+set(CPACK_PACKAGE_VERSION_PATCH 16${version_suffix})
+set(HEDGEWARS_PROTO_VER 38)
+set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+
 
 #set some safe values
 IF(NOT WITH_SERVER)
@@ -49,6 +56,7 @@
 set(target_dir "bin")
 
 
+#bundle .app setup
 if(APPLE)
 	set(CMAKE_FIND_FRAMEWORK "FIRST")
 
@@ -165,8 +173,6 @@
 endif()
 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
 
-set( HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" )
-set( HEDGEWARS_PROTO_VER 38 )
 
 if(WITH_SERVER)
 	find_program(ghc_executable ghc)
@@ -195,8 +201,8 @@
 	add_subdirectory(tools)
 endif()
 
-# CPack vars
 
+# CPack variables
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy")
 set(CPACK_PACKAGE_VENDOR "Hedgewars Project")
 set(CPACK_PACKAGE_FILE_NAME "hedgewars-${HEDGEWARS_VERSION}")
@@ -278,3 +284,4 @@
 )
 
 include(CPack)
+
--- a/ChangeLog.txt	Thu Aug 04 17:41:07 2011 +0200
+++ b/ChangeLog.txt	Thu Aug 04 17:44:55 2011 +0200
@@ -1,6 +1,46 @@
 + features
 * bugfixes
 
+0.9.15 -> ???:
+ + New modes: The Specialists, Space Invasion
+ + Installing content (anything under Data/ - maps, sounds, and any such stuff) to user profile allows custom adding/overriding of any Data/ content
+ + Sudden Death art
+ + New Weapon/Utility: Land Spray Gun
+ + New Game mode: Tag team
+ + Allow up to 8 teams in a game
+ + Shoppa scheme by default resets ammo
+ + Shots are on a tenth of a second delay instead of a 1 and a quarter second delay (fast deagle/portal fire)
+ + Defective mines explode if they take enough damage
+ + Rope head can attach to hogs/crates/barrels again (rope still passes through them)
+ + Control of grenade bounce
+ + Drill Strike bombs don't explode when leaving ground, but after a (customizable!) timer
+ + Ukranian localization of Default voice. support for localized voices
+ + Theme cleanup, including the new theme config file change
+ + Improvements in scoring and tracking damage
+ + Camera tracking now toggleable
+ + Mudball does not end turn
+ + Indicator for height of plane when using napalm
+ + Land smoothing (looks less pixelated on generation and damage)
+ + Improved lua script support (e.g. possibility to change hats)
+ * Prevent portaling to impossible locations better
+ * Snow accumulates more smoothly
+ * Rope should be less sticky now
+ * Fix for last portal shot always being yellow
+ * More accurate napalm strike drop location
+ * AI fixes
+ * Fixed locales, such as korean
+ * Code refactoring
+ * Various bug/leak fixes
+
+Frontend/Menu and Netgame:
+ + Drawing straight lines in drawn map mode
+ + Autokick ignored players joining your room
+ + Improved nick sorting in lobby and rooms. (not case-sensitive, letters first, friend @ top, ignored @ bottom)
+ + Display player count in lobby
+ + Lobby: Player names of online players can be clicked in chat directly so that you don't have to find them in the player list
+ * Fix invisible icons in popup menus
+ * Various fixes and adjustments
+
 0.9.14 -> 0.9.15:
  + Ability to create, save and load hand drawn maps
  + New maps: Capture the Flag (Blizzard) Map
--- a/QTfrontend/gamecfgwidget.cpp	Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/gamecfgwidget.cpp	Thu Aug 04 17:44:55 2011 +0200
@@ -49,10 +49,13 @@
 
     QGridLayout *GBoxOptionsLayout = new QGridLayout(GBoxOptions);
 
-    GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Gameplay"), GBoxOptions), 0, 0);
+    QLabel *titleLabel = new QLabel(QLabel::tr("Game Options"), GBoxOptions);
+    titleLabel->setMargin(7);    // TODO: make the text larger/richer!!!!
+    GBoxOptionsLayout->addWidget(titleLabel, 0, 0, 1, 0, Qt::AlignHCenter);
+    GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), GBoxOptions), 1, 0);
 
     Scripts = new QComboBox(GBoxOptions);
-    GBoxOptionsLayout->addWidget(Scripts, 0, 1);
+    GBoxOptionsLayout->addWidget(Scripts, 1, 1);
 
     Scripts->addItem("Normal");
     Scripts->insertSeparator(1);
@@ -91,7 +94,7 @@
     connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
 
     QWidget *SchemeWidget = new QWidget(GBoxOptions);
-    GBoxOptionsLayout->addWidget(SchemeWidget, 1, 0, 1, 2);
+    GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
 
     QGridLayout *SchemeWidgetLayout = new QGridLayout(SchemeWidget);
     SchemeWidgetLayout->setMargin(0);
@@ -100,7 +103,7 @@
     SchemeWidgetLayout->addWidget(GameSchemes, 0, 2);
     connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int)));
 
-    SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Game scheme"), SchemeWidget), 0, 0);
+    SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Scheme"), SchemeWidget), 0, 0);
 
     QPixmap pmEdit(":/res/edit.png");
     
@@ -127,8 +130,6 @@
     SchemeWidgetLayout->addWidget(goToWeaponPage, 1, 3);
     connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons()));
 
-    //GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Bind schemes with weapons"), GBoxOptions), 2, 0);
-
     bindEntries = new QCheckBox(SchemeWidget);
     bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon"));
     bindEntries->setChecked(true);
@@ -136,7 +137,6 @@
     bindEntries->setStyleSheet( "QCheckBox::indicator:checked   { image: url(\":/res/lock.png\"); }"
                                 "QCheckBox::indicator:unchecked { image: url(\":/res/unlock.png\");   }" );
     SchemeWidgetLayout->addWidget(bindEntries, 0, 1, 0, 1, Qt::AlignVCenter);
-    //GBoxOptionsLayout->addWidget(bindEntries, 2, 2);
 
     connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &)));
     connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &)));
--- a/QTfrontend/hwconsts.h	Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/hwconsts.h	Thu Aug 04 17:44:55 2011 +0200
@@ -99,13 +99,24 @@
 
 
 // see http://en.wikipedia.org/wiki/List_of_colors
-#define HW_TEAMCOLOR_ARRAY  { 0xff007fff, /* azure */ \
-                              0xffdd0000, /* classic red */ \
-                              0xff3e9321, /* classic green */ \
-                              0xffa23dbb, /* classic purple */ \
-                              0xffffb347, /* pastel orange */ \
-                              0xffcfcfc4, /* pastel gray */ \
-                              0xffbff000, /* lime */ \
-                              0xffffef00, /* yellow */ \
+/*define HW_TEAMCOLOR_ARRAY  {0xff007fff, /. azure          ./ \
+                              0xffdd0000, /. classic red    ./ \
+                              0xff3e9321, /. classic green  ./ \
+                              0xffa23dbb, /. classic purple ./ \
+                              0xffffb347, /. pastel orange  ./ \
+                              0xffcfcfc4, /. pastel gray    ./ \
+                              0xffbff000, /. lime           ./ \
+                              0xffffef00, /. yellow         ./ \
+                              // add new colors here 
+                              0 }*/
+#define HW_TEAMCOLOR_ARRAY  { 0xffd12b42, /* red    */ \
+                              0xff4980c1, /* blue   */ \
+                              0xff6ab530, /* green  */ \
+                              0xffbc64c4, /* purple */ \
+                              0xffe76d14, /* orange */ \
+                              0xff3fb6e6, /* cyan   */ \
+                              0xffe3e90c, /* yellow */ \
+                              0xff61d4ac, /* mint   */ \
+                              0xfff1c3e1, /* pink   */ \
                               /* add new colors here */ \
                               0 }
--- a/QTfrontend/mapContainer.cpp	Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/mapContainer.cpp	Thu Aug 04 17:44:55 2011 +0200
@@ -175,7 +175,7 @@
     connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int)));
 
     maze_size_label = new QLabel(tr("Type"), mapWidget);
-    mainLayout.addWidget(maze_size_label, 2, 0);
+    mapLayout->addWidget(maze_size_label, 2, 0);
     maze_size_label->hide();
     cbMazeSize = new QComboBox(mapWidget);
     cbMazeSize->addItem(tr("Small tunnels"), 0);
--- a/QTfrontend/pagemain.cpp	Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/pagemain.cpp	Thu Aug 04 17:44:55 2011 +0200
@@ -91,7 +91,7 @@
         Tips << tr("Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.", "Tips");
         Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
         Tips << tr("The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.", "Tips");
-        Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on it's velocity, so try to not use full power.", "Tips");
+        Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.", "Tips");
         Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
         Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
         Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
--- a/QTfrontend/pageoptions.cpp	Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/pageoptions.cpp	Thu Aug 04 17:44:55 2011 +0200
@@ -328,6 +328,12 @@
             CBStereoMode->addItem(QComboBox::tr("Side-by-side"));
             CBStereoMode->addItem(QComboBox::tr("Top-Bottom"));
             CBStereoMode->addItem(QComboBox::tr("Wiggle"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Cyan grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Cyan/Red grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Blue grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Blue/Red grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Green grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Green/Red grayscale"));
             connect(CBStereoMode, SIGNAL(currentIndexChanged(int)), this, SLOT(forceFullscreen(int)));
 
             GBAstereolayout->addWidget(CBStereoMode);
--- a/QTfrontend/teamselhelper.cpp	Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/teamselhelper.cpp	Thu Aug 04 17:44:55 2011 +0200
@@ -49,7 +49,7 @@
         QIcon(QString(":/res/botlevels/net%1.png").arg(m_team.difficulty))
         : QIcon(QString(":/res/botlevels/%1.png").arg(m_team.difficulty));
 
-    butt = new QPushButton(difficultyIcon, team.TeamName, this);
+    butt = new QPushButton(difficultyIcon, team.TeamName.replace("&","&&"), this);
     butt->setFlat(true);
     butt->setToolTip(team.Owner);
     mainLayout.addWidget(butt);
--- a/gameServer/Actions.hs	Thu Aug 04 17:41:07 2011 +0200
+++ b/gameServer/Actions.hs	Thu Aug 04 17:44:55 2011 +0200
@@ -45,6 +45,8 @@
     | KickClient ClientIndex
     | KickRoomClient ClientIndex
     | BanClient NominalDiffTime B.ByteString ClientIndex
+    | BanIP B.ByteString NominalDiffTime B.ByteString
+    | BanList
     | ChangeMaster
     | RemoveClientTeams ClientIndex
     | ModifyClient (ClientInfo -> ClientInfo)
@@ -393,12 +395,25 @@
     modify (\s -> s{clientIndex = Just banId})
     clHost <- client's host
     currentTime <- io getCurrentTime
-    let msg = B.concat ["Ban for ", B.pack . show $ seconds, "seconds (", reason, ")"]
+    let msg = B.concat ["Ban for ", B.pack . show $ seconds, " (", reason, ")"]
     mapM_ processAction [
         AddIP2Bans clHost msg (addUTCTime seconds currentTime)
         , KickClient banId
         ]
 
+processAction (BanIP ip seconds reason) = do
+    currentTime <- io getCurrentTime
+    let msg = B.concat ["Ban for ", B.pack . show $ seconds, " (", reason, ")"]
+    processAction $
+        AddIP2Bans ip msg (addUTCTime seconds currentTime)
+
+processAction BanList = do
+    ch <- client's sendChan
+    bans <- gets (bans . serverInfo)
+    processAction $
+        AnswerClients [ch] ["BANLIST", B.pack $ show bans]
+    
+
 
 processAction (KickRoomClient kickId) = do
     modify (\s -> s{clientIndex = Just kickId})
@@ -442,15 +457,13 @@
     si <- gets serverInfo
     let validBans = filter (checkNotExpired clTime) $ bans si
     let ban = L.find (checkBan clHost clNick) $ validBans
-    when (isJust ban) $
-        mapM_ processAction [
+    mapM_ processAction $
         ModifyServerInfo (\s -> s{bans = validBans})
-        , ByeClient (getBanReason $ fromJust ban)
-        ]
+        : [ByeClient (getBanReason $ fromJust ban) | isJust ban]
     where
         checkNotExpired testTime (BanByIP _ _ time) = testTime `diffUTCTime` time <= 0
         checkNotExpired testTime (BanByNick _ _ time) = testTime `diffUTCTime` time <= 0
-        checkBan ip _ (BanByIP bip _ _) = bip == ip
+        checkBan ip _ (BanByIP bip _ _) = bip `B.isPrefixOf` ip
         checkBan _ n (BanByNick bn _ _) = bn == n
         getBanReason (BanByIP _ msg _) = msg
         getBanReason (BanByNick _ msg _) = msg
--- a/gameServer/HWProtoLobbyState.hs	Thu Aug 04 17:41:07 2011 +0200
+++ b/gameServer/HWProtoLobbyState.hs	Thu Aug 04 17:44:55 2011 +0200
@@ -154,6 +154,16 @@
     cl <- thisClient
     banId <- clientByNick banNick
     return [BanClient 60 reason (fromJust banId) | isAdministrator cl && isJust banId && fromJust banId /= ci]
+    
+handleCmd_lobby ["BANIP", ip, reason, duration] = do
+    (ci, _) <- ask
+    cl <- thisClient
+    return [BanIP ip (readInt_ duration) reason | isAdministrator cl]
+    
+handleCmd_lobby ["BANLIST"] = do
+    (ci, _) <- ask
+    cl <- thisClient
+    return [BanList | isAdministrator cl]
 
 
 handleCmd_lobby ["SET_SERVER_VAR", "MOTD_NEW", newMessage] = do
--- a/hedgewars/ArgParsers.inc	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/ArgParsers.inc	Thu Aug 04 17:44:55 2011 +0200
@@ -50,7 +50,14 @@
     UserNick:= DecodeBase64(ParamStr(14));
     val(ParamStr(15), cReducedQuality);
     val(ParamStr(16), tmp);
-    cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)));
+    cGrayScale:= false;
+    if (tmp > 9) and (tmp < 16) then 
+        begin
+        cGrayScale:= true;
+        cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-9)))
+        end
+    else if tmp <= 9 then cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)))
+    else cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-6)));
     cLocaleFName:= ParamStr(17);
 end;
 
--- a/hedgewars/GSHandlers.inc	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/GSHandlers.inc	Thu Aug 04 17:44:55 2011 +0200
@@ -156,12 +156,8 @@
                             AddCaption(Format(GetEventString(eidDrowned), Gear^.Hedgehog^.Name), cWhiteColor, capgrpMessage);
                             end
                         end
-                    else if Gear^.Kind = gtFlake then
-                        begin
-                        DeleteGear(Gear);
-                        exit
-                        end
-                    else Gear^.doStep := @doStepDrowningGear
+                    else Gear^.doStep := @doStepDrowningGear;
+                    if Gear^.Kind = gtFlake then exit // skip splashes 
                 end;
             if ((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius)) or
                (isSubmersible and (Y < cWaterLine + 2 + Gear^.Radius) and ((CurAmmoGear^.Pos = 0) and (CurAmmoGear^.dY < _0_01))) then
@@ -361,12 +357,12 @@
     else
         Gear^.State := Gear^.State or      gstMoving;
 
-    if (Gear^.nImpactSounds > 0) then
-        if ((Gear^.Damage <> 0) or ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or
-           gstMoving))) and
-           ((Gear^.dX.QWordValue > _0_1.QWordValue) or (Gear^.dY.QWordValue > _0_1.QWordValue)) then
-            PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true
-            );
+    if (Gear^.nImpactSounds > 0) and 
+       ((Gear^.Damage <> 0) or 
+          ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or gstMoving))) and
+       ((Gear^.dX.QWordValue > _0_1.QWordValue) or 
+          (Gear^.dY.QWordValue > _0_1.QWordValue)) then
+        PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true);
 end;
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -500,9 +496,9 @@
         gX := hwRound(Gear^.X);
         gY := hwRound(Gear^.Y);
         //doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 5, EXPLAutoSound);
-        for i:= 0 to 20 do
+        for i:= 0 to 24 do
         begin
-            dX := AngleCos(i * 2) * ((_0_1*(i div 5))) * (GetRandom + _1);
+            dX := AngleCos(i * 2) * ((_0_15*(i div 5))) * (GetRandom + _1);
             dY := AngleSin(i * 8) * _0_5 * (GetRandom + _1);
             Fire := AddGear(gX, gY, gtFlame, 0, dX, dY, 0);
             Fire^.State := Fire^.State or gsttmpFlag;
@@ -595,6 +591,7 @@
 draw:= false;
 if gun then
     begin
+    Gear^.State:= Gear^.State and not gstInvisible;
     doStepFallingGear(Gear);
     CheckCollision(Gear);
     if ((Gear^.State and gstCollision) <> 0) or ((Gear^.State and gstMoving) = 0) then draw:= true;
@@ -733,7 +730,8 @@
         exit
         end;
     Gear^.X:= int2hwFloat(GetRandom(LAND_WIDTH+1024)-512);
-    Gear^.Y:= int2hwFloat(750+(GetRandom(50)-25))
+    Gear^.Y:= int2hwFloat(750+(GetRandom(50)-25));
+    Gear^.State:= Gear^.State or gstInvisible;
     end
 end;
 
@@ -2113,6 +2111,7 @@
     gX,gY,i: LongInt;
     sticky: Boolean;
     vgt: PVisualGear;
+    tdX,tdY: HWFloat;
 begin
     sticky:= (Gear^.State and gsttmpFlag) <> 0;
     if not sticky then AllInactive := false;
@@ -2158,7 +2157,15 @@
         if sticky then
             begin
             Gear^.Radius := 7;
-            AmmoShove(Gear, 2, 30);
+            tdX:= Gear^.dX;
+            tdY:= Gear^.dY;
+            Gear^.dX.QWordValue:= 214748365;
+            Gear^.dY.QWordValue:= 429496730;
+            Gear^.dX.isNegative:= getrandom(2)<>1;
+            Gear^.dY.isNegative:= true;
+            AmmoShove(Gear, 2, 125);
+            Gear^.dX:= tdX;
+            Gear^.dY:= tdY;
             Gear^.Radius := 1
             end;
         if Gear^.Timer > 0 then
@@ -2176,10 +2183,18 @@
                 if ((GameTicks and $1) = 0) then
                     begin
                     Gear^.Radius := 7;
-                    AmmoShove(Gear, 4, 150);
+                    tdX:= Gear^.dX;
+                    tdY:= Gear^.dY;
+                    Gear^.dX.QWordValue:= 214748365;
+                    Gear^.dY.QWordValue:= 429496730;
+                    Gear^.dX.isNegative:= getrandom(2)<>1;
+                    Gear^.dY.isNegative:= true;
+                    AmmoShove(Gear, 6, 100);
+                    Gear^.dX:= tdX;
+                    Gear^.dY:= tdY;
                     Gear^.Radius := 1;
                     end
-                else if ((GameTicks and $3) = 3) then doMakeExplosion(gX, gY, 6, Gear^.Hedgehog, 0);//, EXPLNoDamage); 
+                else if ((GameTicks and $3) = 3) then doMakeExplosion(gX, gY, 8, Gear^.Hedgehog, 0);//, EXPLNoDamage); 
                 //DrawExplosion(gX, gY, 4);
                 if ((GameTicks and $7) = 0) and (Random(2) = 0) then
                     for i:= 1 to Random(2)+1 do
@@ -3756,13 +3771,19 @@
            or (iterator^.Y < Gear^.Y - r)
            or (iterator^.Y > Gear^.Y + r) then
             continue;
-
+(*
+Square check causes fail on many innocent cases. the 3/4s and 1.5 fudge factors... help.
+Might still need to remove this section
+*)
         //Will if fit through?
         //set r to be portal distance
-        r := Int2hwFloat(Gear^.Radius +1);
-
-        o_x := hwRound(conPortal^.X + conPortal^.dX);
-        o_y := hwRound(conPortal^.Y + conPortal^.dY);
+        r := Int2hwFloat(Gear^.Radius * 3 div 4);
+        o_x := hwRound(conPortal^.X + (conPortal^.dX*_1_5));
+        o_y := hwRound(conPortal^.Y + (conPortal^.dY*_1_5));
+        //r := Int2hwFloat(Gear^.Radius +1);
+
+        //o_x := hwRound(conPortal^.X + conPortal^.dX);
+        //o_y := hwRound(conPortal^.Y + conPortal^.dY);
         r_x := hwRound(conPortal^.X+r*conPortal^.dX);
         r_y := hwRound(conPortal^.Y+r*conPortal^.dY);
         rr_x := hwRound(conPortal^.X+r*conPortal^.dX*2);
@@ -4391,18 +4412,18 @@
     if Gear^.Timer = 0 then
         begin
         dec(Gear^.Health);
-        if (Gear^.Health mod 10) = 0 then
+        if (Gear^.Health mod 5) = 0 then
             begin
             rx := rndSign(getRandom * _0_1);
             ry := rndSign(getRandom * _0_1);
-            speed := _0_8 * (_10 / Gear^.Tag);
+            speed := _0_5 * (_10 / Gear^.Tag);
     
             Fire := AddGear(gx, gy, gtFlame, 0,
                         SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
                 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
             Fire^.State := Fire^.State or gsttmpFlag;
             
-            if (Gear^.Health mod 20) = 0 then 
+            if (Gear^.Health mod 30) = 0 then 
                 Fire := AddGear(gx, gy, gtFlame, 0,
                             SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
                     AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
@@ -4470,18 +4491,16 @@
     if Gear^.Timer = 0 then
         begin
         dec(Gear^.Health);
-        if (Gear^.Health mod 5) = 0 then
-            begin
-            rx := rndSign(getRandom * _0_1);
-            ry := rndSign(getRandom * _0_1);
-            speed := (_3 / Gear^.Tag);
-    
-            Flake := AddGear(gx, gy, gtFlake, 0, _0, _0, 0);
-            Flake^.dX:= SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx;
-            Flake^.dY:= AngleCos(HHGear^.Angle) * ( - speed) + ry;
-            Flake^.State := Flake^.State or gsttmpFlag;
+
+        rx := rndSign(getRandom * _0_1);
+        ry := rndSign(getRandom * _0_1);
+        speed := (_3 / Gear^.Tag);
+
+        Flake := AddGear(gx, gy, gtFlake, 0, _0, _0, 0);
+        Flake^.dX:= SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx;
+        Flake^.dY:= AngleCos(HHGear^.Angle) * ( - speed) + ry;
+        Flake^.State := Flake^.State or gsttmpFlag;
             
-            end;
         Gear^.Timer:= Gear^.Tag
         end;
 
--- a/hedgewars/HHHandlers.inc	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/HHHandlers.inc	Thu Aug 04 17:44:55 2011 +0200
@@ -77,7 +77,7 @@
             ammoidx:= -1;
             //TryDo(i < 2, 'Engine bug: no ammo in current slot', true)
             end;
-        until ((Ammo^[slot, ammoidx].Count > 0) and (Team^.Clan^.TurnNumber > Ammoz[Ammo^[slot, ammoidx].AmmoType].SkipTurns)) or (i = 1)
+        until (i = 1) or ((Ammo^[slot, ammoidx].Count > 0) and (Team^.Clan^.TurnNumber > Ammoz[Ammo^[slot, ammoidx].AmmoType].SkipTurns))
         end 
     else
         begin
--- a/hedgewars/PascalExports.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/PascalExports.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -80,7 +80,6 @@
 procedure HW_zoomReset; cdecl; export;
 begin
     ZoomValue:= cZoomVal;
-    //middleClick:= true;
     // center the camera at current hog
     if CurrentHedgehog <> nil then
         followGear:= CurrentHedgehog^.Gear;
@@ -237,8 +236,8 @@
 
 function HW_isAmmoMenuNotAllowed: boolean; cdecl; export;
 begin;
-    exit ( (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) or
-           ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) );
+    exit( (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) or
+          ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) );
 end;
 
 function HW_isWeaponRequiringClick: boolean; cdecl; export;
@@ -268,7 +267,7 @@
 function HW_isWeaponRope: boolean cdecl; export;
 begin
     if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Ammo <> nil) and (CurrentHedgehog^.BotLevel = 0) then
-        exit (CurrentHedgehog^.CurAmmoType = amRope)
+        exit(CurrentHedgehog^.CurAmmoType = amRope)
     else
         exit(false);
 end;
@@ -298,17 +297,17 @@
 
 function HW_getWeaponNameByIndex(whichone: LongInt): PChar; cdecl; export;
 begin
-    exit (str2pchar(trammo[Ammoz[TAmmoType(whichone+1)].NameId]));
+    exit(str2pchar(trammo[Ammoz[TAmmoType(whichone+1)].NameId]));
 end;
 
 function HW_getWeaponCaptionByIndex(whichone: LongInt): PChar; cdecl; export;
 begin
-    exit (str2pchar(trammoc[Ammoz[TAmmoType(whichone+1)].NameId]));
+    exit(str2pchar(trammoc[Ammoz[TAmmoType(whichone+1)].NameId]));
 end;
 
 function HW_getWeaponDescriptionByIndex(whichone: LongInt): PChar; cdecl; export;
 begin
-    exit (str2pchar(trammod[Ammoz[TAmmoType(whichone+1)].NameId]));
+    exit(str2pchar(trammod[Ammoz[TAmmoType(whichone+1)].NameId]));
 end;
 
 function HW_getNumberOfWeapons:LongInt; cdecl; export;
@@ -318,6 +317,7 @@
 
 procedure HW_setWeapon(whichone: LongInt); cdecl; export;
 begin
+    if (CurrentTeam = nil) then exit;
     if (not CurrentTeam^.ExtDriven) and (CurrentTeam^.Hedgehogs[0].BotLevel = 0) then
         SetWeapon(TAmmoType(whichone+1));
 end;
@@ -331,11 +331,12 @@
 var a : PHHAmmo;
     slot, index: LongInt;
 begin
-    if (CurrentTeam = nil) or
-       (CurrentHedgehog = nil) or
-       (CurrentTeam^.ExtDriven) or
-       (CurrentTeam^.Hedgehogs[0].BotLevel <> 0) then
+    // nil check
+    if (CurrentHedgehog = nil) or (CurrentHedgehog^.Ammo = nil) or (CurrentTeam = nil) then
         exit(-1);
+    // hog controlled by opponent (net or ai)
+    if (CurrentTeam^.ExtDriven) or (CurrentTeam^.Hedgehogs[0].BotLevel <> 0) then
+        exit(1);
 
     a:= CurrentHedgehog^.Ammo;
     for slot:= 0 to cMaxSlotIndex do
@@ -354,7 +355,10 @@
 
 function HW_getTurnsForCurrentTeam: LongInt; cdecl; export;
 begin
-    exit(CurrentTeam^.Clan^.TurnNumber);
+    if (CurrentTeam <> nil) and (CurrentTeam^.Clan <> nil) then
+        exit(CurrentTeam^.Clan^.TurnNumber)
+    else
+        exit(0);
 end;
 
 function HW_getMaxNumberOfHogs: LongInt; cdecl; export;
--- a/hedgewars/SDLh.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/SDLh.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -297,6 +297,7 @@
     PSDL_Window   = Pointer;
     PSDL_Renderer = Pointer;
     PSDL_Texture  = Pointer;
+    PSDL_GLContext= Pointer;
 {$ENDIF}
 
     PSDL_Rect = ^TSDL_Rect;
@@ -776,11 +777,16 @@
 {$IFDEF SDL13}
 function  SDL_CreateWindow(title: PChar; x,y,w,h, flags: LongInt): PSDL_Window; cdecl; external SDLLibName;
 function  SDL_CreateRenderer(window: PSDL_Window; index, flags: LongInt): PSDL_Renderer; cdecl; external SDLLibName;
+function  SDL_DestroyWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName;
 function  SDL_DestroyRenderer(renderer: PSDL_Renderer): LongInt; cdecl; external SDLLibName;
-function  SDL_DestroyWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName;
+
+function  SDL_GL_CreateContext(window: PSDL_Window): PSDL_GLContext; cdecl; external SDLLibName;
+procedure SDL_GL_DeleteContext(context: PSDL_GLContext); cdecl; external SDLLibName;
+function  SDL_GL_SwapWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName;
 
 procedure SDL_VideoQuit; cdecl; external SDLLibName;
 function  SDL_GetNumVideoDisplays: LongInt; cdecl; external SDLLibName;
+procedure SDL_ShowWindow(window: PSDL_Window); cdecl; external SDLLibName;
 
 function  SDL_SetRenderDrawColor(renderer: PSDL_Renderer; r,g,b,a: byte): LongInt; cdecl; external SDLLibName;
 function  SDL_GetRenderer(window: PSDL_Window): PSDL_Renderer; cdecl; external SDLLibName;
--- a/hedgewars/VGSHandlers.inc	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/VGSHandlers.inc	Thu Aug 04 17:44:55 2011 +0200
@@ -258,7 +258,11 @@
 if Gear^.FrameTicks <= Steps then
     DeleteVisualGear(Gear)
 else
+    begin
     dec(Gear^.FrameTicks, Steps);
+    if (Gear^.FrameTicks < 501) and (Gear^.FrameTicks mod 5 = 0) then 
+        Gear^.Tint:= (Gear^.Tint and $FFFFFF00) or (((Gear^.Tint and $000000FF) * Gear^.FrameTicks) div 500)
+    end
 end;
 
 ////////////////////////////////////////////////////////////////////////////////
--- a/hedgewars/uAI.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uAI.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -74,6 +74,9 @@
        with CurrentHedgehog^ do
             a:= CurAmmoType;
        aa:= a;
+       
+       ThreadSwitch();
+       
        repeat
         if (CanUseAmmo[a]) and
            ((not isMoved) or ((AmmoTests[a].flags and amtest_OnTurn) = 0)) then
@@ -279,10 +282,9 @@
       begin
       WalkMe:= BackMe;
       Walk(@WalkMe);
-      if (StartTicks > GameTicks - 1500) and not StopThinking then SDL_Delay(2000);
+      if (StartTicks > GameTicks - 1500) and not StopThinking then SDL_Delay(1000);
       if BestActions.Score < -1023 then
          begin
-         addfilelog('AI: best score ' + inttostr(bestactions.score));
          BestActions.Count:= 0;
          AddAction(BestActions, aia_Skip, 0, 250, 0, 0);
          end;
--- a/hedgewars/uAIActions.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uAIActions.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -158,7 +158,7 @@
                           end
                           else if hwRound(Me^.X) < Param then
                                begin
-                               OutError('AI: WaitXL assert (' + IntToStr(hwRound(Me^.X)) + ' < ' + IntToStr(Param) + ')', false);
+                               //OutError('AI: WaitXL assert (' + IntToStr(hwRound(Me^.X)) + ' < ' + IntToStr(Param) + ')', false);
                                FreeActionsList;
                                exit
                                end
@@ -171,7 +171,7 @@
                           end
                           else if hwRound(Me^.X) > Param then
                                begin
-                               OutError('AI: WaitXR assert (' + IntToStr(hwRound(Me^.X)) + ' > ' + IntToStr(Param) + ')', false);
+                               //OutError('AI: WaitXR assert (' + IntToStr(hwRound(Me^.X)) + ' > ' + IntToStr(Param) + ')', false);
                                FreeActionsList;
                                exit
                                end
--- a/hedgewars/uAIMisc.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uAIMisc.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -302,7 +302,6 @@
 begin
 bRes:= false;
 GoInfo.Ticks:= 0;
-GoInfo.FallPix:= 0;
 GoInfo.JumpType:= jmpNone;
 bX:= hwRound(Gear^.X);
 bY:= hwRound(Gear^.Y);
@@ -371,9 +370,7 @@
 
 function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean;
 var pX, pY: LongInt;
-    bRes: boolean;
 begin
-bRes:= false;
 AltGear^:= Gear^;
 
 GoInfo.Ticks:= 0;
@@ -391,7 +388,7 @@
       begin
       Goinfo.FallPix:= 0;
       HHJump(AltGear, jmpLJump, GoInfo); // try ljump instead of fall with damage
-      exit(bRes)
+      exit(false)
       end;
    Gear^.Y:= Gear^.Y + Gear^.dY;
    if hwRound(Gear^.Y) > pY then inc(GoInfo.FallPix);
@@ -400,14 +397,13 @@
       inc(GoInfo.Ticks, 410);
       Gear^.State:= Gear^.State and not (gstMoving or gstHHJumping);
       Gear^.dY:= _0;
-      bRes:= true;
       HHJump(AltGear, jmpLJump, GoInfo); // try ljump instead of fall
-      exit(bRes)
+      exit(true)
       end;
    continue
    end;
    if (Gear^.Message and gmLeft  )<>0 then Gear^.dX:= -cLittle else
-   if (Gear^.Message and gmRight )<>0 then Gear^.dX:=  cLittle else exit(bRes);
+   if (Gear^.Message and gmRight )<>0 then Gear^.dX:=  cLittle else exit(false);
    if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
       begin
       if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX))
@@ -463,7 +459,7 @@
    exit(true);
 until (pX = hwRound(Gear^.X)) and (pY = hwRound(Gear^.Y)) and ((Gear^.State and gstMoving) = 0);
 HHJump(AltGear, jmpHJump, GoInfo);
-HHGo:= bRes;
+HHGo:= false;
 end;
 
 function AIrndSign(num: LongInt): LongInt;
--- a/hedgewars/uConsts.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uConsts.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -120,6 +120,16 @@
     cifAllInited = cifRandomize or cifTheme or cifMap;
 
     cTransparentColor: Longword = $00000000;
+    cGrayScale: Boolean = false;
+
+    RGB_LUMINANCE_RED    = 0.212671;
+    RGB_LUMINANCE_GREEN  = 0.715160;
+    RGB_LUMINANCE_BLUE   = 0.072169;
+(*
+    RGB_LUMINANCE_RED    = 0.3333333333;
+    RGB_LUMINANCE_GREEN  = 0.3333333333;
+    RGB_LUMINANCE_BLUE   = 0.3333333333;
+*)
 
     cMaxTeams        = 8;
     cMaxHHIndex      = 7;
--- a/hedgewars/uGears.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uGears.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -914,7 +914,7 @@
             CurrentHedgehog^.Gear^.State:= CurrentHedgehog^.Gear^.State and not gstAttacked;
         if delay2 = 0 then
             begin
-            SweepDirty;
+            if (CurrentHedgehog^.Gear <> nil) and (CurrentHedgehog^.Gear^.State and gstAttacked = 0) then SweepDirty;
             CheckNoDamage;
             AliveCount:= 0; // shorter version of check for win to allow typical step activity to proceed
             for i:= 0 to Pred(ClansCount) do
@@ -1069,7 +1069,7 @@
                 while i < vampDmg do
                     begin
                     vg:= AddVisualGear(hwRound(CurrentHedgehog^.Gear^.X), hwRound(CurrentHedgehog^.Gear^.Y), vgtHealth);
-                    if vg <> nil then vg^.Frame:= 10;
+                    if vg <> nil then vg^.Tint:= $FF0000FF;
                     inc(i, 5);
                     end;
                 end
--- a/hedgewars/uGearsRender.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uGearsRender.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -1050,15 +1050,15 @@
                     end;
       gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
            gtFlake: if (Gear^.State and gstTmpFlag) <> 0 then
-                        //DrawRotatedTextureF(SpritesData[sprSnowBall].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle)
                         begin
                         Tint((cExplosionBorderColor shr RShift) and $FF, 
                              (cExplosionBorderColor shr GShift) and $FF, 
                              (cExplosionBorderColor shr BShift) and $FF, 
-                             (cExplosionBorderColor shr AShift) and $FF);
-                        //DrawRotated(sprSnow, x, y, 0, Gear^.DirAngle);
+                             $FF);
                         // Needs a nicer white texture to tint
-                        DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
+                        DrawRotatedTextureF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
+                        //DrawRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
+                        //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
                         Tint($FF, $FF, $FF, $FF);
                         end
                     else if not isInLag then
--- a/hedgewars/uLand.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uLand.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -1096,6 +1096,7 @@
                     end;
                 Land[y,x]:= lfObject
             end;
+
     AddProgress();
 end;
 
@@ -1314,6 +1315,32 @@
 
 FreeLandObjects;
 
+if cGrayScale then
+    begin
+    if (cReducedQuality and rqBlurryLand) = 0 then
+        for x:= leftX to rightX do
+            for y:= topY to LAND_HEIGHT-1 do
+                begin
+                w:= LandPixels[y,x];
+                w:= round(((w shr RShift and $FF) * RGB_LUMINANCE_RED +
+                      (w shr BShift and $FF) * RGB_LUMINANCE_GREEN +
+                      (w shr GShift and $FF) * RGB_LUMINANCE_BLUE));
+                if w > 255 then w:= 255;
+                w:= (w and $FF shl RShift) or (w and $FF shl BShift) or (w and $FF shl GShift) or (LandPixels[y,x] and AMask);
+                LandPixels[y,x]:= w or (LandPixels[y, x] and AMask)
+                end
+    else
+        for x:= leftX div 2 to rightX div 2 do
+            for y:= topY div 2 to LAND_HEIGHT-1 div 2 do
+                begin
+                w:= LandPixels[y div 2,x div 2];
+                w:= ((w shr RShift and $FF) +  (w shr BShift and $FF) + (w shr GShift and $FF)) div 3;
+                if w > 255 then w:= 255;
+               w:= (w and $FF shl RShift) or (w and $FF shl BShift) or (w and $FF shl GShift) or (LandPixels[y div 2,x div 2] and AMask);
+                LandPixels[y,x]:= w or (LandPixels[y div 2, x div 2] and AMask)
+                end
+    end;
+
 UpdateLandTexture(0, LAND_WIDTH, 0, LAND_HEIGHT);
 end;
 
--- a/hedgewars/uLandGraphics.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uLandGraphics.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -210,81 +210,93 @@
 end;
 
 function FillLandCircleLinesBG(x, y, dx, dy: LongInt): Longword;
-var i, t: LongInt;
+var i, t, by, bx: LongInt;
     cnt: Longword;
 begin
 cnt:= 0;
 t:= y + dy;
 if (t and LAND_HEIGHT_MASK) = 0 then
    for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
-       if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+       begin
+       if (cReducedQuality and rqBlurryLand) = 0 then
+           begin
+           by:= t; bx:= i;
+           end
+       else
+           begin
+           by:= t div 2; bx:= i div 2;
+           end;
+       if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
            begin
            inc(cnt);
-           if (cReducedQuality and rqBlurryLand) = 0 then
-               LandPixels[t, i]:= LandBackPixel(i, t)
-           else
-               LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+           LandPixels[by, bx]:= LandBackPixel(i, t)
            end
        else
-           if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
-               if (cReducedQuality and rqBlurryLand) = 0 then
-                   LandPixels[t, i]:= 0
-               else
-                   LandPixels[t div 2, i div 2]:= 0;
+           if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+              LandPixels[by, bx]:= 0
+       end;
 
 t:= y - dy;
 if (t and LAND_HEIGHT_MASK) = 0 then
    for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
-       if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+       begin
+       if (cReducedQuality and rqBlurryLand) = 0 then
+           begin
+           by:= t; bx:= i;
+           end
+       else
+           begin
+           by:= t div 2; bx:= i div 2;
+           end;
+       if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
            begin
            inc(cnt);
-           if (cReducedQuality and rqBlurryLand) = 0 then
-               LandPixels[t, i]:= LandBackPixel(i, t)
-           else
-               LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+           LandPixels[by, bx]:= LandBackPixel(i, t)
            end
-       else
-           if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
-               if (cReducedQuality and rqBlurryLand) = 0 then
-                   LandPixels[t, i]:= 0
-               else
-                   LandPixels[t div 2, i div 2]:= 0;
+       else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+              LandPixels[by, bx]:= 0
+       end;
 
 t:= y + dx;
 if (t and LAND_HEIGHT_MASK) = 0 then
    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
-       if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+       begin
+       if (cReducedQuality and rqBlurryLand) = 0 then
+           begin
+           by:= t; bx:= i;
+           end
+       else
+           begin
+           by:= t div 2; bx:= i div 2;
+           end;
+       if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
            begin
            inc(cnt);
-           if (cReducedQuality and rqBlurryLand) = 0 then
-               LandPixels[t, i]:= LandBackPixel(i, t)
-           else
-               LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+           LandPixels[by, bx]:= LandBackPixel(i, t)
            end
-       else
-           if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
-               if (cReducedQuality and rqBlurryLand) = 0 then
-                   LandPixels[t, i]:= 0
-               else
-                   LandPixels[t div 2, i div 2]:= 0;
-
+       else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+           LandPixels[by, bx]:= 0
+       end;
 t:= y - dx;
 if (t and LAND_HEIGHT_MASK) = 0 then
    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
-       if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+       begin
+       if (cReducedQuality and rqBlurryLand) = 0 then
+           begin
+           by:= t; bx:= i;
+           end
+       else
+           begin
+           by:= t div 2; bx:= i div 2;
+           end;
+       if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
            begin
            inc(cnt);
-           if (cReducedQuality and rqBlurryLand) = 0 then
-               LandPixels[t, i]:= LandBackPixel(i, t)
-           else
-               LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+           LandPixels[by, bx]:= LandBackPixel(i, t)
            end
-       else
-           if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
-              if (cReducedQuality and rqBlurryLand) = 0 then
-                  LandPixels[t, i]:= 0
-              else
-                  LandPixels[t div 2, i div 2]:= 0;
+       else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+           LandPixels[by, bx]:= 0
+       end;
 FillLandCircleLinesBG:= cnt;
 end;
 
@@ -430,23 +442,26 @@
 end;
 
 procedure DrawHLinesExplosions(ar: PRangeArray; Radius: LongInt; y, dY: LongInt; Count: Byte);
-var tx, ty, i: LongInt;
+var tx, ty, by, bx,  i: LongInt;
 begin
 for i:= 0 to Pred(Count) do
     begin
     for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
         for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
-            if ((Land[ty, tx] and lfBasic) <> 0) and not disableLandBack then
-                if (cReducedQuality and rqBlurryLand) = 0 then
-                    LandPixels[ty, tx]:= LandBackPixel(tx, ty)
-                else
-                    LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty)
+            begin
+            if (cReducedQuality and rqBlurryLand) = 0 then
+                begin
+                by:= ty; bx:= tx;
+                end
             else
-                if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) then
-                    if (cReducedQuality and rqBlurryLand) = 0 then
-                        LandPixels[ty, tx]:= 0
-                    else
-                        LandPixels[ty div 2, tx div 2]:= 0;
+                begin
+                by:= ty div 2; bx:= tx div 2;
+                end;
+            if ((Land[ty, tx] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then 
+                LandPixels[by, bx]:= LandBackPixel(tx, ty)
+            else if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then 
+                LandPixels[by, bx]:= 0
+            end;
     inc(y, dY)
     end;
 
@@ -479,7 +494,7 @@
 //
 procedure DrawTunnel(X, Y, dX, dY: hwFloat; ticks, HalfWidth: LongInt);
 var nx, ny, dX8, dY8: hwFloat;
-    i, t, tx, ty, stX, stY, ddy, ddx: Longint;
+    i, t, tx, ty, by, bx, stX, stY, ddy, ddx: Longint;
     despeckle : Boolean;
 begin  // (-dY, dX) is (dX, dY) rotated by PI/2
 stY:= hwRound(Y);
@@ -550,17 +565,18 @@
         ty:= hwRound(Y);
         if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and ((Land[ty, tx] and lfIndestructible) = 0) then
             begin
-            if ((Land[ty, tx] and lfBasic) <> 0) and not disableLandBack then
-                if (cReducedQuality and rqBlurryLand) = 0 then
-                    LandPixels[ty, tx]:= LandBackPixel(tx, ty)
-                else
-                    LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty)
+            if (cReducedQuality and rqBlurryLand) = 0 then
+                begin
+                by:= ty; bx:= tx;
+                end
             else
-              if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) then
-                if (cReducedQuality and rqBlurryLand) = 0 then
-                LandPixels[ty, tx]:= 0
-                else
-                LandPixels[ty div 2, tx div 2]:= 0;
+                begin
+                by:= ty div 2; bx:= tx div 2;
+                end;
+            if ((Land[ty, tx] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
+                    LandPixels[by, bx]:= LandBackPixel(tx, ty)
+            else if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+                LandPixels[by, bx]:= 0;
 
             Land[ty, tx]:= 0;
             end
@@ -748,7 +764,7 @@
             LandPixels[yy, xx]:= 0;
 
         Land[Y, X]:= 0;
-        if not pixelsweep then exit(1)  // cannot exit true on pixel sweep, or risk desyncs due to inconsistent resweeps
+        if not pixelsweep then exit(1)
         else exit(2)
         end;
     end;
--- a/hedgewars/uLandObjects.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uLandObjects.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -372,7 +372,7 @@
 var s, key: shortstring;
     f: textfile;
     i: LongInt;
-    ii: Longword;
+    ii, t: Longword;
     c1, c2: TSDL_Color;
 
     procedure CheckRect(Width, Height, x, y, w, h: LongWord);
@@ -415,6 +415,14 @@
         c1.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
         Delete(s, 1, i);
         c1.b:= StrToInt(Trim(s));
+        if cGrayScale then
+            begin
+            t:= round(c1.r * RGB_LUMINANCE_RED + c1.g * RGB_LUMINANCE_GREEN + c1.b * RGB_LUMINANCE_BLUE);
+            if t > 255 then t:= 255;
+            c1.r:= t;
+            c1.g:= t;
+            c1.b:= t
+            end;
         glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
         SDSkyColor.r:= byte(c1.r * SDTint div 255);
         SDSkyColor.g:= byte(c1.g * SDTint div 255);
@@ -441,6 +449,14 @@
         Delete(s, 1, i);
         WaterColorArray[0].b:= StrToInt(Trim(s));
         WaterColorArray[0].a := 255;
+        if cGrayScale then
+            begin
+            t:= round(WaterColorArray[0].r * RGB_LUMINANCE_RED + WaterColorArray[0].g * RGB_LUMINANCE_GREEN + WaterColorArray[0].b * RGB_LUMINANCE_BLUE);
+            if t > 255 then t:= 255;
+            WaterColorArray[0].r:= t;
+            WaterColorArray[0].g:= t;
+            WaterColorArray[0].b:= t
+            end;
         WaterColorArray[1]:= WaterColorArray[0];
         end
     else if key = 'water-bottom' then
@@ -453,6 +469,14 @@
         Delete(s, 1, i);
         WaterColorArray[2].b:= StrToInt(Trim(s));
         WaterColorArray[2].a := 255;
+        if cGrayScale then
+            begin
+            t:= round(WaterColorArray[2].r * RGB_LUMINANCE_RED + WaterColorArray[2].g * RGB_LUMINANCE_GREEN + WaterColorArray[2].b * RGB_LUMINANCE_BLUE);
+            if t > 255 then t:= 255;
+            WaterColorArray[2].r:= t;
+            WaterColorArray[2].g:= t;
+            WaterColorArray[2].b:= t
+            end;
         WaterColorArray[3]:= WaterColorArray[2];
         end
     else if key = 'water-opacity' then
@@ -566,6 +590,14 @@
         Delete(s, 1, i);
         SDWaterColorArray[0].b:= StrToInt(Trim(s));
         SDWaterColorArray[0].a := 255;
+        if cGrayScale then
+            begin
+            t:= round(SDWaterColorArray[0].r * RGB_LUMINANCE_RED + SDWaterColorArray[0].g * RGB_LUMINANCE_GREEN + SDWaterColorArray[0].b * RGB_LUMINANCE_BLUE);
+            if t > 255 then t:= 255;
+            SDWaterColorArray[0].r:= t;
+            SDWaterColorArray[0].g:= t;
+            SDWaterColorArray[0].b:= t
+            end;
         SDWaterColorArray[1]:= SDWaterColorArray[0];
         end
     else if key = 'sd-water-bottom' then
@@ -578,6 +610,14 @@
         Delete(s, 1, i);
         SDWaterColorArray[2].b:= StrToInt(Trim(s));
         SDWaterColorArray[2].a := 255;
+        if cGrayScale then
+            begin
+            t:= round(SDWaterColorArray[2].r * RGB_LUMINANCE_RED + SDWaterColorArray[2].g * RGB_LUMINANCE_GREEN + SDWaterColorArray[2].b * RGB_LUMINANCE_BLUE);
+            if t > 255 then t:= 255;
+            SDWaterColorArray[2].r:= t;
+            SDWaterColorArray[2].g:= t;
+            SDWaterColorArray[2].b:= t
+            end;
         SDWaterColorArray[3]:= SDWaterColorArray[2];
         end
     else if key = 'sd-water-opacity' then cSDWaterOpacity:= StrToInt(Trim(s))
@@ -612,6 +652,14 @@
             c1.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
             Delete(s, 1, i);
             c1.b:= StrToInt(Trim(s));
+            if cGrayScale then
+                begin
+                t:= round(c1.r * RGB_LUMINANCE_RED + c1.g * RGB_LUMINANCE_GREEN + c1.b * RGB_LUMINANCE_BLUE);
+                if t > 255 then t:= 255;
+                c1.r:= t;
+                c1.g:= t;
+                c1.b:= t
+                end;
             glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
             SDSkyColor.r:= byte(c1.r * SDTint div 255);
             SDSkyColor.g:= byte(c1.g * SDTint div 255);
--- a/hedgewars/uRender.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uRender.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -22,7 +22,7 @@
 
 interface
 
-uses SDLh, uTypes, GLunit;
+uses SDLh, uTypes, GLunit, uConsts;
 
 procedure DrawSpriteFromRect(Sprite: TSprite; r: TSDL_Rect; X, Y, Height, Position: LongInt);
 procedure DrawFromRect(X, Y, W, H: LongInt; r: PSDL_Rect; SourceTexture: PTexture);
@@ -453,11 +453,20 @@
 
 
 procedure Tint(r, g, b, a: Byte); inline;
-var nc: Longword;
+var nc, tw: Longword;
 begin
 nc:= (a shl 24) or (b shl 16) or (g shl 8) or r;
 if nc = lastTint then
     exit;
+if cGrayScale then
+    begin
+    tw:= round(r * RGB_LUMINANCE_RED + g * RGB_LUMINANCE_GREEN + b * RGB_LUMINANCE_BLUE);
+    if tw > 255 then tw:= 255;
+    r:= tw;
+    g:= tw;
+    b:= tw
+    end;
+
 glColor4ub(r, g, b, a);
 lastTint:= nc;
 end;
--- a/hedgewars/uScript.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uScript.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -986,11 +986,28 @@
         LuaError('Lua: Wrong number of parameters passed to SetEffect!')
     else begin
         gear := GearByUID(lua_tointeger(L, 1));
-        if gear <> nil then
+        if (gear <> nil) and (gear^.Hedgehog <> nil) then
             gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))]:= lua_toboolean(L, 3);
     end;
     lc_seteffect := 0;
 end;
+function lc_geteffect(L : Plua_State) : LongInt; Cdecl;
+var gear : PGear;
+begin
+    if lua_gettop(L) <> 2 then
+        begin
+        LuaError('Lua: Wrong number of parameters passed to GetEffect!');
+        end
+    else
+        begin
+        gear:= GearByUID(lua_tointeger(L, 1));
+        if (gear <> nil) and (gear^.Hedgehog <> nil) then
+            lua_pushboolean(L, gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))])
+        else
+            lua_pushboolean(L, false)
+        end;
+    lc_geteffect:= 1
+end;
 
 function lc_setstate(L : Plua_State) : LongInt; Cdecl;
 var gear : PGear;
@@ -1840,6 +1857,7 @@
 lua_register(luaState, 'SetHealth', @lc_sethealth);
 lua_register(luaState, 'GetHealth', @lc_gethealth);
 lua_register(luaState, 'SetEffect', @lc_seteffect);
+lua_register(luaState, 'GetEffect', @lc_geteffect);
 lua_register(luaState, 'GetHogClan', @lc_gethogclan);
 lua_register(luaState, 'GetClanColor', @lc_getclancolor);
 lua_register(luaState, 'SetClanColor', @lc_setclancolor);
--- a/hedgewars/uTextures.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uTextures.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -131,6 +131,24 @@
 if SDL_MustLock(surf) then
     SDLTry(SDL_LockSurface(surf) >= 0, true);
 
+fromP4:= Surf^.pixels;
+
+if cGrayScale then
+    for y:= 0 to Pred(Surf^.h) do
+        begin
+        for x:= 0 to Pred(Surf^.w) do 
+            begin
+            tw:= fromP4^[x];
+            tw:= round((tw shr RShift and $FF) * RGB_LUMINANCE_RED +  
+                  (tw shr GShift and $FF) * RGB_LUMINANCE_GREEN + 
+                  (tw shr BShift and $FF) * RGB_LUMINANCE_BLUE);
+            if tw > 255 then tw:= 255;
+            tw:= (tw and $FF shl RShift) or (tw and $FF shl BShift) or (tw and $FF shl GShift) or (fromP4^[x] and AMask);
+            fromP4^[x]:= tw;
+            end;
+        fromP4:= @(fromP4^[Surf^.pitch div 4])
+        end;
+        
 if (not SupportNPOTT) and (not (isPowerOf2(Surf^.w) and isPowerOf2(Surf^.h))) then
     begin
     tw:= toPowerOf2(Surf^.w);
--- a/hedgewars/uVisualGears.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uVisualGears.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -245,6 +245,7 @@
     vgtHealth: begin
                 dx:= 0.001 * random(45);
                 dy:= 0.001 * (random(20) + 25);
+                Tint:= $00FF00FF; // default to green
                 if random(2) = 0 then dx := -dx;
                 Frame:= 0;
                 FrameTicks:= random(750) + 1250;
@@ -432,7 +433,7 @@
     // this layer is on the land level (which is close but behind the screen plane) when stereo
     1: while Gear <> nil do
         begin
-        tinted:= false;
+        //tinted:= false;
         if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
         case Gear^.Kind of
             vgtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
@@ -461,7 +462,8 @@
                                 DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
                 vgtBubble: DrawSprite(sprBubbles, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);//(RealTicks div 64 + Gear^.Frame) mod 8);
             end;
-        if (Gear^.Tint <> $FFFFFFFF) or tinted then Tint($FF,$FF,$FF,$FF);
+        //if (Gear^.Tint <> $FFFFFFFF) or tinted then Tint($FF,$FF,$FF,$FF);
+        if (Gear^.Tint <> $FFFFFFFF) then Tint($FF,$FF,$FF,$FF);
         Gear:= Gear^.NextGear
        end;
     // this layer is on the screen plane (depth = 0) when stereo
@@ -482,14 +484,7 @@
                              end;
             vgtSmallDamageTag: DrawCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex);
             vgtHealthTag: if Gear^.Tex <> nil then DrawCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex);
-            vgtHealth: begin
-                       tinted:= true;
-                       case Gear^.Frame div 10 of
-                           0:Tint(0, $FF, 0, round(Gear^.FrameTicks * $FF / 1000));
-                           1:Tint($FF, 0, 0, round(Gear^.FrameTicks * $FF / 1000));
-                       end;
-                       DrawSprite(sprHealth, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, 0);
-                       end;
+            vgtHealth: DrawSprite(sprHealth, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, 0);
         end;
         if (cReducedQuality and rqAntiBoom) = 0 then
             case Gear^.Kind of
--- a/hedgewars/uWorld.pas	Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uWorld.pas	Thu Aug 04 17:44:55 2011 +0200
@@ -971,7 +971,7 @@
       end;
 if smallScreenOffset <> 0 then
     begin
-    SetScale(zoom);
+    SetScale(cDefaultZoomLevel);
     if TeamsCount * 20 > cScreenHeight div 5 then Tint($FF,$FF,$FF,$FF);
     end;
 
--- a/misc/hedgewars.desktop	Thu Aug 04 17:41:07 2011 +0200
+++ b/misc/hedgewars.desktop	Thu Aug 04 17:44:55 2011 +0200
@@ -14,6 +14,7 @@
 GenericName[pt]=Batalhas entre ouriços
 GenericName[ru]=Битвы ежей
 GenericName[sk]=Bojujúci ježkovia
+GenericName[cs]=Bojující ježci
 GenericName[sv]=Stridande igelkottar
 Icon=hedgewars.png
 Exec=hedgewars
--- a/project_files/HedgewarsMobile/Classes/Appirater.h	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/Appirater.h	Thu Aug 04 17:44:55 2011 +0200
@@ -45,7 +45,7 @@
 /*
  Place your Apple generated software id here.
  */
-#define APPIRATER_APP_ID                 391234866
+#define APPIRATER_APP_ID                391234866
 
 /*
  Your app's name.
@@ -82,13 +82,13 @@
  Users will need to have the same version of your app installed for this many
  days before they will be prompted to rate it.
  */
-#define DAYS_UNTIL_PROMPT               5       // double
+#define DAYS_UNTIL_PROMPT               3       // double
 
 /*
  Users will need to launch the same version of the app this many times before
  they will be prompted to rate it.
  */
-#define LAUNCHES_UNTIL_PROMPT           10      // integer
+#define LAUNCHES_UNTIL_PROMPT           5      // integer
 
 /*
  'YES' will show the Appirater alert everytime. Useful for testing how your message
--- a/project_files/HedgewarsMobile/Classes/Appirater.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/Appirater.m	Thu Aug 04 17:44:55 2011 +0200
@@ -37,6 +37,7 @@
 #import "Appirater.h"
 #import <SystemConfiguration/SCNetworkReachability.h>
 #import <netinet/in.h>
+#import "CommodityFunctions.h"
 
 NSString *const kAppiraterLaunchDate            = @"kAppiraterLaunchDate";
 NSString *const kAppiraterLaunchCount           = @"kAppiraterLaunchCount";
@@ -46,47 +47,6 @@
 
 NSString *templateReviewURL = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";
 
-@interface Appirater (hidden)
-
--(BOOL) connectedToNetwork;
-
-@end
-
-@implementation Appirater (hidden)
-
--(BOOL) connectedToNetwork {
-    // Create zero addy
-    struct sockaddr_in zeroAddress;
-    bzero(&zeroAddress, sizeof(zeroAddress));
-    zeroAddress.sin_len = sizeof(zeroAddress);
-    zeroAddress.sin_family = AF_INET;
-    
-    // Recover reachability flags
-    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
-    SCNetworkReachabilityFlags flags;
-    
-    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
-    CFRelease(defaultRouteReachability);
-    
-    if (!didRetrieveFlags) {
-        NSLog(@"Error. Could not recover network reachability flags");
-        return NO;
-    }
-    
-    BOOL isReachable = flags & kSCNetworkFlagsReachable;
-    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
-    BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
-    
-    NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
-    NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL  cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20.0];
-    NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:self];
-    
-    return ((isReachable && !needsConnection) || nonWiFi) ? (testConnection ? YES : NO) : NO;
-}
-
-@end
-
-
 @implementation Appirater
 
 +(void) appLaunched {
@@ -146,7 +106,7 @@
              launchCount > LAUNCHES_UNTIL_PROMPT &&
              !declinedToRate &&
              !ratedApp) {
-            if ([self connectedToNetwork]) {	// check if they can reach the app store
+            if (isNetworkReachable()) {	// check if they can reach the app store
                 willShowPrompt = YES;
                 [self performSelectorOnMainThread:@selector(showPrompt) withObject:nil waitUntilDone:NO];
             }
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h	Thu Aug 04 17:44:55 2011 +0200
@@ -46,6 +46,7 @@
 #define MAPS_DIRECTORY()        [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Maps/"]
 #define MISSIONS_DIRECTORY()    [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Maps/"]
 #define LOCALE_DIRECTORY()      [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Locale/"]
+#define SCRIPTS_DIRECTORY()     [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Scripts/plist/"]
 
 #define MSG_MEMCLEAN()          DLog(@"has cleaned up some memory");
 #define MSG_DIDUNLOAD()         DLog(@"unloaded");
@@ -75,6 +76,7 @@
 UILabel *createLabelWithParams (NSString *title, CGRect frame, CGFloat borderWidth, UIColor *borderColor, UIColor *backgroundColor);
 
 CGSize PSPNGSizeFromMetaData (NSString *aFileName);
+BOOL isNetworkReachable (void);
 
 @interface NSString (extra)
 
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.m	Thu Aug 04 17:44:55 2011 +0200
@@ -27,6 +27,8 @@
 #import <QuartzCore/QuartzCore.h>
 #import <AudioToolbox/AudioToolbox.h>
 #import <CommonCrypto/CommonDigest.h>
+#import <SystemConfiguration/SCNetworkReachability.h>
+#import <netinet/in.h>
 #import "PascalImports.h"
 #import "hwconsts.h"
 
@@ -39,6 +41,7 @@
 
 // by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
 void print_free_memory () {
+#ifdef DEBUG
     mach_port_t host_port;
     mach_msg_type_number_t host_size;
     vm_size_t pagesize;
@@ -57,6 +60,7 @@
     natural_t mem_free = vm_stat.free_count * pagesize;
     natural_t mem_total = mem_used + mem_free;
     DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
+#endif
 }
 
 BOOL inline isApplePhone () {
@@ -128,6 +132,40 @@
     return theLabel;
 }
 
+BOOL isNetworkReachable (void) {
+    // Create zero addy
+    struct sockaddr_in zeroAddress;
+    bzero(&zeroAddress, sizeof(zeroAddress));
+    zeroAddress.sin_len = sizeof(zeroAddress);
+    zeroAddress.sin_family = AF_INET;
+
+    // Recover reachability flags
+    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
+    SCNetworkReachabilityFlags flags;
+
+    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
+    CFRelease(defaultRouteReachability);
+
+    if (!didRetrieveFlags) {
+        NSLog(@"Error. Could not recover network reachability flags");
+        return NO;
+    }
+
+    BOOL isReachable = flags & kSCNetworkFlagsReachable;
+    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
+    BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
+
+    NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
+    NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL
+                                                 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
+                                             timeoutInterval:20.0];
+    NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:nil];
+    BOOL testResult = testConnection ? YES : NO;
+    [testConnection release];
+
+    return ((isReachable && !needsConnection) || nonWiFi) ? testResult : NO;
+}
+
 // this routine checks for the PNG size without loading it in memory
 // https://github.com/steipete/PSFramework/blob/master/PSFramework%20Version%200.3/PhotoshopFramework/PSMetaDataFunctions.m
 CGSize PSPNGSizeFromMetaData (NSString *aFileName) {
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m	Thu Aug 04 17:44:55 2011 +0200
@@ -28,8 +28,11 @@
     [settings setObject:[NSNumber numberWithBool:YES] forKey:@"music"];
     [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sound"];
     [settings setObject:[NSNumber numberWithBool:NO] forKey:@"classic_menu"];
-    [settings setObject:[NSNumber numberWithBool:YES] forKey:@"enhanced"];
     [settings setObject:[NSNumber numberWithBool:YES] forKey:@"multitasking"];
+    [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sync_ws"];
+
+    // limit graphic usage on older devices
+    [settings setObject:[NSNumber numberWithBool:IS_VERY_POWERFUL(getModelType())] forKey:@"enhanced"];
 
     // don't overwrite these two strings when present
     if ([settings objectForKey:@"username"] == nil)
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Thu Aug 04 17:44:55 2011 +0200
@@ -212,6 +212,10 @@
     if ([self isEverythingSet] == NO)
         return;
 
+    NSString *script = self.mapConfigViewController.missionCommand;
+    if ([script isEqualToString:@""])
+        script = self.schemeWeaponConfigViewController.scriptCommand;
+
     // create the configuration file that is going to be sent to engine
     NSDictionary *gameDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                     self.mapConfigViewController.seedCommand,@"seed_command",
@@ -220,10 +224,10 @@
                                     self.mapConfigViewController.mazeSizeCommand,@"mazesize_command",
                                     self.mapConfigViewController.themeCommand,@"theme_command",
                                     self.mapConfigViewController.staticMapCommand,@"staticmap_command",
-                                    self.mapConfigViewController.missionCommand,@"mission_command",
                                     self.teamConfigViewController.listOfSelectedTeams,@"teams_list",
                                     self.schemeWeaponConfigViewController.selectedScheme,@"scheme",
                                     self.schemeWeaponConfigViewController.selectedWeapon,@"weapon",
+                                    script,@"mission_command",
                                     nil];
 
     GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self];
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Thu Aug 04 17:44:55 2011 +0200
@@ -84,6 +84,9 @@
         case 30:    //alternateSwitch
             [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"alternate"];
             break;
+        case 90:    //synched weapons/scheme
+            [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"sync_ws"];
+            break;
         case 70:    //enhanced graphics
             [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"enhanced"];
             break;
@@ -117,16 +120,13 @@
 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger )section {
     switch (section) {
         case 0:     // user and pass
-            return 1;   // set 2 here for the password field
+            return 1;   // set 2 here to show the password field
             break;
         case 1:     // audio
             return 2;
             break;
-        case 2:     // other stuff
-            if (IS_IPAD() == YES)
-                return 4;
-            else
-                return 3;
+        case 2:     // other options
+            return 5;
             break;
         default:
             DLog(@"Nope");
@@ -225,6 +225,7 @@
             }
             
             switchContent = (UISwitch *)cell.accessoryView;
+            cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
             switch (row) {
                 case 0:
                     cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
@@ -233,22 +234,34 @@
                     switchContent.tag = 30;
                     break;
                 case 1:
-                    cell.textLabel.text = NSLocalizedString(@"Enanched Graphics Mode", @"");
-                    cell.detailTextLabel.text = NSLocalizedString(@"The game will use more memory so it could crash!", @"");
-                    switchContent.on = [[settings objectForKey:@"enhanced"] boolValue];
-                    switchContent.tag = 70;
+                    cell.textLabel.text = NSLocalizedString(@"Sync Schemes and Weapons", @"");
+                    cell.detailTextLabel.text = NSLocalizedString(@"Choosing a Scheme will select its associated Weapon", @"");
+                    switchContent.on = [[settings objectForKey:@"sync_ws"] boolValue];
+                    switchContent.tag = 90;
                     break;
                 case 2:
-                    cell.textLabel.text = NSLocalizedString(@"Multitasking Enabled", @"");
+                    cell.textLabel.text = NSLocalizedString(@"Multitasking", @"");
                     cell.detailTextLabel.text = NSLocalizedString(@"Disable it in case of issues when returing in game", @"");
                     switchContent.on = [[settings objectForKey:@"multitasking"] boolValue];
                     switchContent.tag = 80;
                     break;
                 case 3:
+                    cell.textLabel.text = NSLocalizedString(@"Enanched Graphics", @"");
+                    cell.detailTextLabel.text = NSLocalizedString(@"Beware that the game will consume more memory", @"");
+                    switchContent.on = [[settings objectForKey:@"enhanced"] boolValue];
+                    switchContent.tag = 70;
+                    // prevent the oldest devices to even think about enabling it
+                    if (IS_NOT_POWERFUL(getModelType()))
+                        switchContent.enabled = NO;
+                    break;
+                case 4:
                     cell.textLabel.text = NSLocalizedString(@"Classic Ammo Menu", @"");
                     cell.detailTextLabel.text = NSLocalizedString(@"Select which style of ammo menu you prefer",@"");
                     switchContent.on = [[settings objectForKey:@"classic_menu"] boolValue];
                     switchContent.tag = 60;
+                    // remove this when classic ammomenu works on iphone as well
+                    if (IS_IPAD() == NO)
+                        switchContent.enabled = NO;
                     break;
                 default:
                     DLog(@"Nope");
--- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m	Thu Aug 04 17:44:55 2011 +0200
@@ -25,7 +25,6 @@
 #import "CommodityFunctions.h"
 #import "MainMenuViewController.h"
 #import "AVFoundation/AVAudioPlayer.h"
-#import "Appirater.h"
 #include <unistd.h>
 
 
@@ -97,7 +96,6 @@
 // override the direct execution of SDL_main to allow us to implement our own frontend
 -(void) postFinishLaunch {
     [[UIApplication sharedApplication] setStatusBarHidden:YES];
-    [Appirater appLaunched];
 
     self.uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 
--- a/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m	Thu Aug 04 17:44:55 2011 +0200
@@ -257,7 +257,8 @@
         image = [[UIImage alloc] initWithCGImage:imageRef];
     CGImageRelease(imageRef);
 
-    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (void *)alert); // add callback for finish saving
+    // add callback for cleaning memory and removing alert
+    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (void *)alert);
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m	Thu Aug 04 17:44:55 2011 +0200
@@ -27,6 +27,7 @@
 #import "AboutViewController.h"
 #import "SavedGamesViewController.h"
 #import "RestoreViewController.h"
+#import "Appirater.h"
 #import "ServerSetup.h"
 
 @implementation MainMenuViewController
@@ -72,7 +73,7 @@
         [[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL];
     NSString *baseSchemesDir = [[NSString alloc] initWithFormat:@"%@/Settings/Schemes/",resourcesDir];
     [[NSFileManager defaultManager] copyItemAtPath:baseSchemesDir toPath:SCHEMES_DIRECTORY() error:NULL];
-    
+    [baseSchemesDir release];
 
     // WEAPONS - always overwrite
     if ([[NSFileManager defaultManager] fileExistsAtPath:WEAPONS_DIRECTORY()] == NO)
@@ -101,31 +102,40 @@
     NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
     NSString *trackingVersion = [userDefaults stringForKey:@"HedgeVersion"];
 
+    if ([[userDefaults objectForKey:@"music"] boolValue])
+        [HedgewarsAppDelegate playBackgroundMusic];
+
     if (trackingVersion == nil || [trackingVersion isEqualToString:version] == NO) {
+        // remove any reminder of previous games as saves are going to be wiped out
+        [userDefaults setObject:@"" forKey:@"savedGamePath"];
+        // update the tracking version with the new one
         [userDefaults setObject:version forKey:@"HedgeVersion"];
+
         [userDefaults synchronize];
         [self createNecessaryFiles];
     }
 
-    if ([[userDefaults objectForKey:@"music"] boolValue])
-        [HedgewarsAppDelegate playBackgroundMusic];
-
-    NSString *saveString = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedGamePath"];
+    // prompt for restoring any previous game
+    NSString *saveString = [userDefaults objectForKey:@"savedGamePath"];
     if (saveString != nil && [saveString isEqualToString:@""] == NO) {
         if (self.restoreViewController == nil) {
-            NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")]; 
+            NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")];
             RestoreViewController *restored = [[RestoreViewController alloc] initWithNibName:xibName bundle:nil];
             if ([restored respondsToSelector:@selector(setModalPresentationStyle:)])
                 restored.modalPresentationStyle = UIModalPresentationFormSheet;
             self.restoreViewController = restored;
             [restored release];
         }
-        [self performSelector:@selector(presentModalViewController:animated:) withObject:self.restoreViewController afterDelay:0.35];
+        [self performSelector:@selector(presentModalViewController:animated:) withObject:self.restoreViewController afterDelay:0.3];
+    } else {
+        // let's not prompt for rating when app crashed >_>
+        [Appirater appLaunched];
     }
 
+
     /*
     ServerSetup *setup = [[ServerSetup alloc] init];
-    if ([setup isNetworkReachable]) {
+    if (isNetworkReachable()) {
         DLog(@"network is reachable");
         [NSThread detachNewThreadSelector:@selector(serverProtocol)
                                  toTarget:setup
@@ -147,11 +157,8 @@
     switch (button.tag) {
         case 0:
             if (nil == self.gameConfigViewController) {
-                if (IS_IPAD())
-                    xib = nil;
-                else
-                    xib = @"GameConfigViewController";
-                
+                xib = IS_IPAD() ? nil : @"GameConfigViewController";
+
                 GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil];
                 gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
                 self.gameConfigViewController = gcvc;
@@ -172,7 +179,10 @@
             break;
         case 3:
 #ifdef DEBUG
-            debugStr = [[NSString alloc] initWithContentsOfFile:DEBUG_FILE()];
+            if ([[NSFileManager defaultManager] fileExistsAtPath:DEBUG_FILE()])
+                debugStr = [[NSString alloc] initWithContentsOfFile:DEBUG_FILE()];
+            else
+                debugStr = [[NSString alloc] initWithString:@"Here be log"];
             UITextView *scroll = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.height, self.view.frame.size.width)];
             scroll.text = debugStr;
             [debugStr release];
@@ -186,6 +196,7 @@
             [self.view addSubview:scroll];
             [scroll release];
 #else
+            debugStr = debugStr; // prevent compiler warning
             if (nil == self.aboutViewController) {
                 AboutViewController *about = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil];
                 about.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Thu Aug 04 17:44:55 2011 +0200
@@ -387,6 +387,7 @@
         NSString *checkPath = [[NSString alloc] initWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),themeName];
         if ([[NSFileManager defaultManager] fileExistsAtPath:checkPath])
             [themeArray addObject:themeName];
+        [checkPath release];
     }
 
     // remove images that are too big for certain devices without loading the whole image
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h	Thu Aug 04 17:44:55 2011 +0200
@@ -25,24 +25,33 @@
 @interface SchemeWeaponConfigViewController : UITableViewController {
     NSArray *listOfSchemes;
     NSArray *listOfWeapons;
+    NSArray *listOfScripts;
 
     NSIndexPath *lastIndexPath_sc;
     NSIndexPath *lastIndexPath_we;
+    NSIndexPath *lastIndexPath_lu;
 
     NSString *selectedScheme;
     NSString *selectedWeapon;
+    NSString *selectedScript;
+    NSString *scriptCommand;
 
-    UISwitch *syncSwitch;
+    UISegmentedControl *topControl;
     BOOL hideSections;
 }
 
 @property (nonatomic,retain) NSArray *listOfSchemes;
 @property (nonatomic,retain) NSArray *listOfWeapons;
+@property (nonatomic,retain) NSArray *listOfScripts;
 @property (nonatomic,retain) NSIndexPath *lastIndexPath_sc;
 @property (nonatomic,retain) NSIndexPath *lastIndexPath_we;
+@property (nonatomic,retain) NSIndexPath *lastIndexPath_lu;
 @property (nonatomic,retain) NSString *selectedScheme;
 @property (nonatomic,retain) NSString *selectedWeapon;
-@property (nonatomic,retain) UISwitch *syncSwitch;
+@property (nonatomic,retain) NSString *selectedScript;
+@property (nonatomic,retain) NSString *scriptCommand;
+@property (nonatomic,retain) UISegmentedControl *topControl;
+@property (assign) BOOL hideSections;
 
 -(void) fillSections;
 -(void) emptySections;
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m	Thu Aug 04 17:44:55 2011 +0200
@@ -25,7 +25,8 @@
 #define LABEL_TAG 57423
 
 @implementation SchemeWeaponConfigViewController
-@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon, syncSwitch;
+@synthesize listOfSchemes, listOfWeapons, listOfScripts, lastIndexPath_sc, lastIndexPath_we, lastIndexPath_lu,
+            selectedScheme, selectedWeapon, selectedScript, scriptCommand, topControl, hideSections;
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
     return rotationManager(interfaceOrientation);
@@ -41,6 +42,8 @@
 
     self.selectedScheme = nil;
     self.selectedWeapon = nil;
+    self.selectedScript = nil;
+    self.scriptCommand = nil;
 
     if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
         if (IS_IPAD())
@@ -74,7 +77,12 @@
     
     if (self.selectedWeapon == nil && [listOfWeapons containsObject:@"Default.plist"])
         self.selectedWeapon = @"Default.plist";
-    
+
+    contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCRIPTS_DIRECTORY() error:NULL];
+    self.listOfScripts = contentsOfDir;
+    self.selectedScript = @"Normal.plist";
+    self.scriptCommand = @"";
+
     [self.tableView reloadData];
 }
 
@@ -85,30 +93,30 @@
     if (hideSections)
         return 0;
     else
-        return 3;
+        return 1;
 }
 
 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    if (section == 0)
+    if (self.topControl.selectedSegmentIndex == 0)
         return [self.listOfSchemes count];
-    else if (section == 1)
+    else if (self.topControl.selectedSegmentIndex == 1)
         return [self.listOfWeapons count];
     else
-        return 1;
+        return [self.listOfScripts count];
 }
 
 // Customize the appearance of table view cells.
 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     static NSString *CellIdentifier = @"Cell";
+    NSInteger index = self.topControl.selectedSegmentIndex;
     NSInteger row = [indexPath row];
-    NSInteger section = [indexPath section];
 
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil)
         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
 
     cell.accessoryView = nil;
-    if (0 == section) {
+    if (0 == index) {
         cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
         NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
         NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
@@ -120,7 +128,7 @@
             [checkbox release];
             self.lastIndexPath_sc = indexPath;
         }
-    } else if (1 == section) {
+    } else if (1 == index) {
         cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
         NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
         NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
@@ -133,44 +141,47 @@
             self.lastIndexPath_we = indexPath;
         }
     } else {
-        if (self.syncSwitch == nil) {
-            UISwitch *theSwitch = [[UISwitch alloc] init];
-            [theSwitch setOn:YES];
-            self.syncSwitch = theSwitch;
-            [theSwitch release];
+        cell.textLabel.text = [[self.listOfScripts objectAtIndex:row] stringByDeletingPathExtension];
+        NSString *str = [NSString stringWithFormat:@"%@/%@",SCRIPTS_DIRECTORY(),[self.listOfScripts objectAtIndex:row]];
+        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
+        cell.detailTextLabel.text = [dict objectForKey:@"description"];
+        [dict release];
+        if ([[self.listOfScripts objectAtIndex:row] isEqualToString:self.selectedScript]) {
+            UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
+            cell.accessoryView = checkbox;
+            [checkbox release];
+            self.lastIndexPath_lu = indexPath;
         }
-        cell.textLabel.text = IS_IPAD() ? NSLocalizedString(@"Sync Schemes",@"") : NSLocalizedString(@"Sync Schemes and Weapons",@"");
-        cell.detailTextLabel.text = IS_IPAD() ? nil : NSLocalizedString(@"Choosing a Scheme will select its associated Weapon",@"");
-        cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
-        cell.accessoryView = self.syncSwitch;
     }
 
     cell.backgroundColor = UICOLOR_HW_ALMOSTBLACK;
     cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
     cell.detailTextLabel.textColor = [UIColor whiteColor];
+    cell.textLabel.adjustsFontSizeToFitWidth = YES;
+    cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
     return cell;
 }
 
 -(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
-    return 40.0;
+    return 50.0;
 }
 
 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
-    CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
-    NSString *text;
-    if (section == 0) 
-        text = NSLocalizedString(@"Schemes",@"");
-    else if (section == 1)
-        text = NSLocalizedString(@"Weapons",@"");
-    else
-        text = NSLocalizedString(@"Options",@"");
-
-    UILabel *theLabel = createBlueLabel(text, frame);
-    theLabel.center = CGPointMake(self.view.frame.size.width/2, 20);
+    if (self.topControl == nil) {
+        NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"Scheme",@""),NSLocalizedString(@"Weapon",@""),
+                          NSLocalizedString(@"Style",@""),nil];
+        self.topControl = [[UISegmentedControl alloc] initWithItems:array];
+        [array release];
+        [self.topControl addTarget:self.tableView action:@selector(reloadData) forControlEvents:UIControlEventValueChanged];
+        self.topControl.segmentedControlStyle = UISegmentedControlStyleBar;
+        self.topControl.frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
+        self.topControl.center = CGPointMake(self.view.frame.size.width/2, 24);
+        self.topControl.tintColor = [UIColor lightGrayColor];
+        self.topControl.selectedSegmentIndex = 0;
+    }
 
     UIView *theView = [[[UIView alloc] init] autorelease];
-    [theView addSubview:theLabel];
-    [theLabel release];
+    [theView addSubview:self.topControl];
     return theView;
 }
 
@@ -178,10 +189,13 @@
 #pragma mark Table view delegate
 -(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     NSIndexPath *lastIndexPath;
-    if ([indexPath section] == 0)
+    NSInteger index = self.topControl.selectedSegmentIndex;
+    if (index == 0)
         lastIndexPath = self.lastIndexPath_sc;
+    else if (index == 1)
+        lastIndexPath = self.lastIndexPath_we;
     else
-        lastIndexPath = self.lastIndexPath_we;
+        lastIndexPath = self.lastIndexPath_lu;
 
     int newRow = [indexPath row];
     int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -195,10 +209,12 @@
         UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
         oldCell.accessoryView = nil;
 
-        if ([indexPath section] == 0) {
+        if (index == 0) {
             self.lastIndexPath_sc = indexPath;
             self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
-            if (self.syncSwitch.on) {
+
+            NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
+            if ([[settings objectForKey:@"sync_ws"] boolValue]) {
                 for (NSString *str in self.listOfWeapons) {
                     if ([str isEqualToString:self.selectedScheme]) {
                         int index = [self.listOfSchemes indexOfObject:str];
@@ -209,9 +225,36 @@
                     }
                 }
             }
-        } else {
+        } else if (index == 1) {
             self.lastIndexPath_we = indexPath;
             self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
+        } else {
+            self.lastIndexPath_lu = indexPath;
+            self.selectedScript = [self.listOfScripts objectAtIndex:newRow];
+
+            NSString *path = [[NSString alloc] initWithFormat:@"%@/%@",SCRIPTS_DIRECTORY(),selectedScript];
+            NSDictionary *scriptDict = [[NSDictionary alloc] initWithContentsOfFile:path];
+            [path release];
+            self.scriptCommand = [scriptDict objectForKey:@"command"];
+            NSString *scheme = [scriptDict objectForKey:@"scheme"];
+            if ([scheme isEqualToString:@""]) {
+                self.selectedScheme = @"Default.plist";
+                [self.topControl setEnabled:NO forSegmentAtIndex:0];
+            } else {
+                self.selectedScheme = scheme;
+                [self.topControl setEnabled:YES forSegmentAtIndex:0];
+            }
+
+            NSString *weapon = [scriptDict objectForKey:@"weapon"];
+            if ([weapon isEqualToString:@""]) {
+                self.selectedWeapon = @"Default.plist";
+                [self.topControl setEnabled:NO forSegmentAtIndex:1];
+            } else {
+                self.selectedWeapon = weapon;
+                [self.topControl setEnabled:YES forSegmentAtIndex:1];
+            }
+
+            [scriptDict release];
         }
 
         [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
@@ -224,11 +267,12 @@
         hideSections = NO;
         NSRange range;
         range.location = 0;
-        range.length = 3;
+        range.length = 1;
         NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
         [self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
         self.selectedScheme = @"Default.plist";
         self.selectedWeapon = @"Default.plist";
+        self.selectedScript = @"Normal.plist";
 
         self.tableView.scrollEnabled = YES;
 
@@ -240,11 +284,12 @@
     hideSections = YES;
     NSRange range;
     range.location = 0;
-    range.length = 3;
+    range.length = 1;
     NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
     [self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
     self.selectedScheme = @"Default.plist";
     self.selectedWeapon = @"Default.plist";
+    self.selectedScript = @"Normal.plist";
 
     self.tableView.scrollEnabled = NO;
 
@@ -264,9 +309,11 @@
     if ([[HedgewarsAppDelegate sharedAppDelegate] isInGame]) {
         self.lastIndexPath_sc = nil;
         self.lastIndexPath_we = nil;
+        self.lastIndexPath_lu = nil;
         self.listOfSchemes = nil;
         self.listOfWeapons = nil;
-        self.syncSwitch = nil;
+        self.listOfScripts = nil;
+        self.topControl = nil;
         MSG_MEMCLEAN();
     }
     [super didReceiveMemoryWarning];
@@ -275,11 +322,15 @@
 -(void) viewDidUnload {
     self.listOfSchemes = nil;
     self.listOfWeapons = nil;
+    self.listOfScripts = nil;
     self.lastIndexPath_sc = nil;
     self.lastIndexPath_we = nil;
+    self.lastIndexPath_lu = nil;
     self.selectedScheme = nil;
     self.selectedWeapon = nil;
-    self.syncSwitch = nil;
+    self.selectedScript = nil;
+    self.scriptCommand = nil;
+    self.topControl = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
@@ -288,11 +339,15 @@
 -(void) dealloc {
     releaseAndNil(listOfSchemes);
     releaseAndNil(listOfWeapons);
+    releaseAndNil(listOfScripts);
     releaseAndNil(lastIndexPath_sc);
     releaseAndNil(lastIndexPath_we);
+    releaseAndNil(lastIndexPath_lu);
     releaseAndNil(selectedScheme);
     releaseAndNil(selectedWeapon);
-    releaseAndNil(syncSwitch);
+    releaseAndNil(selectedScript);
+    releaseAndNil(scriptCommand);
+    releaseAndNil(topControl);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/ServerSetup.h	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerSetup.h	Thu Aug 04 17:44:55 2011 +0200
@@ -30,6 +30,4 @@
 
 @property (nonatomic, retain) NSDictionary *systemSettings;
 
--(BOOL) isNetworkReachable;
-
 @end
--- a/project_files/HedgewarsMobile/Classes/ServerSetup.m	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerSetup.m	Thu Aug 04 17:44:55 2011 +0200
@@ -22,8 +22,6 @@
 #import "ServerSetup.h"
 #import "PascalImports.h"
 #import "CommodityFunctions.h"
-#import <SystemConfiguration/SCNetworkReachability.h>
-#import <netinet/in.h>
 #import "hwconsts.h"
 
 #define BUFFER_SIZE 256
@@ -43,39 +41,6 @@
     [super dealloc];
 }
 
-// reusing appirater method
--(BOOL) isNetworkReachable {
-    // Create zero addy
-    struct sockaddr_in zeroAddress;
-    bzero(&zeroAddress, sizeof(zeroAddress));
-    zeroAddress.sin_len = sizeof(zeroAddress);
-    zeroAddress.sin_family = AF_INET;
-    
-    // Recover reachability flags
-    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
-    SCNetworkReachabilityFlags flags;
-    
-    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
-    CFRelease(defaultRouteReachability);
-    
-    if (!didRetrieveFlags) {
-        NSLog(@"Error. Could not recover network reachability flags");
-        return NO;
-    }
-    
-    BOOL isReachable = flags & kSCNetworkFlagsReachable;
-    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
-    BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
-    
-    NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
-    NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL
-                                                 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
-                                             timeoutInterval:20.0];
-    NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:self];
-    
-    return ((isReachable && !needsConnection) || nonWiFi) ? (testConnection ? YES : NO) : NO;
-}
-
 -(int) sendToServer:(NSString *)command {
     NSString *message = [[NSString alloc] initWithFormat:@"%@\n\n",command];
     int result = SDLNet_TCP_Send(sd, [message UTF8String], [message length]);
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Thu Aug 04 17:44:55 2011 +0200
@@ -1370,7 +1370,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\n#create config.inc\necho \"Updating config file...\"\nPROTO=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep HEDGEWARS_PROTO_VER | cut -d ' ' -f 3`\nMAJN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MAJOR | xargs | cut -d ' ' -f 3`\nMINN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MINOR | xargs | cut -d ' ' -f 3`\nPATN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_PATCH | xargs | cut -d ' ' -f 3 | cut -d '$' -f 1`\nREVN=-`/usr/local/bin/hg id -n ${PROJECT_DIR}/../../`\necho \"const cNetProtoVersion = $PROTO; const cVersionString = '${MAJN}.${MINN}.${PATN}${REVN}'; const cLuaLibrary = '';\" > ${PROJECT_DIR}/../../hedgewars/config.inc\n\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend/res...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp    ${PROJECT_DIR}/../../QTfrontend/res/btn*.png        ${PROJECT_DIR}/Data/Graphics/Btn/\ncp    ${PROJECT_DIR}/../../QTfrontend/res/icon*.png       ${PROJECT_DIR}/Data/Graphics/Btn/\ncp    ${PROJECT_DIR}/../../QTfrontend/res/StatsMedal*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp    ${PROJECT_DIR}/../../QTfrontend/res/StatsR.png      ${PROJECT_DIR}/Data/Graphics/Btn/StatsStar.png\ncp    ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png     ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels       ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.svgz -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#delete useless fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n#copy mono audio\ncp -R ${PROJECT_DIR}/Audio/* ${PROJECT_DIR}/Data/\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace,CTF_Blizzard,Control} ${PROJECT_DIR}/Data/Missions/Maps/\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\n#remove WIP themes (check they are not used in Maps)\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\necho \"Done\"";
+			shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\n#create config.inc\necho \"Updating config file...\"\nPROTO=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep HEDGEWARS_PROTO_VER | cut -d ' ' -f 2 | cut -d ')' -f 1`\nMAJN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MAJOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nMINN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MINOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nPATN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_PATCH | xargs | cut -d ' ' -f 2 | cut -d '$' -f 1`\nREVN=-`/usr/local/bin/hg id -n ${PROJECT_DIR}/../../`\necho \"const cNetProtoVersion = $PROTO; const cVersionString = '${MAJN}.${MINN}.${PATN}${REVN}'; const cLuaLibrary = '';\" > ${PROJECT_DIR}/../../hedgewars/config.inc\n\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend/res...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp    ${PROJECT_DIR}/../../QTfrontend/res/btn*.png        ${PROJECT_DIR}/Data/Graphics/Btn/\ncp    ${PROJECT_DIR}/../../QTfrontend/res/icon*.png       ${PROJECT_DIR}/Data/Graphics/Btn/\ncp    ${PROJECT_DIR}/../../QTfrontend/res/StatsMedal*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp    ${PROJECT_DIR}/../../QTfrontend/res/StatsR.png      ${PROJECT_DIR}/Data/Graphics/Btn/StatsStar.png\ncp    ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png     ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels       ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.svgz -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps and WIP themes (remember to check that no Map uses them)\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\n#delete unused fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n#copy mono audio\ncp -R ${PROJECT_DIR}/Audio/* ${PROJECT_DIR}/Data/\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace,CTF_Blizzard,Control} ${PROJECT_DIR}/Data/Missions/Maps/\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n#remove cfg files since we have plists\nfind ${PROJECT_DIR}/Data/Scripts -name *.cfg -delete\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\necho \"Done\"";
 			showEnvVarsInLog = 0;
 		};
 		9283011B0F10CB2D00CC5A3C /* Build libfpc.a */ = {
@@ -1522,49 +1522,24 @@
 		1D6058940D05DD3E006BFB54 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
-				COPY_PHASE_STRIP = NO;
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_GENERATE_TEST_COVERAGE_FILES = YES;
 				GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)\"",
-				);
-				OTHER_LDFLAGS = (
-					"$(inherited)",
-					"-lgcov",
-				);
 				PRODUCT_NAME = Hedgewars;
-				TARGETED_DEVICE_FAMILY = "$(inherited)";
 			};
 			name = Debug;
 		};
 		1D6058950D05DD3E006BFB54 /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				CODE_SIGN_ENTITLEMENTS = "Entitlements-Development.plist";
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)\"",
-				);
 				PRODUCT_NAME = Hedgewars;
-				PROVISIONING_PROFILE = "";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				TARGETED_DEVICE_FAMILY = "$(inherited)";
 			};
 			name = Release;
 		};
@@ -1584,7 +1559,7 @@
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = default;
 				GCC_FAST_MATH = YES;
-				GCC_OPTIMIZATION_LEVEL = 2;
+				GCC_OPTIMIZATION_LEVEL = s;
 				GCC_PREPROCESSOR_DEFINITIONS = "";
 				GCC_STRICT_ALIASING = YES;
 				GCC_THUMB_SUPPORT = NO;
@@ -1599,6 +1574,7 @@
 					"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
 				);
 				IPHONEOS_DEPLOYMENT_TARGET = 3.1;
+				LLVM_LTO = NO;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_CODE_SIGN_FLAGS = "";
 				OTHER_LDFLAGS = (
@@ -1618,30 +1594,17 @@
 		61022D7D12305A2800B08935 /* Distro AppStore */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				CODE_SIGN_ENTITLEMENTS = "Entitlements-Distribution.plist";
-				CODE_SIGN_IDENTITY = "iPhone Distribution";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
 				COPY_PHASE_STRIP = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)\"",
-				);
 				PRODUCT_NAME = Hedgewars;
-				PROVISIONING_PROFILE = "";
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				TARGETED_DEVICE_FAMILY = "$(inherited)";
 			};
 			name = "Distro AppStore";
 		};
 		61022D7E12305A2800B08935 /* Distro AppStore */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = YES;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				GCC_ENABLE_FIX_AND_CONTINUE = NO;
@@ -1674,12 +1637,12 @@
 				FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/2.5.1;
 				FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
 				FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
-				FPC_SPECIFIC_OPTIONS = "-dDEBUGFILE -Ci- -Cr- -Co- -O-2 -Xs  -Cfvfpv2";
+				FPC_SPECIFIC_OPTIONS = "-dDEBUGFILE -O- -g -gl -gw2 -gt -ghttt -Xs- -Cfvfpv2";
 				FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
 				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_DEBUGGING_SYMBOLS = default;
+				GCC_DEBUGGING_SYMBOLS = full;
 				GCC_FAST_MATH = YES;
-				GCC_OPTIMIZATION_LEVEL = 2;
+				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 				GCC_STRICT_ALIASING = YES;
 				GCC_THUMB_SUPPORT = NO;
@@ -1712,28 +1675,17 @@
 		6137064C117B1CB3004EE44A /* Distro Adhoc */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
-				CODE_SIGN_ENTITLEMENTS = "Entitlements-Distribution.plist";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
 				COPY_PHASE_STRIP = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)\"",
-				);
 				PRODUCT_NAME = Hedgewars;
-				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
-				TARGETED_DEVICE_FAMILY = "$(inherited)";
 			};
 			name = "Distro Adhoc";
 		};
 		6137064D117B1CB3004EE44A /* Distro Adhoc */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = YES;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				GCC_ENABLE_FIX_AND_CONTINUE = NO;
@@ -1778,7 +1730,6 @@
 		928301180F10CAFD00CC5A3C /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = NO;
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_OPTIMIZATION_LEVEL = 0;
@@ -1790,7 +1741,6 @@
 		928301190F10CAFD00CC5A3C /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
 				COPY_PHASE_STRIP = YES;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				GCC_ENABLE_FIX_AND_CONTINUE = NO;
@@ -1816,7 +1766,7 @@
 				FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = full;
-				GCC_FAST_MATH = NO;
+				GCC_FAST_MATH = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 				GCC_STRICT_ALIASING = YES;
@@ -1863,7 +1813,7 @@
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = default;
 				GCC_FAST_MATH = YES;
-				GCC_OPTIMIZATION_LEVEL = 2;
+				GCC_OPTIMIZATION_LEVEL = s;
 				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 				GCC_STRICT_ALIASING = YES;
 				GCC_THUMB_SUPPORT = NO;
@@ -1878,6 +1828,7 @@
 					"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
 				);
 				IPHONEOS_DEPLOYMENT_TARGET = 3.1;
+				LLVM_LTO = NO;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_LDFLAGS = (
 					"-lz",
--- a/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib	Thu Aug 04 17:44:55 2011 +0200
@@ -2,9 +2,9 @@
 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
 	<data>
 		<int key="IBDocument.SystemTarget">1056</int>
-		<string key="IBDocument.SystemVersion">10H574</string>
+		<string key="IBDocument.SystemVersion">10K540</string>
 		<string key="IBDocument.InterfaceBuilderVersion">823</string>
-		<string key="IBDocument.AppKitVersion">1038.35</string>
+		<string key="IBDocument.AppKitVersion">1038.36</string>
 		<string key="IBDocument.HIToolboxVersion">461.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -50,7 +50,7 @@
 							<object class="IBUISegmentedControl" id="563596142">
 								<reference key="NSNextResponder" ref="836721772"/>
 								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{96, 8}, {269, 30}}</string>
+								<string key="NSFrame">{{96, 8}, {270, 30}}</string>
 								<reference key="NSSuperview" ref="836721772"/>
 								<bool key="IBUIOpaque">NO</bool>
 								<int key="IBUITag">12345</int>
@@ -94,8 +94,8 @@
 									<reference ref="4"/>
 								</object>
 								<object class="NSColor" key="IBTintColor">
-									<int key="NSColorSpace">2</int>
-									<bytes key="NSRGB">MC4yMzEzNzI1NjUgMCAwLjQ2Mjc0NTEzMDEAA</bytes>
+									<int key="NSColorSpace">1</int>
+									<bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
 								</object>
 							</object>
 						</object>
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib	Thu Aug 04 17:44:55 2011 +0200
@@ -2,9 +2,9 @@
 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
 	<data>
 		<int key="IBDocument.SystemTarget">1056</int>
-		<string key="IBDocument.SystemVersion">10H574</string>
+		<string key="IBDocument.SystemVersion">10K540</string>
 		<string key="IBDocument.InterfaceBuilderVersion">823</string>
-		<string key="IBDocument.AppKitVersion">1038.35</string>
+		<string key="IBDocument.AppKitVersion">1038.36</string>
 		<string key="IBDocument.HIToolboxVersion">461.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -12,7 +12,7 @@
 		</object>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="9"/>
+			<integer value="1"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
@@ -58,7 +58,7 @@
 					<object class="IBUISegmentedControl" id="88728219">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">289</int>
-						<string key="NSFrame">{{725, 166}, {277, 30}}</string>
+						<string key="NSFrame">{{724, 166}, {280, 30}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<bool key="IBUIOpaque">NO</bool>
 						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
@@ -101,8 +101,8 @@
 							<reference ref="4"/>
 						</object>
 						<object class="NSColor" key="IBTintColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MCAwIDAAA</bytes>
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
 						</object>
 					</object>
 					<object class="IBUISlider" id="938256702">
@@ -566,6 +566,7 @@
 					<string>57.IBPluginDependency</string>
 					<string>66.IBPluginDependency</string>
 					<string>7.IBPluginDependency</string>
+					<string>7.IBViewBoundsToFrameTransform</string>
 					<string>70.IBPluginDependency</string>
 					<string>72.IBPluginDependency</string>
 					<string>75.IBPluginDependency</string>
@@ -585,6 +586,9 @@
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<object class="NSAffineTransform">
+						<bytes key="NSTransformStruct">P4AAAL+AAABENUAAw0IAAA</bytes>
+					</object>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib	Thu Aug 04 17:44:55 2011 +0200
@@ -2,9 +2,9 @@
 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
 	<data>
 		<int key="IBDocument.SystemTarget">1056</int>
-		<string key="IBDocument.SystemVersion">10H574</string>
+		<string key="IBDocument.SystemVersion">10K540</string>
 		<string key="IBDocument.InterfaceBuilderVersion">823</string>
-		<string key="IBDocument.AppKitVersion">1038.35</string>
+		<string key="IBDocument.AppKitVersion">1038.36</string>
 		<string key="IBDocument.HIToolboxVersion">461.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -57,7 +57,7 @@
 					<object class="IBUISegmentedControl" id="88728219">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">292</int>
-						<string key="NSFrame">{{13, 166}, {256, 30}}</string>
+						<string key="NSFrame">{{9, 14}, {270, 30}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<bool key="IBUIOpaque">NO</bool>
 						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -100,14 +100,14 @@
 							<reference ref="4"/>
 						</object>
 						<object class="NSColor" key="IBTintColor">
-							<int key="NSColorSpace">2</int>
-							<bytes key="NSRGB">MC4wMjM1Mjk0MTQwOSAwLjM3NjQ3MDYyNTQgMAA</bytes>
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
 						</object>
 					</object>
 					<object class="IBUISlider" id="938256702">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">292</int>
-						<string key="NSFrame">{{98, 240}, {149, 23}}</string>
+						<string key="NSFrame">{{119, 207}, {149, 23}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<bool key="IBUIOpaque">NO</bool>
 						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -119,7 +119,7 @@
 					<object class="IBUIButton" id="326163764">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">292</int>
-						<string key="NSFrame">{{13, 20}, {256, 128}}</string>
+						<string key="NSFrame">{{16, 58}, {256, 128}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<bool key="IBUIOpaque">NO</bool>
 						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -146,7 +146,7 @@
 					<object class="IBUILabel" id="634417433">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">292</int>
-						<string key="NSFrame">{{20, 221}, {48, 35}}</string>
+						<string key="NSFrame">{{58, 221}, {48, 35}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<bool key="IBUIOpaque">NO</bool>
 						<bool key="IBUIClipsSubviews">YES</bool>
@@ -154,6 +154,11 @@
 						<bool key="IBUIUserInteractionEnabled">NO</bool>
 						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 						<string key="IBUIText">...</string>
+						<object class="NSFont" key="IBUIFont">
+							<string key="NSName">Helvetica-Bold</string>
+							<double key="NSSize">17</double>
+							<int key="NSfFlags">16</int>
+						</object>
 						<object class="NSColor" key="IBUITextColor">
 							<int key="NSColorSpace">2</int>
 							<bytes key="NSRGB">MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA</bytes>
@@ -166,7 +171,7 @@
 					<object class="IBUILabel" id="743202682">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">292</int>
-						<string key="NSFrame">{{88, 210}, {169, 29}}</string>
+						<string key="NSFrame">{{109, 237}, {169, 29}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<bool key="IBUIOpaque">NO</bool>
 						<bool key="IBUIClipsSubviews">YES</bool>
@@ -210,6 +215,31 @@
 						<float key="IBUISectionHeaderHeight">10</float>
 						<float key="IBUISectionFooterHeight">10</float>
 					</object>
+					<object class="IBUILabel" id="32436512">
+						<reference key="NSNextResponder" ref="191373211"/>
+						<int key="NSvFlags">292</int>
+						<string key="NSFrame">{{-9, 225}, {92, 27}}</string>
+						<reference key="NSSuperview" ref="191373211"/>
+						<bool key="IBUIOpaque">NO</bool>
+						<bool key="IBUIClipsSubviews">YES</bool>
+						<int key="IBUIContentMode">7</int>
+						<bool key="IBUIUserInteractionEnabled">NO</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<string key="IBUIText">Max</string>
+						<object class="NSFont" key="IBUIFont">
+							<string key="NSName">Helvetica-BoldOblique</string>
+							<double key="NSSize">18</double>
+							<int key="NSfFlags">16</int>
+						</object>
+						<object class="NSColor" key="IBUITextColor">
+							<int key="NSColorSpace">2</int>
+							<bytes key="NSRGB">MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA</bytes>
+						</object>
+						<reference key="IBUIHighlightedColor" ref="437070330"/>
+						<int key="IBUIBaselineAdjustment">1</int>
+						<float key="IBUIMinimumFontSize">10</float>
+						<int key="IBUITextAlignment">1</int>
+					</object>
 				</object>
 				<string key="NSFrameSize">{480, 276}</string>
 				<reference key="NSSuperview"/>
@@ -358,10 +388,11 @@
 							<reference ref="326163764"/>
 							<reference ref="565214171"/>
 							<reference ref="938256702"/>
-							<reference ref="88728219"/>
+							<reference ref="743202682"/>
 							<reference ref="574494641"/>
-							<reference ref="743202682"/>
+							<reference ref="88728219"/>
 							<reference ref="634417433"/>
+							<reference ref="32436512"/>
 						</object>
 						<reference key="parent" ref="0"/>
 					</object>
@@ -412,6 +443,11 @@
 						<reference key="object" ref="574494641"/>
 						<reference key="parent" ref="191373211"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">36</int>
+						<reference key="object" ref="32436512"/>
+						<reference key="parent" ref="191373211"/>
+					</object>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
@@ -430,7 +466,10 @@
 					<string>25.IBViewBoundsToFrameTransform</string>
 					<string>35.IBPluginDependency</string>
 					<string>35.IBViewBoundsToFrameTransform</string>
+					<string>36.IBPluginDependency</string>
+					<string>36.IBViewBoundsToFrameTransform</string>
 					<string>7.IBPluginDependency</string>
+					<string>7.IBViewBoundsToFrameTransform</string>
 					<string>8.IBPluginDependency</string>
 					<string>9.CustomClassName</string>
 					<string>9.IBPluginDependency</string>
@@ -440,11 +479,11 @@
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<string>MapConfigViewController</string>
 					<string>UIResponder</string>
-					<string>{{507, 233}, {480, 320}}</string>
+					<string>{{790, 298}, {480, 320}}</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAABB6AAAw3kAAA</bytes>
+						<bytes key="NSTransformStruct">P4AAAL+AAABB+AAAw4QAAA</bytes>
 					</object>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<object class="NSAffineTransform">
@@ -456,9 +495,16 @@
 					</object>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw58AAA</bytes>
+						<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw4kAAA</bytes>
 					</object>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<object class="NSAffineTransform">
+						<bytes key="NSTransformStruct">P4AAAL+AAABBMAAAw2gAAA</bytes>
+					</object>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<object class="NSAffineTransform">
+						<bytes key="NSTransformStruct">P4AAAL+AAABBUAAAwigAAA</bytes>
+					</object>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>MapPreviewButtonView</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -483,7 +529,7 @@
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">35</int>
+			<int key="maxID">36</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -40,6 +40,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<true/>
 		<false/>
 		<false/>
 		<false/>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -30,9 +30,10 @@
 		<false/>
 		<false/>
 		<false/>
+		<true/>
 		<false/>
 		<true/>
-		<true/>
+		<false/>
 		<false/>
 		<false/>
 		<false/>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -35,7 +35,7 @@
 		<true/>
 		<false/>
 		<false/>
-		<true/>
+		<false/>
 		<false/>
 		<false/>
 		<false/>
@@ -44,6 +44,7 @@
 		<true/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist	Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed
--- a/share/hedgewars/Data/Locale/bg.txt	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/bg.txt	Thu Aug 04 17:44:55 2011 +0200
@@ -12,7 +12,7 @@
 00:09=Пистолет
 00:10=Динамит
 00:11=Бухалка
-00:12=Shoryuken
+00:12=Шурикен
 00:13=сек
 00:14=Парашут
 00:15=Въздушна Атака
@@ -45,22 +45,22 @@
 01:04=На Пауза
 01:05=Наистина ли напускате (Y/Esc)?
 01:06=Внезапна смърт!
-01:07=%1 Remaining
-01:08=Fuel
+01:07=%1 остава
+01:08=Гориво
 
 ; Event messages
-; Hog (%1) died
-02:00=%1 has kicked the bucket!
-02:00=%1 has seen the light!
-02:00=%1 never saw that comming!
-; Hog (%1) drowned
-02:01=%1 plays submarine!
-02:01=%1 mimics the Titanic!
-02:01=%1 swims like a stone!
+; Hog (%1) умря
+02:00=%1 гушна букета!
+02:00=%1 видя светлината!
+02:00=%1 не видя откъде му дойде!
+; Таралежа (%1) се удави
+02:01=%1 се прави на подводница!
+02:01=%1 имитира Титаник!
+02:01=%1 плува като камък!
 ; Match starts
-02:02=Let's fight!
-02:02=Armed and ready!
-; Hog shot an home run (using the bat and another hog)
-02:10=Home Run!
-02:10=A bird, a plane, ...
-02:10=That one is out!
+02:02=Бой!
+02:02=Зареден и готов!
+; Таралежа отбеляза хоумрън (използвайки бухалка и друг таралеж)
+02:10=Х!оумрън
+02:10=Птица ли е, самолет ли е, ...
+02:10=Този е вън от играта!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/cs.lua	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,176 @@
+locale = {
+      [":("] = ":(",
+      ["!!!"] = "!!!",
+      ["..."] = "...",
+      ["Accuracy Bonus!"] = "Bonus za přesnost!",
+      ["a Hedgewars mini-game"] = "Hedgewars mini-hra", -- Space_Invasion, The_Specialists
+      ["Aiming Practice"] = "Trénink přesnosti", --Bazooka, Shotgun, SniperRifle
+      ["Ammo"] = "Munice",
+      ["Ammo Depleted!"] = "Munice vyčerpána!",
+      ["Ammo Maniac!"] = "Muniční maniak!",
+      ["Available points remaining: "] = "Zbývá bodů:",
+      ["Bat balls at your enemies and|push them into the sea!"] = "Odpal míčky na své nepřátele|a odstrč je do vody!",
+      ["Bat your opponents through the|baskets and out of the map!"] = "Odpal protivníky skrz|koše a pryč z mapy!",
+      ["Bazooka Training"] = "Trénink s bazukou",
+      ["Best laps per team: "] = "Nejlepší kola dle týmů:",
+      ["Best Team Times: "] = "Nejlepší týmový čas:",
+      ["Bloody Rookies"] = "Zatravení zelenáči", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+      ["Boom!"] = "Bum!",
+      ["BOOM!"] = "BUM!",
+      ["Boss defeated!"] = "Velitel poražen!",
+      ["Boss Slayer!"] = "Velitel zabit!",
+      ["CAPTURE THE FLAG"] = "ZAJMI VLAJKU",
+      ["Careless"] = "Neopatrný",
+      ["Clumsy"] = "Nešikovný",
+      ["Codename: Teamwork"] = "Krycí jméno: Týmová práce",
+      ["Complete the track as fast as you can!"] = "Dokonči trasu tak rychle, jak můžeš!",
+      ["Congratulations!"] = "Gratuluji!",
+      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratuluji! Eliminoval jsi všechny cíle|během stanoveného limitu", --Bazooka, Shotgun, SniperRifle
+      ["Control pillars to score points."] = "Obsaď všechny sloupy, abys dostal body.",
+      ["Cybernetic Empire"] = "Kybernetická říše",
+      ["DAMMIT, ROOKIE!"] = "ZATRACENĚ, ZELENÁČI!",
+      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "ZATRACENĚ, ZELENÁČI! VYPADNI Z MOJI HLAVY!",
+      ["Dangerous Ducklings"] = "Nebezpečná káčátka",
+      ["Deadweight"] = "Mrtvá váha",
+      ["Depleted Kamikaze!"] = "Vyčerpaný sebevrah!",
+      ["Destroy invaders to score points."] = "Znič nájezdníky k získání bodů.",
+      ["Drone Hunter!"] = "Lovec trubců!",
+      ["Drowner"] = "Utopenec",
+      ["Each turn you get 1-3 random weapons"] = "Každý tah dostaneš 1-3 náhodné zbraně",
+      ["Each turn you get one random weapon"] = "Každý tah dostaneš jednu náhodnou zbraň",
+      ["Eliminate all enemies"] = "Znič všechny nepřátele",
+      ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Znič všechny cíle, než ti vyprší čas.|Na tuto misi máš neomezeně munice.", --Bazooka, Shotgun, SniperRifle
+      ["Eliminate Poison before the time runs out"] = "Odstraň Otravu, než vyprší čas.",
+      ["Eliminate the Blue Team"] = "Znič modrý tým",
+      ["Eliminate the enemy specialists."] = "Zabij nepřátelské specialisty",
+      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Znič Jednotku 3378 |- Slabý odpor musí přežít",
+      ["Enjoy the swim..."] = "Užij si plavání...",
+      ["[Enter]"] = "[Enter]",
+      ["Fastest lap: "] = "Nejrychlejší kolo: ",
+      ["Feeble Resistance"] = "Slabý odpor",
+      ["Fire"] = "Oheň",
+      ["Flag captured!"] = "Vlajka zabrána!",
+      ["Flag respawned!"] = "Vlajka obnovena!",
+      ["Flag returned!"] = "Vlajka navrácena!",
+      ["Flags, and their home base will be placed where each team ends their first turn."] = "Vlajky a domovské základny budou umístěny tam, kde každý tým skončí svůj první tah.",
+      ["GAME BEGUN!!!"] = "HRA ZAČALA!!!",
+      ["Game Modifiers: "] = "Herní modifikátory: ",
+      ["GAME OVER!"] = "KONEC HRY!",
+      ["Game Started!"] = "Hra začala!",
+      ["Get on over there and take him out!"] = "Běž tamhle a dostaň ho!",
+      ["Goal"] = "Cíl",
+      ["GO! GO! GO!"] = "Běž! Běž! Běž!",
+      ["Good birdy......"] = "Hodný ptáček......",
+      ["Good luck out there!"] = "Hodně štěstí tam venku!",
+      ["GOTCHA!"] = "Mám tě!",
+      ["Hahahaha!"] = "Hahahaha!",
+      ["Haha, now THAT would be something!"] = "Haha, tak TOHLE bude něco!",
+      ["Hapless Hogs"] = "Nešťastný ježek",
+      [" Hapless Hogs left!"] = "Nešťastný ježek odešel!",
+      ["Heavy"] = "Těžký",
+      ["Hedgewars-Basketball"] = "Hedgewars-Basketbal",
+      ["Hedgewars-Knockball"] = "Hedgewars=Vybíjená",
+      ["Heh, it's not that bad."] = "Heh, to není tak špatné.",
+      ["Hit Combo!"] = "Opakovaný zásah!",
+      ["Hmmm..."] = "Hmmm...",
+      ["Hooray!"] = "Hurá!",
+      ["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle
+      ["Instructor"] = "Instruktor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+      ["invaders destroyed"] = "nájezdník zničen",
+      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "To je dobře, že NÁHLÁ SMRT je 99 tahů vzdálená...",
+      ["Jumping is disabled"] = "Skákání je vypnuto",
+      ["Kamikaze Expert!"] = "Expert na sebevraždy!",
+      ["KILLS"] = "ÚLOVKY",
+      ["[Left Shift]"] = "[Levý shift]",
+      ["Listen up, maggot!!"] = "Poslouchej, bídný červe!!",
+      ["|- Mines Time:"] = "|- Časovač min:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["MISSION FAILED"] = "MISE NEÚSPĚŠNÁ", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["MISSION SUCCESS"] = "MISE ÚSPĚŠNÁ",
+      ["MISSION SUCCESSFUL"] = "MISE ÚSPĚŠNÁ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["Movement: [Up], [Down], [Left], [Right]"] = "Pohyb: [nahoru], [dolu], [vlevo], [vpravo]",
+      ["Multi-shot!"] = "Vícenásobná rána!",
+      ["Nameless Heroes"] = "Bezejmenní hrdinové",
+      ["NEW CLAN RECORD: "] = "NOVÝ KLANOVÝ REKORD: ",
+      ["NEW fastest lap: "] = "NOVÉ nejrychlejší kolo: ",
+      ["NEW RACE RECORD: "] = "NOVÝ TRAŤOVÝ REKORD: ",
+      ["NOT ENOUGH WAYPOINTS"] = "NEDOSTATEK NAVIGAČNÍCH BODŮ",
+      ["Not So Friendly Match"] = "Ne moc přátelský zápas", -- Basketball, Knockball
+      ["Oh no! Just try again!"] = "Ale ne! Prostě to zkus znovu!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["Oh no! Time's up! Just try again."] = "Ale ne! Čas vypršel! Zkus to znova!", --Bazooka, Shotgun, SniperRifle
+      ["Operation Diver"] = "Operace potápěč",
+      ["Opposing Team: "] = "Protivníkův tým: ",
+      ["Pathetic Hog #%d"] = "Žalostný ježek #%d",
+      ["Per-Hog Ammo"] = "Individuální munice",
+      ["Place more waypoints using [ENTER]"] = "Umísti více navigačních bodů pomocí klávesy [enter]",
+      ["points"] = "body", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
+      ["Poison"] = "Otrava",
+      ["Power Remaining"] = "Zbývající energie",
+      ["Press [Precise] to skip intro"] = "Stiskni [přesnost] pro přeskočení",
+      ["Race complexity limit reached."] = "Dosažen limit složitosti závodu.",
+      [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Dones nepřátelskou vlajku do své základny k získání bodů | - První tým se třemi ukořistěními vítězí | - Můžeš bodovat, pokud je tvá vlajka v základně | - Ježci pustí vlajku, pokud jsou zabiti, nebo utopeni | - Upuštěná vlajka může být navrácena, nebo opět zajmuta | - Ježci jsou po smrti oživeni",
+      ["Round Limit"] = "Limit kol",
+      ["Rounds Complete"] = "Dokončených kol",
+      ["RULES OF THE GAME [Press ESC to view]"] = "PRAVIDLA HRY [Stiskni ESC pro prohlédnutí]",
+      ["s|"] = "s|",
+      ["Save as many hapless hogs as possible!"] = "Zachraň tolik nešťastných ježků, kolik jen můžeš!",
+      ["SCORE"] = "SKÓRE",
+      ["sec"] = "vt.", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+      ["See ya!"] = "Uvidíme se!",
+      ["s"] = "s", -- GaudyRacer, Space_Invasion
+      ["Shield boosted! +30 power"] = "Štít posílen! +30 energie",
+      ["Shield Depleted"] = "Štít vyčerpán",
+      ["Shield is fully recharged!"] = "Štít je plně dobit",
+      ["Shield Master!"] = "Štítový odborník!",
+      ["Shield Miser!"] = "Štítový škrt!",
+      ["Shield OFF:"] = "Štít VYPNUT:",
+      ["Shield ON:"] = "Štít ZAPNUT:",
+      ["Shield Seeker!"] = "Hledač štítů!",
+      ["Shotgun Team"] = "Brokovnicový tým",
+      ["Shotgun Training"] = "Trénink s brokovnicí",
+      ["Shots Left: "] = "Zbývá střel: ", -- GaudyRacer, Tumbler
+      ["Silly"] = "Hloupý",
+      ["Sinky"] = "Propadlý",
+      ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s je venku a tým %d|má penaltu!| |Skóre:", -- Basketball, Knockball
+      ["%s is out and Team %d|scored a point!| |Score:"] = "%s je venku a tým %d|skóruje!| |Skóre:", -- Basketball, Knockball
+      ["Sniper Training"] = "Odstřelovací trénink",
+      ["Sniperz"] = "Snajpři",
+      ["Sponge"] = "Mycí houba",
+      ["Spooky Tree"] = "Strašidelný strom",
+      ["STATUS UPDATE"] = "AKTUALIZACE STAVU", -- GaudyRacer, Space_Invasion
+      ["Switched to "] = "Přepnut na ",
+      ["Team %d: "] = "Tým %d: ",
+      ["Team Scores"] = "Týmové skóre", -- Control, Space_Invasion
+      ["That Sinking Feeling"] = "Potopené pocity",
+      ["That was pointless."] = "To bylo bezúčelné.",
+      ["The enemy is hiding out on yonder ducky!"] = "Nepřítel se skrývá na tamté kachničce!",
+      ["The flag will respawn next round."] = "Vlajka se obnoví příští kolo.",
+      ["The Nameless One"] = "Bezejmenný",
+      ["THE SPECIALISTS"] = "SPECIALISTÉ",
+      ["This rain is really something..."] = "Tenhle déšť je opravdu něco...",
+      ["TIME: "] = "ČAS: ",
+      ["Timed Kamikaze!"] = "Časovaná sebevražda!",
+      ["Time Extended!"] = "Čas prodloužen!",
+      ["Time Left: "] = "Zbývá času: ",
+      ["Toggle Shield"] = "Přepnout štít",
+      ["Toxic Team"] = "Jedovatý tým", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["TRACK COMPLETED"] = "TRASA KOMPLETNÍ",
+      ["Track Time: "] = "Čas na trati: ",
+      ["TrophyRace"] = "Závod o trofej",
+      ["T_T"] = "T_T",
+      ["Turn Time"] = "Čas kola",
+      ["Unit 3378"] = "Jednotka 3378",
+      ["Unlimited Attacks"] = "Neomezeně útoků",
+      ["User Challenge"] = "Výzva",
+      ["Use your rope to get from start to finish as fast as you can!"] = "Použij lano a dostaň se ze startu do cíle, jak nejrychleji umíš!",
+      ["v.06"] = "v.06",
+      ["Victory for the "] = "Vítězství pro ", -- CTF_Blizzard, Capture_the_Flag
+      ["Waypoint placed."] = "Navigační bod umístěn.",
+      ["Weapons Reset"] = "Zbraně obnoveny",
+      ["WINNING TIME: "] = "VÍTĚZNÝ ČAS: ",
+      ["You'd almost swear the water was rising!"] = "Přísahal bys, že voda stoupá!",
+      ["You have SCORED!!"] = "SKÓROVAL jsi!!",
+      ["You saved"] = "Uložil jsi",
+      ["You've failed. Try again."] = "Zklamal jsi. Zkus to znovu.",
+      ["You've reached the goal!| |Time: "] = "Dosáhl jsi cíle!| |Čas: ",
+      ["'Zooka Team"] = "Bazukáři",
+    }
--- a/share/hedgewars/Data/Locale/cs.txt	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/cs.txt	Thu Aug 04 17:44:55 2011 +0200
@@ -1,46 +1,57 @@
 ; Czech locale
 
 00:00=Granát
-00:01=Tříštivý Granát
+00:01=Tříštivý granát
 00:02=Bazuka
-00:03=UFO
+00:03=Naváděná včela
 00:04=Brokovnice
 00:05=Sbíječka
 00:06=Přeskočit
 00:07=Lano
 00:08=Mina
-00:09=DEagle
+00:09=Pistole Desert Eagle
 00:10=Dynamit
 00:11=Basebalová pálka
-00:12=Shoryuken
-00:13=sec
+00:12=Ohnivý úder
+00:13=vt.
 00:14=Padák
-00:15=Nálet
-00:16=Minový nálet
-00:17=Blow Torch
+00:15=Vzdušný útok
+00:16=Minový útok
+00:17=Svářečka
 00:18=Výstavba
 00:19=Teleportace
-00:20=Vyměnit Ježka
-00:21=Mortar
+00:20=Vyměnit ježka
+00:21=Minomet
 00:22=Švihnutí bičem
-00:23=Kamikaze
+00:23=Kamikadze
 00:24=Dort
 00:25=Omámení
 00:26=Bomba z vodního melounu
 00:27=Ďábelský ruční granát
 00:28=Vrtáková raketa
-00:29=Ballgun
+00:29=Kuličkomet
 00:30=Napalm
 00:31=RC Letadlo
-00:32=Low Gravity
-00:33=Extra Damage
-00:34=Invulnerable
-00:35=Extra Time
-00:36=Laser Sight
-00:37=Vampirism
-00:38=Sniper Rifle
-00:39=Flying Saucer
-00:40=Molotov Cocktail
+00:32=Nízká gravitace
+00:33=Extra zranění
+00:34=Nesmrtelnost
+00:35=Extra čas
+00:36=Laserové zaměřování
+00:37=Vampyrismus
+00:38=Odsřelovačská puška
+00:39=Létající talíř
+00:40=Molotov koktejl
+00:41=Ptáček
+00:42=Přenosný vytvářeč portálů
+00:43=Pianový útok
+00:44=Olomoucké tvarůžky
+00:45=Sinová puška (beta)
+00:46=Plamenomet
+00:47=Přísavná mina
+00:48=Kladivo
+00:49=Oživovač
+00:50=Vrtákový útok
+00:51=Hrouda bláta
 
 01:00=Do boje!
 01:01=Kolo nerozhodně
@@ -49,22 +60,453 @@
 01:04=Pauza
 01:05=Opravdu ukončit (Y/Esc)?
 01:06=Náhlá smrt!
-01:07=%1 Remaining
-01:08=Fuel
+01:07=%1 zbývá
+01:08=Palivo
+01:09=Synchronizuji...
+01:10=Použití tohoto nástroje neukončí tvůj tah!
+01:11=Tato zbraň nebo nástroj není dosud povolena!
+01:12=Poslední kolo před Náhlou smrtí!
+01:13=%1 kol do Náhlé smrti!
+01:14=Připrav se, %1!
 
 ; Event messages
 ; Hog (%1) died
-02:00=%1 has kicked the bucket!
-02:00=%1 has seen the light!
-02:00=%1 never saw that comming!
+02:00=%1 natáhl bačkory!
+02:00=%1 viděl světlo na konci tunelu!
+02:00=%1 to neviděl přicházet!
+02:00=%1 mává na rozloučenou!
+02:00=%1 odešel na lepší místo!
+02:00=%1 potkal svého tvůrce!
+02:00=%1 už nemůže čekat!
+02:00=%1 splnil svou povinnost!
+02:00=%1 provedl obrovskou oběť!
+02:00=%1 je na smrtelné posteli!
+02:00=%1 opadal jak listí ze stromů!
+02:00=%1 přišel o svůj čas!
+02:00=%1 říká mír s vámi!
+02:00=%1 nebude nikdy zapomenut!
+02:00=%1 má aneurisma!
+02:00=%1 po sobě zanechal ženu a děti
+02:00=%1 si naposledy vystřelil z bazuky
+02:00=%1 odhodil svůj poslední granát
+02:00=%1 dopekl svůj poslední dort
+02:00=%1 se naposledy zhoupl na laně
+02:00=%1 zavolal svou poslední leteckou podporu
+02:00=%1 si naposledy pohladil brokovnici
+02:00=%1 hodil poslední meloun
+02:00=%1 naposledy vytáhl svou pistoli
+02:00=%1 schytal příliš mnoho ran
+02:00=%1 by opravdu využil bednu se zdravím
+02:00=%1 odešel hrát lepší hru
+02:00=%1 vztekle opustil život
+02:00=%1 zklamal
+02:00=Ubohý %1...
+02:00=%1 preferuje wormux
+02:00=%1 blokoval rány svou tváří
+02:00=%1 je hrdina mezi li...ehm...ježky
+02:00=%1 našel své místo ve Valhalle
+02:00=%1 opustil budovu
+02:00=%1 zvolil stejnou cestu jako dinosauři
+02:00=%1 dovedl ježky o krok blíže k vymření
+02:00=%1 přinesl slzu do mého oka
+02:00=%1 je ex-ježek
+02:00=%1 hnojí kytičky
+02:00=%1 přestal existovat
+02:00=Řekněte sbohem %1
+02:00=Pro %1 již není naděje
+02:00=%1 stojí za poslední oponou
+02:00=Pokud můžeš, zapal si, %1
+02:00=%1 trpí masivní spontánní poruchou existence
+02:00=%1 odešel
+02:00=%1 je tuhý
+02:00=%1 už není
+02:00=%1 vypršel
+02:00=Odpočívej v pokoji, %1
+02:00=%1 se přidal k zástupům neviditelných
+02:00=Sbohem %1, sotva jsme tě poznali!
+02:00=%1 je náchylný k zastřelení
+02:00=%1 by využil život navíc
+02:00=Je v domě doktor?
+
 ; Hog (%1) drowned
-02:01=%1 plays submarine!
-02:01=%1 mimics the Titanic!
-02:01=%1 swims like a stone!
-; Match starts
-02:02=Let's fight!
-02:02=Armed and ready!
+02:01=%1 si hraje na ponorku!
+02:01=%1 napodobuje Titanik!
+02:01=%1 plave jako kámen!
+02:01=%1 se vznáší jako cihla!
+02:01=%1 našel konec v hlubinách
+02:01=Glo glo glo glo
+02:01=%1 žbluňkl
+02:01=%1 si zapomněl rukávky
+02:01=%1 si měl nejprve zaplatit plavecký kurz
+02:01=%1 zapomněl doma surf
+02:01=%1 je umytý
+02:01=%1 je rozmočený ježek
+02:01=%1 si zapomněl přinést záchrannou vestu
+02:01=%1 udělal žbluňky žbluňk
+02:01=%1 spí dnes s rybami
+02:01=%1 si myslí, že podvodní fyzika je v této hře na nic
+02:01=%1 vypadá žíznivě
+02:01=Moře si vzalo %1
+02:01=%1 je ztracen v moři
+02:01=%1 si měl přinést podvodní výstroj
+02:01=%1 má pohřeb do moře
+02:01=%1 má pocit, jako by se potápěl
+02:01=%1 trénuje znak
+02:01=%1 jde hledat Titanik
+02:01=%1 není Ježíš
+02:01=%1 hledá Nema
+02:01=%1 objevil prasklinu
+02:01=Budeš se divit, kolik je tam dole ježků!
+02:01=%1 zvedl o kousek hladinu oceánů
+02:01=%1 nebude v námořnictvu
+02:01=%1 zkouší své ztělesnění mrtvé ryby
+02:01=Alespoň tě nespláchli do záchoda, %1
+02:01=Sonic neuměl plavat a ani ty ne, %1
+02:01=%1 chce hrát delfína Ecca
+02:01=%1 odešel navštívit akvárium
+02:01=%1 našel ztracené město Atlantidu
+02:01=%1 míří na hlavní roli v Bioshocku 3
+02:01=Na tvém stylu čubička by ještě chtělo zapracovat, %1
+02:01=%1 si neměl vozit vodní lyže
+02:01=%1 nemá rád vodní sporty
+02:01=%1 navždy vypouští bubliny
+02:01=%1 nemá raft
+02:01=%1 si myslí, že slaná voda je dobrá na pleť
+02:01=%1 má v ranách slanou vodu
+02:01=%1 šel po prkně
+02:01=%1 si dává koupel
+02:01=%1 je moc moc moc mokrý
+02:01=%1 si namočil bodliny
+02:01=%1 našel truhlu Mrtvého muže
+
+; Round starts
+02:02=Do boje!
+02:02=Nabito a odjištěno!
+02:02=Připrav se na rachot!
+02:02=Jdeme na to!
+02:02=Ať párty začne
+02:02=Poslední stojící ježek vyhrává
+02:02=Jdeme!
+02:02=Válíme!
+02:02=Improvizace!
+02:02=Na začátku...
+02:02=Tohle je začátek něčeho většího
+02:02=Vítej v Hedgewars
+02:02=Vítej v první linii
+02:02=Rozdrť své nepřátele!
+02:02=Nechť vyhraje ten lepší ježek
+02:02=Vítězství nebo smrt
+02:02=Kořist patří vítězům
+02:02=Pro prohru zde není místo
+02:02=Křič blázne! Vypusť válečné ježky!
+02:02=Hedgewars vám přináší Hedgewars.org
+02:02=Hodně štěstí, dobrou zábavu
+02:02=Buď rád, že proti tobě nehraje Tiyuri
+02:02=Buď rád, že proti tobě nehraje unC0Rr
+02:02=Buď rád, že proti tobě nehraje Nemo
+02:02=Buď rád, že proti tobě nehraje Smaxx
+02:02=Buď rád, že proti tobě nehraje Jessor
+02:02=Vezmi si vše!
+02:02=Poražený bude dělat úklid!
+02:02=Nechť bitva tisíciletí započne
+02:02=Nechť bitva století započne
+02:02=Nechť bitva desetiletí započne
+02:02=Nechť bitva roku započne
+02:02=Nechť bitva měsíce započne
+02:02=Nechť bitva týdne započne
+02:02=Nechť bitva dne započne
+02:02=Nechť bitva hodiny započne
+02:02=Snaž se, jak umíš!
+02:02=Rozdrť své nepřátele!
+02:02=Hodně štěstí
+02:02=Bav se
+02:02=Bojuj dobře
+02:02=Bojuj špinavě
+02:02=Vyhraj se ctí
+02:02=Nevzdávej to
+02:02=Nikdy se nevzdávej
+02:02=Znič je!
+02:02=Nechť zabíjení započne!
+02:02=Doufám, že jsi připraven na zápas!
+02:02=Běž běž běž!
+02:02=Ježci, kupředu!
+02:02=Nandej jim co proto!
+02:02=Neměj strach!
+02:02=Buď statečný a dobývej
+
+; Round ends (win; unused atm)
+02:03=...
+
+; Round ends (draw; unused atm)
+02:04=...
+
+; New health crate
+02:05=Přichází pomoc!
+02:05=Zdravotník!
+02:05=První pomoc z nebes!
+02:05=Zdravotní balíček pro tebe
+02:05=Dobré zdraví... v podobě krabice!
+02:05=Doktor volá
+02:05=Čerstvé náplasti!
+02:05=Po tomhle se ti udělá lépe
+02:05=Flakónek zdraví! Hups, jiná hra
+02:05=Vem si mne!
+02:05=Zvedni to
+02:05=Zdravá svačinka
+02:05=Lék na bolest
+02:05=Správné dávkování: tolik, kolik jen najdeš!
+02:05=Urgentní dodávka
+02:05=Zásoby!
+
+; New ammo crate
+02:06=Víc zbraní!
+02:06=Posily!
+02:06=Nabít a odjistit!
+02:06=Jsem zvědavý, jaká zbraň je uvnitř?
+02:06=Zásoby!
+02:06=Co může být uvnitř?
+02:06=Vánoce přišli dřív v Hedgewars
+02:06=Dárek!
+02:06=Speciální donáška!
+02:06=Bylo to peklo, dostat tohle přes celnici
+02:06=Ničící hračky z nebe
+02:06=Varování! Nebezpečný obsah
+02:06=Zvedni to, nebo vyhoď do vzduchu! Volba je na tobě
+02:06=Dárečky!
+02:06=Mmmmm munice
+02:06=Krabice ničivé síly
+02:06=Letecká pošta!
+02:06=Cokoliv je uvnitř té krabice, není to pizza
+02:06=Vem to!
+02:06=Je tu schazování zbraní
+02:06=Nenech nepřítele to vzít!
+02:06=Lesklé nové hračky!
+02:06=Záhadná krabice!
+
+; New utility crate
+02:07=Čas na nářadí!
+02:07=Tohle by se mohlo hodit...
+02:07=Nářadí!
+02:07=Využij tuhle bednu
+02:07=Pozor tam dole
+02:07=Víc nástrojů!
+02:07=Nástroje pro všechny!
+02:07=Tohle bude dobré!
+02:07=Využij to s rozumem
+02:07=Ou, tahle bedna je těžká
+02:07=Možná bys mohl potřebovat tohle
+
+; Hog (%1) skips his turn
+02:08=%1 je nudný...
+02:08=%1 se nemusel obtěžovat
+02:08=%1 je líný ježek
+02:08=%1 je bez nápadu
+02:08=%1 to vzdal
+02:08=Kdo zaváhá má smůlu, %1
+02:08=%1 nestydatě přeskakuje
+02:08=%1 je opravdu líný
+02:08=%1 potřebuje trochu motivovat
+02:08=%1 je pacifista
+02:08=%1 potřebuje oddych
+02:08=%1 odpočívá
+02:08=%1 potřebuje vychladnout
+02:08=%1 nemá víru ve své schopnosti
+02:08=%1 se rozhodl nic nedělat
+02:08=%1 nechává nepřátele zničit se navzájem
+02:08=%1 by byl na párty neschopný
+02:08=%1 se schovává
+02:08=%1 se rozhodl nevyužít tuto příležitost
+02:08=%1 se rozhodl, že nejlepší věc, kterou může udělat je... nic
+02:08=%1 je slaboch
+02:08=Kvo kvo kvo, %1 je slepice
+02:08=%1 vypadá jako strašpytel
+02:08=%1 je zbabělec!
+02:08=%1 čeká na náhlou smrt
+02:08=%1 není bojovný typ
+02:08=%1 pátrá po smyslu života
+02:08=%1 stejně nikdy dobře nestřílel
+02:08=%1 se v prvé řadě nechtěl dostat do armády
+02:08=Přestaň plýtvat našim časem, %1
+02:08=Zklamal jsi mne, %1
+02:08=No tak, umíš víc %1
+02:08=%1 nemá vůli
+02:08=%1 má evidentně něco lepšího na práci
+02:08=%1 je slušně vystrašený
+02:08=%1 usnul
+
+; Hog (%1) hurts himself only
+02:09=%1 by měl trénovat míření!
+02:09=%1 se asi nenávidí
+02:09=%1 je na špatné straně!
+02:09=%1 vypadá jako emo
+02:09=%1 držel svou zbraň obráceně
+02:09=%1 je trochu sadista
+02:09=%1 je masochista
+02:09=%1 nemá pud sebezáchovy
+02:09=%1 to zkonil
+02:09=%1 to pokazil
+02:09=To byla špatná rána, %1
+02:09=%1 je s nebezpečnými zbraněmi trochu nezodpovědný
+02:09=%1 by měl zvážit, zda nezměnit povolání
+02:09=Nejhorší. Střela. V historii!
+02:09=Ne ne ne %1, máš střílet na NEPŘÍTELE!
+02:09=%1 by měl ničit jen nepřátele
+02:09=%1 udělal krůček k sebevraždě
+02:09=%1 pomáhá nepříteli
+02:09=To bylo hloupé %1
+02:09=%1 žije heslem "Bez bolesti to nejde"
+02:09=%1 je zmatený
+02:09=%1 se ve svém pomatení poranil
+02:09=%1 se ztrapnil
+02:09=%1 je nešika!
+02:09=%1 je nemotorný
+02:09=%1 ukázal nepříteli, čeho je schopen
+02:09=%1 nemůže být pořád perfektní
+02:09=Neboj %1, nikdo není dokonalý
+02:09=%1 to neudělal záměrně
+02:09=Já to nikomu neřeknu, %1
+02:09=Jak trapné!
+02:09=Jsem si jistý, že to nikdo neviděl %1
+02:09=%1 by si měl přečíst polní příručku
+02:09=%1 měl určitě porouchanou zbraň
+
 ; Hog shot an home run (using the bat and another hog)
 02:10=Home Run!
-02:10=A bird, a plane, ...
-02:10=That one is out!
+02:10=Je to pták, je to letadlo, ...
+02:10=Tenhle je pryč!
+
+; Hog (%1) has to leave (team is gone)
+02:11=%1 musí jít spát!
+02:11=%1 je příliš zaneprázdněn na hraní
+02:11=Transportuj ho nahoru, Scotty!
+02:11=%1 musel jít
+
+; Weapon Categories
+03:00=Časovaný granát
+03:01=Časovaný granát
+03:02=Balistická zbraň
+03:03=Naváděná zbraň
+03:04=Puška (víc ran)
+03:05=Kopací nástroj
+03:06=Akce
+03:07=Transportní nástroj
+03:08=Bomba reagující na blízkost
+03:09=Puška (více ran)
+03:10=BUM!
+03:11=Bonk!
+03:12=Bojové umění
+03:13=NEPOUŽITO
+03:14=Transportní nástroj
+03:15=Letecký útok
+03:16=Letecký útok
+03:17=Kopací nástroj
+03:18=Nástroj
+03:19=Transportní nástroj
+03:20=Akce
+03:21=Balistická zbraň
+03:22=Říkej mne Indiano!
+03:23=(Opravdu) Bojové umění
+03:24=Koláč NENÍ lež!
+03:25=Převlek
+03:26=Šťavnatý granát
+03:27=Vznětlivý granát
+03:28=Balistická zbraň
+03:29=Balistická zbraň
+03:30=Letecký útok
+03:31=Dálkově odpalovaná bomba
+03:32=Dočasný efekt
+03:33=Dočasný efekt
+03:34=Dočasný efekt
+03:35=Dočasný efekt
+03:36=Dočasný efekt
+03:37=Dočasný efekt
+03:38=Puška (více ran)
+03:39=Transportní nástroj
+03:40=Zápalný granát
+03:41=Velký fanda Vřískotu
+03:42=Zde píši poznámku...
+; the misspelled "Beethoven" is intentional (-> to beat) - cannot be translated (poor me)
+03:43=Osudová symfonie
+03:44=Spotřebovat do 1923
+03:45=Síla vědy
+03:46=Horké horké horké!
+03:47=Strč je na užitečné místo!
+03:48=Čas na kladivo!
+03:49=Dělá to, co myslíš
+03:50=Krtkův fanda
+
+; Weapon Descriptions (use | as line breaks)
+04:00=Zaútoč na nepřítele pomocí obyčejného granátu.|Exploduje jakmile časovač dojde k nule.|1-5: Nastavuje časovač|Útok: Drž pro hození větší silou
+04:01=Zaútoč na nepřítele pomocí tříštivého granátu.|Jakmile dojde časovač k nule, roztříští se do|několika střepin.|1-5: Nastavuje časovač|Útok: Drž pro hození větší silou
+04:02=Zaútoč na nepřítele pomocí balistického projektilu,|který může být ovlivněn větrem.|Útok: Drž pro vystřelení větší silou
+04:03=Vypusť explozivní včelu, která se zaměří na zvolený|cíl. Nestřílej plnou silou, abys vylepšil přesnost.|Kurzor: Zvol cíl|Útok: Drž pro vystřelení větší silou
+04:04=Zaútoč na nepřítele pomocí brokovnice s dvěma ranami.|Díky jejímu rozptylu nepotřebuješ přímý zásah, abys|zranil protivníka.|Útok: Výstřel (vícekrát)
+04:05=Zakopej se! Použij sbíječku k vykopání díry|pod zem a k dosaženích jiných míst.|Útok: Začni nebo přestaň kopat
+04:06=Znuděn? Nechce se ti útočit? Šetříš municí?|Žádný problém! Prostě přeskoč tah, zbabělče!|Útok: Přeskoč tah bez boje
+04:07=Překonej velké vzdálenosti pomocí přesně načasovaných|střel lanem. Využij setrvačnosti k postrčení ostatních|ježků nebo na ně pouštěj granáty a podobné zbraně.|Útok: Vystřel nebo pusť lano|Dlouhý skok: Pusť granát nebo podobnou zbraň
+04:08=Udrž si nepřátele od těla položením miny v úzkých průlezech|nebo třeba přimo pod jejich nohy. Ujisti se, že máš kam utéct,|ať ji neaktivuješ sám!|Útok: Polož minu k nohám
+04:09=Nejsi si jistý mířením? Použij Desert Eagle|a využij jeho čtyř střel.|Útok: Výstřel (vícekrát)
+04:10=Hrubá sílá je vždycky možnost. Polož tuto klasickou|výbušninu k nepříteli a utíkej do bezpečí.|Útok: Polož dynamit k nohám
+04:11=Zbav se nepřátelských ježků tak, že je odpálíš na jinou|stranu mapy, nebo třeba do vody. Nebo co takhle odpálení|nějakých min ke svým přátelům?|Útok: Odpal všechno před sebou
+04:12=Dostaň se blízko a ukaž sílu těchto téměř smrtelných|bojových umění.|Útok: Proveď Ohnivý úder
+04:13=NEPOUŽITO
+04:14=Bojíš se výšek? Raději si vezmi padák. Rozvine se,|jakmile padáš příliš dlouho a ochrání tvého ježka|před zraněním z pádu.|Útok: Otevři padák|Dlouhý skok: Pusť granát nebo podobnou zbraň
+04:15=Zavolej si letadlo a nech ho provést bombový nálet|na nepřátele.|Vlevo/Vpravo: Vyber směr útoku|Kursor: Vyber cílové místo
+04:16=Zavolej letadlo a nech ho shodit pár min|do cílové oblasti.|Vlevo/Vpravo: Vyber směr útoku|Kursor: Vyber cílové místo
+04:17=Potřebuješ krytí? Vezmi svářečku, vytvoř si tunel|a krytí je na světě.|Útok: Začni nebo přestaň kopat
+04:18=Potřebuješ další ochranu nebo přejít skrz neprůchodnou|oblast? Umísti pár traverz, jak potřebuješ.|Vlevo/Vpravo: Vyber traverzu|Kursor: Umísti traverzu na platné místo
+04:19=Použita v pravé situaci dokáže být teleportace silnější|než jakákoliv zbraň. Umožní ti zachránit ježka z nebezpečné|situace během vteřiny.|Kursor: Vyber cílové místo
+04:20=Umožní ti odehrát tah s jiným ježkem.|Útok: Aktivuj výměnu ježků
+04:21=Vystřel granátu podobný projektil, který po dopadu|uvolní ještě několik střepin.|Útok: Vystřel plnou silou
+04:22=Nejen pro Indianu Jonese! Bič je zbraň použitelná|v každé situaci. Především, když chceš někoho shodit|z útesu.|Útok: Udeř vše před sebou
+04:23=Pokud nemáš co ztratit, mohlo by se ti tohle hodit.|Obětuj svého ježka a vypusť ho zranit vše, co mu bude|stát v cestě. Jeho život bude ukončen krásným výbuchem.|Útok: Vypusť smrtelný a devastující útok
+04:24=Veselé narozeniny! Vypusť tento dort a nech ho dojít|hned vedle svých nepřátel a začni opravdu výbušnou párty.|Dort dokáže překonat téměř veškerý terén, ale může tak|vybuchnout dříve.|Útok: Odešli dort nebo ho zastav a nech vybouchnout
+04:25=Použij tento převlek, abys nalákal nepřítele ke skoku|za tebou (a do nějaké mezery nebo propasti).|Útok: Použij převlek a zkus navábit jiného ježka
+04:26=Hoď tento šťavnatý meloun na své nepřátele. Jakmile časovač|sepne, rozdělí se na několik výbušných kousků.|1-5: Nastav časovač melounu|Útok: Drž pro hození větší silou
+04:27=Nechť ohně pekelné stráví tvé odpůrce díky této|pekelné trhavině. Nedostaň se moc blízko k explozi,|jelikož menší oheň může vydržet déle.|Útok: Drž pro hození větší silou
+04:28=Krátce po vypuštění této rakety začne vrtat|skrz pevný terén a exploduje, jakmile ji|sepne časovač, nebo po vynoření na povrch.|Útok: Drž pro hození větší silou
+04:29=Tohle není nic pro malé děti! Kuličkomet vystřelí spoustu|malých barevných kuliček naplněných výbušninou.|Útok: Vystřel plnou silou|Nahoru/Dolu: Pokračuj v míření
+04:30=Zavolej si leteckou podporu a nech ji vypustit napalm.|Se správným mířením dokáže tenhle útok vymazat obrovské|území včetně nešťastných ježků, kteří tam stojí.|Vlevo/Vpravo: Vyber směr útoku|Kursor: Vyber cílové místo
+04:31=Dálkově ovládané letadýlko je ideální zbraň na sbírání beden,|nebo útočení na vzdálené ježky. Buď ho naveď mezi nepřátele,|nebo nejprve shoď několik bomb.|Útok: Vypusť letadlo nebo shoď bombu|Dlouhý skok: Nech valkýru vyjet do boje|Vlevo/Vpravo: Řiď letadlo
+04:32=Nízká gravitace je mnohem efektivnější než jakákoliv|dieta! Skákej výš a do větších vzdáleností, nebo nech|nepřátele doletět ještě o kus dál.|Útok: Aktivace
+04:33=Občas jen potřebuješ tuhle pomůcku ke zvýšení|poškození, které způsobíš.|Útok: Aktivace
+04:34=Jsem nedotknutelný!|Útok: Aktivace
+04:35=Občas ten čas strašně letí. Vezmi si nějaké vteřiny|navíc na dokončení útoku.|Útok: Aktivace
+04:36=Ano, občas jen nemíříš tak dobře. Využij pomoc|moderní technologie.|Útok: Aktivace
+04:37=Neboj se denního světla. Tohle bude trvat jen jeden tah, ale|umožní ti to uzdravit se poškozením, které způsobíš ostatním.|Útok: Aktivace
+04:38=Odstřelovací puška může být nejničivější zbraní|ve tvém arzenálu, ale na malé vzdálenosti je|značně neefektivní. Poškození, které způsobí|je zvyšuje se vzdáleností od cíle.|Útok: Výstřel (dvakrát)
+04:39=Odleť do jiných částí mapy pomocí létajícího talíře.|Tento těžce ovladatelný nástroj ti umožní dostat se|téměř na jakékoliv místo na bojišti.|Útok: Aktivace|Nahoru/Vlevo/Vpravo: Zažehni trysku v daném směru|Dlouhý skok: Pusť granát nebo podobnou zbraň
+04:40=Zapal nějakou zem pomocí této lahve naplněné|(už za chvíli) hořící kapalinou.|Útok: Drž pro hození větší silou
+; TODO - not very good translation of Birdy (the evidence of nature)
+04:41=Známka přírody dokáže být ještě mocnější než létající talíř.|Ptáček může nést tvého ježka a shazovat vejce na nepřátele!|Útok: Aktivace a shazování vajec|Nahoru/Vlevo/Vpravo: Mávnutí křídly v daném směru
+04:42=Toto zařízení je schopno v okamžiku přemístit|tebe, tvé nepřátele, nebo tvoji palebnou sílu|mezi dvěma body v krajině. Využij to rozumně|a tvé tažení bude... VELKÝ ÚSPĚCH!|Útok: Vystřel portál|Výměna: Změň barvu portálu
+04:43=Udělej ze svého prvního hudebního vystoupení explozivně|úspěšný koncert! Shoď piano z nebes, ale pozor...|někdo na něj musí hrát a to tě může stát život!|Kursor: Vyber cílové místo|F1-F9: Hraj na piano
+04:44=Tohle není jen tak ledajaký sýr, to je biologická zbraň!|Najednou nenapáchá příliš škod, ale jakmile časovač dojde|k nule zapáchá tak silně, že otráví každého, kdo si jen|přičichne!|1-5: Nastav časovač|Útok: Drž pro hození větší silou
+04:45=Všechny ty hodiny fyziky se konečně vyplatí.|Vypusť ničivou sinovou vlnu na své protivníky.|Dej pozor, tahle zbraň docela kope.|(Tato zbraň není dokončena)|Útok: Výstřel
+04:46=Pokryj své protivníky prskajícím tekutým ohněm.|Zahřeje u srdce!|Útok: Aktivace|Nahoru/Dolu: Pokračuj v míření|Vlevo/Vpravo: Změň sílu plivání
+04:47=Zdvojnásob zábavu pomocí dvou ostnatých, zákeřných, lepkavých|min. Vytvoř řetězovou reakci nebo se braň (nebo oboje!)|Útok: Drž pro hození větší silou (dvakrát)
+04:48=Proč by se měli týrat jen krtci? Mlácení ježků může|být stejná zábava! Jedna dobrá rána tímhle kladivem|uštědří poškození za jednu třetinu ježkova zdraví a|zarazí ho pod zem.|Útok: Aktivace
+04:49=Vzkřis své přátele! Ale měj se na pozoru, protože|tohle vzkřísí i tvé protivníky.|Útok: Drž stisknuto pro pomalé oživování|Nahoru: Zrychlí oživování
+
+; Game goal strings
+05:00=Herní módy
+05:01=Platí následující pravidla
+05:02=Pevnosti: Braň svou pevnost; znič nepřátele!
+05:03=Nízká gravitace: Koukej, kam šlapeš
+05:04=Nesmrtelnost: Ježci jsou (skoro) nesmrtelní
+05:05=Vampyrismus: Ježci budou oživeni poškozením, které způsobí
+05:06=Karma: Ježci trpí stejně jako jejich oběť
+05:07=Chraň krále: Nenech svého krále zemřít.|Umísti krále: Umísti chráněný bod pro svého krále
+05:08=Umísti ježky: Umísti ježky před začátkem hry
+05:09=Dělostřelectvo: Ježci nemohou změnit polohu chůzí
+05:10=Nezničitelný terén: Většina zbraní neničí terén
+05:11=Sdílená munice: Všechny týmy stejné barvy sdílí munici
+05:12=Časovač min: Miny vybuchnou za %1 vt.
+05:13=Časovač min: Miny vybuchnou okamžitě
+05:14=Časovač min: Miny vybuchnou za 0 - 5 vteřin
+05:15=Změna poškození: Všechny zbraně způsobují %1% poškození
+05:16=Zdraví všech ježků je obnoveno na konci každého tahu
+05:17=Počítačem ovládaní ježci jsou oživeni po smrti
+05:18=Neomezeně útoků
+05:19=Zbraně jsou obnoveny na konci tahu
+05:20=Zbraně nejsou sdíleny mezi ježky
--- a/share/hedgewars/Data/Locale/fr.txt	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/fr.txt	Thu Aug 04 17:44:55 2011 +0200
@@ -1,7 +1,7 @@
 ; French locale
 
 00:00=Grenade
-00:01=Grenade à fragments
+00:01=Grenade à fragmentation
 00:02=Bazooka
 00:03=Abeille Missile
 00:04=Fusil
@@ -111,6 +111,8 @@
 02:00=Adieu %1, nous tenions beaucoup a toi !
 02:00=%1 avait une faible tolérance aux coups à balles
 02:00=%1 aurait dû utiliser une vie supplémentaire
+02:00=%1 rejoint ses ancêtres
+02:00=%1 sera muet comme une tombe
 ; Hog (%1) drowned
 02:01=%1 joue au sous-marin !
 02:01=%1 imite le Titanic !
@@ -157,6 +159,9 @@
 02:01=%1 prend un bain
 02:01=%1 est tout mouillé
 02:01=%1 trouve que l'eau est un peu trop froide
+02:01=%1 flotte comme une enclume
+02:01=%1 a oublié son masque et ses palmes
+02:01=%1 a vu une sirène !
 ; Match starts
 02:02=Aux armes !
 02:02=Prêts à combattre !
@@ -177,6 +182,7 @@
 02:02=Sois heureux, tu n'est pas contre Nemo !
 02:02=Sois heureux, tu n'est pas contre Smaxx !
 02:02=Sois heureux, tu n'est pas contre Jessor !
+02:02=Rien à perdre, tout à gagner !
 02:02=Donnez tout ce que vous avez !
 02:02=Les perdants font le ménage !
 02:02=Que la bataille du millénaire commence !
@@ -200,7 +206,10 @@
 02:02=Hérissons, en avant !
 02:02=N'ayez pas peur !
 02:02=Soyez braves !
+02:02=3,2,1... Massacrez !
+02:02=Ave Caesar, Morituri te salutant !
 02:02=Combattez jusqu'à la fin !
+02:02=Que la force soit avec vous !
 ; Round ends (win; unused atm)
 02:03=...
 ; Round ends (draw; unused atm)
@@ -220,6 +229,9 @@
 02:05=Meilleur dosage: autant que vous pouvez !
 02:05=Livraison urgente
 02:05=Ravitaillements !
+02:05=Voilà la Croix Rouge !
+02:05=Médecin Sans Frontière à votre service !
+02:05=Hausse de l'espérance de vie en vue
 ; New ammo crate
 02:06=Plus d'armes !
 02:06=Du renfort !
@@ -241,6 +253,9 @@
 02:06=Ne laisse pas l'ennemi prendre ça !
 02:06=Des nouveaux jouets flambant neufs !
 02:06=Une boîte mystérieuse !
+02:06=L'espoir fait vivre
+02:06=Surement quelquechose d'utile
+02:06=Que la chance soit avec vous !
 ; New utility crate
 02:07=Boite à outils !
 02:07=Ça peut être pratique...
@@ -250,6 +265,10 @@
 02:07=Ça devrait être bien !
 02:07=Utilisez-le avec précaution
 02:07=Vous devriez avoir besoin de ça
+02:07=C'est toujours bon à prendre
+02:07=Elle s'est peut être blessée en tombant, vous devriez aller la voir
+02:07=Bob le bricoleur sait être généreux
+02:07=Le moment donné par le hasard vaut mieux que le moment choisi
 ; Hog (%1) skips his turn
 02:08=%1 est une lopette...
 02:08=%1 est trooooop rasant...
@@ -285,6 +304,12 @@
 02:08=%1 a apparemment mieux a faire
 02:08=%1 est mort de peur
 02:08=%1 s'est endormi
+02:08=%1 est timide
+02:08=%1 ne voulait pas quitter sa maman
+02:08=%1 a peur de se blesser
+02:08=Les gens heureux n'ont pas besoin de se presser selon %1
+02:08=Ne crains pas d'avancer lentement, crains seulement de t'arrêter %1
+02:08=Patience ! Avec le temps, l'herbe devient du lait
 ; Hog (%1) hurts himself only
 02:09=%1 devrait apprendre à viser !
 02:09=%1 s'en veut
@@ -315,12 +340,17 @@
 02:09=Je suis sûr que personne n'a vu cela %1
 02:09=%1 a besoin de réviser son manuel de terrain
 02:09=L'arme de %1 fonctionne clairement mal
-02:00=%1 aurait dû dire NON à la drogue
+02:09=%1 aurait dû dire NON à la drogue
+02:09=%1 se cache
+02:09=%1 ne peut pas échapper à son destin
+02:09=%1 a pris son arme dans le mauvais sens
+02:09=%1 est surement daltonien
 ; Hog shot an home run (using the bat and another hog)
 02:10=Home Run !
 02:10=C'est un oiseau ! C'est un avion ! ...
 02:10=Hors du parc !
-
+02:10=Coup gagnant !
+02:10=I believe I can FLY ! I believe I can... *boum*
 ; Weapon Categories 
 03:00=Grenade à retardement 
 03:01=Grenade à retardement 
@@ -368,54 +398,54 @@
 ; Weapon Descriptions (use | as line breaks) 
 04:00=Attaquez vos ennemis en utilisant une simple grenade.|Elle explosera une fois que le compte à rebours atteindra zéro.|1-5: Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
 04:01=Attaquez vos ennemis en utilisant une bombe à retardement.|Elle se désintégrera en de multiples petites bombes |quand le compte à rebours atteindra zéro|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
-04:02=Attaquez vos ennemis en utilisant un missile balistique|qui pourrait subir l'influence du vent.|Attaque : maintenez pour tirer avec plus de force 
+04:02=Attaquez vos ennemis en utilisant un missile balistique|subissant l'influence du vent.|Attaque : maintenez pour tirer avec plus de force 
 04:03=Lancez une bombe téléguidée qui se verrouillera|sur la cible choisie. Ne tirez pas à pleine puissance|pour une meilleure précision.|Curseur : choix de la cible|Attaque : maintenez pour tirer avec plus de force 
-04:04=Attaquez votre ennemi en utilisant un pistolet à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples) 
+04:04=Attaquez votre ennemi en utilisant un fusil à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples) 
 04:05=Descendez sous terre ! Utilisez le marteau-piqueur pour creuser un trou|dans le sol et atteindre d'autres zones.|Attaque : commencez/achevez de creuser 
 04:06=Vous en avez marre ? Pas moyen d'attaquer ? Vous économisez vos munitions ?|Pas de problèmes ! Passez simplement votre tour, espèce de lâche !|Attaque : Passez votre tour sans combattre 
-04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons|ou balancez des grenades ou autres armes offensives sur eux.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires 
-04:08=Maintenez vos ennemis à distance en laissant une mine|dans les passages étroits ou juste sous leurs pieds. Assurez-vous|que vous pouvez vous sauver avant de déclencher la grenade !|Attaque : lâchez la grenade à votre pied 
-04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups.|Attaque : tirez (coups multiples) 
-04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et retirez-vous.|Attaque : Lâchez la dynamite à vos pieds 
-04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les chasser |au-delà de la frontière ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques mines sur vos ennemis ?|Attaque : donnez des coups sur tout ce qui bouge devant vous.
+04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons,|balancez leurs des grenades ou d'autres armes explosives.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires 
+04:08=Maintenez vos ennemis à distance en laissant une mine|dans les passages étroits ou juste sous leurs pieds. Assurez-vous|que vous pouvez vous sauver avant son déclenchement !|Attaque : lâchez la mine à vos pieds
+04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups. Poussez dans l'eau vos ennemis ou transpercez leur défense|Attaque : tirez (coups multiples) 
+04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et prenez le temps de vous retirer.|Attaque : Lâchez la dynamite à vos pieds 
+04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les chasser |vers d'autres horizons ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques tonneaux ou mines sur vos ennemis ?|Attaque : frappez un bon coup sur tout ce qui bouge.
 04:12=Allez au combat rapproché corps à corps pour utiliser toute la force presque mortelle de ces arts martiaux.|Attaque : lancez un coup de poing fulgurant
 04:13=non-utilisé
 04:14=Vous avez le vertige ? Prenez donc un parachute.|Il se déploiera lorsque|vous serez tombé trop loin|et épargnera le choc de la chute à votre hérisson.|Attaque: Dépliez le parachute
-04:15=Appelez un avion pour attaquer vos ennemis|en utilisant le bombardement.|Gauche/Droite : Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
+04:15=Appelez le 3615 BOMBE pour commander une frappe aérienne dévastatrice sur vos ennemis.|Gauche/Droite : Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
 04:16=Appelez un avion qui enverra plusieurs mines|sur la zone cible.|Gauche/Droite : Détermine la direction de l'attaque|Curseur : Sélectionnez la zone cible
-04:17=vous avez besoin d'un abri ? Utilisez la lampe-torche pour creuser|un tunnel dans le sol pour vous garantir |un bon abri.|Attaque : Commencez/cessez de creuser. 
-04:18=Vous avez besoin de vous protéger davantage ou de franchir un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position 
+04:17=vous avez besoin d'un abri ? de pousser quelques ennemis dans l'eau ? Utilisez le chalumeau| pour creuser un tunnel dans le sol, vous protéger ou faire de nouvelles victimes.|Attaque : Commencez/cessez de creuser. 
+04:18=Vous avez besoin de vous protéger davantage ou de passer un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position 
 04:19=La téléportation utilisée au bon moment|peut être bien plus efficace|que la plupart des autres armes|car elle vous permet de sauver des hérissons de situations dangereuses|en quelques secondes.|Curseur : Choisissez la zone cible
 04:20=Vous permet de jouer la partie en cours avec|un hérisson différent.|Attaque : Activez le changement de hérisson 
-04:21=Tirez une grenade balistique qui va|envoyer de multiples bombes au point d'impact.|Attaque : Tirez à pleine puissance
-04:22=Ce n'est pas réservé à Indiana Jones! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous 
-04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière et en heurtant tout sur son passage|avant d'exploser finalement.|Attaque : Lancer l'attaque mortelle et dévastatrice
+04:21=Tirez un missile balistique qui va|envoyer de multiples bombes au point d'impact.|Attaque : Tirez à pleine puissance
+04:22=Ce n'est pas réservé à Indiana Jones ! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous 
+04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière. Il heurtera tout sur son passage avant |d'exploser finalement.|Attaque : Lancer l'attaque mortelle et dévastatrice
 04:24=Joyeux anniversaire ! Lancez ce gâteau, faites-le atterrir|tout près de vos ennemis et offrez-leur une fête explosive.|Le gâteau peut franchir presque tous les environnements mais|il se peut qu'il explose à mi-chemin.|Attaque : Lancez le gâteau ou bien faites-le s'arrêter et exploser 
-04:25=Utilisez le déguisement pour amener vos ennemis à sauter vers|votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson 
-04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Lorsque|le compte à rebours s'achève, elle se désintègrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance 
-04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les petits feux peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
-04:28=Peu après le lancement de ce missile, il va se mettre|à creuser le sol le plus résistant et va exploser|une fois son détonateur amorcé, sinon il refait surface.|Attaque : Maintenez pour tirer avec plus de puissance
+04:25=Arme de séduction massive ! Utilisez le déguisement pour amener vos ennemis| à sauter vers votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson 
+04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Une fois le compte-à-rebours achevé, elle se désintégrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance 
+04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les flammes peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
+04:28=Peu après le lancement de ce missile, il va se mettre|à creuser le sol le plus résistant et explosera|une fois son détonateur amorcé ou une fois atteint l'air libre.|Attaque : Maintenez pour tirer avec plus de puissance
 04:29=Ce n'est pas un jouet pour les enfants ! La mitrailleuse envoie|des centaines de petites balles colorées explosives.|Attaque : Tirez à pleine puissance|Haut/Bas : Continuez à tirer
 04:30=Appelez un avion pour larguer une puissante giclée de napalm.|En la menant correctement cette attaque peut éradiquer|des zones entières du paysage, et notamment les hérissons qui auraient la malchance de se trouver là.|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible 
-04:31=L'avion télécommandé est l'arme idéale pour récolter des coupes ou|attaquer des hérissons très éloignés. Vous pouvez soit le lancer au milieu de vos adversaires|bombarder auparavant.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion 
-04:32=La fable gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voler vos ennemis |voltiger encore plus loin.|Attaque : Activez
+04:31=L'avion télécommandé est l'arme idéale pour récolter des boites ou|attaquer des hérissons très éloignés. Une fois vos ennemis bombardés, vous pourrez lancer votre avion sur l'ennemi dans une explosion incendiaire.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion 
+04:32=La fable gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voltiger vos ennemis |encore plus loin.|Attaque : Activez
 04:33=Parfois vous avez besoin d'un petit coup de pouce supplémentaire|pour gérer les dégâts.|Attaque : Activez 
 04:34=Personne ne peut me toucher !|Attaque : Activez
 04:35=Parfois le temps passe trop vite. Grappillez quelques secondes de plus pour terminer votre attaque|Attaque : Activez
-04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt l'aide|de la technologie actuelle la meilleure.|Attaque : Activez 
-04:37=Ne craignez pas la lumière du jour. Elle ne durera qu'une manche|mais vous permettra de repérer les dégâts que vous avez faits aux|autres hérissons.|Attaque : Activez
-04:38= Le fusil à lunettes peut être une de armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois) 
-04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport pas facile à dompter est capable de vous|emporter vers presque tous les lieux du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : appliquez la force dans une direction 
+04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt de l'aide|à la technologie de pointe actuelle pour bien viser.|Attaque : Activez 
+04:37=Ne craignez pas la lumière du jour. Rafraichissez vous |d'un peu de sang en récupérant des points de vie sur les dégats faits aux ennemis.|Attaque : Activez
+04:38= Le fusil à lunette peut être une des armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois) 
+04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport, pas facile à dompter, vous|emportera vers presque tous les horizons du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : Prenez de l'altitude et controllez votre direction
 04:40=Mettez le feu à un territoire en utilisant cette bouteille remplie|de liquide inflammable.|Attaque : maintenez pour tirer avec plus de force 
-04:41=Une arme naturelle qui peut suffire à dégommer même la soucoupe|volante.  Le piaf peut transporter votre hérisson et|balancer des œufs sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
-04:42=Ce fusil à portails est capable de vous transporter instantanément,| ainsi que vos ennemis ou des armes entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
-04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... quelqu'un doit|jouer dessus, et cela pourrait lui coûter sa vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
-04:44=Ce n'est pas juste un fromage, c'est une arme biologique !|Il ne provoquera de gros dommages une fois que le compteur|atteindra zéro mais il empoisonnera tous les malchanceux touchés par l'odeur !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
-04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice à vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
-04:46=Recouvrez vos ennemis de sifflantes flammes liquides.|Hauts les cœurs !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
-04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine ou défendez-vous ! (ou les deux)|Attaque : maintenez pour tirer avec plus de force (deux fois)
-04:48=Pourquoi les taupes auraient tous le fun ?|Un bon coup de ce marteau enlèvera un tiers de la santé du hérisson et l'enverra dans le sol|Attaque : Activez
-04:49=Ressuscite vos amis !Mais méfiez-vous, cela ressuscite également vos ennemis.|Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
+04:41=Une arme naturelle qui peut suffire à remplacer la soucoupe volante. |Cet oiseau a du manger un vieux fromage pourri (du Limburger vous dites ?) car ses oeufs ont comme quelquechose de ... toxique. Le piaf peut donc transporter votre hérisson et|balancer des œufs sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
+04:42=Ce fusil à portails est capable de transporter instantanément hérissons,|tonneaux ou mines entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
+04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... si quelqu'un doit|jouer dessus, cela pourrait lui coûter la vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
+04:44=Ce n'est pas juste un fromage, c'est une arme bactériologique !|Si il ne provoque que de faibles dommages, sa puissance se trouve dans sa durée. Il empoisonnera tous les malchanceux touchés par l'odeur et réduira leur vie à l'agonie !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
+04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice sur vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
+04:46=Aspergez vos ennemis de flammes liquides ou creusez vous un passage dans le sol.|Hardi !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
+04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine dévastatrice et/ou défendez-vous ! |Attaque : maintenez pour tirer avec plus de force (deux fois)
+04:48=Outre une bonne bosse, un bon coup de ce marteau enlèvera un tiers de la santé |du hérisson ennemi et l'enfoncera dans le sol ou dans l'eau comme un vulgaire asticot !|Attaque : Activez
+04:49=Ressuscite vos amis oubliés six pieds sous terre ! Mais méfiez-vous, ressuscite également vos ennemis. |Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
 
 ; Game goal strings 
 05:00=Modes de jeu 
@@ -423,8 +453,8 @@
 05:02=Forts : Défendez votre forteresse ; exterminez vos ennemis ! 
 05:03=Faible gravité : Attention à vos mouvements 
 05:04=Invulnérabilité : Les hérissons sont (presque) invulnérables 
-05:05=Vampirisme : Les hérissons seront guéris de leurs blessures 
-05:06=Karma: Les hérissons seront victimes de leurs blessures 
+05:05=Vampirisme : Les hérissons récupèrent des points de vie par les dégats qu'ils infligent 
+05:06=Karma: Les hérissons sont victimes des blessures qu'ils infligent
 05:07=Protégez le roi : Ne laissez pas mourir le roi !|Placez le roi : Choisissez un point de départ sécurisé pour le roi 
 05:08=Placez les hérissons : Placez vos hérissons avant le début de la partie 
 05:09=Artillerie : Les hérissons ne peuvent pas se déplacer pour changer de place 
@@ -432,6 +462,6 @@
 05:11=Munitions partagées : Toutes les équipes de la même couleur partagent leurs munitions
 05:12=Mines à retardement : Les mines exploseront après %1 seconde(s)
 05:13=Mines à retardement : Les mines explosent immédiatement
-05:14=Mines à retardement : Les mines exploseront dans un délai entre 0 et 3 secondes
+05:14=Mines à retardement : Les mines exploseront dans un délai compris entre 0 et 3 secondes
 05:15=Modificateur de dégâts : Toutes les armes feront  %1% de dégâts
 
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts	Thu Aug 04 17:44:55 2011 +0200
@@ -5,18 +5,18 @@
     <name>AmmoSchemeModel</name>
     <message>
         <source>new</source>
-        <translation type="unfinished">Нов отбор</translation>
+        <translation>Нов</translation>
     </message>
     <message>
         <source>copy of</source>
-        <translation type="unfinished"></translation>
+        <translation>копие на</translation>
     </message>
 </context>
 <context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
-        <translation type="unfinished"></translation>
+        <translation>Никога</translation>
     </message>
     <message numerus="yes">
         <source>Every %1 turn</source>
@@ -30,11 +30,11 @@
     <name>GameCFGWidget</name>
     <message>
         <source>Edit schemes</source>
-        <translation type="unfinished"></translation>
+        <translation>Редактиране на схемите</translation>
     </message>
     <message>
         <source>Edit weapons</source>
-        <translation type="unfinished"></translation>
+        <translation>Редактиране на оръжията</translation>
     </message>
     <message>
         <source>Error</source>
@@ -46,26 +46,26 @@
     </message>
     <message>
         <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
+        <translation>Когато тази настройка е включена, при избирането на игрова схема автоматично ще се избере оръжие</translation>
     </message>
 </context>
 <context>
     <name>HWChatWidget</name>
     <message>
         <source>%1 *** %2 has been removed from your ignore list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 беше премахнат от списъка с игнорирани</translation>
     </message>
     <message>
         <source>%1 *** %2 has been added to your ignore list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 беше добавен към списъка с игнорирани</translation>
     </message>
     <message>
         <source>%1 *** %2 has been removed from your friends list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 беше премахнат от списъка с приятели</translation>
     </message>
     <message>
         <source>%1 *** %2 has been added to your friends list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 беше добавен към списъка с приятели</translation>
     </message>
 </context>
 <context>
@@ -96,17 +96,17 @@
     </message>
     <message>
         <source>DefaultTeam</source>
-        <translation type="unfinished"></translation>
+        <translation>СтандартенОтбор</translation>
     </message>
     <message>
         <source>Hedgewars Demo File</source>
         <comment>File Types</comment>
-        <translation type="unfinished"></translation>
+        <translation>Файл с демо на Hedgewars</translation>
     </message>
     <message>
         <source>Hedgewars Save File</source>
         <comment>File Types</comment>
-        <translation type="unfinished"></translation>
+        <translation>Файл със запазена игра на Hedgewars</translation>
     </message>
 </context>
 <context>
@@ -160,31 +160,31 @@
     </message>
     <message>
         <source>Type</source>
-        <translation type="unfinished"></translation>
+        <translation>Тип</translation>
     </message>
     <message>
         <source>Small tunnels</source>
-        <translation type="unfinished"></translation>
+        <translation>Малки тунели</translation>
     </message>
     <message>
         <source>Medium tunnels</source>
-        <translation type="unfinished"></translation>
+        <translation>Средни тунели</translation>
     </message>
     <message>
         <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
+        <translation>Големи тунели</translation>
     </message>
     <message>
         <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
+        <translation>Малки плаващи острови</translation>
     </message>
     <message>
         <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
+        <translation>Средни плаващи острови</translation>
     </message>
     <message>
         <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
+        <translation>Големи плаващи острови</translation>
     </message>
     <message>
         <source>Seed</source>
@@ -222,11 +222,11 @@
     </message>
     <message>
         <source>You got kicked</source>
-        <translation type="unfinished"></translation>
+        <translation>Вие бяхте изхвърлен</translation>
     </message>
     <message>
         <source>Password</source>
-        <translation type="unfinished"></translation>
+        <translation>Парола</translation>
     </message>
     <message>
         <source>Quit reason: </source>
@@ -238,26 +238,29 @@
     </message>
     <message>
         <source>%1 *** %2 has joined the room</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 се присъедини към стаята</translation>
     </message>
     <message>
         <source>%1 *** %2 has joined</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 се присъедини</translation>
     </message>
     <message>
         <source>%1 *** %2 has left (%3)</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 напусна (%3)</translation>
     </message>
     <message>
         <source>%1 *** %2 has left</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 напусна</translation>
     </message>
     <message>
         <source>Your nickname %1 is
 registered on Hedgewars.org
 Please provide your password below
 or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
+        <translation>Прякорът ви %1 е
+регистриран на Hedgewars.org
+Моля въдете паролата си по-долу
+или изберете друг прякор в настройките на играта:</translation>
     </message>
 </context>
 <context>
@@ -271,69 +274,69 @@
     <name>PageAdmin</name>
     <message>
         <source>Clear Accounts Cache</source>
-        <translation type="unfinished"></translation>
+        <translation>Изчистване на кеша на профилите</translation>
     </message>
     <message>
         <source>Fetch data</source>
-        <translation type="unfinished"></translation>
+        <translation>Получаване на данни</translation>
     </message>
     <message>
         <source>Server message for latest version:</source>
-        <translation type="unfinished"></translation>
+        <translation>Съобщение на сървъра за последната версия:</translation>
     </message>
     <message>
         <source>Server message for previous versions:</source>
-        <translation type="unfinished"></translation>
+        <translation>Съобщение на сървъра за предишната версия:</translation>
     </message>
     <message>
         <source>Latest version protocol number:</source>
-        <translation type="unfinished"></translation>
+        <translation>Номер на протокола на последната версия:</translation>
     </message>
     <message>
         <source>MOTD preview:</source>
-        <translation type="unfinished"></translation>
+        <translation>Преглед на съобщението за деня:</translation>
     </message>
     <message>
         <source>Set data</source>
-        <translation type="unfinished"></translation>
+        <translation>Задаване на данни</translation>
     </message>
 </context>
 <context>
     <name>PageConnecting</name>
     <message>
         <source>Connecting...</source>
-        <translation type="unfinished"></translation>
+        <translation>Свързване...</translation>
     </message>
 </context>
 <context>
     <name>PageDrawMap</name>
     <message>
         <source>Undo</source>
-        <translation type="unfinished"></translation>
+        <translation>Отмяна</translation>
     </message>
     <message>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation>Изчистване</translation>
     </message>
     <message>
         <source>Load</source>
-        <translation type="unfinished">Зареждане</translation>
+        <translation>Зареждане</translation>
     </message>
     <message>
         <source>Save</source>
-        <translation type="unfinished"></translation>
+        <translation>Запазване</translation>
     </message>
     <message>
         <source>Load drawn map</source>
-        <translation type="unfinished"></translation>
+        <translation>Зареждане на начертана карта</translation>
     </message>
     <message>
         <source>Drawn Maps (*.hwmap);;All files (*.*)</source>
-        <translation type="unfinished"></translation>
+        <translation>Начертани карти (*.hwmap);;Всички файлове (*.*)</translation>
     </message>
     <message>
         <source>Save drawn map</source>
-        <translation type="unfinished"></translation>
+        <translation>Запазване на начертана карта</translation>
     </message>
 </context>
 <context>
@@ -355,19 +358,19 @@
     </message>
     <message>
         <source>Details</source>
-        <translation type="unfinished"></translation>
+        <translation>Подробности</translation>
     </message>
     <message>
         <source>Health graph</source>
-        <translation type="unfinished"></translation>
+        <translation>Графика на здрането</translation>
     </message>
     <message>
         <source>Ranking</source>
-        <translation type="unfinished"></translation>
+        <translation>Класиране</translation>
     </message>
     <message>
         <source>The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.</source>
-        <translation type="unfinished"></translation>
+        <translation>Наградата за най-добър изстрел беше спечелена от &lt;b&gt;%1&lt;/b&gt; с &lt;b&gt;%2&lt;/b&gt; pts.</translation>
     </message>
     <message numerus="yes">
         <source>The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.</source>
@@ -380,7 +383,6 @@
         <source>A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
-            <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
@@ -392,8 +394,7 @@
     </message>
     <message numerus="yes">
         <source>&lt;b&gt;%1&lt;/b&gt; thought it&apos;s good to shoot his own hedgehogs with &lt;b&gt;%2&lt;/b&gt; pts.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
             <numerusform></numerusform>
         </translation>
     </message>
@@ -401,14 +402,12 @@
         <source>&lt;b&gt;%1&lt;/b&gt; killed &lt;b&gt;%2&lt;/b&gt; of his own hedgehogs.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
-            <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>&lt;b&gt;%1&lt;/b&gt; was scared and skipped turn &lt;b&gt;%2&lt;/b&gt; times.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
-            <numerusform></numerusform>
         </translation>
     </message>
 </context>
@@ -690,18 +689,18 @@
     <name>PageNetGame</name>
     <message>
         <source>Control</source>
-        <translation type="unfinished"></translation>
+        <translation>Контрол</translation>
     </message>
 </context>
 <context>
     <name>PageNetType</name>
     <message>
         <source>LAN game</source>
-        <translation type="unfinished"></translation>
+        <translation>Игра по локална мрежа</translation>
     </message>
     <message>
         <source>Official server</source>
-        <translation type="unfinished"></translation>
+        <translation>Официален сървър</translation>
     </message>
 </context>
 <context>
@@ -716,35 +715,35 @@
     </message>
     <message>
         <source>Delete team</source>
-        <translation type="unfinished"></translation>
+        <translation>Изтриване на отбор</translation>
     </message>
     <message>
         <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
-        <translation type="unfinished"></translation>
+        <translation>Не можете да редактиране отбори от избирането на отбори. Върнете се назад за да добавите, редактирате или изтриете отбори.</translation>
     </message>
     <message>
         <source>New scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Нова схема</translation>
     </message>
     <message>
         <source>Edit scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Редактиране на схема</translation>
     </message>
     <message>
         <source>Delete scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Изтриване на схема</translation>
     </message>
     <message>
         <source>New weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Нов комплект оръжия</translation>
     </message>
     <message>
         <source>Edit weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Редактиране на комплекта оръжия</translation>
     </message>
     <message>
         <source>Delete weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Изтриване на комплекта оръжия</translation>
     </message>
 </context>
 <context>
@@ -794,7 +793,7 @@
     </message>
     <message>
         <source>Admin features</source>
-        <translation type="unfinished"></translation>
+        <translation>Административни функционалности</translation>
     </message>
     <message>
         <source>Error</source>
@@ -806,37 +805,39 @@
     </message>
     <message>
         <source>Room Name:</source>
-        <translation type="unfinished"></translation>
+        <translation>Име на стаята:</translation>
     </message>
     <message>
         <source>This game is in lobby.
 You may join and start playing once the game starts.</source>
-        <translation type="unfinished"></translation>
+        <translation>Тази игра е в лоби.
+След като започне, може да се присъедините и да играете.</translation>
     </message>
     <message>
         <source>This game is in progress.
 You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="unfinished"></translation>
+        <translation>Играта тече в момента.
+Можете да се присъедините и да гледате, но ще трябва да изчакате да свърши, за да започнете да играете.</translation>
     </message>
     <message>
         <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 е домакина. Той може да променя настройките и да започне играта.</translation>
     </message>
     <message>
         <source>Random Map</source>
-        <translation type="unfinished"></translation>
+        <translation>Случайна карта</translation>
     </message>
     <message>
         <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="unfinished"></translation>
+        <translation>Игрите могат да се играят на предварително създадени или случайно генерирани карти.</translation>
     </message>
     <message>
         <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="unfinished"></translation>
+        <translation>Игровата схема определя общите настройки и предпочитания, като продължителност на рунда, внезапна смърт или вампиризъм.</translation>
     </message>
     <message>
         <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="unfinished"></translation>
+        <translation>Схемата на оръжията определя наличните оръжия и количеството боеприпаси за тях.</translation>
     </message>
     <message numerus="yes">
         <source>There are %1 clients connected to this room.</source>
@@ -849,7 +850,6 @@
         <source>There are %1 teams participating in this room.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
-            <numerusform></numerusform>
         </translation>
     </message>
     <message>
@@ -862,36 +862,37 @@
     </message>
     <message>
         <source>Random Maze</source>
-        <translation type="unfinished"></translation>
+        <translation>Случан лабиринт</translation>
     </message>
     <message>
         <source>State:</source>
-        <translation type="unfinished"></translation>
+        <translation>Състояние:</translation>
     </message>
     <message>
         <source>Rules:</source>
-        <translation type="unfinished"></translation>
+        <translation>Правила:</translation>
     </message>
     <message>
         <source>Weapons:</source>
-        <translation type="unfinished"></translation>
+        <translation>Оръжия:</translation>
     </message>
     <message>
         <source>Search:</source>
-        <translation type="unfinished"></translation>
+        <translation>Търсене:</translation>
     </message>
     <message>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation>Изчистване</translation>
     </message>
     <message>
         <source>Warning</source>
-        <translation type="unfinished"></translation>
+        <translation>Внимание</translation>
     </message>
     <message>
         <source>The game you are trying to join has started.
 Do you still want to join the room?</source>
-        <translation type="unfinished"></translation>
+        <translation>Играта, към която се опитвате да се присъедините вече е започнала.
+Все още ли желаете да се присъедините към стаята?</translation>
     </message>
 </context>
 <context>
@@ -1021,11 +1022,11 @@
     </message>
     <message>
         <source>New</source>
-        <translation type="unfinished"></translation>
+        <translation>Ново</translation>
     </message>
     <message>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
+        <translation>Копиране</translation>
     </message>
 </context>
 <context>
@@ -1040,7 +1041,7 @@
     </message>
     <message>
         <source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
-        <translation>Тренировка (упражнете уменията си в редица тренировъчни мисии). РАЗРАБОТВА СЕ</translation>
+        <translation>Тренировка (упражнете уменията си в редица тренировъчни мисии). В ПРОЦЕС НА РАЗРАБОТКА</translation>
     </message>
     <message>
         <source>Demos (Watch recorded demos)</source>
@@ -1052,7 +1053,7 @@
     </message>
     <message>
         <source>Campaign Mode (...). IN DEVELOPMENT</source>
-        <translation type="unfinished"></translation>
+        <translation>Режим кампания (...). В ПРОЦЕС НА РАЗРАБОТКА</translation>
     </message>
 </context>
 <context>
@@ -1063,7 +1064,7 @@
     </message>
     <message>
         <source>Ban</source>
-        <translation type="unfinished"></translation>
+        <translation>Забраняване</translation>
     </message>
     <message>
         <source>Start</source>
@@ -1083,30 +1084,30 @@
     </message>
     <message>
         <source>Follow</source>
-        <translation type="unfinished"></translation>
+        <translation>Следване</translation>
     </message>
     <message>
         <source>Ignore</source>
-        <translation type="unfinished"></translation>
+        <translation>Игнориране</translation>
     </message>
     <message>
         <source>Add friend</source>
-        <translation type="unfinished"></translation>
+        <translation>Добавяне на приятел</translation>
     </message>
     <message>
         <source>Unignore</source>
-        <translation type="unfinished"></translation>
+        <translation>Отмяна на игнориране</translation>
     </message>
     <message>
         <source>Remove friend</source>
-        <translation type="unfinished"></translation>
+        <translation>Премахване на приятел</translation>
     </message>
 </context>
 <context>
     <name>QCheckBox</name>
     <message>
         <source>Check for updates at startup</source>
-        <translation type="unfinished"></translation>
+        <translation>Проверяване за обновления при стартиране</translation>
     </message>
     <message>
         <source>Enable sound</source>
@@ -1130,7 +1131,7 @@
     </message>
     <message>
         <source>Frontend fullscreen</source>
-        <translation>Преден пълен екран</translation>
+        <translation>Пълен екран</translation>
     </message>
     <message>
         <source>Append date and time to record file name</source>
@@ -1138,19 +1139,19 @@
     </message>
     <message>
         <source>Show ammo menu tooltips</source>
-        <translation type="unfinished"></translation>
+        <translation>Показване на подсказки за боеприпасите</translation>
     </message>
     <message>
         <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
+        <translation>Включване на звуци</translation>
     </message>
     <message>
         <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
+        <translation>Включване на музика</translation>
     </message>
     <message>
         <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
+        <translation>Ефекти</translation>
     </message>
 </context>
 <context>
@@ -1169,31 +1170,31 @@
     </message>
     <message>
         <source>(System default)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Стандартно за системата)</translation>
     </message>
     <message>
         <source>generated maze...</source>
-        <translation type="unfinished"></translation>
+        <translation>генериран лабиринт...</translation>
     </message>
     <message>
         <source>Mission</source>
-        <translation type="unfinished"></translation>
+        <translation>Мисия</translation>
     </message>
     <message>
         <source>Community</source>
-        <translation type="unfinished"></translation>
+        <translation>Общност</translation>
     </message>
     <message>
         <source>Any</source>
-        <translation type="unfinished"></translation>
+        <translation>Без значение</translation>
     </message>
     <message>
         <source>In lobby</source>
-        <translation type="unfinished"></translation>
+        <translation>В лоби</translation>
     </message>
     <message>
         <source>In progress</source>
-        <translation type="unfinished"></translation>
+        <translation>В прогрес</translation>
     </message>
     <message>
         <source>Default</source>
@@ -1201,11 +1202,11 @@
     </message>
     <message>
         <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
+        <translation>Ръчно нарисувана карта...</translation>
     </message>
     <message>
         <source>Disabled</source>
-        <translation type="unfinished"></translation>
+        <translation>Изключено</translation>
     </message>
     <message>
         <source>Red/Cyan</source>
@@ -1248,11 +1249,11 @@
     <name>QGroupBox</name>
     <message>
         <source>Game Modifiers</source>
-        <translation type="unfinished"></translation>
+        <translation>Модификатори на играта</translation>
     </message>
     <message>
         <source>Basic Settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Основни настройки</translation>
     </message>
     <message>
         <source>Team Members</source>
@@ -1288,54 +1289,54 @@
     </message>
     <message>
         <source>Team Settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Настройки на отборите</translation>
     </message>
     <message>
         <source>Misc</source>
-        <translation type="unfinished"></translation>
+        <translation>Разни</translation>
     </message>
     <message>
         <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
+        <translation>Схеми и оръжия</translation>
     </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
         <source>Game scheme</source>
-        <translation type="unfinished">Игрови настройки</translation>
+        <translation>Игрови схеми</translation>
     </message>
     <message>
         <source>Damage Modifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Модификатор на щетите</translation>
     </message>
     <message>
         <source>Turn Time</source>
-        <translation type="unfinished"></translation>
+        <translation>Време за ход</translation>
     </message>
     <message>
         <source>Initial Health</source>
-        <translation type="unfinished"></translation>
+        <translation>Начално здраве</translation>
     </message>
     <message>
         <source>Sudden Death Timeout</source>
-        <translation type="unfinished"></translation>
+        <translation>Изтичане на времето на внезапната смърт</translation>
     </message>
     <message>
         <source>Crate Drops</source>
-        <translation type="unfinished"></translation>
+        <translation>Пускане на кашони</translation>
     </message>
     <message>
         <source>Mines Time</source>
-        <translation type="unfinished"></translation>
+        <translation>Време на мините</translation>
     </message>
     <message>
         <source>Mines</source>
-        <translation type="unfinished"></translation>
+        <translation>Мини</translation>
     </message>
     <message>
         <source>Scheme Name:</source>
-        <translation type="unfinished"></translation>
+        <translation>Име на схемата:</translation>
     </message>
     <message>
         <source>Net nick</source>
@@ -1407,39 +1408,39 @@
     </message>
     <message>
         <source>Name</source>
-        <translation type="unfinished"></translation>
+        <translation>Име</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation type="unfinished"></translation>
+        <translation>Тип</translation>
     </message>
     <message>
         <source>Grave</source>
-        <translation type="unfinished"></translation>
+        <translation>Надгробна плоча</translation>
     </message>
     <message>
         <source>Flag</source>
-        <translation type="unfinished"></translation>
+        <translation>Знаме</translation>
     </message>
     <message>
         <source>Voice</source>
-        <translation type="unfinished"></translation>
+        <translation>Глас</translation>
     </message>
     <message>
         <source>Locale</source>
-        <translation type="unfinished"></translation>
+        <translation>Локал</translation>
     </message>
     <message>
         <source>Restart game to apply</source>
-        <translation type="unfinished"></translation>
+        <translation>Рестартирайте играта за да влезе в сила</translation>
     </message>
     <message>
         <source>Explosives</source>
-        <translation type="unfinished"></translation>
+        <translation>Експлозиви</translation>
     </message>
     <message>
         <source>Tip: </source>
-        <translation type="unfinished"></translation>
+        <translation>Съвет:</translation>
     </message>
     <message>
         <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
@@ -1447,35 +1448,35 @@
     </message>
     <message>
         <source>Quality</source>
-        <translation type="unfinished"></translation>
+        <translation>Качество</translation>
     </message>
     <message>
         <source>% Health Crates</source>
-        <translation type="unfinished"></translation>
+        <translation>% кашони със здраве</translation>
     </message>
     <message>
         <source>Health in Crates</source>
-        <translation type="unfinished"></translation>
+        <translation>Здраве в кашоните</translation>
     </message>
     <message>
         <source>Sudden Death Water Rise</source>
-        <translation type="unfinished"></translation>
+        <translation>Покачване на водата при Внезапна смърт</translation>
     </message>
     <message>
         <source>Sudden Death Health Decrease</source>
-        <translation type="unfinished"></translation>
+        <translation>Намаляване на здравето при Внезапна смърт</translation>
     </message>
     <message>
         <source>% Rope Length</source>
-        <translation type="unfinished"></translation>
+        <translation>% Дължина на въжето</translation>
     </message>
     <message>
         <source>Gameplay</source>
-        <translation type="unfinished"></translation>
+        <translation>Геймплей</translation>
     </message>
     <message>
         <source>Stereo rendering</source>
-        <translation type="unfinished"></translation>
+        <translation>Стерео режим</translation>
     </message>
 </context>
 <context>
@@ -1532,39 +1533,39 @@
     </message>
     <message>
         <source>Can not overwrite default weapon set &apos;%1&apos;!</source>
-        <translation type="unfinished"></translation>
+        <translation>Не моге да се презапише стандартния комплект с оръжия &apos;%1&apos;!</translation>
     </message>
     <message>
         <source>All file associations have been set.</source>
-        <translation type="unfinished"></translation>
+        <translation>Всички файлови асоциации са зададени.</translation>
     </message>
     <message>
         <source>File association failed.</source>
-        <translation type="unfinished"></translation>
+        <translation>Файловата асоциация се провали.</translation>
     </message>
     <message>
         <source>Teams</source>
-        <translation type="unfinished">Отбори</translation>
+        <translation>Отбори</translation>
     </message>
     <message>
         <source>Really delete this team?</source>
-        <translation type="unfinished"></translation>
+        <translation>Наистина ли да бъде изтрит този отбор?</translation>
     </message>
     <message>
         <source>Schemes</source>
-        <translation type="unfinished"></translation>
+        <translation>Схеми</translation>
     </message>
     <message>
         <source>Can not delete default scheme &apos;%1&apos;!</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартната схема &apos;%1&apos; не може да бъде изтрита!</translation>
     </message>
     <message>
         <source>Really delete this game scheme?</source>
-        <translation type="unfinished"></translation>
+        <translation>Наистина ли да бъде изтрите тази игрова схема?</translation>
     </message>
     <message>
         <source>Can not delete default weapon set &apos;%1&apos;!</source>
-        <translation type="unfinished"></translation>
+        <translation>Не моге да се изтрие стандартния комплект с оръжия &apos;%1&apos;!</translation>
     </message>
 </context>
 <context>
@@ -1583,11 +1584,11 @@
     </message>
     <message>
         <source>Nickname</source>
-        <translation type="unfinished"></translation>
+        <translation>Прякор</translation>
     </message>
     <message>
         <source>Please enter your nickname</source>
-        <translation type="unfinished"></translation>
+        <translation>Моля въведете прякорът си</translation>
     </message>
 </context>
 <context>
@@ -1654,73 +1655,73 @@
     </message>
     <message>
         <source>Random Team</source>
-        <translation type="unfinished"></translation>
+        <translation>Случаен отбор</translation>
     </message>
     <message>
         <source>Associate file extensions</source>
-        <translation type="unfinished"></translation>
+        <translation>Асоцииране на файлови разширения</translation>
     </message>
     <message>
         <source>more</source>
-        <translation type="unfinished"></translation>
+        <translation>повече</translation>
     </message>
 </context>
 <context>
     <name>QTableWidget</name>
     <message>
         <source>Room Name</source>
-        <translation type="unfinished"></translation>
+        <translation>Име на стаята</translation>
     </message>
     <message>
         <source>C</source>
-        <translation type="unfinished"></translation>
+        <translation>C</translation>
     </message>
     <message>
         <source>T</source>
-        <translation type="unfinished"></translation>
+        <translation>T</translation>
     </message>
     <message>
         <source>Owner</source>
-        <translation type="unfinished"></translation>
+        <translation>Притежател</translation>
     </message>
     <message>
         <source>Map</source>
-        <translation type="unfinished">Карта</translation>
+        <translation>Карта</translation>
     </message>
     <message>
         <source>Rules</source>
-        <translation type="unfinished"></translation>
+        <translation>Правила</translation>
     </message>
     <message>
         <source>Weapons</source>
-        <translation type="unfinished">Оръжия</translation>
+        <translation>Оръжия</translation>
     </message>
 </context>
 <context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Комплект оръжия</translation>
     </message>
     <message>
         <source>Probabilities</source>
-        <translation type="unfinished"></translation>
+        <translation>Веротности</translation>
     </message>
     <message>
         <source>Ammo in boxes</source>
-        <translation type="unfinished"></translation>
+        <translation>Боеприпаси в кашоните</translation>
     </message>
     <message>
         <source>Delays</source>
-        <translation type="unfinished"></translation>
+        <translation>Закъснения</translation>
     </message>
     <message>
         <source>new</source>
-        <translation type="unfinished">Нов отбор</translation>
+        <translation>нов</translation>
     </message>
     <message>
         <source>copy of</source>
-        <translation type="unfinished"></translation>
+        <translation>копие на</translation>
     </message>
 </context>
 <context>
@@ -1742,95 +1743,95 @@
     <name>ToggleButtonWidget</name>
     <message>
         <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
+        <translation>Режим на фортове</translation>
     </message>
     <message>
         <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
+        <translation>Разделяне на отборите</translation>
     </message>
     <message>
         <source>Solid Land</source>
-        <translation type="unfinished"></translation>
+        <translation>Твърда земя</translation>
     </message>
     <message>
         <source>Add Border</source>
-        <translation type="unfinished">Добави гранична ивица</translation>
+        <translation>Добави гранична ивица</translation>
     </message>
     <message>
         <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
+        <translation>Ниска гравитация</translation>
     </message>
     <message>
         <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
+        <translation>Лазерен мерник</translation>
     </message>
     <message>
         <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
+        <translation>Неуязвимост</translation>
     </message>
     <message>
         <source>Vampirism</source>
-        <translation type="unfinished"></translation>
+        <translation>Вампиризъм</translation>
     </message>
     <message>
         <source>Karma</source>
-        <translation type="unfinished"></translation>
+        <translation>Карма</translation>
     </message>
     <message>
         <source>Artillery</source>
-        <translation type="unfinished"></translation>
+        <translation>Артилерия</translation>
     </message>
     <message>
         <source>Random Order</source>
-        <translation type="unfinished"></translation>
+        <translation>Произволен ред</translation>
     </message>
     <message>
         <source>King</source>
-        <translation type="unfinished"></translation>
+        <translation>Крал</translation>
     </message>
     <message>
         <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
+        <translation>Поставяне на таралежи</translation>
     </message>
     <message>
         <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
+        <translation>Кланът споделя оръжията</translation>
     </message>
     <message>
         <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
+        <translation>Изкбючване на греди</translation>
     </message>
     <message>
         <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
+        <translation>Изключване на обекти по земята</translation>
     </message>
     <message>
         <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
+        <translation>Режим ИИ оцеляване</translation>
     </message>
     <message>
         <source>Reset Health</source>
-        <translation type="unfinished"></translation>
+        <translation>Изчистване на здрането</translation>
     </message>
     <message>
         <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
+        <translation>Неограничени атаки</translation>
     </message>
     <message>
         <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
+        <translation>Изчистване на оръжията</translation>
     </message>
     <message>
         <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
+        <translation>Боеприпаси за всеки таралеж поотделно</translation>
     </message>
     <message>
         <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
+        <translation>Изключване на вятъра</translation>
     </message>
     <message>
         <source>More Wind</source>
-        <translation type="unfinished"></translation>
+        <translation>Още вятър</translation>
     </message>
 </context>
 <context>
@@ -1975,120 +1976,120 @@
     </message>
     <message>
         <source>zoom in</source>
-        <translation type="unfinished"></translation>
+        <translation>Приближаване</translation>
     </message>
     <message>
         <source>zoom out</source>
-        <translation type="unfinished"></translation>
+        <translation>Отдалечаване</translation>
     </message>
     <message>
         <source>reset zoom</source>
-        <translation type="unfinished"></translation>
+        <translation>Изчиставане на мащабирането</translation>
     </message>
     <message>
         <source>long jump</source>
-        <translation type="unfinished"></translation>
+        <translation>Дълъг скок</translation>
     </message>
     <message>
         <source>high jump</source>
-        <translation type="unfinished"></translation>
+        <translation>Висок скок</translation>
     </message>
     <message>
         <source>slot 10</source>
-        <translation type="unfinished">Слот 10</translation>
+        <translation>Слот 10</translation>
     </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
         <source>Basic controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Основни контроли</translation>
     </message>
     <message>
         <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Контроли за оръжията</translation>
     </message>
     <message>
         <source>Camera and cursor controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Контроли за камерата и показалеца</translation>
     </message>
     <message>
         <source>Other</source>
-        <translation type="unfinished">Друго</translation>
+        <translation>Друго</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
         <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
+        <translation>Преместете таралежите си и се прицелете:</translation>
     </message>
     <message>
         <source>Traverse gaps and obstacles by jumping:</source>
-        <translation type="unfinished"></translation>
+        <translation>Преодолявайте празнини и препятствия чрез скачане:</translation>
     </message>
     <message>
         <source>Fire your selected weapon or trigger an utility item:</source>
-        <translation type="unfinished"></translation>
+        <translation>Стреляйте с избраното оръжие или задействайте инструмент:</translation>
     </message>
     <message>
         <source>Pick a weapon or a target location under the cursor:</source>
-        <translation type="unfinished"></translation>
+        <translation>Изберете оръжие или местоположение под показалеца:</translation>
     </message>
     <message>
         <source>Switch your currently active hog (if possible):</source>
-        <translation type="unfinished"></translation>
+        <translation>Превключете текущо избрания таралеж ( ако е възможно):</translation>
     </message>
     <message>
         <source>Pick a weapon or utility item:</source>
-        <translation type="unfinished"></translation>
+        <translation>Изберете оръжие или инструмент:</translation>
     </message>
     <message>
         <source>Set the timer on bombs and timed weapons:</source>
-        <translation type="unfinished"></translation>
+        <translation>Задайте таймер на бомбите и оръжията с таймер:</translation>
     </message>
     <message>
         <source>Move the camera to the active hog:</source>
-        <translation type="unfinished"></translation>
+        <translation>Преместете камерата към активния таралеж:</translation>
     </message>
     <message>
         <source>Move the cursor or camera without using the mouse:</source>
-        <translation type="unfinished"></translation>
+        <translation>Преместете показалеца или камерата без помощта на мишката:</translation>
     </message>
     <message>
         <source>Modify the camera&apos;s zoom level:</source>
-        <translation type="unfinished"></translation>
+        <translation>Променете нивото на мащабиране на картата:</translation>
     </message>
     <message>
         <source>Talk to your team or all participants:</source>
-        <translation type="unfinished"></translation>
+        <translation>Говорете с отбора си или всички участници:</translation>
     </message>
     <message>
         <source>Pause, continue or leave your game:</source>
-        <translation type="unfinished"></translation>
+        <translation>Сложете на пауза, продължете или напудснете играта:</translation>
     </message>
     <message>
         <source>Modify the game&apos;s volume while playing:</source>
-        <translation type="unfinished"></translation>
+        <translation>Променете силата на звука на играта докато играете:</translation>
     </message>
     <message>
         <source>Toggle fullscreen mode:</source>
-        <translation type="unfinished"></translation>
+        <translation>Превключване на пълен екран:</translation>
     </message>
     <message>
         <source>Take a screenshot:</source>
-        <translation type="unfinished"></translation>
+        <translation>Прихващане на екран:</translation>
     </message>
     <message>
         <source>Toggle labels above hedgehogs:</source>
-        <translation type="unfinished"></translation>
+        <translation>Премключване на надписи над таралежите:</translation>
     </message>
 </context>
 <context>
     <name>binds (keys)</name>
     <message>
         <source>Axis</source>
-        <translation type="unfinished"></translation>
+        <translation>Ос</translation>
     </message>
     <message>
         <source>(Up)</source>
@@ -2112,11 +2113,11 @@
     </message>
     <message>
         <source>Button</source>
-        <translation type="unfinished"></translation>
+        <translation>Бутон</translation>
     </message>
     <message>
         <source>Keyboard</source>
-        <translation type="unfinished"></translation>
+        <translation>Клавиатура</translation>
     </message>
     <message>
         <source>Delete</source>
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts	Thu Aug 04 17:44:55 2011 +0200
@@ -5,25 +5,25 @@
     <name>AmmoSchemeModel</name>
     <message>
         <source>new</source>
-        <translation type="unfinished">nový</translation>
+        <translation>nový</translation>
     </message>
     <message>
         <source>copy of</source>
-        <translation type="unfinished"></translation>
+        <translation>kopie</translation>
     </message>
 </context>
 <context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
-        <translation type="unfinished"></translation>
+        <translation>Nikdy</translation>
     </message>
     <message numerus="yes">
         <source>Every %1 turn</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>Každý %1 tah</numerusform>
+            <numerusform>Každé %1 tahy</numerusform>
+            <numerusform>Každých %1 tahů</numerusform>
         </translation>
     </message>
 </context>
@@ -31,7 +31,7 @@
     <name>GameCFGWidget</name>
     <message>
         <source>Edit weapons</source>
-        <translation type="unfinished"></translation>
+        <translation>Editovat zbraně</translation>
     </message>
     <message>
         <source>Error</source>
@@ -43,30 +43,30 @@
     </message>
     <message>
         <source>Edit schemes</source>
-        <translation type="unfinished"></translation>
+        <translation>Editovat schémata</translation>
     </message>
     <message>
         <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
+        <translation>Pokud je tato volba aktivována, výběr herního schématu vybere automaticky i zbraňové schéma</translation>
     </message>
 </context>
 <context>
     <name>HWChatWidget</name>
     <message>
         <source>%1 *** %2 has been removed from your ignore list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 byl odstraněn ze seznamu ignorovaných</translation>
     </message>
     <message>
         <source>%1 *** %2 has been added to your ignore list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 byl přidán na seznam ignorovaných</translation>
     </message>
     <message>
         <source>%1 *** %2 has been removed from your friends list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 byl odstraněn ze seznamu přátel</translation>
     </message>
     <message>
         <source>%1 *** %2 has been added to your friends list</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 byl přidán na seznam přátel</translation>
     </message>
 </context>
 <context>
@@ -97,17 +97,17 @@
     </message>
     <message>
         <source>DefaultTeam</source>
-        <translation type="unfinished"></translation>
+        <translation>VýchozíTeam</translation>
     </message>
     <message>
         <source>Hedgewars Demo File</source>
         <comment>File Types</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars Demo Soubor</translation>
     </message>
     <message>
         <source>Hedgewars Save File</source>
         <comment>File Types</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars Save Soubor</translation>
     </message>
 </context>
 <context>
@@ -133,67 +133,67 @@
     </message>
     <message>
         <source>Filter</source>
-        <translation type="unfinished"></translation>
+        <translation>Filtr</translation>
     </message>
     <message>
         <source>All</source>
-        <translation type="unfinished"></translation>
+        <translation>Vše</translation>
     </message>
     <message>
         <source>Small</source>
-        <translation type="unfinished"></translation>
+        <translation>Malá</translation>
     </message>
     <message>
         <source>Medium</source>
-        <translation type="unfinished"></translation>
+        <translation>Střední</translation>
     </message>
     <message>
         <source>Large</source>
-        <translation type="unfinished"></translation>
+        <translation>Velká</translation>
     </message>
     <message>
         <source>Cavern</source>
-        <translation type="unfinished"></translation>
+        <translation>Jeskyně</translation>
     </message>
     <message>
         <source>Wacky</source>
-        <translation type="unfinished"></translation>
+        <translation>Šílená</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation type="unfinished"></translation>
+        <translation>Typ</translation>
     </message>
     <message>
         <source>Small tunnels</source>
-        <translation type="unfinished"></translation>
+        <translation>Malé tunely</translation>
     </message>
     <message>
         <source>Medium tunnels</source>
-        <translation type="unfinished"></translation>
+        <translation>Střední tunely</translation>
     </message>
     <message>
         <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
+        <translation>Velké tunely</translation>
     </message>
     <message>
         <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
+        <translation>Malé plovoucí ostrovy</translation>
     </message>
     <message>
         <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
+        <translation>Střední plovoucí ostrovy</translation>
     </message>
     <message>
         <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
+        <translation>Velké plovoucí ostrovy</translation>
     </message>
     <message>
         <source>Seed</source>
-        <translation type="unfinished"></translation>
+        <translation>Semínko</translation>
     </message>
     <message>
         <source>Set</source>
-        <translation type="unfinished"></translation>
+        <translation>Sada</translation>
     </message>
 </context>
 <context>
@@ -219,11 +219,11 @@
     </message>
     <message>
         <source>Connection refused</source>
-        <translation>Spojení odmítnuto.</translation>
+        <translation>Spojení odmítnuto</translation>
     </message>
     <message>
         <source>Room destroyed</source>
-        <translation>Místnost zničena.</translation>
+        <translation>Místnost zničena</translation>
     </message>
     <message>
         <source>Quit reason: </source>
@@ -231,34 +231,37 @@
     </message>
     <message>
         <source>You got kicked</source>
-        <translation type="unfinished"></translation>
+        <translation>Byl jsi vykopnut</translation>
     </message>
     <message>
         <source>Password</source>
-        <translation type="unfinished"></translation>
+        <translation>Heslo</translation>
     </message>
     <message>
         <source>%1 *** %2 has joined the room</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 se připojil do místnosti</translation>
     </message>
     <message>
         <source>%1 *** %2 has joined</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 se připojil</translation>
     </message>
     <message>
         <source>%1 *** %2 has left (%3)</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 odešel (%3)</translation>
     </message>
     <message>
         <source>%1 *** %2 has left</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 *** %2 odešel</translation>
     </message>
     <message>
         <source>Your nickname %1 is
 registered on Hedgewars.org
 Please provide your password below
 or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
+        <translation>Tvoje přezdívka %1 je
+registrovaná na Hedgewars.org
+Prosím, zadej své heslo
+nebo si v konfiguraci vyber jinou přezdívku:</translation>
     </message>
 </context>
 <context>
@@ -272,69 +275,69 @@
     <name>PageAdmin</name>
     <message>
         <source>Clear Accounts Cache</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyčistit mezipaměť účtů</translation>
     </message>
     <message>
         <source>Fetch data</source>
-        <translation type="unfinished"></translation>
+        <translation>Načíst data</translation>
     </message>
     <message>
         <source>Server message for latest version:</source>
-        <translation type="unfinished"></translation>
+        <translation>Zpráva serveru pro nejnovějši verzi:</translation>
     </message>
     <message>
         <source>Server message for previous versions:</source>
-        <translation type="unfinished"></translation>
+        <translation>Zpráva serveru pro předchozí verzi:</translation>
     </message>
     <message>
         <source>Latest version protocol number:</source>
-        <translation type="unfinished"></translation>
+        <translation>Číslo protokolu nejnovější verze:</translation>
     </message>
     <message>
         <source>MOTD preview:</source>
-        <translation type="unfinished"></translation>
+        <translation>Motto dne:</translation>
     </message>
     <message>
         <source>Set data</source>
-        <translation type="unfinished"></translation>
+        <translation>Nastavit data</translation>
     </message>
 </context>
 <context>
     <name>PageConnecting</name>
     <message>
         <source>Connecting...</source>
-        <translation type="unfinished"></translation>
+        <translation>Připojuji...</translation>
     </message>
 </context>
 <context>
     <name>PageDrawMap</name>
     <message>
         <source>Undo</source>
-        <translation type="unfinished"></translation>
+        <translation>Zpět</translation>
     </message>
     <message>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation>Vymazat</translation>
     </message>
     <message>
         <source>Load</source>
-        <translation type="unfinished">Nahrát</translation>
+        <translation>Nahrát</translation>
     </message>
     <message>
         <source>Save</source>
-        <translation type="unfinished"></translation>
+        <translation>Uložit</translation>
     </message>
     <message>
         <source>Load drawn map</source>
-        <translation type="unfinished"></translation>
+        <translation>Nahrát nakreslenou mapu</translation>
     </message>
     <message>
         <source>Drawn Maps (*.hwmap);;All files (*.*)</source>
-        <translation type="unfinished"></translation>
+        <translation>Nakreslené mapy (*.hwmap);;Všechny soubory (*.*)</translation>
     </message>
     <message>
         <source>Save drawn map</source>
-        <translation type="unfinished"></translation>
+        <translation>Uložit nakreslenou mapu</translation>
     </message>
 </context>
 <context>
@@ -356,66 +359,66 @@
     </message>
     <message>
         <source>Details</source>
-        <translation type="unfinished"></translation>
+        <translation>Detaily</translation>
     </message>
     <message>
         <source>Health graph</source>
-        <translation type="unfinished"></translation>
+        <translation>Graf zdraví</translation>
     </message>
     <message>
         <source>Ranking</source>
-        <translation type="unfinished"></translation>
+        <translation>Hodnocení</translation>
     </message>
     <message>
         <source>The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.</source>
-        <translation type="unfinished"></translation>
+        <translation>Cenu za nejlepší zásah vyhrál &lt;b&gt;%1&lt;/b&gt; s &lt;b&gt;%2&lt;/b&gt; body.</translation>
     </message>
     <message numerus="yes">
         <source>The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>Nejlepší zabiják je &lt;b&gt;%1&lt;/b&gt; s &lt;b&gt;%2&lt;/b&gt; úlovkem za tah.</numerusform>
+            <numerusform>Nejlepší zabiják je &lt;b&gt;%1&lt;/b&gt; se &lt;b&gt;%2&lt;/b&gt; úlovky za tah.</numerusform>
+            <numerusform>Nejlepší zabiják je &lt;b&gt;%1&lt;/b&gt; s &lt;b&gt;%2&lt;/b&gt; úlovky za tah.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>Celkem  &lt;b&gt;%1&lt;/b&gt; ježek byl zabit toto kolo.</numerusform>
+            <numerusform>Celkem  &lt;b&gt;%1&lt;/b&gt; ježci byli zabiti toto kolo.</numerusform>
+            <numerusform>Celkem  &lt;b&gt;%1&lt;/b&gt; ježků bylo zabito toto kolo.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>(%1 kill)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>(%1 úlovek)</numerusform>
+            <numerusform>(%1 úlovky)</numerusform>
+            <numerusform>(%1 úlovků)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>&lt;b&gt;%1&lt;/b&gt; thought it&apos;s good to shoot his own hedgehogs with &lt;b&gt;%2&lt;/b&gt; pts.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; si myslel, že je dobré střílet do vlastních ježků s &lt;b&gt;%2&lt;/b&gt; bodem.</numerusform>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; si myslel, že je dobré střílet do vlastních ježků se &lt;b&gt;%2&lt;/b&gt; body.</numerusform>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; si myslel, že je dobré střílet do vlastních ježků s &lt;b&gt;%2&lt;/b&gt; body.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>&lt;b&gt;%1&lt;/b&gt; killed &lt;b&gt;%2&lt;/b&gt; of his own hedgehogs.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; zabil &lt;b&gt;%2&lt;/b&gt; vlastního ježka.</numerusform>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; zabil &lt;b&gt;%2&lt;/b&gt; vlastní ježky.</numerusform>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; zabil &lt;b&gt;%2&lt;/b&gt; vlastních ježků.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>&lt;b&gt;%1&lt;/b&gt; was scared and skipped turn &lt;b&gt;%2&lt;/b&gt; times.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; byl vystrašený a přeskočil tah &lt;b&gt;%2&lt;/b&gt; krát.</numerusform>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; byl vystrašený a přeskočil tah &lt;b&gt;%2&lt;/b&gt; krát.</numerusform>
+            <numerusform>&lt;b&gt;%1&lt;/b&gt; byl vystrašený a přeskočil tah &lt;b&gt;%2&lt;/b&gt; krát.</numerusform>
         </translation>
     </message>
 </context>
@@ -432,247 +435,247 @@
     <message>
         <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Jednoduše zvol stejnou barvu jako spoluhráč, abys hrál ve stejném týmu. Každý z vás bude mít kontrolu nad svými vlastními ježky, ale vyhraje nebo prohraje společně.</translation>
     </message>
     <message>
         <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Některé zbraně mohou způsobovat jen malé poškození, ale mohou být devastující v pravé chvíli. Zkus použít pistoli Desert Eagle ke sražení několika nepřátelských ježků do vody.</translation>
     </message>
     <message>
         <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Pokud si nejsi jistý, co dělat a nechceš plýtvat municí, přeskoč tah. Ale nenech uběhnout moc času, protože pak přijde Náhlá smrt!</translation>
     </message>
     <message>
         <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Pokud chceš zabránit ostatním, aby používali tvoji oblíbenou přezdívku na oficiálním serveru, zaregistruj se na http://www.hedgewars.org/.</translation>
     </message>
     <message>
         <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Jsi znuděn standardní hrou? Vyzkoušej některou misi - nabídnou jiný herní zážitek v závislosti na tom, kterou si vybereš.</translation>
     </message>
     <message>
         <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Standardně hra vždycky nahrává poslední odehraný zápas jako ukázku. Vyber si &apos;Místní hru&apos; a zvol tlačítko &apos;Ukázky&apos; v pravém spodním rohu k jejich přehrávání a správě.</translation>
     </message>
     <message>
         <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Pokud máš problémy, zeptej se na našem fóru, ale neočekávej prosím nonstop podporu!</translation>
     </message>
     <message>
         <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Pokud se ti líbí, pomož nám malým příspěvkem, nebo se podílej na práci!</translation>
     </message>
     <message>
         <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Sdílej ho se svoji rodinou a přáteli dle libosti!</translation>
     </message>
     <message>
         <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Čas od času se konají oficiální turnaje. Nadcházející události budou publikovány na http://www.hedgewars.org/ s několika denním předstihem.</translation>
     </message>
     <message>
         <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars je k dispozici v mnoha jazycích. Pokud překlad do tvého jazyka vypadá zastaralý nebo chybí, neváhej nás kontaktovat!</translation>
     </message>
     <message>
         <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars může být spuštěno na mnoha různých operačních systémech včetně Microsoft Windows, Mac OS X a Linuxu.</translation>
     </message>
     <message>
         <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Vždycky si pamatuj, že můžeš vytvořit vlastní hru na místní síti i internetu. Nejsi odkázán jen na možnost &apos;Prostá hra&apos;.</translation>
     </message>
     <message>
         <source>While playing you should give yourself a short break at least once an hour.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Během hraní bys měl dělat krátké přestávky alespoň jednou za hodinu.</translation>
     </message>
     <message>
         <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Pokud tvoje grafická karta nepodporuje hardwarovou akceleraci OpenGL, zkus zapnout nízkou kvalitu pro zlepšení výkonu.</translation>
     </message>
     <message>
         <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Jsme otevřeni návrhům a konstruktivní kritice. Pokud se ti něco nelíbí, nebo máš skvělý nápad, dej nám vědět!</translation>
     </message>
     <message>
         <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Obzvláště při hře online buď slušný a vždy pamatuj na to, že s tebou nebo proti tobě může hrát někdo z nějaké menšiny!</translation>
     </message>
     <message>
         <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Speciální herní módy jako třeba &apos;Vampyrismus&apos; nebo &apos;Karma&apos; ti dovolují vymýšlet úplně jiné herní taktiky. Vyzkoušej je v nějaké hře!</translation>
     </message>
     <message>
         <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Nikdy bys neměl instalovat Hedgewars na počítači, který ti nepatří (škola, univerzita, práce a jiné). Prosím, zeptej se nejprve zodpovědné osoby!</translation>
     </message>
     <message>
         <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars mohou být perfektní pro krátkou hru během pauzy. Jen se ujisti, že jsi nepřidal příliš mnoho ježků nebo nezvolil velkou mapu. Zmenšit čas nebo zdraví také urychlí hru.</translation>
     </message>
     <message>
         <source>No hedgehogs were harmed in making this game.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Žádný ježek nebyl zraněn během vytváření této hry.</translation>
     </message>
     <message>
         <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Pokud ti tuto hru někdo prodal, měl bys chtít vrátit peníze!</translation>
     </message>
     <message>
         <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Připojenim jednoho nebo více gamepadů před začátkem hry ti umožní nastavit je jako ovladač pro tvé týmy.</translation>
     </message>
     <message>
         <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Vytvoř si účet na %1, abys zabránil ostatním používat tvoji oblíbenou přezdívku na oficiálním serveru.</translation>
     </message>
     <message>
         <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Pokud tvoje grafická karta nepodporuje hardwarovou akceleraci OpenGL, zkus aktualizovat ovladače.</translation>
     </message>
     <message>
         <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">K dispozici jsou tři různé druhy skoků. Zmáčkni [Vysoký skok] dvakrát, abys udělal skok do větší výšky a dozadu.</translation>
     </message>
     <message>
         <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Bojíš se pádu z útesu? Stiskni [přesnost], aby ses otočil [vlevo], či [vpravo] bez jakéhokoliv pohybu.</translation>
     </message>
     <message>
         <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Některé zbraně vyžadují speciální strategii, nebo jen spoustu cvičení. Nezavrhuj hned některou zbraň, pokud jednou mineš cíl.</translation>
     </message>
     <message>
         <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Většina zbraní nefunguje, jakmile se ponoří do vody. Naváděná včela nebo dort jsou vyjímka z tohoto pravidla.</translation>
     </message>
     <message>
         <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Olomoucké tvarůžky vybuchují jen málo, ale vítr ovlivňuje oblak smradu, který může nakazit mnoho ježků najednou.</translation>
     </message>
     <message>
         <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Útok pianem je nejničivější letecký útok. Na druhé straně ale ztratíš ježka, který tento útok vykoná.</translation>
     </message>
     <message>
         <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Přisavné miny jsou perfektní nástroj na vytváření malých řetězových reakcí, které mohou nepřátelské ježky dostat do divokých situací ... nebo vody.</translation>
     </message>
     <message>
         <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Kladivo je nejefektivnější při použitǐ na mostech a traverzách. Zasažený ježek prostě prorazí skrz zem.</translation>
     </message>
     <message>
         <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Pokud jsi zaseklý za nepřátelským ježkem, použij kladivo, aby ses osvobodil a nemusel riskovat zranění z exploze.</translation>
     </message>
     <message>
         <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Maximální vzdálenost, do které dort dojde, je ovlivněna terénem, kterým musí jít. Použij [útok] k dřívější explozi.</translation>
     </message>
     <message>
         <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Plamenomet je zbraň, ale dá se použít i pro kopání tunelů.</translation>
     </message>
     <message>
         <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Chceš vědět, kdo stojí za touto hrou? Klikni na logo Hedgewars v hlavním menu a podívej se.</translation>
     </message>
     <message>
         <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Líbí se ti Hedgewars? Staň se fanouškem na %1 nebo nás sleduj na %2!</translation>
     </message>
     <message>
         <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Neboj se kreslit vlastní hroby, čepice, vlajky nebo mapy a témata! Ale pamatuj, že je musíš někde sdílet, abys je mohl používat online.</translation>
     </message>
     <message>
         <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Opravdu chceš nosit specifickou čepici? Daruj nám něco a dostaneš exklusivní čepici dle svého výběru!</translation>
     </message>
     <message>
         <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Udržuj ovladače grafické karty aktuální, aby ses vyhnul problémům při hře.</translation>
     </message>
     <message>
         <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Své nastavení Hedgewars najdeš v &quot;Dokumenty\Hedgewars&quot;. Vytvoř si zálohu nebo si je přenášej s sebou, ale needituj je ručně.</translation>
     </message>
     <message>
         <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Můžeš si asociovat Hedgewars soubory (uložené hry a nahrávky) tak, abys je mohl ihned spouštět z internetového prohlížeče nebo prúzkumníka souborů.</translation>
     </message>
     <message>
         <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Chceš ušetřit lana? Uvolni ho ve vzduchu a vystřel znovu. Dokud se nedotkneš země, využíváš ho bez plýtvání munice!</translation>
     </message>
     <message>
         <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Konfigurace Hedgewars je k nalezení ve tvém domovském adresáři pod &quot;Library/Application Support/Hedgewars&quot;. Vytvoř si zálohu, přenášej ho s sebou, ale neměň ho ručně.</translation>
     </message>
     <message>
         <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Konfigurace Hedgewars je k nalezení ve tvém domovském adresáři pod &quot;.hedgewars&quot;. Vytvoř si zálohu, přenášej ho s sebou, ale neměň ho ručně.</translation>
     </message>
     <message>
         <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Windows verze Hedgewars podporuje Xfire. Přidej si Hedgewars do jeho seznamu her, abys viděl přátele, kteří ho hrají.</translation>
     </message>
     <message>
         <source>The Homing Bee can be tricky to use. Its turn radius depends on it&apos;s velocity, so try to not use full power.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Naváděná včela může být obtížná na použití. Její poloměr otáčení je závislý na její rychlosti, zkus ji nepoužívat při plné síle.</translation>
     </message>
     <message>
         <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation>Použij Molotov nebo plamenomet, abys dočasně zamezil ježkům v přechodu terénu jako jsou tunely nebo plošiny.</translation>
     </message>
 </context>
 <context>
@@ -704,11 +707,11 @@
     <name>PageNetType</name>
     <message>
         <source>LAN game</source>
-        <translation type="unfinished"></translation>
+        <translation>Hra po místní síti</translation>
     </message>
     <message>
         <source>Official server</source>
-        <translation type="unfinished"></translation>
+        <translation>Oficiální server</translation>
     </message>
 </context>
 <context>
@@ -723,35 +726,35 @@
     </message>
     <message>
         <source>Delete team</source>
-        <translation type="unfinished"></translation>
+        <translation>Smazat tým</translation>
     </message>
     <message>
         <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nemůžeš upravovat týmy z výběru týmu. Vrať se do hlavní nabídky, kde můžeš přidávat, upravovat a mazat týmy.</translation>
     </message>
     <message>
         <source>New scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Nové schéma</translation>
     </message>
     <message>
         <source>Edit scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Upravit schéma</translation>
     </message>
     <message>
         <source>Delete scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Smazat schéma</translation>
     </message>
     <message>
         <source>New weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Nový sada zbraní</translation>
     </message>
     <message>
         <source>Edit weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Upravit sadu zbraní</translation>
     </message>
     <message>
         <source>Delete weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Smazat sadu zbraní</translation>
     </message>
 </context>
 <context>
@@ -793,7 +796,7 @@
     </message>
     <message>
         <source>Join</source>
-        <translation>Připojit</translation>
+        <translation>Připojit se</translation>
     </message>
     <message>
         <source>Refresh</source>
@@ -809,56 +812,58 @@
     </message>
     <message>
         <source>Admin features</source>
-        <translation type="unfinished"></translation>
+        <translation>Možnosti správce</translation>
     </message>
     <message>
         <source>Room Name:</source>
-        <translation type="unfinished"></translation>
+        <translation>Jméno místnosti:</translation>
     </message>
     <message>
         <source>This game is in lobby.
 You may join and start playing once the game starts.</source>
-        <translation type="unfinished"></translation>
+        <translation>Tato hra je v čekárně.
+Můžeš se přidat a začít hrát, jakmile hra začne.</translation>
     </message>
     <message>
         <source>This game is in progress.
 You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="unfinished"></translation>
+        <translation>Tato hra právě probíhá.
+Můžeš se přidat a pozorovat, ale musíš počkat, než hra skončí, jestli chceš začít hrát.</translation>
     </message>
     <message>
         <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 je hostitel. On může nastavovat a odstartovat hru.</translation>
     </message>
     <message>
         <source>Random Map</source>
-        <translation type="unfinished"></translation>
+        <translation>Náhodná mapa</translation>
     </message>
     <message>
         <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="unfinished"></translation>
+        <translation>Hra může být hrána na předem vytvořené nebo na náhodné mapě.</translation>
     </message>
     <message>
         <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="unfinished"></translation>
+        <translation>Herní schéma definuje obecné možnosti a nastavení jako třeba počet kol, náhlou smrt nebo vampyrismus.</translation>
     </message>
     <message>
         <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="unfinished"></translation>
+        <translation>Zbraňové schéma definuje zbraně, které budou k dispozici a jejich munici.</translation>
     </message>
     <message numerus="yes">
         <source>There are %1 clients connected to this room.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>V místnosti je %1 připojený klient.</numerusform>
+            <numerusform>V místnosti jsou %1 připojení klienti.</numerusform>
+            <numerusform>V místnosti je %1 připojených klientů.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <source>There are %1 teams participating in this room.</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>V místnosti je %1 účastnící se tým.</numerusform>
+            <numerusform>V místnosti jsou %1 účastnící se týmy.</numerusform>
+            <numerusform>V místnosti je %1 účastnících se týmů.</numerusform>
         </translation>
     </message>
     <message>
@@ -871,151 +876,152 @@
     </message>
     <message>
         <source>Random Maze</source>
-        <translation type="unfinished"></translation>
+        <translation>Náhodný labyrint</translation>
     </message>
     <message>
         <source>State:</source>
-        <translation type="unfinished"></translation>
+        <translation>Stav:</translation>
     </message>
     <message>
         <source>Rules:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pravidla:</translation>
     </message>
     <message>
         <source>Weapons:</source>
-        <translation type="unfinished"></translation>
+        <translation>Zbraně:</translation>
     </message>
     <message>
         <source>Search:</source>
-        <translation type="unfinished"></translation>
+        <translation>Hledej:</translation>
     </message>
     <message>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyčisti</translation>
     </message>
     <message>
         <source>Warning</source>
-        <translation type="unfinished"></translation>
+        <translation>Pozor</translation>
     </message>
     <message>
         <source>The game you are trying to join has started.
 Do you still want to join the room?</source>
-        <translation type="unfinished"></translation>
+        <translation>Hra, do které se snažíš připojit, začala.
+Ještě stále se chceš připojit do místosti?</translation>
     </message>
 </context>
 <context>
     <name>PageScheme</name>
     <message>
         <source>New</source>
-        <translation type="unfinished"></translation>
+        <translation>Nové</translation>
     </message>
     <message>
         <source>Delete</source>
-        <translation type="unfinished">Smazat</translation>
+        <translation>Smazat</translation>
     </message>
     <message>
         <source>Defend your fort and destroy the opponents, two team colours max!</source>
-        <translation type="unfinished"></translation>
+        <translation>Braň svou pevnoust a znič protivníky, dvě barvy týmů maximálně!</translation>
     </message>
     <message>
         <source>Teams will start on opposite sides of the terrain, two team colours max!</source>
-        <translation type="unfinished"></translation>
+        <translation>Týmy startují na opačných stranách terénu, dvě barvy týmů maximálně!</translation>
     </message>
     <message>
         <source>Land can not be destroyed!</source>
-        <translation type="unfinished"></translation>
+        <translation>Krajina nejde zničit!</translation>
     </message>
     <message>
         <source>Add an indestructable border around the terrain</source>
-        <translation type="unfinished"></translation>
+        <translation>Přidá nezničitelnou hranici okolo terénu</translation>
     </message>
     <message>
         <source>Lower gravity</source>
-        <translation type="unfinished"></translation>
+        <translation>Nižší gravitace</translation>
     </message>
     <message>
         <source>Assisted aiming with laser sight</source>
-        <translation type="unfinished"></translation>
+        <translation>Podpora míření pomocí laserového mířidla</translation>
     </message>
     <message>
         <source>All hogs have a personal forcefield</source>
-        <translation type="unfinished"></translation>
+        <translation>Všichni ježci mají osobní silové pole</translation>
     </message>
     <message>
         <source>Gain 80% of the damage you do back in health</source>
-        <translation type="unfinished"></translation>
+        <translation>Získej zpět 80% z poškození, které učiníš</translation>
     </message>
     <message>
         <source>Share your opponents pain, share their damage</source>
-        <translation type="unfinished"></translation>
+        <translation>Sdílej protivníkovu bolest, sdílej jeho poškození</translation>
     </message>
     <message>
         <source>Your hogs are unable to move, put your artillery skills to the test</source>
-        <translation type="unfinished"></translation>
+        <translation>Tvoji ježci se nemohou hýbat, prozkoušej své dělostřelecké dovednosti</translation>
     </message>
     <message>
         <source>Random</source>
-        <translation type="unfinished"></translation>
+        <translation>Náhodné</translation>
     </message>
     <message>
         <source>Seconds</source>
-        <translation type="unfinished"></translation>
+        <translation>Vteřiny</translation>
     </message>
     <message>
         <source>Order of play is random instead of in room order.</source>
-        <translation type="unfinished"></translation>
+        <translation>Pořadí hraní je náhodné, nikoliv podle pořadí v místnosti.</translation>
     </message>
     <message>
         <source>Play with a King. If he dies, your side dies.</source>
-        <translation type="unfinished"></translation>
+        <translation>Hraj s králem. Pokud zemře on, tvoje strana zemře.</translation>
     </message>
     <message>
         <source>Take turns placing your hedgehogs before the start of play.</source>
-        <translation type="unfinished"></translation>
+        <translation>Získej tah na úmistění ježků před začátkem hry.</translation>
     </message>
     <message>
         <source>Ammo is shared between all teams that share a colour.</source>
-        <translation type="unfinished"></translation>
+        <translation>Munice je sdílená mezi týmy se stejnou barvou.</translation>
     </message>
     <message>
         <source>Disable girders when generating random maps.</source>
-        <translation type="unfinished"></translation>
+        <translation>Vypni traverzy při generování náhodné mapy.</translation>
     </message>
     <message>
         <source>Disable land objects when generating random maps.</source>
-        <translation type="unfinished"></translation>
+        <translation>Vypni teréní objekty při generování náhodné mapy.</translation>
     </message>
     <message>
         <source>AI respawns on death.</source>
-        <translation type="unfinished"></translation>
+        <translation>Počítač se po smrti obnoví.</translation>
     </message>
     <message>
         <source>All (living) hedgehogs are fully restored at the end of turn</source>
-        <translation type="unfinished"></translation>
+        <translation>Všichni (žijící) ježci jsou plně uzdraveni na konci tahu</translation>
     </message>
     <message>
         <source>Attacking does not end your turn.</source>
-        <translation type="unfinished"></translation>
+        <translation>Útočení neukončí tah.</translation>
     </message>
     <message>
         <source>Weapons are reset to starting values each turn.</source>
-        <translation type="unfinished"></translation>
+        <translation>Zbraně jsou obnoveny na startovní hodnoty každý tah.</translation>
     </message>
     <message>
         <source>Each hedgehog has its own ammo. It does not share with the team.</source>
-        <translation type="unfinished"></translation>
+        <translation>Každý ježek má svou vlastní munici. Nesdílí ji s týmem.</translation>
     </message>
     <message>
         <source>You will not have to worry about wind anymore.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nemusíš se už starat o vítr.</translation>
     </message>
     <message>
         <source>Wind will affect almost everything.</source>
-        <translation type="unfinished"></translation>
+        <translation>Vítr bude ovlivňovat téměř všechno.</translation>
     </message>
     <message>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
+        <translation>Kopie</translation>
     </message>
 </context>
 <context>
@@ -1030,26 +1036,26 @@
     </message>
     <message>
         <source>New</source>
-        <translation type="unfinished"></translation>
+        <translation>Nová</translation>
     </message>
     <message>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
+        <translation>Kopie</translation>
     </message>
 </context>
 <context>
     <name>PageSinglePlayer</name>
     <message>
         <source>Simple Game (a quick game against the computer, settings are chosen for you)</source>
-        <translation>Hra jednoho hráče (rychlá hra proti počítači, nastavení si volíte sami)</translation>
+        <translation>Prostá hra (rychlá hra proti počítači, nastavení je zvoleno)</translation>
     </message>
     <message>
         <source>Multiplayer (play a hotseat game against your friends, or AI teams)</source>
-        <translation>Hra více hráčů (hrát na jednom počítači proti vašim přátelům nebo AI týmům)</translation>
+        <translation>Hra více hráčů (hrát na jednom počítači proti přátelům nebo počítači)</translation>
     </message>
     <message>
         <source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
-        <translation>Tréningový mód (Procvičte si vaše schopnosti v řadě tréningových misí). VE VÝVOJI</translation>
+        <translation>Výcvikový mód (Procvič si schopnosti v řadě tréningových misí). VE VÝVOJI</translation>
     </message>
     <message>
         <source>Demos (Watch recorded demos)</source>
@@ -1061,7 +1067,7 @@
     </message>
     <message>
         <source>Campaign Mode (...). IN DEVELOPMENT</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Mód tažení (...). VE VÝVOJI</translation>
     </message>
 </context>
 <context>
@@ -1088,42 +1094,42 @@
     </message>
     <message>
         <source>Ban</source>
-        <translation type="unfinished"></translation>
+        <translation>Zákaz</translation>
     </message>
     <message>
         <source>Follow</source>
-        <translation type="unfinished"></translation>
+        <translation>Sledovat</translation>
     </message>
     <message>
         <source>Ignore</source>
-        <translation type="unfinished"></translation>
+        <translation>Ignorovat</translation>
     </message>
     <message>
         <source>Add friend</source>
-        <translation type="unfinished"></translation>
+        <translation>Přidat přítele</translation>
     </message>
     <message>
         <source>Unignore</source>
-        <translation type="unfinished"></translation>
+        <translation>Přestat ignorovat</translation>
     </message>
     <message>
         <source>Remove friend</source>
-        <translation type="unfinished"></translation>
+        <translation>Odstranit přítele</translation>
     </message>
 </context>
 <context>
     <name>QCheckBox</name>
     <message>
         <source>Check for updates at startup</source>
-        <translation type="unfinished"></translation>
+        <translation>Zkontrolovat při startu novou verzi</translation>
     </message>
     <message>
         <source>Fullscreen</source>
-        <translation>Celoobrazovkový režim</translation>
+        <translation>Celá obrazovka</translation>
     </message>
     <message>
         <source>Frontend fullscreen</source>
-        <translation>Celoobrazovkový režim v menu</translation>
+        <translation>Celá obrazovka v menu</translation>
     </message>
     <message>
         <source>Enable sound</source>
@@ -1143,23 +1149,23 @@
     </message>
     <message>
         <source>Append date and time to record file name</source>
-        <translation>Připojit datim a čas k jménu záznamu</translation>
+        <translation>Připojit datum a čas k jménu záznamu</translation>
     </message>
     <message>
         <source>Show ammo menu tooltips</source>
-        <translation type="unfinished"></translation>
+        <translation>Ukazovat tipy ke zbraním</translation>
     </message>
     <message>
         <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
+        <translation>Zapnout zvuky v menu</translation>
     </message>
     <message>
         <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
+        <translation>Zapnout hudbu v menu</translation>
     </message>
     <message>
         <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
+        <translation>Efekty v menu</translation>
     </message>
 </context>
 <context>
@@ -1178,31 +1184,31 @@
     </message>
     <message>
         <source>(System default)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Podle systému)</translation>
     </message>
     <message>
         <source>generated maze...</source>
-        <translation type="unfinished"></translation>
+        <translation>generovaný labyrint...</translation>
     </message>
     <message>
         <source>Mission</source>
-        <translation type="unfinished"></translation>
+        <translation>Mise</translation>
     </message>
     <message>
         <source>Community</source>
-        <translation type="unfinished"></translation>
+        <translation>Komunita</translation>
     </message>
     <message>
         <source>Any</source>
-        <translation type="unfinished"></translation>
+        <translation>Jakékoliv</translation>
     </message>
     <message>
         <source>In lobby</source>
-        <translation type="unfinished"></translation>
+        <translation>V čekárně</translation>
     </message>
     <message>
         <source>In progress</source>
-        <translation type="unfinished"></translation>
+        <translation>Probíhá</translation>
     </message>
     <message>
         <source>Default</source>
@@ -1210,54 +1216,54 @@
     </message>
     <message>
         <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
+        <translation>ručně kreslená mapa...</translation>
     </message>
     <message>
         <source>Disabled</source>
-        <translation type="unfinished"></translation>
+        <translation>Vypnuto</translation>
     </message>
     <message>
         <source>Red/Cyan</source>
-        <translation type="unfinished"></translation>
+        <translation>Červená/Azurová</translation>
     </message>
     <message>
         <source>Cyan/Red</source>
-        <translation type="unfinished"></translation>
+        <translation>Azurová/Červená</translation>
     </message>
     <message>
         <source>Red/Blue</source>
-        <translation type="unfinished"></translation>
+        <translation>Červená/Modrá</translation>
     </message>
     <message>
         <source>Blue/Red</source>
-        <translation type="unfinished"></translation>
+        <translation>Modrá/Červená</translation>
     </message>
     <message>
         <source>Red/Green</source>
-        <translation type="unfinished"></translation>
+        <translation>Červená/Zelená</translation>
     </message>
     <message>
         <source>Green/Red</source>
-        <translation type="unfinished"></translation>
+        <translation>Zelená/Červená</translation>
     </message>
     <message>
         <source>Side-by-side</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Bok-po-boku</translation>
     </message>
     <message>
         <source>Top-Bottom</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Shora-Dolu</translation>
     </message>
     <message>
         <source>Wiggle</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Kývat se</translation>
     </message>
 </context>
 <context>
     <name>QGroupBox</name>
     <message>
         <source>Team Members</source>
-        <translation>Týmoví členové</translation>
+        <translation>Členové týmu</translation>
     </message>
     <message>
         <source>Fort</source>
@@ -1289,23 +1295,23 @@
     </message>
     <message>
         <source>Game Modifiers</source>
-        <translation type="unfinished"></translation>
+        <translation>Herní modifikátory</translation>
     </message>
     <message>
         <source>Basic Settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Základní nastavení</translation>
     </message>
     <message>
         <source>Team Settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Týmová nastavení</translation>
     </message>
     <message>
         <source>Misc</source>
-        <translation type="unfinished"></translation>
+        <translation>Ostatní</translation>
     </message>
     <message>
         <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
+        <translation>Schémata a zbraně</translation>
     </message>
 </context>
 <context>
@@ -1376,115 +1382,115 @@
     </message>
     <message>
         <source>Damage Modifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Modifikátor poškození</translation>
     </message>
     <message>
         <source>Turn Time</source>
-        <translation type="unfinished"></translation>
+        <translation>Čas tahu</translation>
     </message>
     <message>
         <source>Initial Health</source>
-        <translation type="unfinished"></translation>
+        <translation>Počáteční zdraví</translation>
     </message>
     <message>
         <source>Sudden Death Timeout</source>
-        <translation type="unfinished"></translation>
+        <translation>Čas do náhlé smrti</translation>
     </message>
     <message>
         <source>Mines Time</source>
-        <translation type="unfinished"></translation>
+        <translation>Časovač min</translation>
     </message>
     <message>
         <source>Mines</source>
-        <translation type="unfinished"></translation>
+        <translation>Počet min</translation>
     </message>
     <message>
         <source>Scheme Name:</source>
-        <translation type="unfinished"></translation>
+        <translation>Jméno schématu:</translation>
     </message>
     <message>
         <source>Crate Drops</source>
-        <translation type="unfinished"></translation>
+        <translation>Shazování beden</translation>
     </message>
     <message>
         <source>Game scheme</source>
-        <translation type="unfinished"></translation>
+        <translation>Herní schéma</translation>
     </message>
     <message>
         <source>% Dud Mines</source>
-        <translation type="unfinished"></translation>
+        <translation>% falešných min</translation>
     </message>
     <message>
         <source>Name</source>
-        <translation type="unfinished"></translation>
+        <translation>Jméno</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation type="unfinished"></translation>
+        <translation>Typ</translation>
     </message>
     <message>
         <source>Grave</source>
-        <translation type="unfinished"></translation>
+        <translation>Hrob</translation>
     </message>
     <message>
         <source>Flag</source>
-        <translation type="unfinished"></translation>
+        <translation>Vlajka</translation>
     </message>
     <message>
         <source>Voice</source>
-        <translation type="unfinished"></translation>
+        <translation>Hlas</translation>
     </message>
     <message>
         <source>Locale</source>
-        <translation type="unfinished"></translation>
+        <translation>Jazyk</translation>
     </message>
     <message>
         <source>Restart game to apply</source>
-        <translation type="unfinished"></translation>
+        <translation>Aby se nastavení použilo, restartuj hru</translation>
     </message>
     <message>
         <source>Explosives</source>
-        <translation type="unfinished"></translation>
+        <translation>Výbušniny</translation>
     </message>
     <message>
         <source>Tip: </source>
-        <translation type="unfinished"></translation>
+        <translation>Tip: </translation>
     </message>
     <message>
         <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
+        <translation>Tato vývojová verze je &apos;v průběhu práce&apos; a může být kompatibilní s jinými verzemi hry. Některé možnosti mohou být rozbité nebo nekompletní. Používej na vlastní riziko!</translation>
     </message>
     <message>
         <source>Quality</source>
-        <translation type="unfinished"></translation>
+        <translation>Kvalita</translation>
     </message>
     <message>
         <source>% Health Crates</source>
-        <translation type="unfinished"></translation>
+        <translation>% zdravotních beden</translation>
     </message>
     <message>
         <source>Health in Crates</source>
-        <translation type="unfinished"></translation>
+        <translation>Zdraví v bedně</translation>
     </message>
     <message>
         <source>Sudden Death Water Rise</source>
-        <translation type="unfinished"></translation>
+        <translation>Zvyšování hladiny</translation>
     </message>
     <message>
         <source>Sudden Death Health Decrease</source>
-        <translation type="unfinished"></translation>
+        <translation>Snižování života</translation>
     </message>
     <message>
         <source>% Rope Length</source>
-        <translation type="unfinished"></translation>
+        <translation>% délky lana</translation>
     </message>
     <message>
         <source>Gameplay</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Hra</translation>
     </message>
     <message>
         <source>Stereo rendering</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Duální vykreslování</translation>
     </message>
 </context>
 <context>
@@ -1541,39 +1547,39 @@
     </message>
     <message>
         <source>Can not overwrite default weapon set &apos;%1&apos;!</source>
-        <translation type="unfinished"></translation>
+        <translation>Nemohu přepsat výchozí sadu zbraní &apos;%1&apos;!</translation>
     </message>
     <message>
         <source>All file associations have been set.</source>
-        <translation type="unfinished"></translation>
+        <translation>Všechny asociace souborů byly nastaveny.</translation>
     </message>
     <message>
         <source>File association failed.</source>
-        <translation type="unfinished"></translation>
+        <translation>Asociace souborů selhala.</translation>
     </message>
     <message>
         <source>Teams</source>
-        <translation type="unfinished">Týmy</translation>
+        <translation>Týmy</translation>
     </message>
     <message>
         <source>Really delete this team?</source>
-        <translation type="unfinished"></translation>
+        <translation>Opravdu smazat tento tým?</translation>
     </message>
     <message>
         <source>Schemes</source>
-        <translation type="unfinished"></translation>
+        <translation>Schémata</translation>
     </message>
     <message>
         <source>Can not delete default scheme &apos;%1&apos;!</source>
-        <translation type="unfinished"></translation>
+        <translation>Nemohu smazat výchozí schéma &apos;%1&apos;!</translation>
     </message>
     <message>
         <source>Really delete this game scheme?</source>
-        <translation type="unfinished"></translation>
+        <translation>Opravdu smazat toto herní schéma?</translation>
     </message>
     <message>
         <source>Can not delete default weapon set &apos;%1&apos;!</source>
-        <translation type="unfinished"></translation>
+        <translation>Nemohu smazat výchozí sadu zbraní &apos;%1&apos;!</translation>
     </message>
 </context>
 <context>
@@ -1592,11 +1598,11 @@
     </message>
     <message>
         <source>Nickname</source>
-        <translation type="unfinished"></translation>
+        <translation>Přezdívka</translation>
     </message>
     <message>
         <source>Please enter your nickname</source>
-        <translation type="unfinished"></translation>
+        <translation>Prosím zadej svou přezdívku</translation>
     </message>
 </context>
 <context>
@@ -1615,7 +1621,7 @@
     </message>
     <message>
         <source>Start server</source>
-        <translation>Spusti server</translation>
+        <translation>Spusť server</translation>
     </message>
     <message>
         <source>Connect</source>
@@ -1663,73 +1669,73 @@
     </message>
     <message>
         <source>Random Team</source>
-        <translation type="unfinished"></translation>
+        <translation>Náhodný tým</translation>
     </message>
     <message>
         <source>Associate file extensions</source>
-        <translation type="unfinished"></translation>
+        <translation>Asociovat přípony souborů</translation>
     </message>
     <message>
         <source>more</source>
-        <translation type="unfinished"></translation>
+        <translation>více</translation>
     </message>
 </context>
 <context>
     <name>QTableWidget</name>
     <message>
         <source>Room Name</source>
-        <translation type="unfinished"></translation>
+        <translation>Jméno místnosti</translation>
     </message>
     <message>
         <source>C</source>
-        <translation type="unfinished"></translation>
+        <translation>K</translation>
     </message>
     <message>
         <source>T</source>
-        <translation type="unfinished"></translation>
+        <translation>T</translation>
     </message>
     <message>
         <source>Owner</source>
-        <translation type="unfinished"></translation>
+        <translation>Vlastník</translation>
     </message>
     <message>
         <source>Map</source>
-        <translation type="unfinished">Mapa</translation>
+        <translation>Mapa</translation>
     </message>
     <message>
         <source>Rules</source>
-        <translation type="unfinished"></translation>
+        <translation>Pravidla</translation>
     </message>
     <message>
         <source>Weapons</source>
-        <translation type="unfinished">Zbraně</translation>
+        <translation>Zbraně</translation>
     </message>
 </context>
 <context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
-        <translation type="unfinished"></translation>
+        <translation>Sada zbraní</translation>
     </message>
     <message>
         <source>Probabilities</source>
-        <translation type="unfinished"></translation>
+        <translation>Pravděpodobnosti</translation>
     </message>
     <message>
         <source>Ammo in boxes</source>
-        <translation type="unfinished"></translation>
+        <translation>Munice v bednách</translation>
     </message>
     <message>
         <source>Delays</source>
-        <translation type="unfinished"></translation>
+        <translation>Prodlevy</translation>
     </message>
     <message>
         <source>new</source>
-        <translation type="unfinished">nový</translation>
+        <translation>nový</translation>
     </message>
     <message>
         <source>copy of</source>
-        <translation type="unfinished"></translation>
+        <translation>kopie</translation>
     </message>
 </context>
 <context>
@@ -1751,95 +1757,95 @@
     <name>ToggleButtonWidget</name>
     <message>
         <source>Vampirism</source>
-        <translation type="unfinished"></translation>
+        <translation>Vampyrismus</translation>
     </message>
     <message>
         <source>Karma</source>
-        <translation type="unfinished"></translation>
+        <translation>Karma</translation>
     </message>
     <message>
         <source>Artillery</source>
-        <translation type="unfinished"></translation>
+        <translation>Dělostřelectvo</translation>
     </message>
     <message>
         <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
+        <translation>Pevnosti</translation>
     </message>
     <message>
         <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
+        <translation>Rozděl týmy</translation>
     </message>
     <message>
         <source>Solid Land</source>
-        <translation type="unfinished"></translation>
+        <translation>Pevná zem</translation>
     </message>
     <message>
         <source>Add Border</source>
-        <translation type="unfinished"></translation>
+        <translation>Přidej hranice</translation>
     </message>
     <message>
         <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
+        <translation>Nízká gravitace</translation>
     </message>
     <message>
         <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
+        <translation>Laserové zaměřování</translation>
     </message>
     <message>
         <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
+        <translation>Nesmrtelnost</translation>
     </message>
     <message>
         <source>Random Order</source>
-        <translation type="unfinished"></translation>
+        <translation>Náhodné pořadí</translation>
     </message>
     <message>
         <source>King</source>
-        <translation type="unfinished"></translation>
+        <translation>Král</translation>
     </message>
     <message>
         <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
+        <translation>Umísti ježky</translation>
     </message>
     <message>
         <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
+        <translation>Klan sdílí munici</translation>
     </message>
     <message>
         <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
+        <translation>Vypni traverzy</translation>
     </message>
     <message>
         <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
+        <translation>Vypni teréní objekty</translation>
     </message>
     <message>
         <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Mód &apos;Počítač přežívá&apos;</translation>
     </message>
     <message>
         <source>Reset Health</source>
-        <translation type="unfinished"></translation>
+        <translation>Obnova zdraví</translation>
     </message>
     <message>
         <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
+        <translation>Neomezeně útoků</translation>
     </message>
     <message>
         <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
+        <translation>Obnova zbraní</translation>
     </message>
     <message>
         <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
+        <translation>Individuální munice</translation>
     </message>
     <message>
         <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
+        <translation>Vypni vítr</translation>
     </message>
     <message>
         <source>More Wind</source>
-        <translation type="unfinished"></translation>
+        <translation>Více větru</translation>
     </message>
 </context>
 <context>
@@ -1882,7 +1888,7 @@
     </message>
     <message>
         <source>ammo menu</source>
-        <translation>menu střeliva</translation>
+        <translation>menu zbraní</translation>
     </message>
     <message>
         <source>slot 1</source>
@@ -1922,23 +1928,23 @@
     </message>
     <message>
         <source>timer 1 sec</source>
-        <translation>časovač 1 sec</translation>
+        <translation>časovač 1 vt</translation>
     </message>
     <message>
         <source>timer 2 sec</source>
-        <translation>časovač 2 sec</translation>
+        <translation>časovač 2 vt</translation>
     </message>
     <message>
         <source>timer 3 sec</source>
-        <translation>časovač 3 sec</translation>
+        <translation>časovač 3 vt</translation>
     </message>
     <message>
         <source>timer 4 sec</source>
-        <translation>časovač 4 sec</translation>
+        <translation>časovač 4 vt</translation>
     </message>
     <message>
         <source>timer 5 sec</source>
-        <translation>časovač 5 sec</translation>
+        <translation>časovač 5 vt</translation>
     </message>
     <message>
         <source>chat</source>
@@ -1954,7 +1960,7 @@
     </message>
     <message>
         <source>confirmation</source>
-        <translation>natavení</translation>
+        <translation>potvrzení</translation>
     </message>
     <message>
         <source>volume down</source>
@@ -1970,7 +1976,7 @@
     </message>
     <message>
         <source>capture</source>
-        <translation>zajmout</translation>
+        <translation>sejmout</translation>
     </message>
     <message>
         <source>hedgehogs
@@ -1983,148 +1989,148 @@
     </message>
     <message>
         <source>zoom in</source>
-        <translation type="unfinished"></translation>
+        <translation>přiblížit</translation>
     </message>
     <message>
         <source>zoom out</source>
-        <translation type="unfinished"></translation>
+        <translation>oddálit</translation>
     </message>
     <message>
         <source>reset zoom</source>
-        <translation type="unfinished"></translation>
+        <translation>obnovit přiblížení</translation>
     </message>
     <message>
         <source>long jump</source>
-        <translation type="unfinished"></translation>
+        <translation>dlouhý skok</translation>
     </message>
     <message>
         <source>high jump</source>
-        <translation type="unfinished"></translation>
+        <translation>vysoký skok</translation>
     </message>
     <message>
         <source>slot 10</source>
-        <translation type="unfinished">pozice 10</translation>
+        <translation>pozice 10</translation>
     </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
         <source>Basic controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Základní ovládání</translation>
     </message>
     <message>
         <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Ovládání zbraní</translation>
     </message>
     <message>
         <source>Camera and cursor controls</source>
-        <translation type="unfinished"></translation>
+        <translation>Ovládání kamery a kurzoru</translation>
     </message>
     <message>
         <source>Other</source>
-        <translation type="unfinished">Ostatní</translation>
+        <translation>Ostatní</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
         <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pohybuj ježkem a miř:</translation>
     </message>
     <message>
         <source>Traverse gaps and obstacles by jumping:</source>
-        <translation type="unfinished"></translation>
+        <translation>Překonej mezery a překážky skokem:</translation>
     </message>
     <message>
         <source>Fire your selected weapon or trigger an utility item:</source>
-        <translation type="unfinished"></translation>
+        <translation>Odpal zvolenou zbraň nebo použij nástroj:</translation>
     </message>
     <message>
         <source>Pick a weapon or a target location under the cursor:</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyber zbraň nebo cílové místo pod kurzorem:</translation>
     </message>
     <message>
         <source>Switch your currently active hog (if possible):</source>
-        <translation type="unfinished"></translation>
+        <translation>Přepni aktivního ježka (pokud je to možné):</translation>
     </message>
     <message>
         <source>Pick a weapon or utility item:</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyber zbraň nebo nástroj:</translation>
     </message>
     <message>
         <source>Set the timer on bombs and timed weapons:</source>
-        <translation type="unfinished"></translation>
+        <translation>Nastav časovač bomby nebo časované zbraně:</translation>
     </message>
     <message>
         <source>Move the camera to the active hog:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pohni kamerou na aktivního ježka:</translation>
     </message>
     <message>
         <source>Move the cursor or camera without using the mouse:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pohni kurzorem nebo kamerou bez použití myši:</translation>
     </message>
     <message>
         <source>Modify the camera&apos;s zoom level:</source>
-        <translation type="unfinished"></translation>
+        <translation>Změň přiblížení kamery:</translation>
     </message>
     <message>
         <source>Talk to your team or all participants:</source>
-        <translation type="unfinished"></translation>
+        <translation>Mluv ke svému týmu nebo všem účastníkům:</translation>
     </message>
     <message>
         <source>Pause, continue or leave your game:</source>
-        <translation type="unfinished"></translation>
+        <translation>Pozastav, pokračuj nebo opusť hru:</translation>
     </message>
     <message>
         <source>Modify the game&apos;s volume while playing:</source>
-        <translation type="unfinished"></translation>
+        <translation>Zmeň hlasitost hry během hraní:</translation>
     </message>
     <message>
         <source>Toggle fullscreen mode:</source>
-        <translation type="unfinished"></translation>
+        <translation>Přepni mód celé obrazovky:</translation>
     </message>
     <message>
         <source>Take a screenshot:</source>
-        <translation type="unfinished"></translation>
+        <translation>Vyfoť obrazovku:</translation>
     </message>
     <message>
         <source>Toggle labels above hedgehogs:</source>
-        <translation type="unfinished"></translation>
+        <translation>Přepni popisky nad ježky:</translation>
     </message>
 </context>
 <context>
     <name>binds (keys)</name>
     <message>
         <source>Axis</source>
-        <translation type="unfinished"></translation>
+        <translation>Osa</translation>
     </message>
     <message>
         <source>(Up)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Nahoru)</translation>
     </message>
     <message>
         <source>(Down)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Dolů)</translation>
     </message>
     <message>
         <source>Hat</source>
-        <translation type="unfinished"></translation>
+        <translation>Klobouček</translation>
     </message>
     <message>
         <source>(Left)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Vlevo)</translation>
     </message>
     <message>
         <source>(Right)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Vpravo)</translation>
     </message>
     <message>
         <source>Button</source>
-        <translation type="unfinished"></translation>
+        <translation>Tlačítko</translation>
     </message>
     <message>
         <source>Keyboard</source>
-        <translation type="unfinished"></translation>
+        <translation>Klávesnice</translation>
     </message>
     <message>
         <source>Delete</source>
@@ -2132,199 +2138,199 @@
     </message>
     <message>
         <source>Mouse: Left button</source>
-        <translation type="unfinished"></translation>
+        <translation>Myš: Levé tlačítko</translation>
     </message>
     <message>
         <source>Mouse: Middle button</source>
-        <translation type="unfinished"></translation>
+        <translation>Myš: Prostřední tlačítko</translation>
     </message>
     <message>
         <source>Mouse: Right button</source>
-        <translation type="unfinished"></translation>
+        <translation>Myš: Pravé tlačítko</translation>
     </message>
     <message>
         <source>Mouse: Wheel up</source>
-        <translation type="unfinished"></translation>
+        <translation>Myš: Kolečko nahoru</translation>
     </message>
     <message>
         <source>Mouse: Wheel down</source>
-        <translation type="unfinished"></translation>
+        <translation>Myš: Kolečko dolů</translation>
     </message>
     <message>
         <source>Backspace</source>
-        <translation type="unfinished"></translation>
+        <translation>Backspace</translation>
     </message>
     <message>
         <source>Tab</source>
-        <translation type="unfinished"></translation>
+        <translation>Tabulátor</translation>
     </message>
     <message>
         <source>Clear</source>
-        <translation type="unfinished"></translation>
+        <translation>Vymazat</translation>
     </message>
     <message>
         <source>Return</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Návrat</translation>
     </message>
     <message>
         <source>Pause</source>
-        <translation type="unfinished"></translation>
+        <translation>Pauza</translation>
     </message>
     <message>
         <source>Escape</source>
-        <translation type="unfinished"></translation>
+        <translation>Escape</translation>
     </message>
     <message>
         <source>Space</source>
-        <translation type="unfinished"></translation>
+        <translation>Mezerník</translation>
     </message>
     <message>
         <source>Numpad 0</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 0</translation>
     </message>
     <message>
         <source>Numpad 1</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 1</translation>
     </message>
     <message>
         <source>Numpad 2</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 2</translation>
     </message>
     <message>
         <source>Numpad 3</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 3</translation>
     </message>
     <message>
         <source>Numpad 4</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 4</translation>
     </message>
     <message>
         <source>Numpad 5</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 5</translation>
     </message>
     <message>
         <source>Numpad 6</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 6</translation>
     </message>
     <message>
         <source>Numpad 7</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 7</translation>
     </message>
     <message>
         <source>Numpad 8</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 8</translation>
     </message>
     <message>
         <source>Numpad 9</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad 9</translation>
     </message>
     <message>
         <source>Numpad .</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad .</translation>
     </message>
     <message>
         <source>Numpad /</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad /</translation>
     </message>
     <message>
         <source>Numpad *</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad *</translation>
     </message>
     <message>
         <source>Numpad -</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad -</translation>
     </message>
     <message>
         <source>Numpad +</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Numpad +</translation>
     </message>
     <message>
         <source>Enter</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Enter</translation>
     </message>
     <message>
         <source>Equals</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Rovná se</translation>
     </message>
     <message>
         <source>Up</source>
-        <translation type="unfinished"></translation>
+        <translation>Nahoru</translation>
     </message>
     <message>
         <source>Down</source>
-        <translation type="unfinished"></translation>
+        <translation>Dolu</translation>
     </message>
     <message>
         <source>Right</source>
-        <translation type="unfinished"></translation>
+        <translation>Vpravo</translation>
     </message>
     <message>
         <source>Left</source>
-        <translation type="unfinished"></translation>
+        <translation>Vlevo</translation>
     </message>
     <message>
         <source>Insert</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Insert</translation>
     </message>
     <message>
         <source>Home</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Home</translation>
     </message>
     <message>
         <source>End</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">End</translation>
     </message>
     <message>
         <source>Page up</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Page up</translation>
     </message>
     <message>
         <source>Page down</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Page down</translation>
     </message>
     <message>
         <source>Num lock</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Num lock</translation>
     </message>
     <message>
         <source>Caps lock</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Caps lock</translation>
     </message>
     <message>
         <source>Scroll lock</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Scroll lock</translation>
     </message>
     <message>
         <source>Right shift</source>
-        <translation type="unfinished"></translation>
+        <translation>Pravý shift</translation>
     </message>
     <message>
         <source>Left shift</source>
-        <translation type="unfinished"></translation>
+        <translation>Levý shift</translation>
     </message>
     <message>
         <source>Right ctrl</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Pravý ctrl</translation>
     </message>
     <message>
         <source>Left ctrl</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Levý ctrl</translation>
     </message>
     <message>
         <source>Right alt</source>
-        <translation type="unfinished"></translation>
+        <translation>Pravý alt</translation>
     </message>
     <message>
         <source>Left alt</source>
-        <translation type="unfinished"></translation>
+        <translation>Levý alt</translation>
     </message>
     <message>
         <source>Right meta</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Pravá meta</translation>
     </message>
     <message>
         <source>Left meta</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Levá meta</translation>
     </message>
     <message>
         <source>A button</source>
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts	Thu Aug 04 17:44:55 2011 +0200
@@ -46,7 +46,7 @@
     </message>
     <message>
         <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Quand cette option est active choisir des paramètres de jeu sélectionnera les armes</translation>
+        <translation>Une fois cette option activée, choisir les paramètres de jeu sélectionne automatiquement les armes correspondantes</translation>
     </message>
 </context>
 <context>
@@ -421,7 +421,7 @@
     <message numerus="yes">
         <source>(%1 kill)</source>
         <translation type="unfinished">
-            <numerusform>(%1 Tue)</numerusform>
+            <numerusform>(%1 tue)</numerusform>
             <numerusform></numerusform>
         </translation>
     </message>
@@ -540,7 +540,7 @@
     <message>
         <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
         <comment>Tips</comment>
-        <translation>Particulièrement quand vous jouez en ligne soyez polis et pensez que certains joueurs avec vous peuvent être mineurs.</translation>
+        <translation>Particulièrement quand vous jouez en ligne soyez polis et n'oubliez pas que certains joueurs peuvent être mineurs.</translation>
     </message>
     <message>
         <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
@@ -610,12 +610,12 @@
     <message>
         <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
         <comment>Tips</comment>
-        <translation type="unfinished">Le Old Limbuger cause seulement une petite explosion. En revanche le vent affecte le petit nuage empoisonné qui peut contaminer de nombreux hérissons à la fois.</translation>
+        <translation type="unfinished">Le vieux Limburger cause seulement une petite explosion. En revanche le vent affecte le petit nuage empoisonné qui peut contaminer de nombreux hérissons à la fois.</translation>
     </message>
     <message>
         <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
         <comment>Tips</comment>
-        <translation type="unfinished">L&apos;attaque du Piano est la plus dévastatrice des attaques aériennes. Vous perdrez le hérisson qui la lance, donc il y a une contrepartie énorme.</translation>
+        <translation type="unfinished">L&apos;attaque du Piano est la plus dévastatrice des attaques aériennes. Mais la contrepartie est grande puisque vous perdrez le hérisson qui la lance.</translation>
     </message>
     <message>
         <source>The Homing Bee can be tricky to use. It&apos;s turn radius depends on it&apos;s velocity, so try to not use full power.</source>
@@ -705,17 +705,17 @@
     <message>
         <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">La version Windows de Hedgewars supporte Xfire. Ajoutez Hedgewars à la liste des jeux pour que vos amis puissent vous voir jouer</translation>
     </message>
     <message>
         <source>The Homing Bee can be tricky to use. Its turn radius depends on it&apos;s velocity, so try to not use full power.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">L'Abeille Missile peut être délicate à utiliser. Sa courbe de lancer dépend de sa vitesse, pour plus de précision ne l'envoyez pas à pleine puissance. </translation>
     </message>
     <message>
         <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
         <comment>Tips</comment>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"> Utilisez le Lance-Flammes ou le Cocktail Molotov pour empêcher temporairement les hérissons de circuler dans les tunnels ou sur les plateformes.</translation>
     </message>
 </context>
 <context>
@@ -1030,7 +1030,7 @@
     </message>
     <message>
         <source>Disable land objects when generating random maps.</source>
-        <translation type="unfinished">Désactiver les objets de terrain en générant des cartes aléatoires.</translation>
+        <translation type="unfinished">Désactiver les objets de terrain lorsque des cartes aléatoires sont générées.</translation>
     </message>
     <message>
         <source>AI respawns on death.</source>
@@ -1198,7 +1198,7 @@
     </message>
     <message>
         <source>Show ammo menu tooltips</source>
-        <translation type="unfinished">Montrer le menu d&apos;aide des munitions.</translation>
+        <translation type="unfinished">Montrer les astuces du menu des armes.</translation>
     </message>
     <message>
         <source>Enable frontend sounds</source>
@@ -1245,11 +1245,11 @@
     </message>
     <message>
         <source>Any</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Aucun</translation>
     </message>
     <message>
         <source>In lobby</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">En attente</translation>
     </message>
     <message>
         <source>In progress</source>
@@ -1269,27 +1269,27 @@
     </message>
     <message>
         <source>Red/Cyan</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Rouge/Cyan</translation>
     </message>
     <message>
         <source>Cyan/Red</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Cyan/Rouge</translation>
     </message>
     <message>
         <source>Red/Blue</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Rouge/Bleu</translation>
     </message>
     <message>
         <source>Blue/Red</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Bleu/Rouge</translation>
     </message>
     <message>
         <source>Red/Green</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Rouge/Vert</translation>
     </message>
     <message>
         <source>Green/Red</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Vert/Rouge</translation>
     </message>
     <message>
         <source>Side-by-side</source>
@@ -1531,11 +1531,11 @@
     </message>
     <message>
         <source>Gameplay</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Mode de jeu</translation>
     </message>
     <message>
         <source>Stereo rendering</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Rendu stéréo</translation>
     </message>
 </context>
 <context>
--- a/share/hedgewars/Data/Locale/sk.txt	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/sk.txt	Thu Aug 04 17:44:55 2011 +0200
@@ -55,6 +55,7 @@
 00:52=Žiadna zbraň nie je vybraná
 00:53=TARDIS
 00:54=Budova
+00:55=Postrek zeme
 
 01:00=Do boja!
 01:01=Remíza
@@ -71,6 +72,12 @@
 01:12=Posledné kolo pred Rýchlou smrťou!
 01:13=Ešte %1 kolá do Rýchlej smrti!
 01:14=Priprav sa, %1!
+01:15=Nepatrný
+01:16=Nízky
+01:17=Normálny
+01:18=Vysoký
+01:19=Extrémny
+01:20=%1 odskok
 
 ; Správy o udalostiach
 ; Ježko (%1) zomrel
@@ -99,6 +106,7 @@
 02:00=%1 odišiel za lepším
 02:00=%1 už nespotrebováva pamäť tohto počítača
 02:00=%1 odišiel a už sa nevrátil
+02:00=Je tu niekde doktor?
 ; Ježko (%1) sa utopil
 02:01=%1 sa hrá na ponorku!
 02:01=%1 napodobnil Titanik!
@@ -132,6 +140,10 @@
 02:02=Dajme im na frak!
 02:02=Nikdy sa nevzdávaj
 02:02=Bojuj čestne!
+; Kolo končí (výhra, momentálne nepoužívané)
+02:03=...
+; Kolo končí (remíza, momentálne nepoužívané)
+02:04=...
 ; Nová krabica so zdravím
 02:05=Doktora!
 02:05=Prvá pomoc z nebies!
@@ -191,7 +203,7 @@
 02:09=Išlo o jasné zlyhanie techniky!
 ; Hog shot an home run (using the bat and another hog)
 02:10=Home Run!
-02:10=Vták, lietadlo, ...
+02:10=Letí, letí, všetko letí...
 02:10=A je z kola von!
 
 ; Ježko (%1) musí odísť (team skončil)
@@ -331,3 +343,4 @@
 05:18=Neobmedzené útoky
 05:19=Zbrane sú na konci ťahu resetované
 05:20=Zbrane nie sú zdieľané ježkami
+05:21=Tag tím: Teamy v spoločnom klane sa postupne striedajú v ťahaní|Zdieľaný čas: Tímy v rámci klanu zdieľajú čas na ťah
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Bamboo_Thicket.lua	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,87 @@
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+local player = nil 
+local enemy = nil
+local firedShell = false
+local turnNumber = 0
+
+local hhs = {}
+local numhhs = 0
+
+function onGameInit()
+
+	Seed = 0 
+	TurnTime = 20000 
+	CaseFreq = 0 
+	MinesNum = 0 
+	Explosives = 0 
+	Map = "Bamboo" 
+	Theme = "Bamboo"
+
+	AddTeam(loc("Pathetic Resistance"), 14483456, "Simple", "Island", "Default")
+	player = AddHog("Ikeda", 0, 10, "StrawHat")
+			
+	AddTeam(loc("Cybernetic Empire"), 	1175851, "Simple", "Island", "Default")
+	enemy = AddHog(loc("Unit 835"), 1, 10, "cyborg")
+
+	SetGearPosition(player,1166,1680)
+	SetGearPosition(enemy,2848,1443)
+
+end
+
+
+function onGameStart()
+
+	ShowMission(loc("Bamboo Thicket"), loc("User Challenge"), loc("Eliminate the enemy before the time runs out"), -amBazooka, 0)
+
+	--WEAPON CRATE LIST. WCRATES: 1
+	SpawnAmmoCrate(1915,1876,amBazooka)
+	--UTILITY CRATE LIST. UCRATES: 2
+	SpawnUtilityCrate(1986,1141,amBlowTorch)
+	SpawnUtilityCrate(1427,1527,amParachute)
+
+	AddAmmo(enemy, amGrenade, 100)
+		
+end
+
+function onNewTurn()
+	SetWind(100)
+	turnNumber = turnNumber + 1
+end
+
+function onAmmoStoreInit()
+	SetAmmo(amSkip, 9, 0, 0, 0)
+	SetAmmo(amGirder, 4, 0, 0, 0)
+	SetAmmo(amBlowTorch, 0, 0, 0, 1)
+	SetAmmo(amParachute, 0, 0, 0, 2)
+	SetAmmo(amBazooka, 0, 0, 0, 2)
+end
+
+
+function onGearAdd(gear)
+
+	if GetGearType(gear) == gtHedgehog then
+		hhs[numhhs] = gear
+		numhhs = numhhs + 1
+	elseif GetGearType(gear) == gtShell then
+		firedShell = true
+	end
+
+end
+
+function onGearDelete(gear)
+
+	if (gear == enemy) then
+		
+		ShowMission(loc("Bamboo Thicket"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0)
+		
+		if (turnNumber < 6) and (firedShell == false) then
+			AddCaption(loc("Achievement Unlocked") .. ": " .. loc("Energetic Engineer"),0xffba00ff,capgrpMessage2)
+		end
+
+	elseif gear == player then
+		ShowMission(loc("Bamboo Thicket"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
+	end
+
+end
--- a/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua	Thu Aug 04 17:44:55 2011 +0200
@@ -1,5 +1,5 @@
 ----------------------------------
--- THE SPECIALISTS MODE 0.4
+-- THE SPECIALISTS MODE 0.5
 -- by mikade
 ----------------------------------
 
@@ -29,15 +29,22 @@
 -- fix potential switch explit
 -- improve user feedback on start
 
+----------------
+-- version 0.5
+----------------
+-- provision for variable minetimer / demo mines set to 5000ms
+-- don't autoswitch if player only has 1 hog on his team
+
 --------------------
 --TO DO
 --------------------
 
--- add proper gameflag checking, maybe
--- set crate drops etc.
--- add alternative switch
+-- balance hog health, maybe
+-- add proper gameflag checking, maybe (so that we can throw in a .cfg and let the users break everything)
+-- set crate drops etc. (super crate for each class? or will this ruin the mode's simplicity?)
 
 loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+loadfile(GetDataPath() .. "Scripts/Tracker.lua")()
 
 local numhhs = 0
 local hhs = {}
@@ -47,6 +54,12 @@
 local started = false
 local switchStage = 0
 
+local hogCounter
+
+function CountHog(gear)
+	hogCounter = hogCounter +1
+end
+
 function CreateTeam()
 
         currTeam = ""
@@ -222,6 +235,8 @@
                                 "", 4, 4000
                                 )
 
+	trackTeams()
+
 end
 
 
@@ -229,14 +244,8 @@
         currName = GetHogName(CurrentHedgehog)
         lastName = GetHogName(CurrentHedgehog)
         AssignAmmo()
-
-        ---------------
-        --switch
-        started = false
+        started = true
         switchStage = 0
-        --AddAmmo(CurrentHedgehog, amSwitch, 1)
-	---------------
-
 end
 
 function onGameTick()
@@ -254,19 +263,30 @@
 			
 			AddCaption(loc("Prepare yourself") .. ", " .. currName .. "!") 
 
-			switchStage = switchStage + 1	
+			hogCounter = 0
+			runOnHogsInTeam(CountHog, GetHogTeamName(CurrentHedgehog) )
+
+			if hogCounter > 1 then
+
+				switchStage = switchStage + 1	
 			
-			if switchStage == 1 then
-				AddAmmo(CurrentHedgehog, amSwitch, 1)
+				if switchStage == 1 then
+					AddAmmo(CurrentHedgehog, amSwitch, 1)
 				
-			elseif switchStage == 2 then
-				ParseCommand("setweap " .. string.char(amSwitch))
-			elseif switchStage == 3 then
-				SetGearMessage(CurrentHedgehog,gmAttack) 
-			elseif switchStage == 4 then
+				elseif switchStage == 2 then
+					ParseCommand("setweap " .. string.char(amSwitch))
+				elseif switchStage == 3 then
+					SetGearMessage(CurrentHedgehog,gmAttack) 
+				elseif switchStage == 4 then
+					switchStage = 110
+					AddAmmo(CurrentHedgehog, amSwitch, 0)
+				end
+			
+			else
 				switchStage = 110
-				AddAmmo(CurrentHedgehog, amSwitch, 0)
 			end
+
+
 		end		
 		
 		lastName = currName
@@ -280,12 +300,21 @@
         if GetGearType(gear) == gtHedgehog then
                 hhs[numhhs] = gear
                 numhhs = numhhs + 1
-        end
+        elseif (GetGearType(gear) == gtMine) and (started == true) then
+		SetTimer(gear,5000)	
+	end
+	
+	if (GetGearType(gear) == gtHedgehog) or (GetGearType(gear) == gtResurrector) then
+		trackGear(gear)
+	end 
+
 
 end
 
 function onGearDelete(gear)
---
+	if (GetGearType(gear) == gtHedgehog) or (GetGearType(gear) == gtResurrector) then
+		trackDeletion(gear)
+	end 
 end
 
 function onAmmoStoreInit()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Balanced Random Weapon.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/Balanced_Random_Weapon.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string></string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Capture the Flag.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/Capture_the_Flag.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Gaudy Racer.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/GaudyRacer.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/No Jumping.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/No_Jumping.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Normal.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string></string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Random Weapon.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/Balanced_Random_Weapon.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string></string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Space Invasion.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/Space_Invasion.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/The Specialists.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/The_Specialists.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string></string>
+	<key>weapon</key>
+	<string></string>
+</dict>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Tumbler.plist	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>command</key>
+	<string>escript Scripts/Multiplayer/Tumbler.lua</string>
+	<key>description</key>
+	<string></string>
+	<key>scheme</key>
+	<string>Default.plist</string>
+	<key>weapon</key>
+	<string>Default.plist</string>
+</dict>
+</plist>
Binary file share/hedgewars/Data/Themes/Golf/Ball.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Border.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Car.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Chunk.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Clouds.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Club.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Flag1.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Flag2.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Flake.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Girder.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Hole.png has changed
Binary file share/hedgewars/Data/Themes/Golf/LandBackTex.png has changed
Binary file share/hedgewars/Data/Themes/Golf/LandTex.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Sky.png has changed
Binary file share/hedgewars/Data/Themes/Golf/SkyL.png has changed
Binary file share/hedgewars/Data/Themes/Golf/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Tee.png has changed
Binary file share/hedgewars/Data/Themes/Golf/horizont.png has changed
Binary file share/hedgewars/Data/Themes/Golf/icon.png has changed
Binary file share/hedgewars/Data/Themes/Golf/icon@2x.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Golf/theme.cfg	Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,15 @@
+sky = 117, 141, 186
+border = 38, 114, 35
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = nature.ogg
+clouds = 9
+object = Ball, 3, 0, 18, 24, 6, 1, 0, 0, 24, 13
+object = Tee, 1, 6, 22, 5, 4, 1, 0, 0, 16, 20
+object = Car, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Hole, 5, 0, 44, 100, 4, 1, 19, 0, 54, 41
+object = Flag1, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Flag2, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Club, 2, 162, 254, 21, 6, 1, 0, 0, 240, 245
+flakes = 100, 1, 1000, 50, 50
Binary file share/hedgewars/Data/Themes/Underwater/SDFlake.png has changed
--- a/share/hedgewars/Data/Themes/Underwater/theme.cfg	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Themes/Underwater/theme.cfg	Thu Aug 04 17:44:55 2011 +0200
@@ -11,5 +11,5 @@
 object = coral, 3, 10, 193, 38, 32, 2, 128, 66, 66, 94, 39, 0, 88, 167
 object = coral2, 3, 119, 146, 23, 22, 1, 5, 0, 123, 130
 flakes = 20, 20, 150, 0, 5
-sd-flakes = 20, 20, 150, 0, 5
+sd-flakes = 5, 16, 150, 0, 1
 rq-sky = 0, 70, 210
--- a/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml	Thu Aug 04 17:44:55 2011 +0200
@@ -15,6 +15,7 @@
     <comment xml:lang="pl">Demo gry Hedgewars</comment>
 	<comment xml:lang="pt">Hedgewars Demo</comment>
     <comment xml:lang="sk">Demo hry Hedgewars</comment>
+    <comment xml:lang="cs">Ukázka hry Hedgewars</comment>
     <comment xml:lang="sv">Demo för Hedgewars</comment>
     <magic priority="50">
       <match required="yes" type="byte" offset="0" value="2"/>
@@ -34,6 +35,7 @@
     <comment xml:lang="pl">Zapis gry Hedgewars</comment>
 	<comment xml:lang="pt">Partida guardada de Hedgewars</comment>
     <comment xml:lang="sk">Uložená hra Hedgewars</comment>
+    <comment xml:lang="cs">Uložená hra Hedgewars</comment>
     <comment xml:lang="sv">Sparfil för Hedgewars</comment>
     <magic priority="50">
       <match required="yes" type="byte" offset="0" value="2"/>
--- a/share/hedgewars/Data/misc/hwengine.desktop.in	Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/misc/hwengine.desktop.in	Thu Aug 04 17:44:55 2011 +0200
@@ -13,6 +13,7 @@
 GenericName[pt]=Motor de jogo Hedgewars, para reprodução de jogos guardados e demos
 GenericName[ru]=Движок Hedgewars для проигрывания сохранённых игр и демок
 GenericName[sk]=Engine hry Hedgewars, pre prehrávanie uložených hier a demo súborov
+GenericName[cs]=Engine hry Hedgewars pro přehrávání uložených her a ukázkových souborů
 GenericName[sv]=Hedgewarsmotorn, för att öppna demo- och sparfiler
 Icon=hedgewars.png
 Exec=${CMAKE_INSTALL_PREFIX}/bin/hwengine ${HEDGEWARS_DATADIR}/hedgewars/Data %f