merge french translation
authornemo
Thu, 07 Jul 2011 08:09:12 -0400
changeset 5400 1b81dc7d238b
parent 5398 ba348dd1d340 (diff)
parent 5327 f3635f25f706 (current diff)
child 5402 c49a84b04d22
merge french translation
share/hedgewars/Data/Locale/fr.lua
--- a/QTfrontend/CMakeLists.txt	Tue Jun 28 20:42:04 2011 +0000
+++ b/QTfrontend/CMakeLists.txt	Thu Jul 07 08:09:12 2011 -0400
@@ -161,7 +161,6 @@
     pagedrawmap.h
     pagecampaign.h
     pagenetgame.h
-    pageeditteam.h
     pageroomslist.h
     pagegamestats.h
     pageadmin.h
--- a/QTfrontend/gamecfgwidget.cpp	Tue Jun 28 20:42:04 2011 +0000
+++ b/QTfrontend/gamecfgwidget.cpp	Thu Jul 07 08:09:12 2011 -0400
@@ -229,6 +229,20 @@
     QList<QByteArray> bcfg;
     int mapgen = pMapContainer->get_mapgen();
 
+    QString currentMap = pMapContainer->getCurrentMap();
+    if (currentMap.size() > 0)
+    {
+        bcfg << QString("emap " + currentMap).toUtf8();
+        if(pMapContainer->getCurrentIsMission())
+            bcfg << QString("escript Maps/%1/map.lua").arg(currentMap).toUtf8();
+    }
+    bcfg << QString("etheme " + pMapContainer->getCurrentTheme()).toUtf8();
+
+    if (Scripts->currentIndex() > 0)
+    {
+        bcfg << QString("escript Scripts/Multiplayer/%1.lua").arg(Scripts->itemData(Scripts->currentIndex()).toList()[0].toString()).toUtf8();
+    }
+
     bcfg << QString("eseed " + pMapContainer->getCurrentSeed()).toUtf8();
     bcfg << QString("e$gmflags %1").arg(getGameFlags()).toUtf8();
     bcfg << QString("e$damagepct %1").arg(schemeData(25).toInt()).toUtf8();
@@ -270,20 +284,6 @@
         default: ;
     }
 
-    QString currentMap = pMapContainer->getCurrentMap();
-    if (currentMap.size() > 0)
-    {
-        bcfg << QString("emap " + currentMap).toUtf8();
-        if(pMapContainer->getCurrentIsMission())
-            bcfg << QString("escript Maps/%1/map.lua").arg(currentMap).toUtf8();
-    }
-    bcfg << QString("etheme " + pMapContainer->getCurrentTheme()).toUtf8();
-
-    if (Scripts->currentIndex() > 0)
-    {
-        bcfg << QString("escript Scripts/Multiplayer/%1.lua").arg(Scripts->itemData(Scripts->currentIndex()).toList()[0].toString()).toUtf8();
-    }
-
     QByteArray result;
 
     foreach(QByteArray ba, bcfg)
--- a/QTfrontend/gameuiconfig.cpp	Tue Jun 28 20:42:04 2011 +0000
+++ b/QTfrontend/gameuiconfig.cpp	Thu Jul 07 08:09:12 2011 -0400
@@ -66,13 +66,6 @@
     Form->ui.pageOptions->volumeBox->setValue(value("audio/volume", 100).toUInt());
 
     QString netNick = value("net/nick", "").toString();
-    if (netNick.isEmpty())
-        netNick = QInputDialog::getText(Form,
-                QObject::tr("Nickname"),
-                QObject::tr("Please enter your nickname"),
-                QLineEdit::Normal,
-                QDir::home().dirName());
-
     Form->ui.pageOptions->editNetNick->setText(netNick);
     
     Form->ui.pageOptions->editNetPassword->installEventFilter(this);
@@ -314,6 +307,11 @@
     return Form->ui.pageOptions->editNetNick->text();
 }
 
+void GameUIConfig::updNetNick()
+{
+    Form->ui.pageOptions->editNetNick->setText(value("net/nick", "").toString());
+}
+
 QByteArray GameUIConfig::netPasswordHash()
 {
     return QCryptographicHash::hash(Form->ui.pageOptions->editNetPassword->text().toLatin1(), QCryptographicHash::Md5).toHex();
--- a/QTfrontend/gameuiconfig.h	Tue Jun 28 20:42:04 2011 +0000
+++ b/QTfrontend/gameuiconfig.h	Thu Jul 07 08:09:12 2011 -0400
@@ -70,6 +70,7 @@
 
 public slots:
     void SaveOptions();
+    void updNetNick();
 private:
     bool netPasswordIsValid();
     bool eventFilter(QObject *object, QEvent *event);
--- a/QTfrontend/newnetclient.cpp	Tue Jun 28 20:42:04 2011 +0000
+++ b/QTfrontend/newnetclient.cpp	Thu Jul 07 08:09:12 2011 -0400
@@ -70,7 +70,16 @@
 
 void HWNewNet::Connect(const QString & hostName, quint16 port, const QString & nick)
 {
-    mynick = nick.isEmpty() ? QLineEdit::tr("unnamed") : nick;
+    mynick = nick;
+    while (mynick.isEmpty()) {
+        mynick = QInputDialog::getText(m_pGameCFGWidget,
+                 QObject::tr("Nickname"),
+                 QObject::tr("Please enter your nickname"),
+                 QLineEdit::Normal,
+                 QDir::home().dirName());
+        config->setValue("net/nick",mynick);
+        config->updNetNick();
+    }
     myhost = hostName + QString(":%1").arg(port);
     NetSocket.connectToHost(hostName, port);
 }
@@ -507,7 +516,7 @@
         // If the password is blank, ask the user to enter one in
         if (passLength == 0)
         {
-            QString password = QInputDialog::getText(0, tr("Password"), tr("Your nickname %1 is\nregistered on Hedgewars.org\nPlease provide your password below\nor pick another nickname in game config:").arg(mynick), QLineEdit::Password, passLength==0?NULL:QString(passLength,'\0'), &ok);
+            QString password = QInputDialog::getText(m_pGameCFGWidget, tr("Password"), tr("Your nickname %1 is\nregistered on Hedgewars.org\nPlease provide your password below\nor pick another nickname in game config:").arg(mynick), QLineEdit::Password, passLength==0?NULL:QString(passLength,'\0'), &ok);
 
             if (!ok) {
                 Disconnect();
@@ -831,6 +840,7 @@
             }
 
             config->setValue("net/nick", newNick);
+            config->updNetNick();
             mynick = newNick;
 
             RawSendNet(QString("NICK%1%2").arg(delimeter).arg(newNick));
--- a/QTfrontend/themesmodel.cpp	Tue Jun 28 20:42:04 2011 +0000
+++ b/QTfrontend/themesmodel.cpp	Thu Jul 07 08:09:12 2011 -0400
@@ -4,7 +4,9 @@
 ThemesModel::ThemesModel(QStringList themes, QObject *parent) :
     QAbstractListModel(parent)
 {
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
     m_data.reserve(themes.size());
+#endif
 
     foreach(QString theme, themes)
     {
--- a/hedgewars/GSHandlers.inc	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/GSHandlers.inc	Thu Jul 07 08:09:12 2011 -0400
@@ -102,6 +102,7 @@
         gi := gi^.NextGear
         end;
 end;
+
 ////////////////////////////////////////////////////////////////////////////////
 procedure doStepDrowningGear(Gear: PGear);
 forward;
@@ -109,17 +110,22 @@
 function CheckGearDrowning(Gear: PGear): boolean;
 var 
     skipSpeed, skipAngle, skipDecay: hwFloat;
-    i, maxDrops: LongInt;
+    i, maxDrops, X, Y: LongInt;
+    vdX, vdY: real;
     particle: PVisualGear;
     isSubmersible: boolean;
 begin
     isSubmersible:= (Gear = CurrentHedgehog^.Gear) and (CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack);
     // probably needs tweaking. might need to be in a case statement based upon gear type
-    if cWaterLine < hwRound(Gear^.Y) + Gear^.Radius then
+    Y:= hwRound(Gear^.Y);
+    if cWaterLine < Y + Gear^.Radius then
         begin
         skipSpeed := _0_25;
         skipAngle := _1_9;
         skipDecay := _0_87;
+        X:= hwRound(Gear^.X);
+        vdX:= hwFloat2Float(Gear^.dX);
+        vdY:= hwFloat2Float(Gear^.dY);
         // this could perhaps be a tiny bit higher.
         if  (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > skipSpeed) and
            (hwAbs(Gear^.dX) > skipAngle * hwAbs(Gear^.dY)) then
@@ -156,33 +162,32 @@
                         exit
                         end
                     else Gear^.doStep := @doStepDrowningGear
-            end;
-            if ((not isSubmersible) and (hwRound(Gear^.Y) < cWaterLine + 64 + Gear^.Radius)) or
-               (isSubmersible and (hwRound(Gear^.Y) < cWaterLine + 2 + Gear^.Radius) and ((CurAmmoGear^.Pos = 0) and (CurAmmoGear^.dY < _0_01))) then
+                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
                 // don't play splash if they are already way past the surface
                 PlaySound(sndSplash)
-        end;
+            end;
 
         if ((cReducedQuality and rqPlainSplash) = 0) and 
-           (((not isSubmersible) and (hwRound(Gear^.Y) < cWaterLine + 64 + Gear^.Radius)) or
-             (isSubmersible and (hwRound(Gear^.Y) < cWaterLine + 2 + Gear^.Radius) and ((CurAmmoGear^.Pos = 0) and (CurAmmoGear^.dY < _0_01)))) then
+           (((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
             begin
-            AddVisualGear(hwRound(Gear^.X), cWaterLine, vgtSplash);
-
-            maxDrops := (Gear^.Radius div 2) + hwRound(Gear^.dX * Gear^.Radius * 2) + hwRound(Gear^.
-                        dY * Gear^.Radius * 2);
+            AddVisualGear(X, cWaterLine, vgtSplash);
+
+            maxDrops := (Gear^.Radius div 2) + round(vdX * Gear^.Radius * 2) + round(vdY * Gear^.Radius * 2);
             for i:= max(maxDrops div 3, min(32, Random(maxDrops))) downto 0 do
                 begin
-                particle := AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet);
+                particle := AddVisualGear(X - 3 + Random(6), cWaterLine, vgtDroplet);
                 if particle <> nil then
                     begin
-                    particle^.dX := particle^.dX - hwFloat2Float(Gear^.dX) / 10;
-                    particle^.dY := particle^.dY - hwFloat2Float(Gear^.dY) / 5;
+                    particle^.dX := particle^.dX - vdX / 10;
+                    particle^.dY := particle^.dY - vdY / 5;
                     end
                 end
             end;
         if isSubmersible and (CurAmmoGear^.Pos = 0) then CurAmmoGear^.Pos := 1000
-    end
+        end
     else
         CheckGearDrowning := false;
 end;
@@ -236,7 +241,6 @@
 end;
 
 ////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
 procedure CalcRotationDirAngle(Gear: PGear);
 var 
     dAngle: real;
@@ -477,6 +481,7 @@
             AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEvilTrace);
 end;
 end;
+
 ////////////////////////////////////////////////////////////////////////////////
 procedure doStepMolotov(Gear: PGear);
 var 
@@ -513,11 +518,7 @@
     end;
 end;
 
-procedure doStepWatermelon(Gear: PGear);
-begin
-    AllInactive := false;
-    Gear^.doStep := @doStepBomb
-end;
+////////////////////////////////////////////////////////////////////////////////
 
 procedure doStepCluster(Gear: PGear);
 begin
@@ -582,6 +583,7 @@
         end
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepSnowflake(Gear: PGear);
 var xx, yy, px, py: LongInt;
     move, draw, allpx, gun: Boolean;
@@ -603,7 +605,8 @@
     begin
     with Gear^ do
         begin
-        X:= X + cWindSpeed * 1600 + dX;
+        State:= State and not gstInvisible;
+        X:= X + cWindSpeed * 3200 + dX;
         Y:= Y + dY + cGravity * vobFallSpeed * 8;  // using same value as flakes to try and get similar results
         xx:= hwRound(X);
         yy:= hwRound(Y);
@@ -623,9 +626,9 @@
             end;
     // move back to cloud layer
         if yy > cWaterLine then move:= true
-        else if ((yy and LAND_HEIGHT_MASK) <> 0) or ((xx and LAND_WIDTH_MASK) <> 0) then move:=true
+        else if ((yy and LAND_HEIGHT_MASK) <> 0) or (xx > LAND_WIDTH + 512) or (xx < -512) then move:=true
         // Solid pixel encountered
-        else if (Land[yy, xx] <> 0) then
+        else if ((xx and LAND_WIDTH_MASK) = 0) and (Land[yy, xx] <> 0) then
             begin
             // If there's room below keep falling
             if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then
@@ -1077,31 +1080,22 @@
             AddCaption(trmsg[sidStartFight], cWhiteColor, capgrpGameState);
         end
     end;
-    gtATSmoothWindCh: 
-begin
-    if Gear^.Timer = 0 then
+    gtATFinishGame: 
     begin
-        if WindBarWidth < Gear^.Tag then inc(WindBarWidth)
-        else if WindBarWidth > Gear^.Tag then dec(WindBarWidth);
-        if WindBarWidth <> Gear^.Tag then Gear^.Timer := 10;
-    end
-end;
-gtATFinishGame: 
-begin
-    AllInactive := false;
-    if Gear^.Timer = 1000 then
-    begin
-        ScreenFade := sfToBlack;
-        ScreenFadeValue := 0;
-        ScreenFadeSpeed := 1;
+        AllInactive := false;
+        if Gear^.Timer = 1000 then
+        begin
+            ScreenFade := sfToBlack;
+            ScreenFadeValue := 0;
+            ScreenFadeSpeed := 1;
+        end;
+        if Gear^.Timer = 0 then
+        begin
+            SendIPC('N');
+            SendIPC('q');
+            GameState := gsExit
+        end
     end;
-    if Gear^.Timer = 0 then
-    begin
-        SendIPC('N');
-        SendIPC('q');
-        GameState := gsExit
-    end
-end;
 end;
 if Gear^.Timer = 0 then DeleteGear(Gear)
 end;
@@ -1874,6 +1868,7 @@
     i: LongInt;
     particle: PVisualGear;
 begin
+    if (Gear^.dY.QWordValue = 0) and (Gear^.dY.QWordValue = 0) and not TestCollisionYwithGear(Gear, 1) then SetLittle(Gear^.dY);
     Gear^.State := Gear^.State or gstAnimation;
     if ((Gear^.dX.QWordValue <> 0) or (Gear^.dY.QWordValue <> 0))  then
     begin
@@ -2074,6 +2069,7 @@
     end
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepShover(Gear: PGear);
 var 
     HHGear: PGear;
@@ -2412,7 +2408,7 @@
 
     // calcs for Napalm Strike, so that it will hit the target (without wind at least :P)
     if (Gear^.State = 2) then
-        Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 1000 // ^.Timer of gtNapalmBomb, make it a constant var if you prefer that :P
+        Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 900 
     // calcs for regular falling gears
     else if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) then
             Gear^.dX := Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 /
@@ -2562,7 +2558,6 @@
         HHGear := Gear^.Hedgehog^.Gear;
         Msg := Gear^.Message and not gmSwitch;
         DeleteGear(Gear);
-        OnUsedAmmo(HHGear^.Hedgehog^);
         ApplyAmmoChanges(HHGear^.Hedgehog^);
 
         HHGear := CurrentHedgehog^.Gear;
@@ -2611,6 +2606,7 @@
     Gear^.doStep := @doStepSwitcherWork;
 
     HHGear := Gear^.Hedgehog^.Gear;
+    OnUsedAmmo(HHGear^.Hedgehog^);
     with HHGear^ do
     begin
         State := State and not gstAttacking;
@@ -3308,6 +3304,7 @@
     Gear^.doStep := @doStepRCPlaneWork
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepJetpackWork(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3435,7 +3432,6 @@
         end
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepJetpack(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3471,7 +3467,6 @@
     end;
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepBirdyFly(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3565,7 +3560,6 @@
         end
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepBirdyDescend(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3607,7 +3601,6 @@
     end
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepBirdy(Gear: PGear);
 var 
     HHGear: PGear;
@@ -4145,6 +4138,7 @@
     newPortal^.doStep := @doStepMovingPortal;
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepPiano(Gear: PGear);
 var 
     r0, r1: LongInt;
@@ -4444,6 +4438,7 @@
     Gear^.doStep := @doStepFlamethrowerWork
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepLandGunWork(Gear: PGear);
 var 
     HHGear: PGear;
@@ -4519,6 +4514,7 @@
     Gear^.doStep := @doStepLandGunWork
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepPoisonCloud(Gear: PGear);
 begin
     if Gear^.Timer = 0 then
@@ -4531,7 +4527,7 @@
     Gear^.Y:= Gear^.Y + Gear^.dY;
     Gear^.dX := Gear^.dX + cWindSpeed / 4;
     Gear^.dY := Gear^.dY + cGravity / 100;
-    if (GameTicks mod 250) = 0 then
+    if (GameTicks and $FF) = 0 then
         doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLDontDraw or EXPLNoGfx or EXPLNoDamage or EXPLDoNotTouchAny or EXPLPoisoned);
     AllInactive:= false;
 end;
@@ -4576,7 +4572,6 @@
 Gear^.doStep:= @doStepIdle
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepHammerHitWork(Gear: PGear);
 var 
     i, ei: LongInt;
@@ -4812,6 +4807,14 @@
 var 
     x, y: LongInt;
 begin
+    if (Gear^.State and gstMoving) <> 0 then
+        begin
+        AddGearCI(Gear);
+        Gear^.dX:= _0;
+        Gear^.dY:= _0;
+        Gear^.State:= Gear^.State and not gstMoving;
+        end;
+
     if CurAmmoGear = Gear then
         begin
         if (CurrentHedgehog = nil) or (CurrentHedgehog^.Gear = nil) then 
@@ -4860,6 +4863,7 @@
         end;
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepTardis(Gear: PGear);
 (*var 
     i, x, y: LongInt;
@@ -4902,3 +4906,6 @@
             DeleteGear(Gear)
         end
 end;
+
+////////////////////////////////////////////////////////////////////////////////
+
--- a/hedgewars/HHHandlers.inc	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/HHHandlers.inc	Thu Jul 07 08:09:12 2011 -0400
@@ -125,11 +125,38 @@
 
 procedure HHSetTimer(Gear: PGear);
 var CurWeapon: PAmmo;
+    color: LongWord;
 begin
 Gear^.Message:= Gear^.Message and not gmTimer;
 CurWeapon:= GetAmmoEntry(Gear^.Hedgehog^);
 with Gear^.Hedgehog^ do
-    if (CurWeapon^.Propz and ammoprop_Timerable) <> 0 then
+    if ((Gear^.Message and gmPrecise) <> 0) and ((CurWeapon^.Propz and ammoprop_SetBounce) <> 0) then
+        begin
+        color:= Gear^.Hedgehog^.Team^.Clan^.Color;
+        case Gear^.MsgParam of
+            1: begin
+               AddCaption(format(trmsg[sidBounce], trmsg[sidBounce1]), color, capgrpAmmostate);
+               CurWeapon^.Bounciness:= 350;
+               end;
+            2: begin
+               AddCaption(format(trmsg[sidBounce], trmsg[sidBounce2]), color, capgrpAmmostate);
+               CurWeapon^.Bounciness:= 700;
+               end;
+            3: begin
+               AddCaption(format(trmsg[sidBounce], trmsg[sidBounce3]), color, capgrpAmmostate);
+               CurWeapon^.Bounciness:= 1000;
+               end;
+            4: begin
+               AddCaption(format(trmsg[sidBounce], trmsg[sidBounce4]), color, capgrpAmmostate);
+               CurWeapon^.Bounciness:= 2000;
+               end;
+            5: begin
+               AddCaption(format(trmsg[sidBounce], trmsg[sidBounce5]), color, capgrpAmmostate);
+               CurWeapon^.Bounciness:= 4000;
+               end
+            end
+        end
+    else if (CurWeapon^.Propz and ammoprop_Timerable) <> 0 then
         begin
         CurWeapon^.Timer:= 1000 * Gear^.MsgParam;
         with CurrentTeam^ do
@@ -140,10 +167,13 @@
 
 procedure Attack(Gear: PGear);
 var xx, yy, newDx, newDy, lx, ly: hwFloat;
-    tmpGear: PVisualGear;
+    speech: PVisualGear;
+    newGear:  PGear;
     CurWeapon: PAmmo;
     altUse: boolean;
+    elastic: hwFloat;
 begin
+newGear:= nil;
 bShowFinger:= false;
 CurWeapon:= GetAmmoEntry(Gear^.Hedgehog^);
 with Gear^,
@@ -204,81 +234,82 @@
             end;
 
              case CurAmmoType of
-                      amGrenade: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtGrenade,         0, newDx, newDy, CurWeapon^.Timer);
-                      amMolotov: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtMolotov,      0, newDx, newDy, 0);
-                  amClusterBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtClusterBomb,  0, newDx, newDy, CurWeapon^.Timer);
-                      amGasBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtGasBomb,      0, newDx, newDy, CurWeapon^.Timer);
-                      amBazooka: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtShell,        0, newDx, newDy, 0);
-                     amSnowball: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtSnowball,     0, newDx, newDy, 0);
-                          amBee: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtBee,          0, newDx, newDy, 0);
+                      amGrenade: newGear:= AddGear(hwRound(lx), hwRound(ly), gtGrenade,         0, newDx, newDy, CurWeapon^.Timer);
+                      amMolotov: newGear:= AddGear(hwRound(lx), hwRound(ly), gtMolotov,      0, newDx, newDy, 0);
+                  amClusterBomb: newGear:= AddGear(hwRound(lx), hwRound(ly), gtClusterBomb,  0, newDx, newDy, CurWeapon^.Timer);
+                      amGasBomb: newGear:= AddGear(hwRound(lx), hwRound(ly), gtGasBomb,      0, newDx, newDy, CurWeapon^.Timer);
+                      amBazooka: newGear:= AddGear(hwRound(lx), hwRound(ly), gtShell,        0, newDx, newDy, 0);
+                     amSnowball: newGear:= AddGear(hwRound(lx), hwRound(ly), gtSnowball,     0, newDx, newDy, 0);
+                          amBee: newGear:= AddGear(hwRound(lx), hwRound(ly), gtBee,          0, newDx, newDy, 0);
                       amShotgun: begin
                                  PlaySound(sndShotgunReload);
-                                 CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtShotgunShot,  0, xx * _0_5, yy * _0_5, 0);
+                                 newGear:= AddGear(hwRound(lx), hwRound(ly), gtShotgunShot,  0, xx * _0_5, yy * _0_5, 0);
                                  end;
-                   amPickHammer: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly) + cHHRadius, gtPickHammer, 0, _0, _0, 0);
+                   amPickHammer: newGear:= AddGear(hwRound(lx), hwRound(ly) + cHHRadius, gtPickHammer, 0, _0, _0, 0);
                          amSkip: ParseCommand('/skip', true);
-                         amRope: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtRope, 0, xx, yy, 0);
+                         amRope: newGear:= AddGear(hwRound(lx), hwRound(ly), gtRope, 0, xx, yy, 0);
                          amMine: if altUse then
-                                    AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, newDx, newDy, 3000)
+                                    newGear:= AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, newDx, newDy, 3000)
                                  else
-                                    AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, SignAs(_0_02, dX), _0, 3000);
-                        amSMine: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtSMine,    0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
-                       amDEagle: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0);
-                      amSineGun: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSineGunShot, 0, xx * _0_5, yy * _0_5, 0);
+                                    newGear:= AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, SignAs(_0_02, dX), _0, 3000);
+                        amSMine: newGear:= AddGear(hwRound(lx), hwRound(ly), gtSMine,    0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
+                       amDEagle: newGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0);
+                      amSineGun: newGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSineGunShot, 0, xx * _0_5, yy * _0_5, 0);
                     amPortalGun: begin
-                                 AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtPortal, 0, xx * _0_6, yy * _0_6, 
+                                 newGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtPortal, 0, xx * _0_6, yy * _0_6, 
                                  // set selected color
                                  CurWeapon^.Pos);
                                  end;
                   amSniperRifle: begin
                                  PlaySound(sndSniperReload);
-                                 CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSniperRifleShot, 0, xx * _0_5, yy * _0_5, 0);
+                                 newGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSniperRifleShot, 0, xx * _0_5, yy * _0_5, 0);
                                  end;
-                     amDynamite: AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtDynamite, 0, SignAs(_0_03, dX), _0, 5000);
-                    amFirePunch: CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtFirePunch, 0, xx, _0, 0);
+                     amDynamite: newGear:= AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtDynamite, 0, SignAs(_0_03, dX), _0, 5000);
+                    amFirePunch: newGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtFirePunch, 0, xx, _0, 0);
                          amWhip: begin
-                                 CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtWhip, 0, SignAs(_1, dX), - _0_8, 0);
+                                 newGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtWhip, 0, SignAs(_1, dX), - _0_8, 0);
                                  PlaySound(sndWhipCrack)
                                  end;
                        amHammer: begin
-                                 CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtHammer, 0, SignAs(_1, dX), - _0_8, 0);
+                                 newGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtHammer, 0, SignAs(_1, dX), - _0_8, 0);
                                  PlaySound(sndWhack)
                                  end;
                   amBaseballBat: begin
-                                 CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtShover, gsttmpFlag, xx * _0_5, yy * _0_5, 0);
+                                 newGear:= AddGear(hwRound(lx) + hwSign(dX) * 10, hwRound(ly), gtShover, gsttmpFlag, xx * _0_5, yy * _0_5, 0);
                                  PlaySound(sndBaseballBat) // TODO: Only play if something is hit?
                                  end;
                     amParachute: begin
-                                 CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtParachute, 0, _0, _0, 0);
+                                 newGear:= AddGear(hwRound(lx), hwRound(ly), gtParachute, 0, _0, _0, 0);
                                  PlaySound(sndParachute)
                                  end;
                     // we save CurWeapon^.Pos (in this case: cursor direction) by using it as (otherwise irrelevant) X value of the new gear.
-                    amAirAttack: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 0, _0, _0, 0);
-                   amMineStrike: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 1, _0, _0, 0);
-                    amBlowTorch: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtBlowTorch, 0, SignAs(_0_5, dX), _0, 0);
-                       amGirder: CurAmmoGear:= AddGear(0, 0, gtGirder, CurWeapon^.Pos, _0, _0, 0);
-                     amTeleport: CurAmmoGear:= AddGear(CurWeapon^.Pos, 0, gtTeleport, 0, _0, _0, 0);
-                       amSwitch: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtSwitcher, 0, _0, _0, 0);
+                    amAirAttack: newGear:= AddGear(CurWeapon^.Pos, 0, gtAirAttack, 0, _0, _0, 0);
+                   amMineStrike: newGear:= AddGear(CurWeapon^.Pos, 0, gtAirAttack, 1, _0, _0, 0);
+                  amDrillStrike: newGear:= AddGear(CurWeapon^.Pos, 0, gtAirAttack, 3, _0, _0, CurWeapon^.Timer);
+                       amNapalm: newGear:= AddGear(CurWeapon^.Pos, 0, gtAirAttack, 2, _0, _0, 0);
+                    amBlowTorch: newGear:= AddGear(hwRound(lx), hwRound(ly), gtBlowTorch, 0, SignAs(_0_5, dX), _0, 0);
+                       amGirder: newGear:= AddGear(0, 0, gtGirder, CurWeapon^.Pos, _0, _0, 0);
+                     amTeleport: newGear:= AddGear(CurWeapon^.Pos, 0, gtTeleport, 0, _0, _0, 0);
+                       amSwitch: newGear:= AddGear(hwRound(lx), hwRound(ly), gtSwitcher, 0, _0, _0, 0);
                        amMortar: begin
                                  playSound(sndMortar);
-                                 FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtMortar,  0, xx*cMaxPower/cPowerDivisor, yy*cMaxPower/cPowerDivisor, 0);
+                                 newGear:= AddGear(hwRound(lx), hwRound(ly), gtMortar,  0, xx*cMaxPower/cPowerDivisor, yy*cMaxPower/cPowerDivisor, 0);
                                  end;
                       amRCPlane: begin
-                                 CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtRCPlane,  0, xx * cMaxPower / cPowerDivisor / 4, yy * cMaxPower / cPowerDivisor / 4, 0);
-                                 CurAmmoGear^.SoundChannel:= LoopSound(sndRCPlane, nil)
+                                 newGear:= AddGear(hwRound(lx), hwRound(ly), gtRCPlane,  0, xx * cMaxPower / cPowerDivisor / 4, yy * cMaxPower / cPowerDivisor / 4, 0);
+                                 newGear^.SoundChannel:= LoopSound(sndRCPlane, nil)
                                  end;
-                       amKamikaze: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtKamikaze, 0, xx * _0_5, yy * _0_5, 0);
-                         amCake: CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 3, hwRound(ly), gtCake, 0, xx, _0, 0);
-                    amSeduction: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius * 2), hwRound(ly + yy * cHHRadius * 2), gtSeduction, 0, xx * _0_4, yy * _0_4, 0);
-                   amWatermelon: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtWatermelon,  0, newDx, newDy, CurWeapon^.Timer);
-                  amHellishBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtHellishBomb,    0, newDx, newDy, 0);
-                       amNapalm: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 2, _0, _0, 0);
-                        amDrill: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtDrill, 0, newDx, newDy, 0);
-                      amBallgun: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtBallgun,  0, xx * _0_5, yy * _0_5, 0);
-                    amJetpack: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtJetpack, 0, _0, _0, 0);
+                       amKamikaze: newGear:= AddGear(hwRound(lx), hwRound(ly), gtKamikaze, 0, xx * _0_5, yy * _0_5, 0);
+                         amCake: newGear:= AddGear(hwRound(lx) + hwSign(dX) * 3, hwRound(ly), gtCake, 0, xx, _0, 0);
+                    amSeduction: newGear:= AddGear(hwRound(lx + xx * cHHRadius * 2), hwRound(ly + yy * cHHRadius * 2), gtSeduction, 0, xx * _0_4, yy * _0_4, 0);
+                   amWatermelon: newGear:= AddGear(hwRound(lx), hwRound(ly), gtWatermelon,  0, newDx, newDy, CurWeapon^.Timer);
+                  amHellishBomb: newGear:= AddGear(hwRound(lx), hwRound(ly), gtHellishBomb,    0, newDx, newDy, 0);
+                        amDrill: newGear:= AddGear(hwRound(lx), hwRound(ly), gtDrill, 0, newDx, newDy, 0);
+                      amBallgun: newGear:= AddGear(hwRound(X), hwRound(Y), gtBallgun,  0, xx * _0_5, yy * _0_5, 0);
+                    amJetpack: newGear:= AddGear(hwRound(lx), hwRound(ly), gtJetpack, 0, _0, _0, 0);
                     amBirdy: begin
                              PlaySound(sndWhistle);
-                             CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly) - 32, gtBirdy, 0, _0, _0, 0);
+                             newGear:= AddGear(hwRound(lx), hwRound(ly) - 32, gtBirdy, 0, _0, _0, 0);
                              end;
                       amLowGravity: begin
                                     PlaySound(sndLowGravity);
@@ -304,35 +335,71 @@
                                Unplaced:= true;
                                X:= _0;
                                Y:= _0;
-                               FollowGear:= AddGear(TargetPoint.X, 0, gtPiano, 0, _0, _0, 0);
+                               newGear:= AddGear(TargetPoint.X, 0, gtPiano, 0, _0, _0, 0);
                                PauseMusic
                                end;
-                      amFlamethrower: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtFlamethrower,  0, xx * _0_5, yy * _0_5, 0);
-                      amLandGun: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtLandGun,  0, xx * _0_5, yy * _0_5, 0);
+                      amFlamethrower: newGear:= AddGear(hwRound(X), hwRound(Y), gtFlamethrower,  0, xx * _0_5, yy * _0_5, 0);
+                      amLandGun: newGear:= AddGear(hwRound(X), hwRound(Y), gtLandGun,  0, xx * _0_5, yy * _0_5, 0);
                     amResurrector: begin
-                        CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly),
+                        newGear:= AddGear(hwRound(lx), hwRound(ly),
                                 gtResurrector, 0, _0, _0, 0);
-                        CurAmmoGear^.SoundChannel := LoopSound(sndResurrector);
+                        newGear^.SoundChannel := LoopSound(sndResurrector);
                     end;
-                   amDrillStrike: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 3, _0, _0, CurWeapon^.Timer);
                    //amMelonStrike: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 4, _0, _0, 0);
-                     amStructure: CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtStructure, gstWait, SignAs(_0_02, dX), _0, 3000);
-                        amTardis: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtTardis, 0, _0, _0, 5000);
+                     amStructure: newGear:= AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtStructure, gstWait, SignAs(_0_02, dX), _0, 3000);
+                        amTardis: newGear:= AddGear(hwRound(X), hwRound(Y), gtTardis, 0, _0, _0, 5000);
+                  end;
+             case CurAmmoType of
+                      amGrenade, amMolotov, 
+                  amClusterBomb, amGasBomb, 
+                      amBazooka, amSnowball, 
+                          amBee, amSMine,
+                       amMortar, amWatermelon,
+                  amHellishBomb, amDrill,
+                        amPiano: FollowGear:= newGear;
+
+                      amShotgun, amPickHammer,
+                         amRope, amDEagle,
+                      amSineGun, amSniperRifle,
+                    amFirePunch, amWhip,
+                       amHammer, amBaseballBat,
+                    amParachute, amBlowTorch,
+                       amGirder, amTeleport,
+                       amSwitch, amRCPlane,
+                     amKamikaze, amCake,
+                    amSeduction, amBallgun,
+                      amJetpack, amBirdy,
+                 amFlamethrower, amLandGun,
+                  amResurrector, amStructure,
+                       amTardis: CurAmmoGear:= newGear;
                   end;
 
         // Clear FollowGear if using on a rope/parachute/saucer etc so focus stays with the hog's movement
         if altUse then FollowGear:= nil;
 
+        if (newGear <> nil) and ((Ammoz[newGear^.AmmoType].Ammo.Propz and ammoprop_SetBounce) <> 0) then
+            begin
+            elastic:=  int2hwfloat(CurWeapon^.Bounciness) / _1000;
+
+            if elastic < _1 then newGear^.Elasticity:= newGear^.Elasticity * elastic
+            else if elastic > _1 then newGear^.Elasticity:= _1 - ((_1-newGear^.Elasticity) / elastic);
+(* Experimented with friction modifier. Didn't seem helpful 
+            fric:= int2hwfloat(CurWeapon^.Bounciness) / _250;
+            if fric < _1 then newGear^.Friction:= newGear^.Friction * fric
+            else if fric > _1 then newGear^.Friction:= _1 - ((_1-newGear^.Friction) / fric)*)
+            end;
+
+
         uStats.AmmoUsed(CurAmmoType);
 
         if not (SpeechText = '') then
             begin
-            tmpGear:= AddVisualGear(0, 0, vgtSpeechBubble);
-            if tmpGear <> nil then
+            speech:= AddVisualGear(0, 0, vgtSpeechBubble);
+            if speech <> nil then
                begin
-               tmpGear^.Text:= SpeechText;
-               tmpGear^.Hedgehog:= Gear^.Hedgehog;
-               tmpGear^.FrameTicks:= SpeechType;
+               speech^.Text:= SpeechText;
+               speech^.Hedgehog:= Gear^.Hedgehog;
+               speech^.FrameTicks:= SpeechType;
                end;
             SpeechText:= ''
             end;
@@ -341,7 +408,6 @@
         if (CurAmmoGear <> nil)
            and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) = 0){check for dropping ammo from rope} then
            begin
-           CurAmmoGear^.AmmoType:= CurAmmoType;
            Message:= Message or gmAttack;
            CurAmmoGear^.Message:= Message
            end else begin
@@ -467,6 +533,14 @@
 begin
 Gear^.Message:= gmDestroy;
 PlaySound(sndShotgunReload);
+if (Gear^.Pos and posCaseExplode) <> 0 then
+    if (Gear^.Pos and posCasePoison) <> 0 then
+        doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 25, HH^.Hedgehog, EXPLAutoSound + EXPLPoisoned)
+    else
+        doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 25, HH^.Hedgehog, EXPLAutoSound)
+else if (Gear^.Pos and posCasePoison) <> 0 then
+    doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 25, HH^.Hedgehog, EXPLAutoSound + EXPLPoisoned + EXPLNoDamage)
+else
 case Gear^.Pos of
        posCaseUtility,
        posCaseAmmo: begin
--- a/hedgewars/VGSHandlers.inc	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/VGSHandlers.inc	Thu Jul 07 08:09:12 2011 -0400
@@ -46,7 +46,7 @@
         inc(Frame);
         if Frame = vobSDFramesCount then Frame:= 0
         end;
-    X:= X + (cWindSpeedf * 600 + dX + tdX) * Steps;
+    X:= X + (cWindSpeedf * 400 + dX + tdX) * Steps;
     if SuddenDeathDmg then
         Y:= Y + (dY + tdY + cGravityf * vobSDFallSpeed) * Steps
     else
@@ -607,6 +607,9 @@
 (*
 FIXME - This block desyncs due to the way WorldDx is important for various things network related.
 One possible solution is, instead of using WorldDx, to use straight gl/SDL calls to jitter the screen a bit.
+
+// a comment by unC0Rr: instead of changing WorldDx shake cursor coordinates, that should be safe
+
 if (Gear^.Timer and 5) = 0 then
     begin
     maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250));
@@ -688,3 +691,20 @@
                 end
             end
 end;
+
+////////////////////////////////////////////////////////////////////////////////
+procedure doStepSmoothWindBar(Gear: PVisualGear; Steps: Longword);
+begin
+    inc(Gear^.Timer, Steps);
+    
+    while Gear^.Timer >= 10 do
+        begin
+        dec(Gear^.Timer, 10);
+        if WindBarWidth < Gear^.Tag then inc(WindBarWidth)
+        else if WindBarWidth > Gear^.Tag then dec(WindBarWidth);
+        end;
+        
+if WindBarWidth = Gear^.Tag then 
+    DeleteVisualGear(Gear)
+end;
+
--- a/hedgewars/options.inc	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/options.inc	Thu Jul 07 08:09:12 2011 -0400
@@ -32,10 +32,11 @@
   {$DEFINE HWLIBRARY}
   {$DEFINE S3D_DISABLED}
   {$DEFINE GLunit:=gles11}
+{$ELSE}
+  {$DEFINE DEBUGFILE}
+  //{$DEFINE TRACEAIACTIONS}
+  //{$DEFINE COUNTTICKS}
 {$ENDIF}
 
-{$DEFINE DEBUGFILE}
-//{$DEFINE TRACEAIACTIONS}
-//{$DEFINE COUNTTICKS}
 
 //also available LUA_DISABLED
--- a/hedgewars/uAI.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uAI.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -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
@@ -86,7 +89,6 @@
               begin
               BestActions:= Actions;
               inc(BestActions.Score, Score);
-         addfilelog('AI: curr score ' + inttostr(bestactions.score));
 
               if (ap.Angle > 0) then AddAction(BestActions, aia_LookRight, 0, 200, 0, 0)
               else if (ap.Angle < 0) then AddAction(BestActions, aia_LookLeft, 0, 200, 0, 0);
@@ -280,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/uAmmos.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uAmmos.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -123,13 +123,13 @@
         if ((GameFlags and gfPlaceHog) <> 0) and
             (a <> amTeleport) and (a <> amSkip) and
             (Ammoz[a].SkipTurns < 10000) then inc(Ammoz[a].SkipTurns,10000);
-	if ((GameFlags and gfPlaceHog) <> 0) and (a = amTeleport) then ammos[a]:= AMMO_INFINITE
+    if ((GameFlags and gfPlaceHog) <> 0) and (a = amTeleport) then ammos[a]:= AMMO_INFINITE
         end 
     else ammos[a]:= AMMO_INFINITE;
     if ((GameFlags and gfPlaceHog) <> 0) and (a = amTeleport) then 
-    	InitialCounts[Pred(StoreCnt)][a]:= cnt
+        InitialCounts[Pred(StoreCnt)][a]:= cnt
     else
-    	InitialCounts[Pred(StoreCnt)][a]:= ammos[a];
+        InitialCounts[Pred(StoreCnt)][a]:= ammos[a];
     end;
 FillAmmoStore(StoresList[Pred(StoreCnt)], ammos)
 end;
@@ -191,6 +191,7 @@
 var ammos: TAmmoCounts;
     slot, ami: LongInt;
     hhammo: PHHAmmo;
+    CurWeapon: PAmmo;
 begin
 {$HINTS OFF}
 FillChar(ammos, sizeof(ammos), 0);
@@ -205,7 +206,14 @@
 ammos[ammo]:= cnt;
 if ammos[ammo] > AMMO_INFINITE then ammos[ammo]:= AMMO_INFINITE;
 
-FillAmmoStore(hhammo, ammos)
+FillAmmoStore(hhammo, ammos);
+CurWeapon:= GetAmmoEntry(Hedgehog);
+with Hedgehog, CurWeapon^ do
+        if Count = 0 then
+            begin
+            PackAmmo(Ammo, Ammoz[AmmoType].Slot);
+            CurAmmoType:= amNothing
+            end
 end;
 
 procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt);
--- a/hedgewars/uChat.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uChat.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -51,12 +51,13 @@
     ChatReady: boolean;
     showAll: boolean;
 
-const colors: array[#1..#5] of TSDL_Color = (
+const colors: array[#1..#6] of TSDL_Color = (
     (r:$FF; g:$FF; b:$FF; unused:$FF), // chat message [White]
     (r:$FF; g:$00; b:$FF; unused:$FF), // action message [Purple]
     (r:$90; g:$FF; b:$90; unused:$FF), // join/leave message [Lime]
     (r:$FF; g:$FF; b:$A0; unused:$FF), // team message [Light Yellow]
-    (r:$FF; g:$00; b:$00; unused:$ff)  // error messages [Red]
+    (r:$FF; g:$00; b:$00; unused:$FF), // error messages [Red]
+    (r:$00; g:$FF; b:$FF; unused:$FF)  // input line [Light Blue]
     );
 
 procedure SetLine(var cl: TChatLine; str: shortstring; isInput: boolean);
@@ -72,11 +73,7 @@
 
 if isInput then
 begin
-    // [Light Blue]
-    color.r:= $00;
-    color.g:= $FF;
-    color.b:= $FF;
-    color.unused:= $FF;
+    color:= colors[#6];
     str:= UserNick + '> ' + str + '_'
 end
 else
@@ -153,14 +150,9 @@
 
 dec(r.y, 16);
 
-while
-    (
-            ((t < 7) and (Strs[i].Time > RealTicks))
-        or
-            ((t < MaxStrIndex) and showAll)
-    )
-    and
-        (Strs[i].Tex <> nil) do
+while (((t < 7) and (Strs[i].Time > RealTicks)) or
+       ((t < MaxStrIndex) and showAll)) and
+      (Strs[i].Tex <> nil) do
     begin
     r.w:= Strs[i].Width;
     DrawFillRect(r);
--- a/hedgewars/uCommandHandlers.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uCommandHandlers.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -445,7 +445,7 @@
 
 procedure chSetMap(var s: shortstring);
 begin
-if isDeveloperMode then
+if isDeveloperMode and (s <> '') then
 begin
 UserPathz[ptMapCurrent]:= UserPathz[ptMaps] + '/' + s;
 Pathz[ptMapCurrent]:= Pathz[ptMaps] + '/' + s;
--- a/hedgewars/uCommands.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uCommands.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -33,7 +33,7 @@
 procedure StopMessages(Message: Longword);
 
 implementation
-uses Types, uConsts, uVariables, uConsole, uUtils, uDebug;
+uses Types, uConsts, uVariables, uConsole, uUtils, uDebug, uScript;
 
 type  PVariable = ^TVariable;
       TVariable = record
@@ -68,7 +68,7 @@
 
 procedure ParseCommand(CmdStr: shortstring; TrustedSource: boolean);
 var ii: LongInt;
-    s: shortstring;
+    s, i, o: shortstring;
     t: PVariable;
     c: char;
 begin
@@ -85,6 +85,8 @@
       if t^.Name = CmdStr then
          begin
          if TrustedSource or t^.Trusted then
+            begin
+            if (c <> '$') or (s[0] <> #0) then s:= ParseCommandOverride(CmdStr, s);
             case t^.VType of
               vtCommand: if c='/' then
                          begin
@@ -94,8 +96,12 @@
                          if s[0]=#0 then
                             begin
                             str(PLongInt(t^.Handler)^, s);
-                            WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
-                            end else val(s, PLongInt(t^.Handler)^);
+                            i:= inttostr(PLongInt(t^.Handler)^);
+                            o:= ParseCommandOverride(CmdStr, i);
+                            if i <> o then val(o, PLongInt(t^.Handler)^) 
+                            else WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
+                            end 
+                         else val(s, PLongInt(t^.Handler)^);
               vthwFloat: if c='$' then
                          if s[0]=#0 then
                             begin
@@ -106,13 +112,23 @@
                          if s[0]=#0 then
                             begin
                             str(ord(boolean(t^.Handler^)), s);
-                            WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
-                            end else
+                            if boolean(t^.Handler^) then i:= '1'
+                            else i:= '0';
+                            o:= ParseCommandOverride(CmdStr, i);
+                            if i <> o then 
+                                begin
+                                val(o, ii);
+                                boolean(t^.Handler^):= not (ii = 0)
+                                end
+                            else WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
+                            end 
+                         else
                             begin
                             val(s, ii);
                             boolean(t^.Handler^):= not (ii = 0)
                             end;
               end;
+              end;
          exit
          end else t:= t^.Next
       end;
--- a/hedgewars/uConsts.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uConsts.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -209,6 +209,7 @@
     gstNotKickable    = $00040000;
     gstLoser          = $00080000;
     gstHHGone         = $00100000;
+    gstInvisible      = $00200000;
 
     gmLeft   = $00000001;
     gmRight  = $00000002;
@@ -242,6 +243,7 @@
     ammoprop_NotBorder    = $00000800;
     ammoprop_Utility      = $00001000;
     ammoprop_Effect       = $00002000;
+    ammoprop_SetBounce    = $00004000;
     ammoprop_NoRoundEnd   = $10000000;
 
     AMMO_INFINITE = 100;
@@ -258,6 +260,9 @@
     posCaseAmmo    = $00000001;
     posCaseHealth  = $00000002;
     posCaseUtility = $00000004;
+    posCaseDummy   = $00000008;
+    posCaseExplode = $00000010;
+    posCasePoison  = $00000020;
 
     NoPointX = Low(LongInt);
     cTargetPointRef : TPoint = (X: NoPointX; Y: 0);
--- a/hedgewars/uFloat.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uFloat.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -159,9 +159,11 @@
              _50: hwFloat = (isNegative: false; QWordValue:  4294967296 * 50);
              _70: hwFloat = (isNegative: false; QWordValue:  4294967296 * 70);
             _128: hwFloat = (isNegative: false; QWordValue:  4294967296 * 128);
+            _250: hwFloat = (isNegative: false; QWordValue:  4294967296 * 250);
             _256: hwFloat = (isNegative: false; QWordValue:  4294967296 * 256);
             _300: hwFloat = (isNegative: false; QWordValue:  4294967296 * 300);
             _450: hwFloat = (isNegative: false; QWordValue:  4294967296 * 450);
+           _1000: hwFloat = (isNegative: false; QWordValue:  4294967296 * 1000);
            _1024: hwFloat = (isNegative: false; QWordValue:  4294967296 * 1024);
            _2048: hwFloat = (isNegative: false; QWordValue:  4294967296 * 2048);
            _4096: hwFloat = (isNegative: false; QWordValue:  4294967296 * 4096);
--- a/hedgewars/uGame.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uGame.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -75,6 +75,7 @@
                         if isSoundEnabled then playMusic;
                         GameType:= gmtLocal;
                         AddVisualGear(0, 0, vgtTeamHealthSorter);
+                        AddVisualGear(0, 0, vgtSmoothWindBar);
                         {$IFDEF IPHONEOS}InitIPC;{$ENDIF}
                         uMobile.SaveFinished();
                         end;
--- a/hedgewars/uGears.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uGears.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -39,6 +39,7 @@
 procedure freeModule;
 function  AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear;
 function  SpawnCustomCrateAt(x, y: LongInt; crate: TCrateType; content: Longword ): PGear;
+function  SpawnFakeCrateAt(x, y: LongInt; crate: TCrateType; explode: boolean; poison: boolean ): PGear;
 procedure ResurrectHedgehog(gear: PGear);
 procedure ProcessGears;
 procedure EndTurnCleanup;
@@ -106,7 +107,6 @@
             @doStepFirePunch,
             @doStepActionTimer,
             @doStepActionTimer,
-            @doStepActionTimer,
             @doStepParachute,
             @doStepAirAttack,
             @doStepAirBomb,
@@ -120,7 +120,7 @@
             @doStepKamikaze,
             @doStepCake,
             @doStepSeduction,
-            @doStepWatermelon,
+            @doStepBomb,
             @doStepCluster,
             @doStepBomb,
             @doStepWaterUp,
@@ -221,13 +221,15 @@
 gear^.SoundChannel:= -1;
 gear^.ImpactSound:= sndNone;
 gear^.nImpactSounds:= 0;
+// Define ammo association, if any.
+gear^.AmmoType:= GearKindAmmoTypeMap[Kind];
 
 if CurrentHedgehog <> nil then
     begin
     gear^.Hedgehog:= CurrentHedgehog;
     gear^.IntersectGear:= CurrentHedgehog^.Gear
     end;
-
+    
 case Kind of
      gtGrenade,
      gtClusterBomb,
@@ -288,6 +290,7 @@
                     dx.QWordValue:= GetRandom(100000000);
                     dy.isNegative:= false;
                     dy.QWordValue:= GetRandom(70000000);
+                    State:= State or gstInvisible;
                     if GetRandom(2) = 0 then dx := -dx;
                     Health:= random(vobFrameTicks);
                     Timer:= random(vobFramesCount);
@@ -540,11 +543,11 @@
                 gear^.Density:= _1_5;
                 end;
    gtStructure: begin
-                gear^.ImpactSound:= sndGrenadeImpact;
-                gear^.nImpactSounds:= 1;
+                gear^.Elasticity:= _0_55;
+                gear^.Friction:= _0_995;
+                gear^.Density:= _0_9;
                 gear^.Radius:= 13;
-                gear^.Elasticity:= _0_3;
-                gear^.Health:= 50;
+                gear^.Health:= 200;
                 gear^.Tag:= 3;
                 end;
     end;
@@ -1122,9 +1125,12 @@
 Gear:= GearsList;
 while Gear <> nil do
     begin
-    x:= hwRound(Gear^.X) + WorldDx;
-    y:= hwRound(Gear^.Y) + WorldDy;
-    RenderGear(Gear, x, y);
+    if Gear^.State and gstInvisible = 0 then
+        begin
+        x:= hwRound(Gear^.X) + WorldDx;
+        y:= hwRound(Gear^.Y) + WorldDy;
+        RenderGear(Gear, x, y);
+        end;
     Gear:= Gear^.NextGear
     end;
 end;
@@ -1607,12 +1613,12 @@
     FollowGear := AddGear(x, y, gtCase, 0, _0, _0, 0);
     cCaseFactor := 0;
 
-    if (content > ord(High(TAmmoType))) then content := ord(High(TAmmoType));
+    if (crate <> HealthCrate) and (content > ord(High(TAmmoType))) then content := ord(High(TAmmoType));
 
     case crate of
         HealthCrate: begin
-            FollowGear^.Health := cHealthCaseAmount;
             FollowGear^.Pos := posCaseHealth;
+            FollowGear^.Health := content;
             AddCaption(GetEventString(eidNewHealthPack), cWhiteColor, capgrpAmmoInfo);
             end;
         AmmoCrate: begin
@@ -1632,6 +1638,35 @@
     SpawnCustomCrateAt := FollowGear;
 end;
 
+function SpawnFakeCrateAt(x, y: LongInt; crate: TCrateType; explode: boolean; poison: boolean): PGear;
+begin
+    FollowGear := AddGear(x, y, gtCase, 0, _0, _0, 0);
+    cCaseFactor := 0;
+    FollowGear^.Pos := posCaseDummy;
+    
+    if explode then FollowGear^.Pos := FollowGear^.Pos + posCaseExplode;
+    if poison then FollowGear^.Pos := FollowGear^.Pos + posCasePoison;
+
+    case crate of
+        HealthCrate: begin
+            FollowGear^.Pos := FollowGear^.Pos + posCaseHealth;
+            AddCaption(GetEventString(eidNewHealthPack), cWhiteColor, capgrpAmmoInfo);
+            end;
+        AmmoCrate: begin
+            FollowGear^.Pos := FollowGear^.Pos + posCaseAmmo;
+            AddCaption(GetEventString(eidNewAmmoPack), cWhiteColor, capgrpAmmoInfo);
+            end;
+        UtilityCrate: begin
+            FollowGear^.Pos := FollowGear^.Pos + posCaseUtility;
+            AddCaption(GetEventString(eidNewUtilityPack), cWhiteColor, capgrpAmmoInfo);
+            end;
+    end;
+
+    if ( (x = 0) and (y = 0) ) then FindPlace(FollowGear, true, 0, LAND_WIDTH);
+
+    SpawnFakeCrateAt := FollowGear;
+end;
+
 procedure SpawnBoxOfSmth;
 var t, aTot, uTot, a, h: LongInt;
     i: TAmmoType;
--- a/hedgewars/uGearsRender.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uGearsRender.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -928,24 +928,25 @@
                            DrawRotated(sprSMineOff, x, y, 0, Gear^.DirAngle)
                        else if Gear^.Health <> 0 then DrawRotated(sprSMineOn, x, y, 0, Gear^.DirAngle)
                        else DrawRotated(sprMineDead, x, y, 0, Gear^.DirAngle);
-            gtCase: case Gear^.Pos of
-                         posCaseAmmo  : begin
-                                        i:= (GameTicks shr 6) mod 64;
-                                        if i > 18 then i:= 0;
-                                        DrawSprite(sprCase, x - 24, y - 24, i);
-                                        end;
-                         posCaseHealth: begin
-                                        i:= ((GameTicks shr 6) + 38) mod 64;
-                                        if i > 13 then i:= 0;
-                                        DrawSprite(sprFAid, x - 24, y - 24, i);
-                                        end;
-                         posCaseUtility: begin
-                                        i:= (GameTicks shr 6) mod 70;
-                                        if i > 23 then i:= 0;
-                                        i:= i mod 12;
-                                        DrawSprite(sprUtility, x - 24, y - 24, i);
-                                        end;
-                         end;
+            gtCase: if ((Gear^.Pos and posCaseAmmo) <> 0) then
+                        begin
+                        i:= (GameTicks shr 6) mod 64;
+                        if i > 18 then i:= 0;
+                        DrawSprite(sprCase, x - 24, y - 24, i);
+                        end
+                    else if ((Gear^.Pos and posCaseHealth) <> 0) then
+                        begin
+                        i:= ((GameTicks shr 6) + 38) mod 64;
+                        if i > 13 then i:= 0;
+                        DrawSprite(sprFAid, x - 24, y - 24, i);
+                        end
+                    else if ((Gear^.Pos and posCaseUtility) <> 0) then
+                        begin
+                        i:= (GameTicks shr 6) mod 70;
+                        if i > 23 then i:= 0;
+                        i:= i mod 12;
+                        DrawSprite(sprUtility, x - 24, y - 24, i);
+                        end;
       gtExplosives: begin
                     if ((Gear^.State and gstDrowning) <> 0) then
                         DrawSprite(sprExplosivesRoll, x - 24, y - 24, 0)
--- a/hedgewars/uLandGraphics.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uLandGraphics.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -29,7 +29,7 @@
 
 function  addBgColor(OldColor, NewColor: LongWord): LongWord;
 function  SweepDirty: boolean;
-function  Despeckle(X, Y: LongInt): boolean;
+function  Despeckle(X, Y: LongInt; gfxOnly: boolean): LongWord;
 procedure Smooth(X, Y: LongInt);
 function  CheckLandValue(X, Y: LongInt; LandFlag: Word): boolean;
 function  DrawExplosion(X, Y, Radius: LongInt): Longword;
@@ -480,10 +480,13 @@
 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;
+    despeckle : Boolean;
 begin  // (-dY, dX) is (dX, dY) rotated by PI/2
 stY:= hwRound(Y);
 stX:= hwRound(X);
 
+despeckle:= HalfWidth > 1;
+
 nx:= X + dY * (HalfWidth + 8);
 ny:= Y - dX * (HalfWidth + 8);
 
@@ -505,10 +508,10 @@
        ((Land[ty, tx] and lfObject) <> 0)) then
         begin
         Land[ty, tx]:= Land[ty, tx] or lfDamaged;
-            if (cReducedQuality and rqBlurryLand) = 0 then
+        if despeckle then LandDirty[ty div 32, tx div 32]:= 1;
+        if (cReducedQuality and rqBlurryLand) = 0 then
             LandPixels[ty, tx]:= cExplosionBorderColor
-            else
-            LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+        else LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
         end
     end;
     nx:= nx - dY;
@@ -531,11 +534,10 @@
        ((Land[ty, tx] and lfObject) <> 0)) then
         begin
         Land[ty, tx]:= Land[ty, tx] or lfDamaged;
-            if (cReducedQuality and rqBlurryLand) = 0 then
-        LandPixels[ty, tx]:= cExplosionBorderColor
-            else
-        LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
-
+        if despeckle then LandDirty[ty div 32, tx div 32]:= 1;
+        if (cReducedQuality and rqBlurryLand) = 0 then
+            LandPixels[ty, tx]:= cExplosionBorderColor
+        else LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
         end
     end;
     X:= nx;
@@ -575,11 +577,10 @@
        ((Land[ty, tx] and lfObject) <> 0)) then
         begin
         Land[ty, tx]:= Land[ty, tx] or lfDamaged;
+        if despeckle then LandDirty[ty div 32, tx div 32]:= 1;
         if (cReducedQuality and rqBlurryLand) = 0 then
-        LandPixels[ty, tx]:= cExplosionBorderColor
-        else
-        LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
-
+            LandPixels[ty, tx]:= cExplosionBorderColor
+        else LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
         end
     end;
     nx:= nx - dY;
@@ -602,10 +603,10 @@
        ((Land[ty, tx] and lfObject) <> 0)) then
         begin
         Land[ty, tx]:= Land[ty, tx] or lfDamaged;
+        if despeckle then LandDirty[ty div 32, tx div 32]:= 1;
         if (cReducedQuality and rqBlurryLand) = 0 then
-        LandPixels[ty, tx]:= cExplosionBorderColor
-        else
-        LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+            LandPixels[ty, tx]:= cExplosionBorderColor
+        else LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
         end
     end;
     nx:= nx - dY;
@@ -699,7 +700,7 @@
 end;
 
 // was experimenting with applying as damage occurred.
-function Despeckle(X, Y: LongInt): boolean;
+function Despeckle(X, Y: LongInt; gfxOnly: boolean): LongWord;
 var nx, ny, i, j, c, xx, yy: LongInt;
     pixelsweep: boolean;
 begin
@@ -714,7 +715,8 @@
    yy:= Y div 2;
    end;
 pixelsweep:= ((Land[Y, X] and $FF00) = 0) and (LandPixels[yy, xx] <> 0);
-if (((Land[Y, X] and lfDamaged) <> 0) and ((Land[Y, X] and lfIndestructible) = 0)) or pixelsweep then
+if not pixelsweep and gfxOnly then exit(0);
+if ((Land[Y, X] > 255) and ((Land[Y, X] and lfIndestructible) = 0)) or pixelsweep then
     begin
     c:= 0;
     for i:= -1 to 1 do
@@ -737,8 +739,8 @@
                     else if Land[ny, nx] > 255 then inc(c);
                     end
                 end;
-
-    if c < 4 then // 0-3 neighbours
+    if (c < 2) or
+       ((c < 4) and (((Land[Y, X] and lfDamaged) <> 0) or pixelsweep)) then
         begin
         if ((Land[Y, X] and lfBasic) <> 0) and not disableLandBack then
             LandPixels[yy, xx]:= LandBackPixel(X, Y)
@@ -746,10 +748,11 @@
             LandPixels[yy, xx]:= 0;
 
         Land[Y, X]:= 0;
-        if not pixelsweep then exit(true);
+        if not pixelsweep then exit(1)  // cannot exit true on pixel sweep, or risk desyncs due to inconsistent resweeps
+        else exit(2)
         end;
     end;
-Despeckle:= false
+Despeckle:= 0
 end;
 
 procedure Smooth(X, Y: LongInt);
@@ -796,8 +799,8 @@
 end;
 
 function SweepDirty: boolean;
-var x, y, xx, yy, ty, tx: LongInt;
-    bRes, updateBlock, resweep, recheck, firstpass: boolean;
+var x, y, xx, yy, ty, tx, d: LongInt;
+    bRes, updateBlock, resweepCol, resweepGfx, gfxOnly, recheck, firstpass: boolean;
 begin
 bRes:= false;
 reCheck:= true;
@@ -812,41 +815,47 @@
             if LandDirty[y, x] <> 0 then
                 begin
                 updateBlock:= false;
-                resweep:= true;
+                resweepCol:= true;
+                resweepGfx:= true;
                 firstpass:= true;
                 ty:= y * 32;
                 tx:= x * 32;
-                while(resweep) do
+                while(resweepCol or resweepGfx) do
                     begin
-                    resweep:= false;
+                    gfxOnly:= resweepGfx and not resweepCol;
+                    resweepCol:= false;
+                    resweepGfx:= false;
                     for yy:= ty to ty + 31 do
                         for xx:= tx to tx + 31 do
                             begin
-                            if Despeckle(xx, yy) then
+                            d:= Despeckle(xx, yy, gfxOnly);
+                            if d <> 0 then
                                 begin
                                 bRes:= true;
                                 updateBlock:= true;
-                                resweep:= true;
-                                if (yy = ty) and (y > 0) then
-                                    begin
-                                    LandDirty[y-1, x]:= 1;
-                                    recheck:= true;
-                                    end
-                                else if (yy = ty+31) and (y < LAND_HEIGHT div 32 - 1) then
-                                    begin
-                                    LandDirty[y+1, x]:= 1;
-                                    recheck:= true;
-                                    end;
-                                if (xx = tx) and (x > 0) then
-                                    begin
-                                    LandDirty[y, x-1]:= 1;
-                                    recheck:= true;
-                                    end
-                                else if (xx = tx+31) and (x < LAND_WIDTH div 32 - 1) then
-                                    begin
-                                    LandDirty[y, x+1]:= 1;
-                                    recheck:= true;
-                                    end
+                                if d = 1 then resweepCol:= true
+                                else resweepGfx:= true;
+                                if d = 1 then
+                                    if (yy = ty) and (y > 0) then
+                                        begin
+                                        LandDirty[y-1, x]:= 1;
+                                        recheck:= true;
+                                        end
+                                    else if (yy = ty+31) and (y < LAND_HEIGHT div 32 - 1) then
+                                        begin
+                                        LandDirty[y+1, x]:= 1;
+                                        recheck:= true;
+                                        end;
+                                    if (xx = tx) and (x > 0) then
+                                        begin
+                                        LandDirty[y, x-1]:= 1;
+                                        recheck:= true;
+                                        end
+                                    else if (xx = tx+31) and (x < LAND_WIDTH div 32 - 1) then
+                                        begin
+                                        LandDirty[y, x+1]:= 1;
+                                        recheck:= true;
+                                        end
                                 end;
                             if firstpass then Smooth(xx,yy);
                             end;
--- a/hedgewars/uScript.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uScript.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -43,6 +43,7 @@
 function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
 function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
 function ScriptExists(fname : shortstring) : boolean;
+function ParseCommandOverride(key, value : shortstring) : shortstring;
 
 procedure initModule;
 procedure freeModule;
@@ -223,16 +224,64 @@
     lc_campaignunlock:= 0;
 end;
 
+function lc_spawnfakehealthcrate(L: Plua_State) : LongInt; Cdecl;
+var gear: PGear;
+begin
+    if lua_gettop(L) <> 4 then begin
+        LuaError('Lua: Wrong number of parameters passed to SpawnFakeHealthCrate!');
+        lua_pushnil(L);
+    end
+    else begin
+        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
+            HealthCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
+        lua_pushinteger(L, gear^.uid);
+    end;
+    lc_spawnfakehealthcrate := 1;        
+end;
+
+function lc_spawnfakeammocrate(L: PLua_State): LongInt; Cdecl;
+var gear: PGear;
+begin
+    if lua_gettop(L) <> 4 then begin
+        LuaError('Lua: Wrong number of parameters passed to SpawnFakeAmmoCrate!');
+        lua_pushnil(L);
+    end
+    else begin
+        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
+            AmmoCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
+        lua_pushinteger(L, gear^.uid);
+    end;
+    lc_spawnfakeammocrate := 1;
+end;
+
+function lc_spawnfakeutilitycrate(L: PLua_State): LongInt; Cdecl;
+var gear: PGear;
+begin
+    if lua_gettop(L) <> 4 then begin
+        LuaError('Lua: Wrong number of parameters passed to SpawnFakeUtilityCrate!');
+        lua_pushnil(L);
+    end
+    else begin  
+        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
+            UtilityCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
+        lua_pushinteger(L, gear^.uid);
+    end;
+    lc_spawnfakeutilitycrate := 1;
+end;
+
 function lc_spawnhealthcrate(L: Plua_State) : LongInt; Cdecl;
 var gear: PGear;
+var health: LongInt;
 begin
-    if lua_gettop(L) <> 2 then begin
+    if (lua_gettop(L) < 2) or (lua_gettop(L) > 3) then begin
         LuaError('Lua: Wrong number of parameters passed to SpawnHealthCrate!');
         lua_pushnil(L);
     end
     else begin
+        if lua_gettop(L) = 3 then health:= lua_tointeger(L, 3)
+        else health:= cHealthCaseAmount;
         gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
-            HealthCrate, 0);
+            HealthCrate, health);
         lua_pushinteger(L, gear^.uid);
     end;
     lc_spawnhealthcrate := 1;        
@@ -1257,7 +1306,7 @@
         cWindSpeedf:= SignAs(cWindSpeed,cWindSpeed).QWordValue / SignAs(_1,_1).QWordValue;
         if cWindSpeed.isNegative then
             CWindSpeedf := -cWindSpeedf;
-        AddGear(0, 0, gtATSmoothWindCh, 0, _0, _0, 1)^.Tag:= hwRound(cWindSpeed * 72 / cMaxWindSpeed);
+        AddVisualGear(0, 0, vgtSmoothWindBar);
         end;
     lc_setwind:= 0
 end;
@@ -1540,6 +1589,25 @@
 GetGlobals;
 end;
 
+function ParseCommandOverride(key, value : shortstring) : shortstring;
+begin
+ParseCommandOverride:= value;
+if not ScriptExists('ParseCommandOverride') then exit;
+lua_getglobal(luaState, Str2PChar('ParseCommandOverride'));
+lua_pushstring(luaState, Str2PChar(key));
+lua_pushstring(luaState, Str2PChar(value));
+if lua_pcall(luaState, 2, 1, 0) <> 0 then
+    begin
+    LuaError('Lua: Error while calling ParseCommandOverride: ' + lua_tostring(luaState, -1));
+    lua_pop(luaState, 1)
+    end
+else
+    begin
+    ParseCommandOverride:= lua_tostring(luaState, -1);
+    lua_pop(luaState, 1)
+    end;
+end;
+
 function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
 begin
 ScriptCall:= ScriptCall(fname, par1, 0, 0, 0)
@@ -1621,14 +1689,23 @@
 end;
 
 procedure ScriptApplyAmmoStore;
-var i : LongInt;
+var i, j : LongInt;
 begin
 SetAmmoLoadout(ScriptAmmoLoadout);
 SetAmmoProbability(ScriptAmmoProbability);
 SetAmmoDelay(ScriptAmmoDelay);
 SetAmmoReinforcement(ScriptAmmoReinforcement);
-for i:= 0 to Pred(TeamsCount) do
-    AddAmmoStore;
+
+if (GameFlags and gfSharedAmmo) <> 0 then
+    for i:= 0 to Pred(ClansCount) do
+        AddAmmoStore
+else if (GameFlags and gfPerHogAmmo) <> 0 then
+    for i:= 0 to Pred(TeamsCount) do
+        for j:= 0 to Pred(TeamsArray[i]^.HedgehogsNumber) do
+            AddAmmoStore
+else 
+    for i:= 0 to Pred(TeamsCount) do
+        AddAmmoStore
 end;
 
 procedure initModule;
@@ -1740,6 +1817,9 @@
 lua_register(luaState, 'SpawnHealthCrate', @lc_spawnhealthcrate);
 lua_register(luaState, 'SpawnAmmoCrate', @lc_spawnammocrate);
 lua_register(luaState, 'SpawnUtilityCrate', @lc_spawnutilitycrate);
+lua_register(luaState, 'SpawnFakeHealthCrate', @lc_spawnfakehealthcrate);
+lua_register(luaState, 'SpawnFakeAmmoCrate', @lc_spawnfakeammocrate);
+lua_register(luaState, 'SpawnFakeUtilityCrate', @lc_spawnfakeutilitycrate);
 lua_register(luaState, 'WriteLnToConsole', @lc_writelntoconsole);
 lua_register(luaState, 'GetGearType', @lc_getgeartype);
 lua_register(luaState, 'EndGame', @lc_endgame);
--- a/hedgewars/uTeams.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uTeams.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -179,8 +179,7 @@
 end;
 
 procedure AfterSwitchHedgehog;
-var g: PGear;
-    i, t: LongInt;
+var i, t: LongInt;
     CurWeapon: PAmmo;
 
 begin
@@ -229,8 +228,7 @@
     cWindSpeedf:= SignAs(cWindSpeed,cWindSpeed).QWordValue / SignAs(_1,_1).QWordValue;
     if cWindSpeed.isNegative then
         CWindSpeedf := -cWindSpeedf;
-    g:= AddGear(0, 0, gtATSmoothWindCh, 0, _0, _0, 1);
-    g^.Tag:= hwRound(cWindSpeed * 72 / cMaxWindSpeed);
+    AddVisualGear(0, 0, vgtSmoothWindBar);
     AddFileLog('Wind = '+FloatToStr(cWindSpeed));
     end;
 
--- a/hedgewars/uTypes.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uTypes.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -89,15 +89,15 @@
     TGearType = (gtGrenade, gtHedgehog, gtShell, gtGrave, gtBee, // 4
             gtShotgunShot, gtPickHammer, gtRope, gtMine, gtCase, // 9
             gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 14
-            gtFlame, gtFirePunch, gtATStartGame, gtATSmoothWindCh, // 18
-            gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 23
-            gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 28
-            gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 34
-            gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40
-            gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 45
-            gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51
-            gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56
-            gtNapalmBomb, gtSnowball, gtFlake, gtStructure, gtLandGun, gtTardis); // 62
+            gtFlame, gtFirePunch, gtATStartGame, // 17
+            gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 22
+            gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 27
+            gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 33
+            gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 39
+            gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 44
+            gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 50
+            gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 55
+            gtNapalmBomb, gtSnowball, gtFlake, gtStructure, gtLandGun, gtTardis); // 61
 
     // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
     TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
@@ -105,7 +105,8 @@
             vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtHealth, vgtShell,
             vgtDust, vgtSplash, vgtDroplet, vgtSmokeRing, vgtBeeTrace, vgtEgg,
             vgtFeather, vgtHealthTag, vgtSmokeTrace, vgtEvilTrace, vgtExplosion,
-            vgtBigExplosion, vgtChunk, vgtNote, vgtLineTrail, vgtBulletHit, vgtCircle);
+            vgtBigExplosion, vgtChunk, vgtNote, vgtLineTrail, vgtBulletHit, vgtCircle,
+            vgtSmoothWindBar);
 
     TGearsType = set of TGearType;
 
@@ -183,6 +184,7 @@
             Pos: LongWord;
             AmmoType: TAmmoType;
             AttackVoice: TSound;
+            Bounciness: LongWord;
             end;
 
     TVertex2f = record
@@ -273,6 +275,7 @@
         Tex: PTexture;
         alpha, scale: GLfloat;
         Hedgehog: PHedgehog;
+        Tag: LongInt;
         Text: shortstring;
         Tint: Longword;
         uid: Longword;
@@ -390,7 +393,8 @@
 
     TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
             sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
-            sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady);
+            sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady, 
+            sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce);
 
     // Events that are important for the course of the game or at least interesting for other reasons
     TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw,
--- a/hedgewars/uVariables.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uVariables.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -761,7 +761,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amNothing;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -778,13 +779,14 @@
             NameTex: nil;
             Probability: 0;
             NumberInCase: 1;
-            Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
+            Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse or ammoprop_SetBounce;
                 Count: AMMO_INFINITE;
                 NumPerTurn: 0;
                 Timer: 3000;
                 Pos: 0;
                 AmmoType: amGrenade;
-                AttackVoice: sndCover);
+                AttackVoice: sndCover;
+                Bounciness: 1000);
             Slot: 1;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -801,13 +803,14 @@
             NameTex: nil;
             Probability: 100;
             NumberInCase: 3;
-            Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
+            Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse or ammoprop_SetBounce;
                 Count: 5;
                 NumPerTurn: 0;
                 Timer: 3000;
                 Pos: 0;
                 AmmoType: amClusterBomb;
-                AttackVoice: sndCover);
+                AttackVoice: sndCover;
+                Bounciness: 1000);
             Slot: 1;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -830,7 +833,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amBazooka;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -853,15 +857,16 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amBee;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 3000;
             minAngle: 0;
             maxAngle: 0;
             isDamaging: true;
             SkipTurns: 0;
-            PosCount: 1;
-            PosSprite: sprWater;
+            PosCount: 2;
+            PosSprite: sprTargetBee;
             ejectX: 0; //16;
             ejectY: 0),
 
@@ -876,7 +881,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amShotgun;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 2;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -899,7 +905,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amPickHammer;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 6;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -922,7 +929,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amSkip;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 9;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -949,7 +957,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amRope;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 7;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -966,13 +975,14 @@
             NameTex: nil;
             Probability: 100;
             NumberInCase: 1;
-            Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_AttackInMove or ammoprop_DontHold or ammoprop_AltUse;
+            Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_AttackInMove or ammoprop_DontHold or ammoprop_AltUse or ammoprop_SetBounce;
                 Count: 2;
                 NumPerTurn: 0;
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amMine;
-                AttackVoice: sndLaugh);
+                AttackVoice: sndLaugh;
+                Bounciness: 1000);
             Slot: 4;
             TimeAfterTurn: 5000;
             minAngle: 0;
@@ -995,7 +1005,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amDEagle;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 2;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1018,7 +1029,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amDynamite;
-                AttackVoice: sndLaugh);
+                AttackVoice: sndLaugh;
+                Bounciness: 1000);
             Slot: 4;
             TimeAfterTurn: 5000;
             minAngle: 0;
@@ -1041,7 +1053,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amFirePunch;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 3;
             TimeAfterTurn: 3000;
             MinAngle: 0;
@@ -1064,7 +1077,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amWhip;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 3;
             TimeAfterTurn: 3000;
             MinAngle: 0;
@@ -1087,7 +1101,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amBaseballBat;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 3;
             TimeAfterTurn: 5000;
             minAngle: 0;
@@ -1116,7 +1131,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amParachute;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 7;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1143,7 +1159,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amAirAttack;
-                AttackVoice: sndIncoming);
+                AttackVoice: sndIncoming;
+                Bounciness: 1000);
             Slot: 5;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1164,13 +1181,15 @@
                             ammoprop_NeedTarget or
                             ammoprop_AttackingPut or
                             ammoprop_DontHold or
-                            ammoprop_NotBorder;
+                            ammoprop_NotBorder or
+                            ammoprop_SetBounce;
                 Count: 1;
                 NumPerTurn: 0;
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amMineStrike;
-                AttackVoice: sndIncoming);
+                AttackVoice: sndIncoming;
+                Bounciness: 1000);
             Slot: 5;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1193,7 +1212,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amBlowTorch;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 6;
             TimeAfterTurn: 3000;
             minAngle: 768;
@@ -1220,7 +1240,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amGirder;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 6;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1248,7 +1269,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amTeleport;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 7;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1275,7 +1297,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amSwitch;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 9;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1298,7 +1321,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amMortar;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1321,7 +1345,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amKamikaze;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 3;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1344,7 +1369,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amCake;
-                AttackVoice: sndLaugh);
+                AttackVoice: sndLaugh;
+                Bounciness: 1000);
             Slot: 4;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1367,7 +1393,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amSeduction;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 3;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1390,7 +1417,8 @@
                 Timer: 3000;
                 Pos: 0;
                 AmmoType: amWatermelon;
-                AttackVoice: sndMelon);
+                AttackVoice: sndMelon;
+                Bounciness: 1000);
             Slot: 1;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1413,7 +1441,8 @@
                 Timer: 5000;
                 Pos: 0;
                 AmmoType: amHellishBomb;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 1;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1440,7 +1469,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amNapalm;
-                AttackVoice: sndIncoming);
+                AttackVoice: sndIncoming;
+                Bounciness: 1000);
             Slot: 5;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1463,7 +1493,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amDrill;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1486,7 +1517,8 @@
                 Timer: 5001;
                 Pos: 0;
                 AmmoType: amBallgun;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 4;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1511,7 +1543,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amRCPlane;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 4;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1539,7 +1572,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amLowGravity;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 9;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1567,7 +1601,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amExtraDamage;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 9;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1595,7 +1630,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amInvulnerable;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 8;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1623,7 +1659,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amExtraTime;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 9;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1651,7 +1688,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amLaserSight;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 8;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1679,7 +1717,8 @@
                     Timer: 0;
                     Pos: 0;
                     AmmoType: amVampiric;
-                    AttackVoice: sndNone);
+                    AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 8;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1702,7 +1741,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amSniperRifle;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 2;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1731,7 +1771,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amJetpack;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 7;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1754,7 +1795,8 @@
                 Timer: 3000;
                 Pos: 0;
                 AmmoType: amMolotov;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 1;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1779,7 +1821,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amBirdy;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 7;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1805,7 +1848,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amPortalGun;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 6;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1832,7 +1876,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amPiano;
-                AttackVoice: sndIncoming);
+                AttackVoice: sndIncoming;
+                Bounciness: 1000);
             Slot: 5;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1849,13 +1894,14 @@
             NameTex: nil;
             Probability: 0;
             NumberInCase: 1;
-            Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
+            Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse or ammoprop_SetBounce;
                 Count: AMMO_INFINITE;
                 NumPerTurn: 0;
                 Timer: 3000;
                 Pos: 0;
                 AmmoType: amGasBomb;
-                AttackVoice: sndCover);
+                AttackVoice: sndCover;
+                Bounciness: 1000);
             Slot: 1;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -1878,7 +1924,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amSineGun;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 2;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1901,7 +1948,8 @@
                 Timer: 5001;
                 Pos: 0;
                 AmmoType: amFlamethrower;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 2;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -1924,7 +1972,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amSMine;
-                AttackVoice: sndLaugh);
+                AttackVoice: sndLaugh;
+                Bounciness: 1000);
             Slot: 4;
             TimeAfterTurn: 5000;
             minAngle: 0;
@@ -1947,7 +1996,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amHammer;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 3;
             TimeAfterTurn: 1000;
             MinAngle: 0;
@@ -1972,7 +2022,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amResurrector;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 8;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -2000,7 +2051,8 @@
                 Timer: 5000;
                 Pos: 0;
                 AmmoType: amDrillStrike;
-                AttackVoice: sndIncoming);
+                AttackVoice: sndIncoming;
+                Bounciness: 1000);
             Slot: 5;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -2025,7 +2077,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amSnowball;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 3000;
             minAngle: 0;
@@ -2051,7 +2104,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amTardis;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 7;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -2077,7 +2131,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amStructure;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 6;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -2101,7 +2156,8 @@
                 Timer: 5001;
                 Pos: 0;
                 AmmoType: amLandGun;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 2;
             TimeAfterTurn: 0;
             minAngle: 0;
@@ -2114,6 +2170,71 @@
             ejectY: -3)
         );
 
+    GearKindAmmoTypeMap : array [TGearType] of TAmmoType = (    
+(*        gtGrenade *)   amGrenade
+(*       gtHedgehog *) , amNothing
+(*          gtShell *) , amBazooka
+(*          gtGrave *) , amNothing
+(*            gtBee *) , amBee
+(*    gtShotgunShot *) , amShotgun
+(*     gtPickHammer *) , amPickHammer
+(*           gtRope *) , amRope
+(*           gtMine *) , amNothing
+(*           gtCase *) , amNothing
+(*     gtDEagleShot *) , amDEagle
+(*       gtDynamite *) , amDynamite
+(*    gtClusterBomb *) , amClusterBomb
+(*        gtCluster *) , amClusterBomb
+(*         gtShover *) , amBaseballBat  // Shover is only used for baseball bat right now
+(*          gtFlame *) , amNothing
+(*      gtFirePunch *) , amFirePunch
+(*    gtATStartGame *) , amNothing
+(*   gtATFinishGame *) , amNothing
+(*      gtParachute *) , amParachute
+(*      gtAirAttack *) , amAirAttack
+(*        gtAirBomb *) , amAirAttack
+(*      gtBlowTorch *) , amBlowTorch
+(*         gtGirder *) , amGirder
+(*       gtTeleport *) , amTeleport
+(*       gtSwitcher *) , amSwitch
+(*         gtTarget *) , amNothing
+(*         gtMortar *) , amMortar
+(*           gtWhip *) , amWhip
+(*       gtKamikaze *) , amKamikaze
+(*           gtCake *) , amCake
+(*      gtSeduction *) , amSeduction
+(*     gtWatermelon *) , amWatermelon
+(*     gtMelonPiece *) , amWatermelon
+(*    gtHellishBomb *) , amHellishBomb
+(*        gtWaterUp *) , amNothing
+(*          gtDrill *) , amDrill
+(*        gtBallGun *) , amBallgun
+(*           gtBall *) , amBallgun
+(*        gtRCPlane *) , amRCPlane
+(*gtSniperRifleShot *) , amSniperRifle
+(*        gtJetpack *) , amJetpack
+(*        gtMolotov *) , amMolotov
+(*     gtExplosives *) , amNothing
+(*          gtBirdy *) , amBirdy
+(*            gtEgg *) , amBirdy
+(*         gtPortal *) , amPortalGun
+(*          gtPiano *) , amPiano
+(*        gtGasBomb *) , amGasBomb
+(*    gtSineGunShot *) , amSineGun
+(*   gtFlamethrower *) , amFlamethrower
+(*          gtSMine *) , amSMine
+(*    gtPoisonCloud *) , amNothing
+(*         gtHammer *) , amHammer
+(*      gtHammerHit *) , amHammer
+(*    gtResurrector *) , amResurrector
+(*    gtPoisonCloud *) , amNothing
+(*       gtSnowball *) , amSnowball
+(*          gtFlake *) , amNothing
+(*      gtStructure *) , amStructure  // TODO - This will undoubtedly change once there is more than one structure
+(*        gtLandGun *) , amLandGun
+(*         gtTardis *) , amTardis
+    );
+
 var
     Land: TCollisionArray;
     LandPixels: TLandArray;
--- a/hedgewars/uVisualGears.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uVisualGears.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -108,7 +108,8 @@
             @doStepNote,
             @doStepLineTrail,
             @doStepBulletHit,
-            @doStepCircle
+            @doStepCircle,
+            @doStepSmoothWindBar
         );
 
 function  AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord = 0; Critical: Boolean = false): PVisualGear;
@@ -134,7 +135,8 @@
     vgtExplosion,
     vgtSmokeTrace,
     vgtEvilTrace,
-    vgtNote]) then
+    vgtNote,
+    vgtSmoothWindBar]) then
     begin
       AddVisualGear:= nil;
       exit
@@ -327,6 +329,7 @@
                 Frame:= 7;
                 Angle := 0;
                 end;
+vgtSmoothWindBar: Tag:= hwRound(cWindSpeed * 72 / cMaxWindSpeed);
         end;
 
 if State <> 0 then gear^.State:= State;
--- a/hedgewars/uWorld.pas	Tue Jun 28 20:42:04 2011 +0000
+++ b/hedgewars/uWorld.pas	Thu Jul 07 08:09:12 2011 -0400
@@ -749,7 +749,7 @@
     tdx, tdy: Double;
     s: string[15];
     highlight: Boolean;
-    offsetX, offsetY, screenBottom: LongInt;
+    smallScreenOffset, offsetX, offsetY, screenBottom: LongInt;
     VertexBuffer: array [0..3] of TVertex2f;
 begin
     if (cReducedQuality and rqNoBackground) = 0 then
@@ -865,11 +865,11 @@
     begin
     with PHedgehog(CurrentHedgehog)^ do
         begin
-        if (CurAmmoType = amBee) then
+        if CurAmmoType = amBee then
             DrawRotatedF(sprTargetBee, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360)
         else
-            DrawRotatedF(sprTargetP, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360);
-        end;
+            DrawRotatedF(sprTargetP, TargetPoint.X + WorldDx, TargetPoint.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360)
+        end
     end;
 {$WARNINGS ON}
 
@@ -907,6 +907,13 @@
 DrawCaptions;
 
 // Teams Healths
+if TeamsCount * 20 > cScreenHeight div 7 then  // take up less screen on small displays
+    begin
+    SetScale(1.5);
+    smallScreenOffset:= cScreenHeight div 6;
+    if TeamsCount * 20 > cScreenHeight div 5 then Tint($FF,$FF,$FF,$80);
+    end
+else smallScreenOffset:= 0;
 for t:= 0 to Pred(TeamsCount) do
    with TeamsArray[t]^ do
       begin
@@ -916,26 +923,26 @@
          Tint(Clan^.Color shl 8 or $FF);
 
       // draw name
-      DrawTexture(-NameTagTex^.w - 16, cScreenHeight + DrawHealthY, NameTagTex);
+      DrawTexture(-NameTagTex^.w - 16, cScreenHeight + DrawHealthY + smallScreenOffset, NameTagTex);
 
       // draw flag
-      DrawTexture(-14, cScreenHeight + DrawHealthY, FlagTex);
+      DrawTexture(-14, cScreenHeight + DrawHealthY + smallScreenOffset, FlagTex);
 
       // draw health bar
       r.x:= 0;
       r.y:= 0;
       r.w:= 2 + TeamHealthBarWidth;
       r.h:= HealthTex^.h;
-      DrawFromRect(14, cScreenHeight + DrawHealthY, @r, HealthTex);
+      DrawFromRect(14, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex);
 
       // draw health bars right border
       inc(r.x, cTeamHealthWidth + 2);
       r.w:= 3;
-      DrawFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY, @r, HealthTex);
+      DrawFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex);
 
       // draw ai kill counter for gfAISurvival
       if (GameFlags and gfAISurvival) <> 0 then begin
-          DrawTexture(TeamHealthBarWidth + 22, cScreenHeight + DrawHealthY,
+          DrawTexture(TeamHealthBarWidth + 22, cScreenHeight + DrawHealthY + smallScreenOffset,
               AIKillsTex);
       end;
 
@@ -943,24 +950,30 @@
       // this approach should be faster than drawing all borders one by one tinted or not
       if highlight then
          begin
-         Tint($FF, $FF, $FF, $FF);
+         if TeamsCount * 20 > cScreenHeight div 5 then Tint($FF,$FF,$FF,$80)
+         else Tint($FF, $FF, $FF, $FF);
 
          // draw name
          r.x:= 2;
          r.y:= 2;
          r.w:= NameTagTex^.w - 4;
          r.h:= NameTagTex^.h - 4;
-         DrawFromRect(-NameTagTex^.w - 14, cScreenHeight + DrawHealthY + 2, @r, NameTagTex);
+         DrawFromRect(-NameTagTex^.w - 14, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, NameTagTex);
          // draw flag
          r.w:= 22;
          r.h:= 15;
-         DrawFromRect(-12, cScreenHeight + DrawHealthY + 2, @r, FlagTex);
+         DrawFromRect(-12, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, FlagTex);
          // draw health bar
          r.w:= TeamHealthBarWidth + 1;
          r.h:= HealthTex^.h - 4;
-         DrawFromRect(16, cScreenHeight + DrawHealthY + 2, @r, HealthTex);
+         DrawFromRect(16, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex);
          end;
       end;
+if smallScreenOffset <> 0 then
+    begin
+    SetScale(zoom);
+    if TeamsCount * 20 > cScreenHeight div 5 then Tint($FF,$FF,$FF,$FF);
+    end;
 
 // Lag alert
 if isInLag then DrawSprite(sprLag, 32 - (cScreenWidth shr 1), 32, (RealTicks shr 7) mod 12);
@@ -1144,6 +1157,8 @@
      with CurrentHedgehog^ do
        if (Gear <> nil) and ((Gear^.State and gstHHChooseTarget) <> 0) then
          begin
+         if CurAmmoType = amNapalm then
+           DrawLine(-3000, topY-300, 7000, topY-300, 3.0, (Team^.Clan^.Color shr 16), (Team^.Clan^.Color shr 8) and $FF, Team^.Clan^.Color and $FF, $FF);
          i:= GetAmmoEntry(CurrentHedgehog^)^.Pos;
          with Ammoz[CurAmmoType] do
            if PosCount > 1 then
--- a/misc/hedgewars.desktop	Tue Jun 28 20:42:04 2011 +0000
+++ b/misc/hedgewars.desktop	Thu Jul 07 08:09:12 2011 -0400
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misc/theme_editor.html	Thu Jul 07 08:09:12 2011 -0400
@@ -0,0 +1,159 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Hedgewars Theme Editor</title>
+        <script type="text/javascript">
+            var sky, clouds, horizont, water, land, border;
+            var skyColor, waterTopColor, waterBottomColor;
+            var elements = 7;
+            var landArray;
+            
+            function landFunction(x){
+                return 384 - 192 * Math.sin(x * Math.PI/512);
+            }
+            
+            function tryToDraw(){
+                if (--elements <= 0) {
+                    draw();
+                }
+            }
+        
+            function load(){
+                    var canvas = document.getElementById('preview');
+                    if (canvas.getContext){
+                        var ctx = canvas.getContext('2d');
+                    
+                        ctx.fillStyle = '#0b294b';
+                        ctx.fillRect(0, 0, 512, 384);
+                        
+                        ctx.font = "40pt Arial";
+                        ctx.fillStyle = '#2b7bd5';
+                        ctx.fillText('Loading Images...', 32, 212);
+                    }
+                    
+                    sky = new Image();
+                    sky.onload = tryToDraw;
+                    sky.src = 'http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Themes/Nature/Sky.png';
+          
+                    clouds = new Image();
+                    clouds.onload = tryToDraw;
+                    clouds.src = 'http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Graphics/Clouds.png';
+          
+                    horizont = new Image();
+                    horizont.onload = tryToDraw;
+                    horizont.src = 'http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Themes/Nature/horizont.png';
+          
+                    land = new Image();
+                    land.onload = tryToDraw;
+                    land.src = 'http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Themes/Nature/LandTex.png';
+          
+                    border = new Image();
+                    border.onload = tryToDraw;
+                    border.src = 'http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Themes/Nature/Border.png';
+          
+                    water = new Image();
+                    water.onload = tryToDraw;
+                    water.src = 'http://hedgewars.googlecode.com/hg/share/hedgewars/Data/Graphics/BlueWater.png';
+                    
+                    landArray = new Array(512);
+                    for (var x = 0; x < landArray.length; x++)
+                        landArray[x] = landFunction(x);
+                    
+                    skyColor = '#131252';
+                    document.getElementById('skyColor').value = skyColor;
+                    
+                    waterTopColor = '#555C9D';
+                    document.getElementById('waterTopColor').value = waterTopColor;
+                    
+                    waterBottomColor = '#343C7D';
+                    document.getElementById('waterBottomColor').value = waterBottomColor;
+                    
+                    tryToDraw();
+            }
+            
+            function draw(){
+                var canvas = document.getElementById('preview');
+                if (canvas.getContext){
+                    var ctx = canvas.getContext('2d');
+                    
+                    ctx.fillStyle = skyColor;
+                    ctx.fillRect(0, 0, 512, 384);
+                    
+                    ctx.drawImage(sky, 0, 64, 512, 256);
+          
+                    for (var i = 0; i < 4; i++)
+                        ctx.drawImage(clouds, 0, i * 128, 256, 128, i * 128, 64, 128, 64);
+          
+                    ctx.drawImage(horizont, 0, 192, 512, 128);
+                    
+                    ctx.save();
+                    
+                    ctx.beginPath();
+                    ctx.moveTo(0, 384);
+                    for (var x = 0; x < landArray.length; x++)
+                        ctx.lineTo(x, landArray[x]);
+                    ctx.clip();
+                    
+                    for (var i = 0; i < 2; i++)
+                    	for (var k = 0; k < 2; k++)
+                    		ctx.drawImage(land, i * 320, k * 240, 320, 240);
+                    
+                    ctx.restore();
+                    
+                    var k = 0;
+                    for (var x = 0; x < landArray.length; x++) {
+                        if (++k == 64)
+                            k = 0;
+                        ctx.drawImage(border, k, 0, 2, 16, x, landArray[x] - 4, 1, 8);
+                    }
+                        
+                    
+                    var gradient = ctx.createLinearGradient(0, 320, 0, 384);
+                    gradient.addColorStop(0, waterTopColor);
+                    gradient.addColorStop(1, waterBottomColor);
+                    ctx.fillStyle = gradient;
+                    ctx.fillRect(0, 320, 512, 384);
+          
+                    for (var i = 0; i < 8; i++)
+                        ctx.drawImage(water, i * 64, 308, 64, 24);
+                }
+            }
+        </script>
+        <style type="text/css">
+            canvas { border: 1px solid black; }
+        </style>
+    </head>
+    <body onload="load();">
+        <h1>Hedgewars Theme editor</h1>
+        <canvas id="preview" width="512" height="384"></canvas><br>
+        <table>
+        <tr><td>Sky:</td><td>
+        <input id="sky" type="file" accept="image/png" onchange="sky.src = window.URL.createObjectURL(this.files[0])"></input>
+        </td></tr>
+        <tr><td>Sky Color:</td><td>
+        <input id="skyColor" type="color" onchange="skyColor = this.value; draw()"></input>
+        </td></tr>
+        <tr><td>Clouds:</td><td>
+        <input id="clouds" type="file" accept="image/png" onchange="clouds.src = window.URL.createObjectURL(this.files[0])"></input>
+        </td></tr>
+        <tr><td>Horizont:</td><td>
+        <input id="horizont" type="file" accept="image/png" onchange="horizont.src = window.URL.createObjectURL(this.files[0])"></input>
+        </td></tr>
+        <tr><td>Land:</td><td>
+        <input id="land" type="file" accept="image/png" onchange="land.src = window.URL.createObjectURL(this.files[0])"></input>
+        </td></tr>
+        <tr><td>Border:</td><td>
+        <input id="border" type="file" accept="image/png" onchange="border.src = window.URL.createObjectURL(this.files[0])"></input>
+        </td></tr>
+        <tr><td>Water:</td><td>
+        <input id="water" type="file" accept="image/png" onchange="water.src = window.URL.createObjectURL(this.files[0])"></input>
+        </td></tr>
+        <tr><td>Water Top Color:</td><td>
+        <input id="waterTopColor" type="color" onchange="waterTopColor = this.value; draw()"></input>
+        </td></tr>
+        <tr><td>Water Bottom Color:</td><td>
+        <input id="waterBottomColor" type="color" onchange="waterBottomColor = this.value; draw()"></input>
+        </td></tr>
+        </table>
+    </body>
+</html>
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m	Tue Jun 28 20:42:04 2011 +0000
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m	Thu Jul 07 08:09:12 2011 -0400
@@ -96,9 +96,9 @@
     switch (type) {
         default: //default
             qt = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_QT length:ammolineSize encoding:NSUTF8StringEncoding];
-            prob = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_QT length:ammolineSize encoding:NSUTF8StringEncoding];
-            delay = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_QT length:ammolineSize encoding:NSUTF8StringEncoding];
-            crate = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_QT length:ammolineSize encoding:NSUTF8StringEncoding];
+            prob = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
+            delay = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
+            crate = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
             break;
         case 1: //crazy
             qt = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_QT length:ammolineSize encoding:NSUTF8StringEncoding];
--- a/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m	Tue Jun 28 20:42:04 2011 +0000
+++ b/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m	Thu Jul 07 08:09:12 2011 -0400
@@ -285,6 +285,11 @@
                 NSString *saveHeader = @"TS";
                 [self dumpRawData:[saveHeader UTF8String] ofSize:[saveHeader length]];
 
+                // lua script (if set)
+                NSString *script = [gameConfig objectForKey:@"mission_command"];
+                if ([script length] != 0)
+                    [self sendToEngine:script];
+
                 // seed info
                 [self sendToEngine:[gameConfig objectForKey:@"seed_command"]];
 
@@ -298,11 +303,6 @@
                 if ([staticMap length] != 0)
                     [self sendToEngine:staticMap];
 
-                // lua script (if set)
-                NSString *script = [gameConfig objectForKey:@"mission_command"];
-                if ([script length] != 0)
-                    [self sendToEngine:script];
-
                 // theme info
                 [self sendToEngine:[gameConfig objectForKey:@"theme_command"]];
 
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m	Tue Jun 28 20:42:04 2011 +0000
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m	Thu Jul 07 08:09:12 2011 -0400
@@ -183,8 +183,7 @@
 
     // release the network manager and the savepath as they are not needed anymore
     releaseAndNil(self.engineProtocol);
-    if (self.gameType != gtSave)
-        releaseAndNil(self.savePath);
+    releaseAndNil(self.savePath);
 
     if ([[userDefaults objectForKey:@"music"] boolValue])
         [HedgewarsAppDelegate playBackgroundMusic];
@@ -210,7 +209,7 @@
 // set up variables for a save game
 -(void) startSaveGame:(NSString *)atPath {
     self.gameType = gtSave;
-    self.savePath = atPath;
+    self.savePath = [atPath retain];
 
     [self.engineProtocol spawnThread:self.savePath];
     [self prepareEngineLaunch];
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Tue Jun 28 20:42:04 2011 +0000
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Thu Jul 07 08:09:12 2011 -0400
@@ -62,6 +62,9 @@
             [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
             theOtherSwitch = (UISwitch *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]].accessoryView;
             [theOtherSwitch setOn:NO animated:YES];
+
+            if (theOtherSwitch.on)
+                [HedgewarsAppDelegate pauseBackgroundMusic];
             break;
         case 20:    //musicSwitch
             // if switch above (sound) is off, never turn on
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Tue Jun 28 20:42:04 2011 +0000
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Thu Jul 07 08:09:12 2011 -0400
@@ -701,7 +701,6 @@
 		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
-				612CABAA1391CE68005E9596 /* AVFoundation.framework */,
 				619599BA1364E65900B429B6 /* Freetype.xcodeproj */,
 				6195993F1364C82B00B429B6 /* Lua.xcodeproj */,
 				619598181364BCD200B429B6 /* Tremor.xcodeproj */,
@@ -711,6 +710,7 @@
 				618E27B612A2C30700C20EF0 /* SDL_net.xcodeproj */,
 				61798A0B114AB65600BA94A9 /* SDL_ttf.xcodeproj */,
 				61798934114AB25F00BA94A9 /* AudioToolbox.framework */,
+				612CABAA1391CE68005E9596 /* AVFoundation.framework */,
 				61A117FE1168322700359010 /* CoreGraphics.framework */,
 				1D30AB110D05D00D00671497 /* Foundation.framework */,
 				28FD14FF0DC6FC520079059D /* OpenGLES.framework */,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/cs.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -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	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/cs.txt	Thu Jul 07 08:09:12 2011 -0400
@@ -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/de.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/de.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
 --      [":("] = "",
 --      ["!!!"] = "",
---      ["A game of luck"] = "",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Zielübung", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!",
 	["Bat your opponents through the|baskets and out of the map!"] = "Schlage deine Widersacher durch|die Körbe und aus der Karte hinaus!",
 	["Bazooka Training"] = "Bazooka-Training",
 --	["Best laps per team: "] = "",
+--      ["Best Team Times: "] = "",
 --      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] = "",
---      ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 --      ["CAPTURE THE FLAG"] = "",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 --      ["Codename: Teamwork"] = "",
+--      ["Complete the track as fast as you can!"] = "",
 --      ["Congratulations!"] = "",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulation! Du hast alle Ziele innerhalb der|verfügbaren Zeit ausgeschaltet.", --Bazooka, Shotgun, SniperRifle
---      ["CONTROL"] = "",
 --      ["Control pillars to score points."] = "",
---      ["CONTROL v0.3"] = "",
---      ["CTF_BLIZZARD"] = "",
---      ["CUSTOM BUILD 0.2"] = "",
 --      ["Cybernetic Empire"] = "",
 --      ["DAMMIT, ROOKIE!"] = "",
 --      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
 --      ["Dangerous Ducklings"] = "",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 --      ["Eliminate all enemies"] = "",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Eliminiere alle Ziele bevor die Zeit ausläuft.|Du hast in dieser Mission unbegrenzte Munition.", --Bazooka, Shotgun, SniperRifle
 --      ["Eliminate Poison before the time runs out"] = "",
 --      ["Eliminate the Blue Team"] = "",
+--      ["Eliminate the enemy specialists."] = "",
 --      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
 --      ["Enjoy the swim..."] = "",
+--      ["[Enter]"] = "",
 --	["Fastest lap: "] = "",
 --      ["Feeble Resistance"] = "",
+--      ["Fire"] = "",
 --      ["Flag captured!"] = "",
 --      ["Flag respawned!"] = "",
 --      ["Flag returned!"] = "",
---      ["Flags will be placed where each team ends their turn."] = "",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 --      ["GAME OVER!"] = "",
 --      ["Game Started!"] = "",
 --      ["Get on over there and take him out!"] = "",
---      ["Goal:"] = "",
+--      ["Goal"] = "",
 --      ["GO! GO! GO!"] = "",
 --      ["Good birdy......"] = "",
 --      ["Good luck out there!"] = "",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basketball",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 --      ["Hmmm..."] = "",
 --      ["Hooray!"] = "",
 	["Hunter"] = "Jäger", --Bazooka, Shotgun, SniperRifle
 --      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
---      ["- Jumping is disabled"] = "",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 --      ["Listen up, maggot!!"] = "",
 --      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
 --      ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 --	["NEW fastest lap: "] = "",
---      ["NO JUMPING"] = "",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "Kein-so-Freundschaftsspiel", -- Basketball, Knockball
 --      ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "Oh nein! Die Zeit ist um! Versuche es nochmal.", --Bazooka, Shotgun, SniperRifle
 --      ["Operation Diver"] = "",
 --      ["Opposing Team: "] = "",
 --      ["Pathetic Hog #%d"] = "",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
 --      ["Poison"] = "",
---      ["Random Weapons"] = "",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 --      [" - 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"] = "",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 --      ["RULES OF THE GAME [Press ESC to view]"] = "",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "", -- 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!"] = "",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Entrenamiento con escopeta",
 	["Shotgun Training"] = "Schrotflinten-Training",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s ist draußen und Team %d|erhält eine Strafe!| |Punktestand:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s ist draußen und Team %d|erhält einen Punkt!| |Punktestand:", -- Basketball, Knockball
 	["Sniper Training"] = "Scharfschützen-Training",
 	["Sniperz"] = "Heckenschützen",
+--      ["Sponge"] = "",
 --      ["Spooky Tree"] = "",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 --	["Team %d: "] = "",
---      ["Team Scores:"] = "",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] = "",
 --      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["The flag will respawn next round."] = "",
---      ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 --	["TrophyRace"] = "",
 --      ["T_T"] = "",
+--      ["Turn Time"] = "",
 --      ["Unit 3378"] = "",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 --	["Use your rope to get from start to finish as fast as you can!"] = "",
+--      ["v.06"] = "",
 --      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 --      ["You have SCORED!!"] = "",
+--      ["You saved"] = "",
 --      ["You've failed. Try again."] = "",
 --	["You've reached the goal!| |Time: "] = "",
 	["'Zooka Team"] = "Die Knalltüten",
--- a/share/hedgewars/Data/Locale/en.txt	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/en.txt	Thu Jul 07 08:09:12 2011 -0400
@@ -72,6 +72,12 @@
 01:12=Last round till Sudden Death!
 01:13=%1 rounds till Sudden Death!
 01:14=Get ready, %1!
+01:15=Slight
+01:16=Low
+01:17=Normal
+01:18=High
+01:19=Extreme
+01:20=%1 Bounce
 
 ; Event messages
 ; Hog (%1) died
--- a/share/hedgewars/Data/Locale/es.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/es.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,94 +1,176 @@
 locale = {
+--      ["..."] = "",
 	[":("] = ":(",
 	["!!!"] = "!!!",
-	["A game of luck"] = "Un juego de azar",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Practica tu puntería", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "¡Batea pelotas hacia tus enemigos|y hazlos caer al agua!",
 	["Bat your opponents through the|baskets and out of the map!"] = "¡Batea a tus enemigos fuera del campo de juego|a través de las canastas laterales!",
 	["Bazooka Training"] = "Entrenamiento con bazuca",
 	["Best laps per team: "] = "Mejores tiempos por equipo: ",
+--      ["Best Team Times: "] = "",
 	["Bloody Rookies"] = "Reclutas", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] = "",
-	["by mikade"] = "por mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 	["CAPTURE THE FLAG"] = "Capturar la bandera",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 	["Codename: Teamwork"] = "Nombre en clave: Trabajo en equipo",
+--      ["Complete the track as fast as you can!"] = "",
 	["Congratulations!"] = "¡Felicidades!",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.", --Bazooka, Shotgun, SniperRifle
-	["CONTROL"] = "DOMINACIÓN",
 	["Control pillars to score points."] = "Controla los pilares para anotar puntos.",
-	["CONTROL v0.3"] = "DOMINACIÓN v0.3",
---      ["CTF_BLIZZARD"] = "",
-	["CUSTOM BUILD 0.2"] = "COMPILACIÓN 0.2",
 	["Cybernetic Empire"] = "Imperio cibernético",
 	["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "¡MALDITA SEA, RECLUTA! ¡FUERA DE MI CABEZA!",
 	["DAMMIT, ROOKIE!"] = "¡MALDITA SEA, RECLUTA!",
 	["Dangerous Ducklings"] = "Patitos peligrosos",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 	["Eliminate all enemies"] = "Elimina a todos los enemigos",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.", --Bazooka, Shotgun, SniperRifle
 	["Eliminate Poison before the time runs out"] = "Acaba con los Tóxicos antes de que se agote el tiempo",
 	["Eliminate the Blue Team"] = "Elimina al Equipo azul",
+--      ["Eliminate the enemy specialists."] = "",
 	["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Elimina a la Unidad 3378 |- Resustencia Fútil debe sobrevivir",
 	["Enjoy the swim..."] = "Disfruta del baño...",
+--      ["[Enter]"] = "",
 	["Fastest lap: "] = "Vuelta rápida: ",
 	["Feeble Resistance"] = "Resistencia Fútil",
+--      ["Fire"] = "",
 	["Flag captured!"] = "¡Bandera capturada!",
 	["Flag respawned!"] = "¡Bandera restablecida!",
 	["Flag returned!"] = "¡Bandera recuperada!",
-	["Flags will be placed where each team ends their turn."] = "Las banderas serán colocadas donde los jugadores terminen su primer turno.",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 	["GAME OVER!"] = "¡FIN DEL JUEGO!",
 	["Game Started!"] = "¡El juego ha empezado!",
 	["Get on over there and take him out!"] = "¡Ves allí y elimínalo!",
---      ["Goal:"] = "",
+--      ["Goal"] = "",
 	["GO! GO! GO!"] = "¡VAMOS! ¡VAMOS! ¡VAMOS!",
 	["Good birdy......"] = "Buen pajarito......",
 	["Good luck out there!"] = "¡Buena suerte!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Baloncesto",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 	["Hmmm..."] = "Mmm...",
 	["Hooray!"] = "¡Hurra!",
 	["Hunter"] = "Artillero", --Bazooka, Shotgun, SniperRifle
 	["Instructor"] = "Instructor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-	["- Jumping is disabled"] = "- No se puede saltar",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 	["Listen up, maggot!!"] = "¡Atento, escoria!",
 --      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION FAILED"] = "MISIÓN FALLIDA", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
 	["MISSION SUCCESSFUL"] = "MISIÓN COMPLETADA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "NUEVA vuelta rápida: ",
-	["NO JUMPING"] = "PROHIBIDO SALTAR",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "Partido no-tan-amistoso", -- Basketball, Knockball
 	["Oh no! Just try again!"] = "¡Oh, no! ¿Por qué no lo intentas de nuevo?", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?", --Bazooka, Shotgun, SniperRifle
 	["Operation Diver"] = "Buzo",
 	["Opposing Team: "] = "Equipo enemigo: ",
 	["Pathetic Hog #%d"] = "Erizo patético #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
 	["Poison"] = "Veneno",
-	["Random Weapons"] = "Armas aleatorias",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 	[" - 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"] = "- Vuelve a tu base con la bandera enemiga para anotar un punto | - El equipo que anote 3 puntos gana | - Sólo se puede anotar si tu propia bandera está en tu base | - Los erizos resucitan cuando mueren",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 --      ["RULES OF THE GAME [Press ESC to view]"] = "",
 	["RULES OF THE GAME [Press ESC to view]"] = "REGLAS DEL JUEGO (Presiona ESC para leerlas)",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "", -- 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!"] = "¡Hasta otra!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Escopeteros",
 	["Shotgun Training"] = "Entrenamiento con escopeta",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "¡%s cayó y Equipo %d|anotó una falta!| |Puntuación:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "¡%s cayó y Equipo %d|anotó un tanto!| |Puntuación:", -- Basketball, Knockball
 	["Sniper Training"] = "Entrenamiento con rifle francotirador",
 	["Sniperz"] = "Francotiradores",
+--      ["Sponge"] = "",
 	["Spooky Tree"] = "Árbol tenebroso",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 	["Team %d: "] = "Equipo %d",
-	["Team Scores:"] = "Puntuaciones:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] = "",
 	["The enemy is hiding out on yonder ducky!"] = "¡El enemigo está escondido detrás del patito del fondo!",
 --      ["The flag will respawn next round."] = "",
-	["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "¡Alguien ha saboteado tu arsenal, tendrás|que apañarte con la primera arma que encuentres!",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 	["Toxic Team"] = "Tóxicos", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 	["TrophyRace"] = "TrophyRace",
 	["T_T"] = "T_T",
+--      ["Turn Time"] = "",
 	["Unit 3378"] = "Unidad 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "¡Usa tu cuerda para llegar a la salida lo más rápido que puedas!",
+--      ["v.06"] = "",
 	["Victory for the "] = "La victoria es para", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 	["You have SCORED!!"] = "¡Has anotado!",
+--      ["You saved"] = "",
 	["You've failed. Try again."] = "Has fracasado. Inténtalo de nuevo.",
 	["You've reached the goal!| |Time: "] = "¡Has llegado a la meta!| |Tiempo: ",
 	["'Zooka Team"] = "Bazuqueros",
--- a/share/hedgewars/Data/Locale/fr.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/fr.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,94 +1,176 @@
 locale = {
 --      [":("] = "",
 --      ["!!!"] = "",
-      ["A game of luck"] = "Un jeu de chance",
-      ["Aiming Practice"] = "Entrainement au tir", --Bazooka, Shotgun, SniperRifle
-  ["Bat balls at your enemies and|push them into the sea!"] = "Envoyez des balles sur vos ennemis|et poussez-les à la mer !",
-  ["Bat your opponents through the|baskets and out of the map!"] = "Frappez vos ennemis à la batte,| envoyez-les à la mer et marquez des paniers !",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
+      ["Aiming Practice"] = "Entrainement de tir", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
+      ["Bat balls at your enemies and|push them into the sea!"] = "Frappez vos ennemis à la batte|et envoyez-les à la mer !",
+      ["Bat your opponents through the|baskets and out of the map!"] = "Frappez vos ennemis à la batte|, marquez des paniers ou envoyez-les à la mer !",
       ["Bazooka Training"] = "Entrainement au Bazooka",
       ["Best laps per team: "] = "Meilleur temps par équipe",
+--      ["Best Team Times: "] = "",
       ["Bloody Rookies"] = "Nouvelles recrues", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] = "",
-      ["by mikade"] = "par mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
       ["CAPTURE THE FLAG"] = "Capturez le drapeau !",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
       ["Codename: Teamwork"] = "Nom de code : Travail d'équipe",
+--      ["Complete the track as fast as you can!"] = "",
       ["Congratulations!"] = "Félicitations !",
-  ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Félicitations ! Vous avez éliminé toutes les cibles|dans le temps imparti.", --Bazooka, Shotgun, SniperRifle
-      ["CONTROL"] = "Domination",
+      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Félicitations ! Vous avez éliminé toutes les cibles|pendant le temps alloué.", --Bazooka, Shotgun, SniperRifle
       ["Control pillars to score points."] = "Contrôlez les piliers pour marquer des points",
-      ["CONTROL v0.3"] = "Domination v0.3",
---      ["CTF_BLIZZARD"] = "",
-      ["CUSTOM BUILD 0.2"] = "Compilation 0.2",
       ["Cybernetic Empire"] = "Empire cybernétique",
-      ["DAMMIT, ROOKIE!"] = "Et merde, recrue !",
-      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Et merde, recrue ! Dégage de ma tête !",
+      ["DAMMIT, ROOKIE!"] = "Et merde, recrue",
+      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Et merde, recrue ! Dégage de me tête !",
       ["Dangerous Ducklings"] = "Canetons dangereux",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
       ["Eliminate all enemies"] = "Éliminez tous les ennemis",
-  ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Éliminez toutes les cibles dans le temps imparti.|Vos munitions sont illimitées pour cette mission.", --Bazooka, Shotgun, SniperRifle
+      ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Éliminez toutes les cibles avant d'être à cours de temps.|Vos munitions sont illimitées pour cette mission.", --Bazooka, Shotgun, SniperRifle
       ["Eliminate Poison before the time runs out"] = "Éliminez tout le Poison avant d'être à cours de temps.",
       ["Eliminate the Blue Team"] = "Éliminez l'équipe bleue",
+--      ["Eliminate the enemy specialists."] = "",
       ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "Éliminez l'unité 3378|- Résistance Futile doit survivre",
       ["Enjoy the swim..."] = "Profitez du bain ...",
+--      ["[Enter]"] = "",
       ["Fastest lap: "] = "Meilleur tour : ",
       ["Feeble Resistance"] = "Résistance Futile",
+--      ["Fire"] = "",
       ["Flag captured!"] = "Drapeau capturé !",
       ["Flag respawned!"] = "Drapeau réapparu",
       ["Flag returned!"] = "Drapeau récupéré",
-  ["Flags will be placed where each team ends their turn."] = "Les drapeaux seront placés là où chaque équipe terminera son premier tour.",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
       ["GAME OVER!"] = "Fin du jeu ! ",
       ["Game Started!"] = "Début du jeu ! ",
       ["Get on over there and take him out!"] = "Viens par ici et débarrasse-toi de lui ! ",
-  --      ["Goal:"] = "",
+--      ["Goal"] = "",
 --      ["GO! GO! GO!"] = "",
       ["Good birdy......"] = "Gentil oiseau ...",
       ["Good luck out there!"] = "Bonne chance pour sortir d'ici",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 --      ["Hedgewars-Basketball"] = "",
 --      ["Hedgewars-Knockball"] = "",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 --      ["Hmmm..."] = "",
       ["Hooray!"] = "Hourra ! ",
       ["Hunter"] = "Chasseur", --Bazooka, Shotgun, SniperRifle
       ["Instructor"] = "Instructeur", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-      ["- Jumping is disabled"] = "Saut désactivé",
-  ["Listen up, maggot!!"] = "Écoutez bien, asticots !",
-  --      ["|- Mines Time:"] = "Temps avant explosion des mines:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-  ["MISSION FAILED"] = "Mission ratée", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
+      ["Listen up, maggot!!"] = "Écoutez, asticots",
+--      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["MISSION FAILED"] = "Mission échouée", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
       ["MISSION SUCCESSFUL"] = "Mission réussie", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
       ["NEW fastest lap: "] = "Nouveau meilleur temps",
-      ["NO JUMPING"] = "PAS DE SAUT",
-      ["Not So Friendly Match"] = "Un match pas si amical", -- Basketball, Knockball
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
+      ["Not So Friendly Match"] = "Match pas si amical", -- Basketball, Knockball
       ["Oh no! Just try again!"] = "Eh non ! Essayez encore ! ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
       ["Oh no! Time's up! Just try again."] = "Eh non ! Temps écoulé ! Essayez encore ! ", --Bazooka, Shotgun, SniperRifle
 --      ["Operation Diver"] = "",
       ["Opposing Team: "] = "Équipe opposée",
       ["Pathetic Hog #%d"] = "Hérisson pathétique #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
       ["points"] = "points", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
       ["Poison"] = "Poison",
-      ["Random Weapons"] = "Armes aléatoires",
-  [" - 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"] = "Ramenez le drapeau ennemi à votre base pour marquer | -La première équipe à 3 captures gagne | - Vous marquez uniquement si votre drapeau est dans votre base | - Les hérissons lâchent le drapeau s'ils sont tués ou noyés | - Les drapeaux lâchés peuvent être ramenés ou recapturés | - Les hérissons réapparaissent quand ils sont tués",
-      ["RULES OF THE GAME [Press ESC to view]"] = "RÈGLES DU JEU | [Appuyez sur Échap pour voir]",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
+      [" - 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"] = "Ramenez le drapeau ennemi à votre base pour marquer | -La première équipe à 3 captures gagne | - Vous marquez uniquement si votre drapeau est dans votre base | - Les hérissons vont lâcher le drapeau s'ils sont tués ou noyés | - Les drapeaux lâchés peuvent être ramenés ou recapturés | - Les hérissons réapparaissent quand ils sont tués",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
+      ["RULES OF THE GAME [Press ESC to view]"] = "RÈGLES DU JEU | [Appuyez Échap pour voir]",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "", -- 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!"] = "Bye bye",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
       ["Shotgun Team"] = "Équipe de choc",
       ["Shotgun Training"] = "Entrainement au fusil",
-  ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s est dehors et l'équipe %d| transforme une pénalité ! | |Score : ", -- Basketball, Knockball
-  ["%s is out and Team %d|scored a point!| |Score:"] = "%s est dehors et l'équipe %d| marque un point ! | |Score : ", -- Basketball, Knockball
-      ["Sniper Training"] = "Entrainement au sniper",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
+      ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s est dehors et l'équipe %d| reçoit une pénalité ! | |Score : ", -- Basketball, Knockball
+      ["%s is out and Team %d|scored a point!| |Score:"] = "%s est dehors et l'équipe %d| reçoit un point ! | |Score : ", -- Basketball, Knockball
+      ["Sniper Training"] = "Entrainement au fusil de sniper",
 --      ["Sniperz"] = "",
+--      ["Sponge"] = "",
       ["Spooky Tree"] = "Arbre fantomatique",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
       ["Team %d: "] = "Équipe %d : ",
-      ["Team Scores:"] = "Score de l'équipe",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
       ["That was pointless."] = "C'était inutile.",
       ["The enemy is hiding out on yonder ducky!"] = "L'ennemi se cache là-bas sur le canard !",
       ["The flag will respawn next round."] = "Le drapeau va réapparaitre au prochain tour",
-  ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Votre équipement a été mélangé et désormais | vous devrez utiliser ce qui vous tombera dans les mains !",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
       ["Toxic Team"] = "Équipe toxique", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 --      ["TrophyRace"] = "",
 --      ["T_T"] = "",
+--      ["Turn Time"] = "",
       ["Unit 3378"] = "Unité 3378",
-  ["Use your rope to get from start to finish as fast as you can!"] = "Utilisez votre corde pour rejoindre l'arrivée aussi vite que vous pouvez !",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
+      ["Use your rope to get from start to finish as fast as you can!"] = "Utilisez votre Corde Ninja pour aller du début à la fin aussi vite que vous pouvez !",
+--      ["v.06"] = "",
       ["Victory for the "] = "Victoire pour ", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
       ["You have SCORED!!"] = "Vous avez marqué !",
+--      ["You saved"] = "",
       ["You've failed. Try again."] = "Vous avez échoué. Essayez encore.",
-  ["You've reached the goal!| |Time: "] = "Vous avez atteint l'arrivée !| |Temps : ",
+      ["You've reached the goal!| |Time: "] = "Vous avez atteins le but !| |Temps : ",
 --      ["'Zooka Team"] = "",
     }
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts	Thu Jul 07 08:09:12 2011 -0400
@@ -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/it.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/it.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,94 +1,177 @@
 locale = {
+--      ["..."] = "",
 	[":("] = ":(",
 	["!!!"] = "!!!",
-	["A game of luck"] = "Un gioco di fortuna",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Pratica la tua mira", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "Lancia delle palle ai tuoi nemici|e spingili in acqua!",
 	["Bat your opponents through the|baskets and out of the map!"] = "Manda (colpendoli) i tuoi nemici|in acqua attraverso i canestri laterali!",
 	["Bazooka Training"] = "Addestramento con il Bazooka",
 	["Best laps per team: "] = "Tempo migliore per squadra: ",
+--      ["Best Team Times: "] = "",
 	["Bloody Rookies"] = "Reclute Sanguinose", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["BOOM!"] = "",
 --      ["Boom!"] = "BOOM!",
-	["by mikade"] = "creato da mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 	["CAPTURE THE FLAG"] = "Cattura la Bandiera",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 	["Codename: Teamwork"] = "Nome in codice: Lavoro di Squadra",
+--      ["Complete the track as fast as you can!"] = "",
 	["Congratulations!"] = "Complimenti!",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Complimenti! Hai distrutto tutti gli obiettivi|entro il tempo previsto.", --Bazooka, Shotgun, SniperRifle
-	["CONTROL"] = "Dominazione",
 	["Control pillars to score points."] = "Controlla i pilastri per guadagnare punti.",
-	["CONTROL v0.3"] = "Dominazione v0.3",
---      ["CTF_BLIZZARD"] = "",
-	["CUSTOM BUILD 0.2"] = "BUILD PERSONALE 0.2",
 	["Cybernetic Empire"] = "Impero Cibernetico",
 	["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "MALEDIZIONE, RECLUTA! VIA DALLA MIA TESTA!",
 	["DAMMIT, ROOKIE!"] = "MALEDIZIONE, RECLUTA!",
 	["Dangerous Ducklings"] = "Papere Pericolose",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 	["Eliminate all enemies"] = "Elimina tutti i nemici",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Distruggi tutti gli obiettivi entro il tempo previsto.|Hai armi illimitate per questa missione.", --Bazooka, Shotgun, SniperRifle
 	["Eliminate Poison before the time runs out"] = "Elimina Veleno prima che il tempo finisca",
 	["Eliminate the Blue Team"] = "Elimina il Blue Team",
+--      ["Eliminate the enemy specialists."] = "",
 	["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Elimina l'Unità 3378 |- La Resistenza Finale deve sopravvivere",
 	["Enjoy the swim..."] = "Nuota con piacere...",
+--      ["[Enter]"] = "",
 	["Fastest lap: "] = "Giro migliore: ",
 	["Feeble Resistance"] = "Resistenza Finale",
+--      ["Fire"] = "",
 	["Flag captured!"] = "Bandiera catturata!",
 	["Flag respawned!"] = "Bandiera restituita!",
 	["Flag returned!"] = "Bandiera recuperata!",
-	["Flags will be placed where each team ends their turn."] = "La bandiera viene piazzata dove ogni squadra finisce il primo turno.",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 	["GAME OVER!"] = "GAME OVER!",
 	["Game Started!"] = "Gioco iniziato!",
 	["Get on over there and take him out!"] = "Vai fuori da qui ed eliminalo!",
---      ["Goal:"] = "",
+--      ["Goal"] = "",
 	["GO! GO! GO!"] = "VAI! VAI! VAI!",
 	["Good birdy......"] = "Bell'uccellino......",
 	["Good luck out there!"] = "Buona fortuna!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Pallacanestro",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 	["Hmmm..."] = "Mmmmm...",
 	["Hooray!"] = "Hurra!!!",
 	["Hunter"] = "Cacciatore", --Bazooka, Shotgun, SniperRifle
 	["Instructor"] = "Istruttore", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-	["- Jumping is disabled"] = "- Non si può saltare!",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 	["Listen up, maggot!!"] = "Recluta, Attenzione!!",
 --      ["|- Mines Time:"] = "|-Timer delle mine:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION FAILED"] = "MISSIONE FALLITA", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION SUCCESSFUL"] = "MISSIONE COMPLETATA CON SUCCESSO", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION SUCCESS"] = "MISSIONE COMPLETATA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "Nuovo giro migliore: ",
-	["NO JUMPING"] = "NON È POSSIBILE SALTARE",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "Partita non molto amichevole", -- Basketball, Knockball
 	["Oh no! Just try again!"] = "Oh no! Prova ancora!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "Oh no! Tempo scaduto! Prova ancora!", --Bazooka, Shotgun, SniperRifle
 	["Operation Diver"] = "Operazione Sub",
 	["Opposing Team: "] = "Squadra Nemica: ",
 	["Pathetic Hog #%d"] = "Riccio Patetico #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
+--      ["points"] = "", -- Control, Space_Invasion
 	["Poison"] = "Veleno",
-	["Random Weapons"] = "Armi Casuali",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 	[" - 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"] = " - Riporta la bandiera nemica alla tua base per guadagnare un punto| - La prima squadra a catturarne 3 vince! | - Puoi guadagnare punti solo quando la tua bandiera si trova nella tua base! | - I ricci lasceranno cadere la bandiera se uccisi o caduti in acqua! | - Le bandiere cadute possono essere restituite o ricatturate! | - I ricci risorgono dalla morte!",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 --      ["RULES OF THE GAME [Press ESC to view]"] = "",
 	["RULES OF THE GAME [Press ESC to view]"] = "REGOLE DEL GIOCO (Premi ESC per visualizzarle)",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "sec", -- 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!"] = "Ci vediamo!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Squadra FaP",
 	["Shotgun Training"] = "Allenamento con il Fucile a Pompa",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s è fuori dal campo e la squadra %d|prende una penalità!| |Punteggio:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "?s è fuori dal campo e la squadra %d|guadagna un punto!| |Puntuación:", -- Basketball, Knockball
 	["Sniper Training"] = "Addestramento con il Fucile di Precisione",
 	["Sniperz"] = "Squadra FdP",
+--      ["Sponge"] = "",
 	["Spooky Tree"] = "Albero stregato",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 	["Team %d: "] = "Squadra %d: ",
-	["Team Scores:"] = "Punteggi:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] = "Questo era senza scopo.",
 	["The enemy is hiding out on yonder ducky!"] = "Il nemico si sta nascondendo dietro a quella papera!",
 --      ["The flag will respawn next round."] = "La bandiera verrà restituita alla fine del turno.",
-	["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "C'è stato un problema con il tuo arsenale|e ora dovrai usare la prima arma che trovi!",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 	["Toxic Team"] = "Team Velenoso", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 	["TrophyRace"] = "TrophyRace",
 	["T_T"] = "T_T",
+--      ["Turn Time"] = "",
 	["Unit 3378"] = "Unità 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "Usa la tua corda per raggiungere il traguardo il più velocemente possibile!",
+--      ["v.06"] = "",
+--      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
 	["Victory for the"] = "La vittoria è di",
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 	["You have SCORED!!"] = "Hai guadagnato un PUNTO!",
+--      ["You saved"] = "",
 	["You've failed. Try again."] = "Hai fallito. Prova di nuovo!",
 	["You've reached the goal!| |Time: "] = "Hai raggiunto il traguardo!| |Tempo: ",
 	["'Zooka Team"] = "Squadra 'zooka",
--- a/share/hedgewars/Data/Locale/ko.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/ko.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
 --      [":("] = "",
 --      ["!!!"] = "",
---      ["A game of luck"] = "",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 --      ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 --      ["Bat balls at your enemies and|push them into the sea!"] = "",
 --      ["Bat your opponents through the|baskets and out of the map!"] = "",
 --      ["Bazooka Training"] = "",
 --      ["Best laps per team: "] = "",
+--      ["Best Team Times: "] = "",
 --      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] = "",
---      ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 --      ["CAPTURE THE FLAG"] = "",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 --      ["Codename: Teamwork"] = "",
+--      ["Complete the track as fast as you can!"] = "",
 --      ["Congratulations!"] = "",
 --      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
---      ["CONTROL"] = "",
 --      ["Control pillars to score points."] = "",
---      ["CONTROL v0.3"] = "",
---      ["CTF_BLIZZARD"] = "",
---      ["CUSTOM BUILD 0.2"] = "",
 --      ["Cybernetic Empire"] = "",
 --      ["DAMMIT, ROOKIE!"] = "",
 --      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
 --      ["Dangerous Ducklings"] = "",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 --      ["Eliminate all enemies"] = "",
 --      ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle
 --      ["Eliminate Poison before the time runs out"] = "",
 --      ["Eliminate the Blue Team"] = "",
+--      ["Eliminate the enemy specialists."] = "",
 --      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
 --      ["Enjoy the swim..."] = "",
+--      ["[Enter]"] = "",
 --      ["Fastest lap: "] = "",
 --      ["Feeble Resistance"] = "",
+--      ["Fire"] = "",
 --      ["Flag captured!"] = "",
 --      ["Flag respawned!"] = "",
 --      ["Flag returned!"] = "",
---      ["Flags will be placed where each team ends their turn."] = "",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 --      ["GAME OVER!"] = "",
 --      ["Game Started!"] = "",
 --      ["Get on over there and take him out!"] = "",
---      ["Goal:"] = "",
+--      ["Goal"] = "",
 --      ["GO! GO! GO!"] = "",
 --      ["Good birdy......"] = "",
 --      ["Good luck out there!"] = "",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 --      ["Hedgewars-Basketball"] = "",
 --      ["Hedgewars-Knockball"] = "",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 --      ["Hmmm..."] = "",
 --      ["Hooray!"] = "",
 --      ["Hunter"] = "", --Bazooka, Shotgun, SniperRifle
 --      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
---      ["- Jumping is disabled"] = "",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 --      ["Listen up, maggot!!"] = "",
 --      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
 --      ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 --      ["NEW fastest lap: "] = "",
---      ["NO JUMPING"] = "",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 --      ["Not So Friendly Match"] = "", -- Basketball, Knockball
 --      ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle
 --      ["Operation Diver"] = "",
 --      ["Opposing Team: "] = "",
 --      ["Pathetic Hog #%d"] = "",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
 --      ["Poison"] = "",
---      ["Random Weapons"] = "",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 --      [" - 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"] = "",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 --      ["RULES OF THE GAME [Press ESC to view]"] = "",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "", -- 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!"] = "",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 --      ["Shotgun Team"] = "",
 --      ["Shotgun Training"] = "",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 --      ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball
 --      ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball
 --      ["Sniper Training"] = "",
 --      ["Sniperz"] = "",
+--      ["Sponge"] = "",
 --      ["Spooky Tree"] = "",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 --      ["Team %d: "] = "",
---      ["Team Scores:"] = "",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] = "",
 --      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["The flag will respawn next round."] = "",
---      ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 --      ["TrophyRace"] = "",
 --      ["T_T"] = "",
+--      ["Turn Time"] = "",
 --      ["Unit 3378"] = "",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 --      ["Use your rope to get from start to finish as fast as you can!"] = "",
+--      ["v.06"] = "",
 --      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 --      ["You have SCORED!!"] = "",
+--      ["You saved"] = "",
 --      ["You've failed. Try again."] = "",
 --      ["You've reached the goal!| |Time: "] = "",
 --      ["'Zooka Team"] = "",
--- a/share/hedgewars/Data/Locale/pl.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/pl.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
     [":("] = ":(",
     ["!!!"] = "!!!",
-    ["A game of luck"] = "Wszystko zależy od losu",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
     ["Aiming Practice"] = "Potrenuj celność",
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
     ["Bat balls at your enemies and|push them into the sea!"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!",
     ["Bat your opponents through the|baskets and out of the map!"] = "Uderzaj swoich przekiwników|wyrzucając przez kosz, poza mapę!",
     ["Bazooka Training"] = "Trening bazooki",
     ["Best laps per team: "] = "Najszybsze okrążenie drużyny: ",
+--      ["Best Team Times: "] = "",
     ["Bloody Rookies"] = "Żółtodzioby",
+--      ["BOOM!"] = "",
     ["Boom!"] = "BUM!",
-    ["by mikade"] = "Napisane przez mikade", 
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
     ["CAPTURE THE FLAG"] = "PRZECHWYĆ FLAGĘ",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
     ["Codename: Teamwork"] = "Kryptonim: Praca zespołowa",
+--      ["Complete the track as fast as you can!"] = "",
     ["Congratulations!"] = "Gratulacje",
     ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.",  
-    ["CONTROL"] = "KONTROLA",
     ["Control pillars to score points."] = "Kontroluj filary by zdobyć punkty",
-    ["CONTROL v0.3"] = "KONTROLA v0.3",
-    ["CTF_BLIZZARD"] = "Śnieżyca",
-    ["CUSTOM BUILD 0.2"] = "Wersja 0.2",
     ["Cybernetic Empire"] = "Cybernetyczne Imperium",
     ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Młody!!! Złaź z mojej głowy!!!",
     ["DAMMIT, ROOKIE!"] = "Żółtodziobie!",
     ["Dangerous Ducklings"] = "Niebezpieczne Kaczory",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
     ["Eliminate all enemies"] = "Wyeliminuj wszystkich przeciwników",
     ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.", 
     ["Eliminate Poison before the time runs out"] = "Zabij Truciciela zanim skończy się czas",
     ["Eliminate the Blue Team"] = "Zniszcz niebieską drużynę",
+--      ["Eliminate the enemy specialists."] = "",
     ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "Rozwal Jednostkę 3378 | Twoja drużyna musi przetrwać",
     ["Enjoy the swim..."] = "Popływaj trochę...",
+--      ["[Enter]"] = "",
     ["Fastest lap: "] = "Najszybsze okrążenie: ",
     ["Feeble Resistance"] = "Ruch Oporu",
+--      ["Fire"] = "",
     ["Flag captured!"] = "Flaga przechwycona!",
     ["Flag respawned!"] = "Flaga przywrócona!",
     ["Flag returned!"] = "Flaga odzyskana!",
-    ["Flags will be placed where each team ends their turn."] = "Flagi zostaną umieszczone tam, gdzie każda z drużyn zakończy swoją turę",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
     ["GAME OVER!"] = "KONIEC GRY!",
     ["Game Started!"] = "Gra Rozpoczęta",
     ["Get on over there and take him out!"] = "Dostań się tam i go wykończ!",
-    ["Goal:"] = "Cel:",
+--      ["Goal"] = "",
     ["GO! GO! GO!"] = "RUCHY! RUCHY! RUCHY!",
     ["Good birdy......"] = "Dooobry ptaszek...",
     ["Good luck out there!"] = "Powodzenia!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
     ["Hedgewars-Basketball"] = "Hedgewars-Koszykówka",
     ["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
     ["Hmmm..."] = "Hmmmm...",
     ["Hooray!"] = "Hurraaa!",
     ["Hunter"] = "Strzelec",  
     ["Instructor"] = "Instruktor",  
-    ["- Jumping is disabled"] = "- Skakanie jest niemożliwe",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
     ["Listen up, maggot!!"] = "Słuchaj mnie, gnido!",
     ["|- Mines Time:"] = "|- Czas detonacji min:",
     ["MISSION FAILED"] = "MISJA ZAKOŃCZONA NIEPOWODZENIEM", 
+--      ["MISSION SUCCESS"] = "",
     ["MISSION SUCCESSFUL"] = "MISJA POWIODŁA SIĘ",  
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
     ["NEW fastest lap: "] = "NOWE najszybsze okrążenie: ",
-    ["NO JUMPING"] = "BEZ SKAKANIA",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
     ["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski",  
     ["Oh no! Just try again!"] = "Ojojoj! Spróbuj jeszcze raz!", 
     ["Oh no! Time's up! Just try again."] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.",  
     ["Operation Diver"] = "Operacja Nurek",
     ["Opposing Team: "] = "Przeciwna drużyna",
     ["Pathetic Hog #%d"] = "Załosny Jeż #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
     ["Poison"] = "Truciciel",
-    ["Random Weapons"] = "Losowe uzbrojenie",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
     [" - 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"] = " - Przynieś flagę wroga do swojej bazy by zdobyć punkt | - Pierwszy kto zrobi to 3 razy, wygrywa | - Punkt zdobywasz tylko gdy twoja flaga znajduje się w bazie | - Jeże upuszczą flagę gdy zostaną zabite bądź utopione | - Upuszczona flaga może być przywrócona lub przechwycona ponownie | - Jeże odradzają się po śmierci",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
     ["RULES OF THE GAME [Press ESC to view]"] = "ZASADY GRY [Naciśnij ESC by zobaczyć]",        
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
     ["sec"] = "sek",
     ["See ya!"] = "Do zobaczenia!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
     ["Shotgun Team"] = "Strzelcy",
     ["Shotgun Training"] = "Trening strzelecki",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
     ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:", 
     ["%s is out and Team %d|scored a point!| |Score:"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:",  
     ["Sniper Training"] = "Trening Snajperski",
     ["Sniperz"] = "Snajperzy",
+--      ["Sponge"] = "",
     ["Spooky Tree"] = "Straszne drzewo",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
     ["Team %d: "] = "Drużyna %d: ",
-    ["Team Scores:"] = "Punktacja",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
     ["That was pointless."] = "To było bezcelowe",
     ["The enemy is hiding out on yonder ducky!"] = "Na tamtej kaczce ukrywa się nasz przeciwnik!",
     ["The flag will respawn next round."] = "Flaga pojawi się ponownie przy następnej rundzie.",
-    ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Ktoś grzebał Ci w plecaku |Musisz sobie poradzić z tym co masz pod ręką",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
     ["Toxic Team"] = "Toksyczny zespół", 
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
     ["TrophyRace"] = "TrophyRace",
     ["T_T"] = "T_T",
+--      ["Turn Time"] = "",
     ["Unit 3378"] = "Jednostka 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
     ["Use your rope to get from start to finish as fast as you can!"] = "Użyj liny by jak najszybciej dotrzec od startu do mety",
+--      ["v.06"] = "",
     ["Victory for the "] = "Zwycięstwo przypadło",
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
     ["You have SCORED!!"] = "Zdobyłeś PUNKT",
+--      ["You saved"] = "",
     ["You've failed. Try again."] = "Przegrałeś. Spróbuj jeszcze raz",
     ["You've reached the goal!| |Time: "] = "Dotarłeś do celu!| |Czas: ",
     ["'Zooka Team"] = "Bazookinierzy",
--- a/share/hedgewars/Data/Locale/pt_BR.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/pt_BR.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
 --      [":("] = "",
 --      ["!!!"] = "",
---      ["A game of luck"] = "",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Pratique a sua pontaria", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "Rebata as bolas em direção ao seus|e derrube-os no mar!",
 	["Bat your opponents through the|baskets and out of the map!"] = "Rebata seus oponentes para|fora do mapa através dos cestos!",
 	["Bazooka Training"] = "Treino com a Bazuca",
 	["Best laps per team: "] = "Melhor volta por equipe: ",
+--      ["Best Team Times: "] = "",
 --      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] = "",
---      ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 --      ["CAPTURE THE FLAG"] = "",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 --      ["Codename: Teamwork"] = "",
+--      ["Complete the track as fast as you can!"] = "",
 --      ["Congratulations!"] = "",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite.", --Bazooka, Shotgun, SniperRifle
---      ["CONTROL"] = "",
 --      ["Control pillars to score points."] = "",
---      ["CONTROL v0.3"] = "",
---      ["CTF_BLIZZARD"] = "",
---      ["CUSTOM BUILD 0.2"] = "",
 --      ["Cybernetic Empire"] = "",
 --      ["DAMMIT, ROOKIE!"] = "",
 --      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
 --      ["Dangerous Ducklings"] = "",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 --      ["Eliminate all enemies"] = "",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.", --Bazooka, Shotgun, SniperRifle
 --      ["Eliminate Poison before the time runs out"] = "",
 --      ["Eliminate the Blue Team"] = "",
+--      ["Eliminate the enemy specialists."] = "",
 --      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
 --      ["Enjoy the swim..."] = "",
+--      ["[Enter]"] = "",
 	["Fastest lap: "] = "Volta mais rápida: ",
 --      ["Feeble Resistance"] = "",
+--      ["Fire"] = "",
 --      ["Flag captured!"] = "",
 --      ["Flag respawned!"] = "",
 --      ["Flag returned!"] = "",
---      ["Flags will be placed where each team ends their turn."] = "",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 --      ["GAME OVER!"] = "",
 --      ["Game Started!"] = "",
 --      ["Get on over there and take him out!"] = "",
---      ["Goal:"] = "",
+--      ["Goal"] = "",
 --      ["GO! GO! GO!"] = "",
 --      ["Good birdy......"] = "",
 --      ["Good luck out there!"] = "",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basketball",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 --      ["Hmmm..."] = "",
 --      ["Hooray!"] = "",
 	["Hunter"] = "Artilheiro", --Bazooka, Shotgun, SniperRifle
 --      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
---      ["- Jumping is disabled"] = "",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 --      ["Listen up, maggot!!"] = "",
 --      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
 --      ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "NOVA volta mais rápida: ",
---      ["NO JUMPING"] = "",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
 --      ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "Oh não! O tempo acabou! Tente novamente.", --Bazooka, Shotgun, SniperRifle
 --      ["Operation Diver"] = "",
 --      ["Opposing Team: "] = "",
 --      ["Pathetic Hog #%d"] = "",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
 --      ["Poison"] = "",
---      ["Random Weapons"] = "",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 --      [" - 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"] = "",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 --      ["RULES OF THE GAME [Press ESC to view]"] = "",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "", -- 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!"] = "",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Carabineiros",
 	["Shotgun Training"] = "Treino com a Escopeta",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a Equipe %d|sofreu uma penalidade!| |Pontuação:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a Equipe %d|marcou um ponto!| |Pontuação:", -- Basketball, Knockball
 	["Sniper Training"] = "Treino com o Rifle Sniper",
 	["Sniperz"] = "Franco-Atiradores",
+--      ["Sponge"] = "",
 --      ["Spooky Tree"] = "",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 	["Team %d: "] = "Equipe %d: ",
---      ["Team Scores:"] = "",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] = "",
 --      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["The flag will respawn next round."] = "",
---      ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 	["TrophyRace"] = "TrophyRace",
 --      ["T_T"] = "",
+--      ["Turn Time"] = "",
 --      ["Unit 3378"] = "",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "Use sua corda para ir do início ao fim o mais rápido que você puder!",
+--      ["v.06"] = "",
 --      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 --      ["You have SCORED!!"] = "",
+--      ["You saved"] = "",
 --      ["You've failed. Try again."] = "",
 	["You've reached the goal!| |Time: "] = "Você alcançou o objetivo!| |Tempo: ",
 	["'Zooka Team"] = "Bazuqueiros",
--- a/share/hedgewars/Data/Locale/pt_PT.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/pt_PT.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,94 +1,177 @@
 locale = {
+--      ["..."] = "",
 	[":("] = ":(",
 	["!!!"] = "!!!",
-	["A game of luck"] = "Um jogo de sorte",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Pratica a tua pontaria", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "Bate bolas contra os teus|enimigos e empurra-os ao mar!",
 	["Bat your opponents through the|baskets and out of the map!"] = "Bate os teus adversarios|fora do mapa acertando com eles no cesto!",
 	["Bazooka Training"] = "Treino com Bazuca",
 	["Best laps per team: "] = "Melhores voltas por equipa: ",
+--      ["Best Team Times: "] = "",
 --      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["BOOM!"] = "",
 	["Boom!"] = "Boom!",
-	["by mikade"] = "por mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 	["CAPTURE THE FLAG"] = "CAPTURAR A BANDEIRA",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 --      ["Codename: Teamwork"] = "",
+--      ["Complete the track as fast as you can!"] = "",
 	["Congratulations!"] = "Parabéns!",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Parabéns! Eliminaste todos os alvos|dentro do tempo limite.", --Bazooka, Shotgun, SniperRifle
---      ["CONTROL"] = "",
 --      ["Control pillars to score points."] = "",
---      ["CONTROL v0.3"] = "",
---      ["CTF_BLIZZARD"] = "CTF_BLIZZARD",
---      ["CUSTOM BUILD 0.2"] = "",
 --      ["Cybernetic Empire"] = "",
 --      ["DAMMIT, ROOKIE!"] = "",
 --      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
 	["Dangerous Ducklings"] = "Patinhos perigosos",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 	["Eliminate all enemies"] = "Elimina todos os inimigos",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.", --Bazooka, Shotgun, SniperRifle
 	["Eliminate Poison before the time runs out"] = "Elimina o Poison antes do tempo terminar.",
 	["Eliminate the Blue Team"] = "Elimina a equipa azul",
+--      ["Eliminate the enemy specialists."] = "",
 --      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
 	["Enjoy the swim..."] = "Aproveita o mergulho",
+--      ["[Enter]"] = "",
 	["Fastest lap: "] = "Volta mais rápida: ",
 --      ["Feeble Resistance"] = "",
+--      ["Fire"] = "",
 	["Flag captured!"] = "Bandeira capturada!",
 	["Flag respawned!"] = "Bandeira reiniciada!",
 	["Flag returned!"] = "Bandeira devolvida!",
---      ["Flags will be placed where each team ends their turn."] = "",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 --      ["GAME OVER!"] = "",
 --      ["Game Started!"] = "",
 --      ["Get on over there and take him out!"] = "Chega-te aqui e acaba com ele!",
-	["Goal:"] = "Objectivo",
+--      ["Goal"] = "",
 	["GO! GO! GO!"] = "GO! GO! GO!",
 	["Good birdy......"] = "Bom passarito......",
 	["Good luck out there!"] = "Boa sorte aí fora!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basketball",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 	["Hmmm..."] = "Hmmm...",
 	["Hooray!"] = "Hurra!",
 	["Hunter"] = "Comando", --Bazooka, Shotgun, SniperRifle
 	["Instructor"] = "Instrutor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-	["- Jumping is disabled"] = "- Saltar está desactivado",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 	["Listen up, maggot!!"] = "Oiçam bem suas larvas!!",
 	["|- Mines Time:"] = "|- Tempo das minas:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION FAILED"] = "MISSÃO FALHADA", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION SUCCESSFUL"] = "MISSÃO COMPLETA", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION SUCCESS"] = "MISSÃO COMPLETA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "NOVA volta recorde: ",
-	["NO JUMPING"] = "PROIBIDO SALTAR",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
 	["Oh no! Just try again!"] = "Oh não! Tenta novamente!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "Oh não! Acabou o tempo! Tenta novamente.", --Bazooka, Shotgun, SniperRifle
 	["Operation Diver"] = "Operação Mergulho",
 	["Opposing Team: "] = "Equipa adversária",
 	["Pathetic Hog #%d"] = "Ouriço patético #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
+--      ["points"] = "", -- Control, Space_Invasion
 	["Poison"] = "Poison",
-	["Random Weapons"] = "Armas aleatórias",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 	[" - 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"] = " - Traz a bandeira inimiga para tua base | - A primeira equipa a captura-la 3 vezes ganha | - Apenas podes marcar quando a tua bandeira está na tua base | - Os ouriços largam a bandeira se morrerem ou se afogarem | - As bandeiras abandonadas podem ser devolvidas ou recapturadas | - Os ouriços mortos ressuscitam",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 	["RULES OF THE GAME [Press ESC to view]"] = "REGRAS DE JOGO [Pressiona ESC para as visualizar]",
 	["RULES OF THE GAME [Press ESC to view]"] = "REGRAS DE JOGO [Pressiona ESC para as visualizar]",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 	["sec"] = "seg", -- 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!"] = "Chau!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Caçadores",
 	["Shotgun Training"] = "Treino com Caçadeira",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a equipa %d|perde um ponto!| |Pontuação:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a equipa %d|soma um ponto!| |Pontuação:", -- Basketball, Knockball
 	["Sniper Training"] = "Treino com Sniper",
 	["Sniperz"] = "Sniperz",
+--      ["Sponge"] = "",
 --      ["Spooky Tree"] = "",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 	["Team %d: "] = "Equipa %d: ",
-	["Team Scores:"] = "Pontuação:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 	["That was pointless."] = "Isso foi completamente desnecessario.",
 	["The enemy is hiding out on yonder ducky!"] = "O inimigo está escondido ali a diante ao pé do patinho!",
 	["The flag will respawn next round."] = "A bandeira ira reaparecer no próximo turno.",
-	["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Houve uma pequena confusão com o teu equipamento e agora|vais ter de utilizar o que quer que seja que te venha às mãos!",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 	["TrophyRace"] = "TrophyRace",
 	["T_T"] = "T_T",
+--      ["Turn Time"] = "",
 	["Unit 3378"] = "Unidade 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "Utilizando a corda, percorre o percurso do inicio ao fim o mais rápido que conseguires!",
+--      ["v.06"] = "",
+--      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
 	["Victory for the"] = "Vitória para a",
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 	["You have SCORED!!"] = "Marcaste!!",
+--      ["You saved"] = "",
 	["You've failed. Try again."] = "Falhaste. Tenta novamente.",
 	["You've reached the goal!| |Time: "] = "Chegaste ao fim!| |Tempo: ",
 	["'Zooka Team"] = "Bazuqueiros",
--- a/share/hedgewars/Data/Locale/sk.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/sk.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
         [":("] = ":(",
         ["!!!"] = "!!!",
-        ["A game of luck"] = "Hra o šťastí",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Tréning presnosti", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "Loptami triafajte vašich nepriateľov|a zhoďte ich tak do mora!",
 	["Bat your opponents through the|baskets and out of the map!"] = "Odpálkujte vašich súperov do koša|a von z mapy!",
 	["Bazooka Training"] = "Tréning s bazukou",
 	["Best laps per team: "] = "Najrýchlejšie kolá podľa tímov: ",
+--      ["Best Team Times: "] = "",
         ["Bloody Rookies"] = "Mizerní zelenáči", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["BOOM!"] = "",
         ["Boom!"] = "Bum!",
-        ["by mikade"] = "napísal mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
         ["CAPTURE THE FLAG"] = "ZMOCNITE SA VLAJKY",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
         ["Codename: Teamwork"] = "Kódové meno: Teamová práca",
+--      ["Complete the track as fast as you can!"] = "",
         ["Congratulations!"] = "Gratulujem!",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulujem! Zneškodnili ste všetky ciele|v stanovenom čase.", --Bazooka, Shotgun, SniperRifle
-        ["CONTROL"] = "OVLÁDNUTIE",
         ["Control pillars to score points."] = "Ovládnite piliere, aby ste skórovali",
-        ["CONTROL v0.3"] = "OVLÁDNUTIE v0.3",
-        ["CTF_BLIZZARD"] = "CTF_METELICA",
-        ["CUSTOM BUILD 0.2"] = "VLASTNÉ ZOSTAVENIE 0.2",
         ["Cybernetic Empire"] = "Kybertnetické impérium",
+        ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Do kelu s tebou, zelenáč! Okamžite mi zlez z hlavy!",
         ["DAMMIT, ROOKIE!"] = "Prekliaty zelenáč!",
-        ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Do kelu s tebou, zelenáč! Okamžite mi zlez z hlavy!",
         ["Dangerous Ducklings"] = "Nebezpečné kačiatka",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
         ["Eliminate all enemies"] = "Zneškodnite všetkých nepriateľov",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Zneškodnite všetky ciele pred vypršaním času.|Na túto misiu máte neobmedzené množstvo streliva.", --Bazooka, Shotgun, SniperRifle
         ["Eliminate Poison before the time runs out"] = "Zneškodnite Poisona pred tým, ako vyprší čas",
         ["Eliminate the Blue Team"] = "Zneškodnite modrý tím",
+--      ["Eliminate the enemy specialists."] = "",
         ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Zneškodnite Jednotku 3378|- Slabý odpor musí prežiť",
         ["Enjoy the swim..."] = "Užite si plávanie...",
+--      ["[Enter]"] = "",
 	["Fastest lap: "] = "Najrýchlejšie kolo: ",
         ["Feeble Resistance"] = "Slabý odpor",
+--      ["Fire"] = "",
         ["Flag captured!"] = "Získaná vlajka!",
         ["Flag respawned!"] = "Vlajka obnovená!",
         ["Flag returned!"] = "Vlajka vrátená!",
-        ["Flags will be placed where each team ends their turn."] = "Vlajky budu umiestnené po skončení tohto ťahu",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
         ["GAME OVER!"] = "KONIEC HRY!",
         ["Game Started!"] = "Hra začala!",
         ["Get on over there and take him out!"] = "Okamžite poď sem a dostaň ho!",
-        ["Goal:"] = "Cieľ:",
+--      ["Goal"] = "",
         ["GO! GO! GO!"] = "POĎ! POĎ! POĎ!",
         ["Good birdy......"] = "Dobrý vtáčik......",
         ["Good luck out there!"] = "Veľa šťastia!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basketbal",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
         ["Hmmm..."] = "Hmm..",
         ["Hooray!"] = "Hurá!",
 	["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle
         ["Instructor"] = "Inštruktor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-        ["- Jumping is disabled"] = "- Skákanie je vypnuté",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
         ["Listen up, maggot!!"] = "Počúvaj, ty biedny červ!",
         ["|- Mines Time:"] = "|- Časovač pre míny:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
         ["MISSION FAILED"] = "MISIA NEÚSPEŠNÁ", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
         ["MISSION SUCCESSFUL"] = "MISIA ÚSPEŠNÁ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "NOVÉ najrýchlejšie kolo: ",
-        ["NO JUMPING"] = "ŽIADNE SKÁKANIE",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "Nie tak celkom priateľský zápas", -- Basketball, Knockball
         ["Oh no! Just try again!"] = "Áále nie! Tak to skúste znovu!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "Áále nie! Čas vypršal! Tak to skúste znovu.", --Bazooka, Shotgun, SniperRifle
         ["Operation Diver"] = "Operácia Potápač",
         ["Opposing Team: "] = "Nepriateľský tím",
         ["Pathetic Hog #%d"] = "Žalostný ježko #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
         ["points"] = "body", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
         ["Poison"] = "Poison",
-        ["Random Weapons"] = "Náhodné zbrane",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
         [" - 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"] = " - Skórujete prinesením nepriateľskej vlajky do vašej základne | -  Prvý tím, ktorý dosiahne 3 body, vyhráva | - Skórujete len vtedy, keď je máte svoju vlajku v základni | - Spadnuté vlajky môžu byť vrátené na základňu alebo sa ich môže zmocniť súpere | - Ježkovia po smrti ožiujú",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
         ["RULES OF THE GAME [Press ESC to view]"] = "PRAVIDLÁ HRY [Stlačte Esc pre ich zobrazenie]",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
         ["sec"] = "sek", -- 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!"] = "Tak zatiaľ!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Shotgun tím",
 	["Shotgun Training"] = "Tréning s brokovnicou",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s je mimo hru a tím %d|dostal trestný bod!| |Skóre:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s je mimo hru a tím %d|získal bod!| |Skóre:", -- Basketball, Knockball
 	["Sniper Training"] = "Tréning pre ostreľovačov",
 	["Sniperz"] = "Ostreľovači",
+--      ["Sponge"] = "",
         ["Spooky Tree"] = "Strašidelný strom",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 	["Team %d: "] = "Tím %d: ",
-        ["Team Scores:"] = "Tím skóruje:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
         ["That was pointless."] = "To bolo zbytočné.",
         ["The enemy is hiding out on yonder ducky!"] = "Nepriateľ sa schováva na tamtej kačičke!",
         ["The flag will respawn next round."] = "V ďalšom kole sa obnoví vlajka.",
-        ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Niekto rozhádzal vašu výbavu a teraz|musíte použiť len to, čo vám ostalo!",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
         ["Toxic Team"] = "Toxic tím", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 	["TrophyRace"] = "Preteky o trofej",
         ["T_T"] = "T_T",
+--      ["Turn Time"] = "",
         ["Unit 3378"] = "Jednotka 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "Použite lano na presun zo štartovnej pozície do cieľa tak rýchlo, ako to len viete!",
+--      ["v.06"] = "",
         ["Victory for the "] = "Víťazstvo pre", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
         ["You have SCORED!!"] = "SKÓROVALI ste!!",
+--      ["You saved"] = "",
         ["You've failed. Try again."] = "Neuspeli ste. Skúste to znova.",
 	["You've reached the goal!| |Time: "] = "Dosiahli ste cieľ!| |Čas: ",
 	["'Zooka Team"] = "Bazuka tím",
--- a/share/hedgewars/Data/Locale/stub.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/stub.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
 --      [":("] = "",
 --      ["!!!"] = "",
---      ["A game of luck"] = "",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 --      ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 --      ["Bat balls at your enemies and|push them into the sea!"] = "",
 --      ["Bat your opponents through the|baskets and out of the map!"] = "",
 --      ["Bazooka Training"] = "",
 --      ["Best laps per team: "] = "",
+--      ["Best Team Times: "] = "",
 --      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] = "",
---      ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 --      ["CAPTURE THE FLAG"] = "",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 --      ["Codename: Teamwork"] = "",
+--      ["Complete the track as fast as you can!"] = "",
 --      ["Congratulations!"] = "",
 --      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
---      ["CONTROL"] = "",
 --      ["Control pillars to score points."] = "",
---      ["CONTROL v0.3"] = "",
---      ["CTF_BLIZZARD"] = "",
---      ["CUSTOM BUILD 0.2"] = "",
 --      ["Cybernetic Empire"] = "",
 --      ["DAMMIT, ROOKIE!"] = "",
 --      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
 --      ["Dangerous Ducklings"] = "",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 --      ["Eliminate all enemies"] = "",
 --      ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle
 --      ["Eliminate Poison before the time runs out"] = "",
 --      ["Eliminate the Blue Team"] = "",
+--      ["Eliminate the enemy specialists."] = "",
 --      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
 --      ["Enjoy the swim..."] = "",
+--      ["[Enter]"] = "",
 --      ["Fastest lap: "] = "",
 --      ["Feeble Resistance"] = "",
+--      ["Fire"] = "",
 --      ["Flag captured!"] = "",
 --      ["Flag respawned!"] = "",
 --      ["Flag returned!"] = "",
---      ["Flags will be placed where each team ends their turn."] = "",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 --      ["GAME OVER!"] = "",
 --      ["Game Started!"] = "",
 --      ["Get on over there and take him out!"] = "",
---      ["Goal:"] = "",
+--      ["Goal"] = "",
 --      ["GO! GO! GO!"] = "",
 --      ["Good birdy......"] = "",
 --      ["Good luck out there!"] = "",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 --      ["Hedgewars-Basketball"] = "",
 --      ["Hedgewars-Knockball"] = "",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 --      ["Hmmm..."] = "",
 --      ["Hooray!"] = "",
 --      ["Hunter"] = "", --Bazooka, Shotgun, SniperRifle
 --      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
---      ["- Jumping is disabled"] = "",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 --      ["Listen up, maggot!!"] = "",
 --      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
 --      ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 --      ["NEW fastest lap: "] = "",
---      ["NO JUMPING"] = "",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 --      ["Not So Friendly Match"] = "", -- Basketball, Knockball
 --      ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle
 --      ["Operation Diver"] = "",
 --      ["Opposing Team: "] = "",
 --      ["Pathetic Hog #%d"] = "",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
 --      ["Poison"] = "",
---      ["Random Weapons"] = "",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 --      [" - 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"] = "",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 --      ["RULES OF THE GAME [Press ESC to view]"] = "",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] = "", -- 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!"] = "",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 --      ["Shotgun Team"] = "",
 --      ["Shotgun Training"] = "",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 --      ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball
 --      ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball
 --      ["Sniper Training"] = "",
 --      ["Sniperz"] = "",
+--      ["Sponge"] = "",
 --      ["Spooky Tree"] = "",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 --      ["Team %d: "] = "",
---      ["Team Scores:"] = "",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] = "",
 --      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["The flag will respawn next round."] = "",
---      ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 --      ["TrophyRace"] = "",
 --      ["T_T"] = "",
+--      ["Turn Time"] = "",
 --      ["Unit 3378"] = "",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 --      ["Use your rope to get from start to finish as fast as you can!"] = "",
+--      ["v.06"] = "",
 --      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 --      ["You have SCORED!!"] = "",
+--      ["You saved"] = "",
 --      ["You've failed. Try again."] = "",
 --      ["You've reached the goal!| |Time: "] = "",
 --      ["'Zooka Team"] = "",
--- a/share/hedgewars/Data/Locale/sv.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/sv.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,93 +1,175 @@
 locale = {
+--      ["..."] = "",
 	[":("] = ":(",
 	["!!!"] = "!!!",
-	["A game of luck"] = "Ett lyckospel",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Siktesövning", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
 	["Bat balls at your enemies and|push them into the sea!"] = "Slå bollar mot dina fiender|och slå ner dem i havet",
 	["Bat your opponents through the|baskets and out of the map!"] = "Slå ner dina motståndare i|korgarna och ut ur kartan!",
 	["Bazooka Training"] = "Bazookaträning",
 	["Best laps per team: "] = "Bästa varv per lag: ",
+--      ["Best Team Times: "] = "",
 	["Bloody Rookies"] = "Blodiga gröngölingar", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["BOOM!"] = "",
     ["Boom!"] = "Bom!",
-	["by mikade"] = "av mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
 	["CAPTURE THE FLAG"] = "CAPTURE THE FLAG",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
 	["Codename: Teamwork"] = "Kodnamn: Lagarbete",
+--      ["Complete the track as fast as you can!"] = "",
 	["Congratulations!"] = "Grattis!",
 	["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Grattis! Du har förstört alla målen inom den|tillåtna tidsramen.", --Bazooka, Shotgun, SniperRifle
-	["CONTROL"] = "KONTROLL",
 	["Control pillars to score points."] = "Kontrollera pelare för att ta poäng",
-	["CONTROL v0.3"] = "KONTROLL v0.3",
-    ["CTF_BLIZZARD"] = "CTF_BLIZZARD",
-	["CUSTOM BUILD 0.2"] = "SPECIALVERSION 0.2",
 	["Cybernetic Empire"] = "Robotriket",
 	["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "SATAN, GRÖNGÖLING! SLUTA TJATA!",
 	["DAMMIT, ROOKIE!"] = "SATAN, GRÖNGÖLING!",
 	["Dangerous Ducklings"] = "Farliga ankungar",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
 	["Eliminate all enemies"] = "Förgör alla fiender",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag", --Bazooka, Shotgun, SniperRifle
 	["Eliminate Poison before the time runs out"] = "Förgör Gift innan tiden tar slut",
 	["Eliminate the Blue Team"] = "Förgör det Blå laget",
+--      ["Eliminate the enemy specialists."] = "",
 	["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Förgör Enhet 3378 |- Klent motstånd måste överleva",
 	["Enjoy the swim..."] = "Ha en trevlig simtur...",
+--      ["[Enter]"] = "",
 	["Fastest lap: "] = "Snabbast varv: ",
 	["Feeble Resistance"] = "Klent motstånd",
+--      ["Fire"] = "",
 	["Flag captured!"] = "Flagga tagen!",
 	["Flag respawned!"] = "Flagga återställd!",
 	["Flag returned!"] = "Flagga återvänd!",
-	["Flags will be placed where each team ends their turn."] = "Flaggor kommer att placeras där varje lag avslutar sin tur.",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
 	["GAME OVER!"] = "SPELET ÄR SLUT!",
 	["Game Started!"] = "Spel startat!",
 	["Get on over there and take him out!"] = "Ta dig bort där och gör dig av med honom!",
-    ["Goal:"] = "Mål:",
+--      ["Goal"] = "",
 	["GO! GO! GO!"] = "Kör! Kör! Kör!",
 	["Good birdy......"] = "Fin fågel......",
 	["Good luck out there!"] = "Lycka till där ute!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basket",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
 	["Hmmm..."] = "Hmmm...",
 	["Hooray!"] = "Hurra!",
 	["Hunter"] = "Jägare", --Bazooka, Shotgun, SniperRifle
 	["Instructor"] = "Instruktör", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-	["- Jumping is disabled"] = "- Hoppande är avaktiverat",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
 	["Listen up, maggot!!"] = "Hör här, ynkrygg!!",
     ["|- Mines Time:"] = "|- Mintid:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION FAILED"] = "UPPDRAG MISSLYCKADES", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
 	["MISSION SUCCESSFUL"] = "UPPDRAG SLUTFÖRT", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "NYTT snabbast varv: ",
-	["NO JUMPING"] = "INGET HOPPANDE",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
 	["Not So Friendly Match"] = "En inte så vänlig match", -- Basketball, Knockball
 	["Oh no! Just try again!"] = "Å nej! Bara att försöka igen!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["Oh no! Time's up! Just try again."] = "Åh nej! Tiden är ute! Pröva igen.", --Bazooka, Shotgun, SniperRifle
 	["Operation Diver"] = "Operationens dykare",
 	["Opposing Team: "] = "Motståndarlag: ",
 	["Pathetic Hog #%d"] = "Patetisk kott #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
 	["Poison"] = "Gift",
-	["Random Weapons"] = "Slumpade vapen",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 	[" - 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"] = " - Återvänd med fiendens flagga till din bas för att ta poäng | - Första laget till tre vinner | - Du kan bara ta poäng när din egen flagga är i basen | - Kottar tappar flaggan när de dödas eller drunknar | - Tappade flaggor kan tas tillbaka eller fångas | - Kottar kommer tillbaka när de dör",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
 	["RULES OF THE GAME [Press ESC to view]"] = "SPELREGLER [Tryck ESC för att se]",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
     ["sec"] = "sec", -- 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!"] = "Ses!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
 	["Shotgun Team"] = "Hagelgevärslaget",
 	["Shotgun Training"] = "Hagelgevärsträning",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s är ute och lag %d|fick ett straff!| |Poängställning:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s är ute och lag %d|fick ett poäng!| |Poängställning:", -- Basketball, Knockball
 	["Sniper Training"] = "Prickskyttesträning",
 	["Sniperz"] = "Prickskyttarna",
+--      ["Sponge"] = "",
 	["Spooky Tree"] = "Kusligt träd",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
 	["Team %d: "] = "Lag %d: ",
-	["Team Scores:"] = "Lagresultat:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
     ["That was pointless."] = "Det där var meningslöst.",
 	["The enemy is hiding out on yonder ducky!"] = "Fienden gömmer sig på andra ankan!",
     ["The flag will respawn next round."] = "Flaggan kommer tillbaka nästa runda.",
-	["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Det har uppstått ett missförstånd om din utrustning|och nu måste du använda vad du kan hitta!",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
 	["Toxic Team"] = "Förgiftade laget", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
 	["TrophyRace"] = "TrophyRace",
 	["T_T"] = "T_T",
+--      ["Turn Time"] = "",
 	["Unit 3378"] = "Enhet 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "Använd ditt rep för att ta dig från start till mål så fort som möjligt!",
+--      ["v.06"] = "",
 	["Victory for the "] = "Vinst för", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
 	["You have SCORED!!"] = "Du har tagit poäng!",
+--      ["You saved"] = "",
 	["You've failed. Try again."] = "Du har misslyckats. Försök igen.",
 	["You've reached the goal!| |Time: "] = "Du har nått målet!| |Tid: ",
 	["'Zooka Team"] = "Bazookalaget",
--- a/share/hedgewars/Data/Locale/uk.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/uk.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,94 +1,176 @@
 locale = {
 --      [":("] = "",
-        ["!!!"] = "Я!",
-        ["A game of luck"] = "Гра на вдачу",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
         ["Aiming Practice"] = "Практика прицілювання", --Bazooka, Shotgun, SniperRifle
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
         ["Bat balls at your enemies and|push them into the sea!"] = "Закидайте ворогів м'ячами щоб|зіштовути їх у море!",
         ["Bat your opponents through the|baskets and out of the map!"] = "Дубасьте опонентів битою через|кошики та за межі карти!",
         ["Bazooka Training"] = "Тренування з базукою",
         ["Best laps per team: "] = "Кращі партії на команду: ",
+--      ["Best Team Times: "] = "",
         ["Bloody Rookies"] = "Криваві Салаги", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["BOOM!"] = "",
         ["Boom!"] = "Бабах!",
-        ["by mikade"] = "від mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
         ["CAPTURE THE FLAG"] = "ЗАХОПЛЕННЯ ПРАПОРА",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
         ["Codename: Teamwork"] = "Кодова назва: Командна гра",
-        ["Congratulations!"] = "Вітаємо!",
+--      ["Complete the track as fast as you can!"] = "",
         ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Вітаємо! Ви знищили всі цілі|в межах дозволеного часу.", --Bazooka, Shotgun, SniperRifle
-        ["CONTROL"] = "КОНТРОЛЬ",
+        ["Congratulations!"] = "Вітаємо!",
         ["Control pillars to score points."] = "Контрольюй стовпи щоб набрати очки.",
-        ["CONTROL v0.3"] = "КОНТРОЛЬ v0.3",
-        ["CTF_BLIZZARD"] = "ЗАХОПЛЕННЯ ПРАПОРА - ОПЕРАЦІЯ ХУРТОВИНА",
-        ["CUSTOM BUILD 0.2"] = "ОСОБИСТА ВЕРСІЯ 0.2",
         ["Cybernetic Empire"] = "Кібернетична Імперія",
+        ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "ЧОРТ ЗАБИРАЙ, САЛАГА! ЗЛІЗЬ З МОЄЇ ГОЛОВИ!",
         ["DAMMIT, ROOKIE!"] = "ЧОРТ ЗАБИРАЙ, САЛАГА!",
-        ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "ЧОРТ ЗАБИРАЙ, САЛАГА! ЗЛІЗЬ З МОЄЇ ГОЛОВИ!",
         ["Dangerous Ducklings"] = "Небезпечні Каченята",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
         ["Eliminate all enemies"] = "Ліквідуйте всіх ворогів",
         ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Знищіть всі цілі до закінчення часу.|У вас безмежні боєприпаси.", --Bazooka, Shotgun, SniperRifle
         ["Eliminate Poison before the time runs out"] = "Знешкодьте Смердюка до закінчення часу",
         ["Eliminate the Blue Team"] = "Знищіть Синю Команду",
+--      ["Eliminate the enemy specialists."] = "",
         ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Знищіть Об'єкт 3378 |- Жалюгідні Повстанці повинні вижити",
         ["Enjoy the swim..."] = "Насолоджуйся плаванням...",
+--      ["[Enter]"] = "",
         ["Fastest lap: "] = "Найшвидша партія: ",
         ["Feeble Resistance"] = "Жалюгідні Повстанці",
+--      ["Fire"] = "",
         ["Flag captured!"] = "Прапор захоплено!",
         ["Flag respawned!"] = "Прапор відновлено!",
         ["Flag returned!"] = "Прапор повернено!",
-        ["Flags will be placed where each team ends their turn."] = "Прапори будуть розміщені там де кожна команда закінчить свій хід.",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
         ["GAME OVER!"] = "КІНЕЦЬ ГРИ!",
         ["Game Started!"] = "Гра почалась!",
         ["Get on over there and take him out!"] = "Залізь туди і прикінчи його!",
-        ["Goal:"] = "Мета:",
+--      ["Goal"] = "",
         ["GO! GO! GO!"] = "ДАВАЙ! ДАВАЙ! РУХАЙСЯ!",
         ["Good birdy......"] = "Гарна пташка......",
         ["Good luck out there!"] = "Удачі!",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
         ["Hedgewars-Basketball"] = "Баскетбол Їжаками",
         ["Hedgewars-Knockball"] = "Бейсбол Їжаками",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
         ["Hmmm..."] = "Хмм...",
         ["Hooray!"] = "Урааа!",
         ["Hunter"] = "Мисливець", --Bazooka, Shotgun, SniperRifle
         ["Instructor"] = "Інструктор", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-        ["- Jumping is disabled"] = "- Стрибки вимкнено",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
         ["Listen up, maggot!!"] = "Слухай, хробак!",
         ["|- Mines Time:"] = "|- Час детонування мін:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
         ["MISSION FAILED"] = "МІСІЮ ПРОВАЛЕНО", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
         ["MISSION SUCCESSFUL"] = "МІСІЮ ВИКОНАНО", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
         ["NEW fastest lap: "] = "НОВА найшвидша партія: ",
-        ["NO JUMPING"] = "БЕЗ СТРИБКІВ",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
         ["Not So Friendly Match"] = "Не дуже товариський матч", -- Basketball, Knockball
         ["Oh no! Just try again!"] = "О, ні! Давай, спробуй ще раз!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
         ["Oh no! Time's up! Just try again."] = "О, ні! Час йде! Спробуй ще раз.", --Bazooka, Shotgun, SniperRifle
         ["Operation Diver"] = "Операція Водолаз",
         ["Opposing Team: "] = "Команда-Противник: ",
         ["Pathetic Hog #%d"] = "Жалюгідний Їжак #%d",
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
         ["points"] = "очок", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
         ["Poison"] = "Смердюк",
-        ["Random Weapons"] = "Випадкова Зброя",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
         [" - 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"] = " - Поверніть ворожий прапор на свою базу щоб заробити очко | - Виграє команда з трьома очками | - Ви можете заробити очко лише коли ваш прапор на вашій базі | - Їжак покине прапор якщо потоне чи буде вбитий | - Покинутий прапор можна повернути або захопити знов | - Їжаки відновлюються після смерті",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
         ["RULES OF THE GAME [Press ESC to view]"] = "ПРАВИЛА ГРИ [Натисніть ESC для перегляду]",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
         ["sec"] = "сек", -- 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!"] = "Побачимося!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
         ["Shotgun Team"] = "Команда Рушниць",
         ["Shotgun Training"] = "Тренування з рушницею",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
         ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s вибув і Команда %d|отримала штраф!| |Рахунок:", -- Basketball, Knockball
         ["%s is out and Team %d|scored a point!| |Score:"] = "%s вибув і Команда %d|заробила очко!| |Рахунок:", -- Basketball, Knockball
         ["Sniper Training"] = "Снайперське тренування",
 --      ["Sniperz"] = "",
+--      ["Sponge"] = "",
         ["Spooky Tree"] = "Примарне Дерево",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
         ["Team %d: "] = "Команда %d: ",
-        ["Team Scores:"] = "Результати команд:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
         ["That was pointless."] = "Це було безглуздо.",
         ["The enemy is hiding out on yonder ducky!"] = "Ворог ховається на он тій качечці!",
         ["The flag will respawn next round."] = "Прапор відновиться в наступному раунді.",
-        ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Сталася плутанина з передачою, і тому ви|повинні використовувати все, що вам попадеться!",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
         ["Toxic Team"] = "Токсична Команда", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
         ["TrophyRace"] = "Погоня за Трофеєм",
         ["T_T"] = "Ааааа!!!",
+--      ["Turn Time"] = "",
         ["Unit 3378"] = "Об'єкт 3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
         ["Use your rope to get from start to finish as fast as you can!"] = "Скористайся мотузкою щоб якнайшвидше досягнути фінішу!",
+--      ["v.06"] = "",
         ["Victory for the "] = "Перемога для ", -- CTF_Blizzard, Capture_the_Flag
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
         ["You have SCORED!!"] = "Ви заробили ОЧКО!!",
+--      ["You saved"] = "",
         ["You've failed. Try again."] = "Спроба не вдалась. Спробуйте знов.",
         ["You've reached the goal!| |Time: "] = "Ви досягли мети!| |Час: ",
         ["'Zooka Team"] = "Команда 'Zooka",
+        ["!!!"] = "Я!",
     }
--- a/share/hedgewars/Data/Locale/zh_CN.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Locale/zh_CN.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,59 +1,98 @@
 locale = {
       ["!!!"] = "!!!",
-      ["A game of luck"] = "运气游戏",
+--      ["..."] = "",
+--      ["Accuracy Bonus!"] = "",
+--      ["a Hedgewars mini-game"] = "", -- Space_Invasion, The_Specialists
       ["Aiming Practice"] = "瞄准练习", --火箭筒、霰弹枪、狙击枪
+--      ["Ammo"] = "",
+--      ["Ammo Depleted!"] = "",
+--      ["Ammo Maniac!"] = "",
+--      ["Available points remaining: "] = "",
       ["Bat balls at your enemies and|push them into the sea!"] = "发射棒球将敌人击打入水",
       ["Bat your opponents through the|baskets and out of the map!"] = "把敌人击出场地——对准栏框",
       ["Bazooka Training"] = "火箭筒训练",
       ["Best laps per team: "] = "每一队最佳速度:",
+--      ["Best Team Times: "] = "",
       ["Bloody Rookies"] = "雉儿飞", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Boom!"] =
-      ["by mikade"] = "mikade撰写", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+--      ["BOOM!"] = "",
+--      ["Boss defeated!"] = "",
+--      ["Boss Slayer!"] = "",
       ["CAPTURE THE FLAG"] = "抢旗子",
+--      ["Careless"] = "",
+--      ["Clumsy"] = "",
       ["Codename: Teamwork"] = "代号:团队行动",
+--      ["Complete the track as fast as you can!"] = "",
       ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "恭喜!你在规定时限内清零全部目标。", --Bazooka, Shotgun, SniperRifle
       ["Congratulations!"] = "恭喜",
       ["Control pillars to score points."] = "控制支柱得分",
-      ["CONTROL v0.3"] = "控制 v0.3",
-      ["CONTROL"] = "控制",
---      ["CTF_BLIZZARD"] =
-      ["CUSTOM BUILD 0.2"] = "自定义建设 0.2",
       ["Cybernetic Empire"] = "自动化帝国",
       ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "新人,别让我看到",
       ["DAMMIT, ROOKIE!"] = "新人",
       ["Dangerous Ducklings"] = "危险的小鸭子",
+--      ["Deadweight"] = "",
+--      ["Depleted Kamikaze!"] = "",
+--      ["Destroy invaders to score points."] = "",
+--      ["Drone Hunter!"] = "",
+--      ["Drowner"] = "",
+--      ["Each turn you get 1-3 random weapons"] = "",
+--      ["Each turn you get one random weapon"] = "",
       ["Eliminate all enemies"] = "解决全部对手",
       ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "时间限制内清除全部目标。弹药无限。", --Bazooka, Shotgun, SniperRifle
       ["Eliminate Poison before the time runs out"] = "时间限制内清除毒素。",
       ["Eliminate the Blue Team"] = "解决蓝色队伍",
+--      ["Eliminate the enemy specialists."] = "",
       ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- 打倒 3378 |-反抗者必须存活",
       ["Enjoy the swim..."] = "游水愉快",
+--      ["[Enter]"] = "",
       ["Fastest lap: "] = "最快记录:",
       ["Feeble Resistance"] = "反抗者",
+--      ["Fire"] = "",
       ["Flag captured!"] = "夺旗得分!",
       ["Flag respawned!"] = "旗帜重生!",
       ["Flag returned!"] = "旗帜归还!",
-      ["Flags will be placed where each team ends their turn."] = "旗帜会被放置在每个队伍回合结束时所在的地方。",
+--      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+--      ["GAME BEGUN!!!"] = "",
+--      ["Game Modifiers: "] = "",
       ["GAME OVER!"] = "结束了!",
       ["Game Started!"] = "开始",
       ["Get on over there and take him out!"] = "上去把它拉下来!",
---      ["Goal:"] =
+--      ["Goal"] = "",
       ["GO! GO! GO!"] = "上!",
       ["Good birdy......"] = "乖鸟儿",
       ["Good luck out there!"] = "祝好运",
+--      ["GOTCHA!"] = "",
+--      ["Hahahaha!"] = "",
+--      ["Haha, now THAT would be something!"] = "",
+--      ["Hapless Hogs"] = "",
+--      [" Hapless Hogs left!"] = "",
+--      ["Heavy"] = "",
       ["Hedgewars-Basketball"] = "刺猬大作战-篮球计划",
       ["Hedgewars-Knockball"] = "刺猬大作战-击球计划",
+--      ["Heh, it's not that bad."] = "",
+--      ["Hit Combo!"] = "",
       ["Hmmm..."] = "呃...",
       ["Hooray!"] = "呼!",
       ["Hunter"] = "猎人", --Bazooka, Shotgun, SniperRifle
       ["Instructor"] = "引导员", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
-      ["- Jumping is disabled"] = "- 跳跃禁止",
+--      ["invaders destroyed"] = "",
+--      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+--      ["Jumping is disabled"] = "",
+--      ["Kamikaze Expert!"] = "",
+--      ["KILLS"] = "",
+--      ["[Left Shift]"] = "",
       ["Listen up, maggot!!"] = "听好,小子!!",
 --      ["|- Mines Time:"] =
       ["MISSION FAILED"] = "任务失败", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["MISSION SUCCESS"] = "",
       ["MISSION SUCCESSFUL"] = "任务成功", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Movement: [Up], [Down], [Left], [Right]"] = "",
+--      ["Multi-shot!"] = "",
+--      ["Nameless Heroes"] = "",
+--      ["NEW CLAN RECORD: "] = "",
       ["NEW fastest lap: "] = "新记录",
-      ["NO JUMPING"] = "不准跳",
+--      ["NEW RACE RECORD: "] = "",
+--      ["NOT ENOUGH WAYPOINTS"] = "",
       ["Not So Friendly Match"] = "非友善对抗", -- Basketball, Knockball
       ["Oh no! Just try again!"] = "不!重新再来。", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
       ["Oh no! Time's up! Just try again."] = "不!到点了,需要重新来。", --Bazooka, Shotgun, SniperRifle
@@ -63,34 +102,77 @@
       ["Pathetic Hog #1"] = "可怜刺猬一号",
       ["Pathetic Hog #2"] = "可怜刺猬二号",
 --      ["Pathetic Hog #%d"] =
+--      ["Per-Hog Ammo"] = "",
+--      ["Place more waypoints using [ENTER]"] = "",
 --      ["points"] =
 --      ["Poison"] =
-      ["Random Weapons"] = "随机武器",
+--      ["Power Remaining"] = "",
+--      ["Press [Precise] to skip intro"] = "",
+--      ["Race complexity limit reached."] = "",
 --      [" - 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"] =
       ["- 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"] = "-带回敌人旗帜得分| -第一支3次夺旗队伍获胜| - 只有旗帜在己方基地才算| -带旗刺猬消逝则旗帜落下| -落下的旗帜使用方式不变| -损失的刺猬瞬间还原",
+--      ["Round Limit"] = "",
+--      ["Rounds Complete"] = "",
       ["RULES OF THE GAME [Press ESC to view]"] = "游戏规则 [按下 ESC键 查看]",
+--      ["s|"] = "",
+--      ["Save as many hapless hogs as possible!"] = "",
+--      ["SCORE"] = "",
 --      ["sec"] =
       ["See ya!"] = "再见!",
+--      ["s"] = "", -- GaudyRacer, Space_Invasion
+--      ["Shield boosted! +30 power"] = "",
+--      ["Shield Depleted"] = "",
+--      ["Shield is fully recharged!"] = "",
+--      ["Shield Master!"] = "",
+--      ["Shield Miser!"] = "",
+--      ["Shield OFF:"] = "",
+--      ["Shield ON:"] = "",
+--      ["Shield Seeker!"] = "",
       ["Shotgun Team"] = "霰弹枪队",
       ["Shotgun Training"] = "霰弹枪训练",
+--      ["Shots Left: "] = "", -- GaudyRacer, Tumbler
+--      ["Silly"] = "",
+--      ["Sinky"] = "",
       ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s 出局, %d 惩罚分数!", -- Basketball, Knockball
       ["%s is out and Team %d|scored a point!| |Score:"] = "%s 出局, %d 得分!", -- Basketball, Knockball
       ["Sniper Training"] = "狙击训练",
       ["Sniperz"] = "狙击手",
+--      ["Sponge"] = "",
       ["Spooky Tree"] = "怪树",
+--      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+--      ["Switched to "] = "",
       ["Team %d: "] = "队伍 %d",
-      ["Team Scores:"] = "队伍得分:",
+--      ["Team Scores"] = "", -- Control, Space_Invasion
+--      ["That Sinking Feeling"] = "",
 --      ["That was pointless."] =
       ["The enemy is hiding out on yonder ducky!"] = "敌人藏在那边!",
 --      ["The flag will respawn next round."] =
-      ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "现阶段装备混用,只能最大|程度地用好到手的玩具。",
+--      ["The Nameless One"] = "",
+--      ["THE SPECIALISTS"] = "",
+--      ["This rain is really something..."] = "",
+--      ["TIME: "] = "",
+--      ["Timed Kamikaze!"] = "",
+--      ["Time Extended!"] = "",
+--      ["Time Left: "] = "",
+--      ["Toggle Shield"] = "",
       ["Toxic Team"] = "腐坏的队伍", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["TRACK COMPLETED"] = "",
+--      ["Track Time: "] = "",
       ["TrophyRace"] = "竞速",
       ["T_T"] = "T_T",
+--      ["Turn Time"] = "",
       ["Unit 3378"] = "3378",
+--      ["Unlimited Attacks"] = "",
+--      ["User Challenge"] = "",
       ["Use your rope to get from start to finish as fast as you can!"] = "抓起绳子飞向目的地,越快越好。",
+--      ["v.06"] = "",
       ["Victory for the "] = "胜利属于",
+--      ["Waypoint placed."] = "",
+--      ["Weapons Reset"] = "",
+--      ["WINNING TIME: "] = "",
+--      ["You'd almost swear the water was rising!"] = "",
       ["You have SCORED!!"] = "得分",
+--      ["You saved"] = "",
       ["You've failed. Try again."] = "失败了。再尝试吧。",
       ["You've reached the goal!| |Time: "] = "目标达成| |时间:",
       ["'Zooka Team"] = "火箭队",
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -285,7 +285,7 @@
 				fNeedsRespawn[bbq] = true
 				fCaptures[wtf] = fCaptures[wtf] +1					--fCaptures[wtf]
 
-				--ShowMission(loc("You have SCORED!!"), "Red Team: " .. fCaptures[0], "Blue Team: " .. fCaptures[1], -amBazooka, 0)
+				--ShowMission(LOC_NOT("You have SCORED!!"), "Red Team: " .. fCaptures[0], "Blue Team: " .. fCaptures[1], -amBazooka, 0)
 				ShowMission(loc("You have SCORED!!"), GetHogTeamName(CurrentHedgehog) .. ": " .. fCaptures[wtf], loc("Opposing Team: ") .. fCaptures[bbq], 0, 0)
 
 				PlaySound(sndVictory)
@@ -575,8 +575,7 @@
 
 function onGameStart()
 
-	--ShowMission(loc(caption), loc(subcaption), loc(goal), 0, 0)
-	ShowMission(loc("CTF_BLIZZARD"), "", loc(" - 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"), 0, 0)
+	ShowMission("CTF_BLIZZARD", "", loc(" - 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"), 0, 0)
 
 
 	-- initialize teleporters
--- a/share/hedgewars/Data/Maps/Control/map.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Maps/Control/map.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -352,7 +352,7 @@
 		--AddCaption(zz) -- number of times it took to work
 	end
 
-	ShowMission(loc("CONTROL v0.3"), loc(""), loc("Control pillars to score points.") .. "|" .. loc("Goal:") .. " " .. pointLimit .. " " .. loc("points"), 0, 0)
+	ShowMission("CONTROL v0.3", "", loc("Control pillars to score points.") .. "|" .. loc("Goal") .. ": " .. pointLimit .. " " .. loc("points"), 0, 0)
 
 
 end
@@ -390,12 +390,12 @@
 
 		for i = 0,5 do
 				if teamNameArr[i] ~= " " then				-- i
-					teamComment[i] = teamNameArr[i] .. ": " .. teamScore[teamClan[i]] .. loc (" points|")
+					teamComment[i] = teamNameArr[i] .. ": " .. teamScore[teamClan[i]] .. " " .. loc("points") .. "|"
 				elseif teamNameArr[i] == " " then
 					teamComment[i] = "|"
 				end
 			end
-			ShowMission(loc("CONTROL"), loc("Team Scores:"), teamComment[0] .. teamComment[1] .. teamComment[2] .. teamComment[3] .. teamComment[4] .. teamComment[5], 0, 1600)
+			ShowMission("CONTROL", loc("Team Scores") .. ":", teamComment[0] .. teamComment[1] .. teamComment[2] .. teamComment[3] .. teamComment[4] .. teamComment[5], 0, 1600)
 	
 	end
 
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -66,7 +66,7 @@
 	-- A negative icon parameter (-n) represents the n-th weapon icon
 	-- A positive icon paramter (n) represents the (n+1)-th mission icon
 	-- A timeframe of 0 is replaced with the default time to show.
-	ShowMission(loc("Dangerous Ducklings"), loc("by mikade"), loc("Eliminate the Blue Team"), -amRope, 1);
+	ShowMission(loc("Dangerous Ducklings"), "", loc("Eliminate the Blue Team"), -amRope, 1);
 
 end
 
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -43,7 +43,7 @@
 
 	AddGear(1603, 1320, gtMine, 0, 0, 0, 0)
 
-	ShowMission(loc("Operation Diver"), loc("by mikade"), loc("Eliminate Poison before the time runs out") .. loc("|- Mines Time:") .. " " .. 1 .. " " .. loc("sec"), -amFirePunch, 0);
+	ShowMission(loc("Operation Diver"), "", loc("Eliminate Poison before the time runs out") .. loc("|- Mines Time:") .. " " .. 1 .. " " .. loc("sec"), -amFirePunch, 0);
 	--SetTag(AddGear(0, 0, gtATSmoothWindCh, 0, 0, 0, 1), -70)
 
 	SetWind(-100)
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -79,7 +79,7 @@
 	GirderCrate = SpawnAmmoCrate(2813,1538,amShotgun) -- final shotgun
 	SpawnAmmoCrate(2205,1443,amBee)
 
-	ShowMission(loc("Spooky Tree"), loc("by mikade"), loc("Eliminate all enemies") .. loc("|- Mines Time:") .. " " .. 0 .. " " .. loc("sec"), -amBee, 0)
+	ShowMission(loc("Spooky Tree"), "", loc("Eliminate all enemies") .. loc("|- Mines Time:") .. " " .. 0 .. " " .. loc("sec"), -amBee, 0)
 
 	SetWind(-75)
 
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -65,7 +65,7 @@
 	SpawnUtilityCrate(2567,1768,amJetpack)
 	SpawnAmmoCrate(1251,1466,amDrill)
 
-	ShowMission(loc("Codename: Teamwork"), loc("by mikade"), loc("- Eliminate Unit 3378 |- Feeble Resistance must survive") .. loc("|- Mines Time:") .. " " .. 0 .. " " .. loc("sec"), 0, 0)
+	ShowMission(loc("Codename: Teamwork"), "", loc("- Eliminate Unit 3378 |- Feeble Resistance must survive") .. loc("|- Mines Time:") .. " " .. 0 .. " " .. loc("sec"), 0, 0)
 
 end
 
--- a/share/hedgewars/Data/Scripts/Multiplayer/GaudyRacer.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/GaudyRacer.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -305,12 +305,12 @@
 
 	if newScore == true then
 		if trackTime == bestTime then -- best time of the race
-			ShowMission(loc("RACER"), loc("TRACK COMPLETED"), loc("NEW RACE RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" .. loc("WINNING TIME: ") .. bestTimeComment, 0, 4000)
+			ShowMission("RACER", loc("TRACK COMPLETED"), loc("NEW RACE RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" .. loc("WINNING TIME: ") .. bestTimeComment, 0, 4000)
 		else	-- best time for the clan
-			ShowMission(loc("RACER"), loc("TRACK COMPLETED"), loc("NEW CLAN RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" .. loc("WINNING TIME: ") .. bestTimeComment, 4, 4000)
+			ShowMission("RACER", loc("TRACK COMPLETED"), loc("NEW CLAN RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" .. loc("WINNING TIME: ") .. bestTimeComment, 4, 4000)
 		end
 	else -- not any kind of new score
-		ShowMission(loc("RACER"), loc("TRACK COMPLETED"), loc("TIME: ") .. (trackTime/1000) ..loc("s") .. "|" .. loc("WINNING TIME: ") .. bestTimeComment, -amSkip, 4000)
+		ShowMission("RACER", loc("TRACK COMPLETED"), loc("TIME: ") .. (trackTime/1000) ..loc("s") .. "|" .. loc("WINNING TIME: ") .. bestTimeComment, -amSkip, 4000)
 	end
 
 end
@@ -328,7 +328,7 @@
 					teamComment[i] = "|"
 				end
 		end
-		ShowMission(loc("RACER"), loc("STATUS UPDATE"), loc("Rounds Complete: ") .. roundNumber .. "/" .. roundLimit .. "|" .. " " .. "|" .. loc("Best Team Times: ") .. "|" .. teamComment[0] .. teamComment[1] .. teamComment[2] .. teamComment[3] .. teamComment[4] .. teamComment[5] .. teamComment[6] .. teamComment[7], 0, 1600)
+		ShowMission("RACER", loc("STATUS UPDATE"), loc("Rounds Complete") .. ": " .. roundNumber .. "/" .. roundLimit .. "|" .. " " .. "|" .. loc("Best Team Times: ") .. "|" .. teamComment[0] .. teamComment[1] .. teamComment[2] .. teamComment[3] .. teamComment[4] .. teamComment[5] .. teamComment[6] .. teamComment[7], 0, 1600)
 
 		-- end game if its at round limit
 		if roundNumber == roundLimit then
@@ -368,7 +368,7 @@
 
 function onGameStart()
 	RebuildTeamInfo()
-	ShowMission(loc("RACER"), "", "", 4, 4000)
+	ShowMission("RACER", "", "", 4, 4000)
 end
 
 function onHJump()
@@ -518,9 +518,9 @@
 			racerActive = true
 			roundNumber = 0 -- 0
 			firstClan = GetHogClan(CurrentHedgehog)
-			ShowMission(loc("RACER"), loc("GAME BEGUN!!!"), loc("Complete the track as fast as you can!"), 2, 4000)
+			ShowMission("RACER", loc("GAME BEGUN!!!"), loc("Complete the track as fast as you can!"), 2, 4000)
 		else
-			ShowMission(loc("RACER"), loc("NOT ENOUGH WAYPOINTS"), loc("Place more waypoints using [ENTER]"), 2, 4000)
+			ShowMission("RACER", loc("NOT ENOUGH WAYPOINTS"), loc("Place more waypoints using [ENTER]"), 2, 4000)
 		end
 	end
 
@@ -559,7 +559,7 @@
 	-- has the player started his tumbling spree?
 	if (CurrentHedgehog ~= nil) and (tumbleStarted == true) then
 
-		--AddCaption(loc("Speed: ") .. GetSpeed())
+		--AddCaption(LOC_NOT("Speed: ") .. GetSpeed())
 
 		-- if the RACE has started, show tracktimes and keep tabs on waypoints
 		if (racerActive == true) and (gameBegun == true) then
@@ -601,7 +601,7 @@
 
 			if TimeLeft >= 0 then
 				--TurnTimeLeft = TimeLeft
-				--AddCaption(loc("Time Left: ") .. TimeLeft)
+				--AddCaption(LOC_NOT("Time Left: ") .. TimeLeft)
 			end
 
 		end
--- a/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -9,7 +9,7 @@
 end
 
 --function onGameStart()
---	ShowMission(loc("NO JUMPING"), loc("- Jumping is disabled"), loc("Good luck out there!"), 0, 0)
+--	ShowMission(LOC_NOT("NO JUMPING"), LOC_NOT("- Jumping is disabled"), LOC_NOT("Good luck out there!"), 0, 0)
 --end
 
 function onNewTurn()
--- a/share/hedgewars/Data/Scripts/Multiplayer/Random_Weapon.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Random_Weapon.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -46,7 +46,7 @@
 
 function onGameInit()
     -- Limit flags that can be set, but allow game schemes to be used
-    GameFlags = band(bor(GameFlags, gfResetWeps), bnot(gfInfAttack + gfPerHogAmmo))
+    GameFlags = band(bor(GameFlags, gfResetWeps), bnot(gfInfAttack))
     -- Set a custom game goal that will show together with the scheme ones
     Goals = loc("Each turn you get one random weapon")
 end
--- a/share/hedgewars/Data/Scripts/Multiplayer/Space_Invasion.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Space_Invasion.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -114,50 +114,50 @@
 -----------------
 capgrpAmmostate
 -----------------
-AddCaption( chainLength .. loc("-chain! +") .. chainLength*2 .. loc(" points!"),0xffba00ff,capgrpAmmostate)
-AddCaption(loc("Multi-shot! +5 points!"),0xffba00ff,capgrpAmmostate) 
+AddCaption( chainLength .. LOC_NOT("-chain! +") .. chainLength*2 .. LOC_NOT(" points!"),0xffba00ff,capgrpAmmostate)
+AddCaption(LOC_NOT("Multi-shot! +5 points!"),0xffba00ff,capgrpAmmostate) 
 
 -----------------
 capgrpAmmoinfo
 -----------------
-AddCaption(loc("Shield Miser! +20 points!"),0xffba00ff,capgrpAmmoinfo)
-AddCaption(loc("Shield Master! +10 points!"),0xffba00ff,capgrpAmmoinfo)
+AddCaption(LOC_NOT("Shield Miser! +20 points!"),0xffba00ff,capgrpAmmoinfo)
+AddCaption(LOC_NOT("Shield Master! +10 points!"),0xffba00ff,capgrpAmmoinfo)
 
 -----------------
 capgrpVolume
 -----------------
-AddCaption(loc("Boom! +25 points!"),0xffba00ff,capgrpVolume)
-AddCaption(loc("BOOM! +50 points!"),0xffba00ff,capgrpVolume)
-AddCaption(loc("BOOM! BOOM! BOOM! +100 points!"),0xffba00ff,capgrpVolume)
-AddCaption(loc("Accuracy Bonus! +15 points!"),0xffba00ff,capgrpVolume)
+AddCaption(LOC_NOT("Boom! +25 points!"),0xffba00ff,capgrpVolume)
+AddCaption(LOC_NOT("BOOM! +50 points!"),0xffba00ff,capgrpVolume)
+AddCaption(LOC_NOT("BOOM! BOOM! BOOM! +100 points!"),0xffba00ff,capgrpVolume)
+AddCaption(LOC_NOT("Accuracy Bonus! +15 points!"),0xffba00ff,capgrpVolume)
 
 -----------------
 capgrpMessage 
 -----------------
-AddCaption(loc("Ammo Depleted!"),0xff0000ff,capgrpMessage)
-AddCaption(loc("Ammo: ") .. primShotsLeft)
+AddCaption(LOC_NOT("Ammo Depleted!"),0xff0000ff,capgrpMessage)
+AddCaption(LOC_NOT("Ammo: ") .. primShotsLeft)
 AddCaption("Shield Depleted",0xff0000ff,capgrpMessage)
-AddCaption( loc("Shield ON:") .. " " .. shieldHealth - 80 .. " " .. loc("Power Remaining") )
-AddCaption(loc("Shield OFF:") .. " " .. shieldHealth - 80 .. " " .. loc("Power Remaining") )
+AddCaption( LOC_NOT("Shield ON:") .. " " .. shieldHealth - 80 .. " " .. LOC_NOT("Power Remaining") )
+AddCaption(LOC_NOT("Shield OFF:") .. " " .. shieldHealth - 80 .. " " .. LOC_NOT("Power Remaining") )
 
-AddCaption(loc("Time Extended!") .. "+" .. 4 .. loc("s"), 0xff0000ff,capgrpMessage )
-AddCaption("+" .. 3 .. " " .. loc("Ammo"), 0x00ff00ff,capgrpMessage)
-AddCaption(loc("Shield boosted! +30 power"), 0xff00ffff,capgrpMessage)
-AddCaption(loc("Shield is fully recharged!"), 0xffae00ff,capgrpMessage)
-AddCaption(loc("Boss defeated! +50 points!"), 0x0050ffff,capgrpMessage)
+AddCaption(LOC_NOT("Time Extended!") .. "+" .. 4 .. LOC_NOT("s"), 0xff0000ff,capgrpMessage )
+AddCaption("+" .. 3 .. " " .. LOC_NOT("Ammo"), 0x00ff00ff,capgrpMessage)
+AddCaption(LOC_NOT("Shield boosted! +30 power"), 0xff00ffff,capgrpMessage)
+AddCaption(LOC_NOT("Shield is fully recharged!"), 0xffae00ff,capgrpMessage)
+AddCaption(LOC_NOT("Boss defeated! +50 points!"), 0x0050ffff,capgrpMessage)
 
-AddCaption(loc("GOTCHA!"))
-AddCaption(loc("Kamikaze Expert! +15 points!"),0xffba00ff,capgrpMessage)
-AddCaption(loc("Depleted Kamikaze! +5 points!"),0xffba00ff,capgrpMessage)
-AddCaption(loc("Timed Kamikaze! +10 points!"),0xffba00ff,capgrpMessage)
+AddCaption(LOC_NOT("GOTCHA!"))
+AddCaption(LOC_NOT("Kamikaze Expert! +15 points!"),0xffba00ff,capgrpMessage)
+AddCaption(LOC_NOT("Depleted Kamikaze! +5 points!"),0xffba00ff,capgrpMessage)
+AddCaption(LOC_NOT("Timed Kamikaze! +10 points!"),0xffba00ff,capgrpMessage)
 
 -----------------
 capgrpMessage2 
 -----------------
-AddCaption(loc("Drone Hunter! +10 points!"),0xffba00ff,capgrpMessage2)
-AddCaption(loc("Ammo Maniac! +5 points!"),0xffba00ff,capgrpMessage2)
-AddCaption(loc("Shield Seeker! +10 points!"),0xffba00ff,capgrpMessage2)
-AddCaption(loc("Boss Slayer! +25 points!"),0xffba00ff,capgrpMessage2)
+AddCaption(LOC_NOT("Drone Hunter! +10 points!"),0xffba00ff,capgrpMessage2)
+AddCaption(LOC_NOT("Ammo Maniac! +5 points!"),0xffba00ff,capgrpMessage2)
+AddCaption(LOC_NOT("Shield Seeker! +10 points!"),0xffba00ff,capgrpMessage2)
+AddCaption(LOC_NOT("Boss Slayer! +25 points!"),0xffba00ff,capgrpMessage2)
 ]]
 
 ----------------------------------
@@ -366,13 +366,13 @@
 			teamCircsKilled[i] = teamCircsKilled[i] + 1
 
 			if teamCircsKilled[i] == 10 then
-				AddCaption(loc("Boom! +25 points!"),0xffba00ff,capgrpVolume)
+				AddCaption(loc("Boom!") .. " +25 " .. loc("points").."!",0xffba00ff,capgrpVolume)
 				AwardPoints(25)
 			elseif teamCircsKilled[i] == 25 then
-				AddCaption(loc("BOOM! +50 points!"),0xffba00ff,capgrpVolume)
+				AddCaption(loc("BOOM!") .. " +50 " .. loc("points") .. "!",0xffba00ff,capgrpVolume)
 				AwardPoints(50)
 			elseif teamCircsKilled[i] == 50 then
-				AddCaption(loc("BOOM! BOOM! BOOM! +100 points!"),0xffba00ff,capgrpVolume)
+				AddCaption(loc("BOOM!") .. loc("BOOM!") .. loc("BOOM!") .. " +100 " .. loc("points") .. "!",0xffba00ff,capgrpVolume)
 				AwardPoints(100)
 			end
 
@@ -431,8 +431,8 @@
 	for i = 0,(TeamsCount-1) do
 		if sdName[i] ~= " " then
 			teamComment[i] = sdName[i] .. " |" ..
-			loc("SCORE: ") .. sdScore[i] .. loc (" points|") ..
-			loc("KILLS: ") .. sdKills[i] .. loc (" invaders destroyed|") ..
+			loc("SCORE") .. ": " .. sdScore[i] .. " " .. loc("points") .. "|" ..
+			loc("KILLS") .. ": " .. sdKills[i] .. " " .. loc("invaders destroyed") .. "|" ..
 			" " .. "|"
 		elseif sdName[i] == " " then
 			teamComment[i] = "|"
@@ -444,7 +444,7 @@
 		entireC = entireC .. teamComment[i]
 	end
 
-	ShowMission(loc("SPACE INVASION"), loc("STATUS UPDATE"), loc("Rounds Complete: ") .. roundNumber .. "/" .. roundLimit .. "|" .. " " .. "|" .. loc("Team Scores: ") .. "|" ..entireC, 4, 1)
+	ShowMission("SPACE INVASION", loc("STATUS UPDATE"), loc("Rounds Complete") .. ": " .. roundNumber .. "/" .. roundLimit .. "| " .. "|" .. loc("Team Scores") .. ": |" ..entireC, 4, 1)
 
 end
 
@@ -595,7 +595,7 @@
 			PlaySound(sndSuddenDeath)
 			AddCaption(loc("Ammo Depleted!"),0xff0000ff,capgrpMessage)
 		else
-			AddCaption(loc("Ammo: ") .. primShotsLeft)
+			AddCaption(loc("Ammo") .. ": " .. primShotsLeft)
 		end
 
 		CopyPV(CurrentHedgehog, morte) -- new addition
@@ -700,26 +700,26 @@
 	end
 
 	ShowMission	(
-				loc("SPACE INVASION"),
+				"SPACE INVASION",
 				loc("a Hedgewars mini-game"),
 
 				loc("Destroy invaders to score points.") .. "|" ..
 				" " .. "|" ..
 
-				loc("Round Limit:") .. " " .. roundLimit .. "|" ..
-				loc("Turn Time:") .. " " .. (TurnTime/1000) .. loc("s") .. "|" ..
+				loc("Round Limit") .. ": " .. roundLimit .. "|" ..
+				loc("Turn Time") .. ": " .. (TurnTime/1000) .. loc("sec") .. "|" ..
 				" " .. "|" ..
 
 				loc("Movement: [Up], [Down], [Left], [Right]") .. "|" ..
-				loc("Fire:") .. " " .. loc("[Left Shift]") .. "|" ..
-				loc("Toggle Shield:") .. " " .. loc("[Enter]") .. "|" ..
+				loc("Fire") .. ": " .. loc("[Left Shift]") .. "|" ..
+				loc("Toggle Shield") .. ": " .. loc("[Enter]") .. "|" ..
 
 				--" " .. "|" ..
-				--loc("Invaders List: ") .. "|" ..
-				--loc("Blue Jabberwock: (50 points)") .. "|" ..
-				--loc("Red Warbler: (10 points)") .. "|" ..
-				--loc("Orange Gob: (5 points)") .. "|" ..
-				--loc("Green Wrangler: (3 points)") .. "|" ..
+				--LOC_NOT("Invaders List: ") .. "|" ..
+				--LOC_NOT("Blue Jabberwock: (50 points)") .. "|" ..
+				--LOC_NOT("Red Warbler: (10 points)") .. "|" ..
+				--LOC_NOT("Orange Gob: (5 points)") .. "|" ..
+				--LOC_NOT("Green Wrangler: (3 points)") .. "|" ..
 
 
 				"", 4, 4000
@@ -845,7 +845,7 @@
 	-- start the player tumbling with a boom once their turn has actually begun
 	if (tumbleStarted == false) and (gameOver == false) then
 		if (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) then
-			--AddCaption(loc("Good to go!"))
+			--AddCaption(LOC_NOT("Good to go!"))
 			tumbleStarted = true
 			TimeLeft = (TurnTime/1000)	--45
 			FadeAlpha = 0
@@ -867,7 +867,7 @@
 			TimeLeft = TimeLeft - 1
 
 			if TimeLeft >= 0 then
-				--AddCaption(loc("Time Left: ") .. TimeLeft)
+				--AddCaption(LOC_NOT("Time Left: ") .. TimeLeft)
 			end
 
 		end
@@ -896,12 +896,12 @@
 				--nw WriteLnToConsole("Player is out of luck")
 
 				if shieldMiser == true then
-					AddCaption(loc("Shield Miser! +20 points!"),0xffba00ff,capgrpAmmoinfo)
+					AddCaption(loc("Shield Miser!") .. " +20 " .. loc("points") .. "!",0xffba00ff,capgrpAmmoinfo)
 					AwardPoints(20)
 				end
 
 				if ((shotsHit / shotsFired * 100) >= 80) and (shotsFired > 4) then
-					AddCaption(loc("Accuracy Bonus! +15 points!"),0xffba00ff,capgrpVolume)
+					AddCaption(loc("Accuracy Bonus!") .. " +15 " .. loc("points") .. "!",0xffba00ff,capgrpVolume)
 					AwardPoints(15)
 				end
 
@@ -1205,7 +1205,7 @@
 		if (vType[i] == "drone") then
 			PlaySound(sndHellishImpact4)
 			TimeLeft = TimeLeft + 4
-			AddCaption(loc("Time Extended!") .. "+" .. 4 .. loc("s"), 0xff0000ff,capgrpMessage )
+			AddCaption(loc("Time Extended!") .. "+" .. 4 .. loc("sec"), 0xff0000ff,capgrpMessage )
 
 			morte = AddGear(vCircX[i], vCircY[i], gtExplosives, 0, 0, 0, 1)
 			SetHealth(morte, 0)
@@ -1213,7 +1213,7 @@
 			RK = RK + 1
 			if RK == 5 then
 				RK = 0
-				AddCaption(loc("Drone Hunter! +10 points!"),0xffba00ff,capgrpMessage2)
+				AddCaption(loc("Drone Hunter!") .. " +10 " .. loc("points") .. "!",0xffba00ff,capgrpMessage2)
 				AwardPoints(10)
 			end
 
@@ -1227,7 +1227,7 @@
 			GK = GK + 1
 			if GK == 3 then
 				GK = 0
-				AddCaption(loc("Ammo Maniac! +5 points!"),0xffba00ff,capgrpMessage2)
+				AddCaption(loc("Ammo Maniac!") .. " +5 " .. loc("points") .. "!",0xffba00ff,capgrpMessage2)
 				AwardPoints(5)
 			end
 
@@ -1256,13 +1256,13 @@
 			OK = OK + 1
 			if OK == 3 then
 				OK = 0
-				AddCaption(loc("Shield Seeker! + 10 points!"),0xffba00ff,capgrpMessage2)
+				AddCaption(loc("Shield Seeker!") .. " + 10 " .. loc("points") .. "!",0xffba00ff,capgrpMessage2)
 				AwardPoints(10)
 			end
 
 		elseif (vType[i] == "blueboss") then
 			PlaySound(sndHellishImpact3)
-			AddCaption(loc("Boss defeated! +50 points!"), 0x0050ffff,capgrpMessage)
+			AddCaption(loc("Boss defeated!") .. " +50 " .. loc("points") .. "!", 0x0050ffff,capgrpMessage)
 
 			morte = AddGear(vCircX[i], vCircY[i], gtExplosives, 0, 0, 0, 1)
 			SetHealth(morte, 0)
@@ -1270,7 +1270,7 @@
 			BK = BK + 1
 			if BK == 2 then
 				BK = 0
-				AddCaption(loc("Boss Slayer! +25 points!"),0xffba00ff,capgrpMessage2)
+				AddCaption(loc("Boss Slayer!") .. " +25 " .. loc("points") .. "!",0xffba00ff,capgrpMessage2)
 				AwardPoints(25)
 			end
 
@@ -1284,7 +1284,7 @@
 		chainCounter = 3000
 		chainLength = chainLength + 1
 		if chainLength > 1 then
-			AddCaption( chainLength .. loc("-Hit Combo! +") .. chainLength*2 .. loc(" points!"),0xffba00ff,capgrpAmmostate)
+			AddCaption( chainLength .. "-" .. loc("Hit Combo!") .. " +" .. chainLength*2 .. " " .. loc("points") .. "!",0xffba00ff,capgrpAmmostate)
 			AwardPoints(chainLength*2)
 		end
 
@@ -1487,7 +1487,7 @@
 
 					circsHit = circsHit + 1
 					if circsHit > 1 then
-						AddCaption(loc("Multi-shot! +5 points!"),0xffba00ff,capgrpAmmostate) 
+						AddCaption(loc("Multi-shot!") .. " +5 " .. loc("points") .. "!",0xffba00ff,capgrpAmmostate) 
 					end
 
 					shotsHit = shotsHit + 1
@@ -1515,7 +1515,7 @@
 				SK = SK + 1
 				if SK == 5 then
 					SK = 0
-					AddCaption(loc("Shield Master! +10 points!"),0xffba00ff,capgrpAmmoinfo)
+					AddCaption(loc("Shield Master!") .. " +10 " .. loc("points") .. "!",0xffba00ff,capgrpAmmoinfo)
 					AwardPoints(10)
 				end
 			end
@@ -1586,13 +1586,13 @@
 
 				if ss == "fatal" then
 					if (primShotsLeft == 0) and (TimeLeft <= 9) then
-						AddCaption(loc("Kamikaze Expert! +15 points!"),0xffba00ff,capgrpMessage)
+						AddCaption(loc("Kamikaze Expert!") .. " +15 " .. loc("points") .. "!",0xffba00ff,capgrpMessage)
 						AwardPoints(15)
 					elseif (primShotsLeft == 0) then
-						AddCaption(loc("Depleted Kamikaze! +5 points!"),0xffba00ff,capgrpMessage)
+						AddCaption(loc("Depleted Kamikaze!") .. " +5 " .. loc("points") .. "!",0xffba00ff,capgrpMessage)
 						AwardPoints(5)
 					elseif TimeLeft <= 9 then
-						AddCaption(loc("Timed Kamikaze! +10 points!"),0xffba00ff,capgrpMessage)
+						AddCaption(loc("Timed Kamikaze!") .. " +10 " .. loc("points") .. "!",0xffba00ff,capgrpMessage)
 						AwardPoints(10)
 					end
 				end
--- a/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -1,5 +1,5 @@
 ----------------------------------
--- THE SPECIALISTS MODE 0.2
+-- THE SPECIALISTS MODE 0.4
 -- by mikade
 ----------------------------------
 
@@ -16,206 +16,227 @@
 -- removed some deprecated variables/methods
 -- fixed lack of portal reset
 
+----------------
+-- version 0.3
+----------------
+-- added switching on start
+-- removed switch from engineer weaponset
+
+----------------
+-- version 0.4
+----------------
+-- Attempted to:
+-- fix potential switch explit
+-- improve user feedback on start
+
 --------------------
 --TO DO
 --------------------
 
 -- add proper gameflag checking, maybe
 -- set crate drops etc.
--- assuming place hog mode + gfinfattack doesn't get the fix: somehow end turn after teleport
+-- add alternative switch
 
 loadfile(GetDataPath() .. "Scripts/Locale.lua")()
 
-local numhhs = 0 
-local hhs = {} 
+local numhhs = 0
+local hhs = {}
 
-local currName 
+local currName
 local lastName
+local started = false
+local switchStage = 0
 
 function CreateTeam()
 
-	currTeam = ""
-	lastTeam = ""
-	z = 0
+        currTeam = ""
+        lastTeam = ""
+        z = 0
 
-	for i = 0, (numhhs-1) do
+        for i = 0, (numhhs-1) do
 
-		currTeam = GetHogTeamName(hhs[i])
+                currTeam = GetHogTeamName(hhs[i])
 
-		if currTeam == lastTeam then
-			z = z + 1
-		else
-			z = 1		
-		end
+                if currTeam == lastTeam then
+                        z = z + 1
+                else
+                        z = 1
+                end
 
-		if z == 1 then
+                if z == 1 then
 
-			SetHogName(hhs[i],"Soldier")
-			SetHogHat(hhs[i], "Vega")
-			SetHealth(hhs[i],200)
+                        SetHogName(hhs[i],"Soldier")
+                        SetHogHat(hhs[i], "Vega")
+                        SetHealth(hhs[i],200)
 
-		elseif z == 2 then
+                elseif z == 2 then
 
-			SetHogHat(hhs[i], "Glasses")
-			SetHogName(hhs[i],"Engineer")
+                        SetHogHat(hhs[i], "Glasses")
+                        SetHogName(hhs[i],"Engineer")
 
-		elseif z == 3 then
+                elseif z == 3 then
 
-			SetHogName(hhs[i],"Ninja")			
-			SetHogHat(hhs[i], "NinjaFull")
-			SetHealth(hhs[i],80)
+                        SetHogName(hhs[i],"Ninja")
+                        SetHogHat(hhs[i], "NinjaFull")
+                        SetHealth(hhs[i],80)
 
-		elseif z == 4 then
+                elseif z == 4 then
 
-			SetHogName(hhs[i],"Demo")			
-			SetHogHat(hhs[i], "Skull")
-			SetHealth(hhs[i],200)
+                        SetHogName(hhs[i],"Demo")
+                        SetHogHat(hhs[i], "Skull")
+                        SetHealth(hhs[i],200)
 
-		elseif z == 5 then
+                elseif z == 5 then
 
-			SetHogName(hhs[i],"Sniper")			
-			SetHogHat(hhs[i], "Sniper")
-			SetHealth(hhs[i],120)
+                        SetHogName(hhs[i],"Sniper")
+                        SetHogHat(hhs[i], "Sniper")
+                        SetHealth(hhs[i],120)
 
-		elseif z == 6 then
+                elseif z == 6 then
 
-			SetHogName(hhs[i],"Saint")			
-			SetHogHat(hhs[i], "angel")
-			SetHealth(hhs[i],300)
+                        SetHogName(hhs[i],"Saint")
+                        SetHogHat(hhs[i], "angel")
+                        SetHealth(hhs[i],300)
 
-		elseif z == 7 then
+                elseif z == 7 then
+
+                        SetHogName(hhs[i],"Pyro")
+                        SetHogHat(hhs[i], "Gasmask")
+                        SetHealth(hhs[i],150)
+
+                elseif z == 8 then
 
-			SetHogName(hhs[i],"Pyro")			
-			SetHogHat(hhs[i], "Gasmask")
-			SetHealth(hhs[i],150)
-		
-		elseif z == 8 then
-		
-			SetHogName(hhs[i],"Loon")			
-			SetHogHat(hhs[i], "clown")
-			SetHealth(hhs[i],100)
+                        SetHogName(hhs[i],"Loon")
+                        SetHogHat(hhs[i], "clown")
+                        SetHealth(hhs[i],100)
 
-		end
+                end
 
-		lastTeam = GetHogTeamName(hhs[i])
+                lastTeam = GetHogTeamName(hhs[i])
 
-	end	
+        end
 
 end
 
 function ResetAllAmmo()
 
-	AddAmmo(CurrentHedgehog, amBazooka, 0)
-	AddAmmo(CurrentHedgehog, amGrenade, 0)
-	AddAmmo(CurrentHedgehog, amShotgun, 0)
-	
-	AddAmmo(CurrentHedgehog, amGirder, 0)
-	AddAmmo(CurrentHedgehog, amBlowTorch, 0)
-	AddAmmo(CurrentHedgehog, amPickHammer, 0)
-	AddAmmo(CurrentHedgehog, amSwitch, 0)
+        AddAmmo(CurrentHedgehog, amBazooka, 0)
+        AddAmmo(CurrentHedgehog, amGrenade, 0)
+        AddAmmo(CurrentHedgehog, amShotgun, 0)
 
-	AddAmmo(CurrentHedgehog, amRope, 0)
-	AddAmmo(CurrentHedgehog, amParachute, 0)
-	AddAmmo(CurrentHedgehog, amFirePunch, 0)
+        AddAmmo(CurrentHedgehog, amGirder, 0)
+        AddAmmo(CurrentHedgehog, amBlowTorch, 0)
+        AddAmmo(CurrentHedgehog, amPickHammer, 0)
+        AddAmmo(CurrentHedgehog, amSwitch, 0)
+
+        AddAmmo(CurrentHedgehog, amRope, 0)
+        AddAmmo(CurrentHedgehog, amParachute, 0)
+        AddAmmo(CurrentHedgehog, amFirePunch, 0)
 
-	AddAmmo(CurrentHedgehog, amDynamite, 0)
-	AddAmmo(CurrentHedgehog, amDrill, 0)
-	AddAmmo(CurrentHedgehog, amMine, 0)
+        AddAmmo(CurrentHedgehog, amDynamite, 0)
+        AddAmmo(CurrentHedgehog, amDrill, 0)
+        AddAmmo(CurrentHedgehog, amMine, 0)
 
-	AddAmmo(CurrentHedgehog, amSniperRifle, 0)
-	AddAmmo(CurrentHedgehog, amDEagle, 0)
-	AddAmmo(CurrentHedgehog, amPortalGun, 0)
+        AddAmmo(CurrentHedgehog, amSniperRifle, 0)
+        AddAmmo(CurrentHedgehog, amDEagle, 0)
+        AddAmmo(CurrentHedgehog, amPortalGun, 0)
 
-	AddAmmo(CurrentHedgehog, amSeduction, 0)
-	AddAmmo(CurrentHedgehog, amResurrector, 0)
-	AddAmmo(CurrentHedgehog, amInvulnerable, 0)
-	
-	AddAmmo(CurrentHedgehog, amFlamethrower, 0)
-	AddAmmo(CurrentHedgehog, amMolotov, 0)
-	AddAmmo(CurrentHedgehog, amNapalm, 0)
-	
-	AddAmmo(CurrentHedgehog, amBaseballBat, 0)
-	AddAmmo(CurrentHedgehog, amGasBomb, 0)
-	AddAmmo(CurrentHedgehog, amKamikaze, 0)
+        AddAmmo(CurrentHedgehog, amSeduction, 0)
+        AddAmmo(CurrentHedgehog, amResurrector, 0)
+        AddAmmo(CurrentHedgehog, amInvulnerable, 0)
+
+        AddAmmo(CurrentHedgehog, amFlamethrower, 0)
+        AddAmmo(CurrentHedgehog, amMolotov, 0)
+        AddAmmo(CurrentHedgehog, amNapalm, 0)
+
+        AddAmmo(CurrentHedgehog, amBaseballBat, 0)
+        AddAmmo(CurrentHedgehog, amGasBomb, 0)
+        AddAmmo(CurrentHedgehog, amKamikaze, 0)
 
 end
 
 function AssignAmmo()
 
-	ResetAllAmmo()	
-	n = GetHogName(CurrentHedgehog)
+        ResetAllAmmo()
+        n = GetHogName(CurrentHedgehog)
 
-	AddAmmo(CurrentHedgehog, amSkip,100)
+        AddAmmo(CurrentHedgehog, amSkip,100)
 
-	if n == "Soldier" then 
-		AddAmmo(CurrentHedgehog, amBazooka,1)
-		AddAmmo(CurrentHedgehog, amGrenade,1)
-		AddAmmo(CurrentHedgehog, amShotgun,1)
-	elseif n == "Engineer" then
-		AddAmmo(CurrentHedgehog, amGirder, 2)
-		AddAmmo(CurrentHedgehog, amBlowTorch, 1)
-		AddAmmo(CurrentHedgehog, amPickHammer, 1)	
-		AddAmmo(CurrentHedgehog, amSwitch, 2)	
-	elseif n == "Ninja" then
-		AddAmmo(CurrentHedgehog, amRope, 100)
-		AddAmmo(CurrentHedgehog, amParachute, 100)
-		AddAmmo(CurrentHedgehog, amFirePunch, 1)
-	elseif n == "Demo" then
-		AddAmmo(CurrentHedgehog, amDynamite, 1)
-		AddAmmo(CurrentHedgehog, amMine, 1)
-		AddAmmo(CurrentHedgehog, amDrill, 1)
-	elseif n == "Sniper" then
-		AddAmmo(CurrentHedgehog, amSniperRifle, 1)
-		AddAmmo(CurrentHedgehog, amDEagle, 1)
-		AddAmmo(CurrentHedgehog, amPortalGun, 2)
-	elseif n == "Saint" then
-		AddAmmo(CurrentHedgehog, amSeduction, 100)
-		AddAmmo(CurrentHedgehog, amResurrector, 1)
-		AddAmmo(CurrentHedgehog, amInvulnerable, 1)
-	elseif n == "Pyro" then
-		AddAmmo(CurrentHedgehog, amFlamethrower, 1)
-		AddAmmo(CurrentHedgehog, amMolotov, 1)
-		AddAmmo(CurrentHedgehog, amNapalm, 1)
-	elseif n == "Loon" then
-		AddAmmo(CurrentHedgehog, amBaseballBat, 1)
-		AddAmmo(CurrentHedgehog, amGasBomb, 1)
-		AddAmmo(CurrentHedgehog, amKamikaze, 1)
-	end
+        if n == "Soldier" then
+                AddAmmo(CurrentHedgehog, amBazooka,1)
+                AddAmmo(CurrentHedgehog, amGrenade,1)
+                AddAmmo(CurrentHedgehog, amShotgun,1)
+        elseif n == "Engineer" then
+                AddAmmo(CurrentHedgehog, amGirder, 2)
+                AddAmmo(CurrentHedgehog, amBlowTorch, 1)
+                AddAmmo(CurrentHedgehog, amPickHammer, 1)
+        elseif n == "Ninja" then
+                AddAmmo(CurrentHedgehog, amRope, 100)
+                AddAmmo(CurrentHedgehog, amParachute, 100)
+                AddAmmo(CurrentHedgehog, amFirePunch, 1)
+        elseif n == "Demo" then
+                AddAmmo(CurrentHedgehog, amDynamite, 1)
+                AddAmmo(CurrentHedgehog, amMine, 1)
+                AddAmmo(CurrentHedgehog, amDrill, 1)
+        elseif n == "Sniper" then
+                AddAmmo(CurrentHedgehog, amSniperRifle, 1)
+                AddAmmo(CurrentHedgehog, amDEagle, 1)
+                AddAmmo(CurrentHedgehog, amPortalGun, 2)
+        elseif n == "Saint" then
+                AddAmmo(CurrentHedgehog, amSeduction, 100)
+                AddAmmo(CurrentHedgehog, amResurrector, 1)
+                AddAmmo(CurrentHedgehog, amInvulnerable, 1)
+        elseif n == "Pyro" then
+                AddAmmo(CurrentHedgehog, amFlamethrower, 1)
+                AddAmmo(CurrentHedgehog, amMolotov, 1)
+                AddAmmo(CurrentHedgehog, amNapalm, 1)
+        elseif n == "Loon" then
+                AddAmmo(CurrentHedgehog, amBaseballBat, 1)
+                AddAmmo(CurrentHedgehog, amGasBomb, 1)
+                AddAmmo(CurrentHedgehog, amKamikaze, 1)
+        end
 
 end
 
 function onGameInit()
-	GameFlags = gfRandomOrder + gfResetWeps + gfInfAttack + gfPlaceHog
-	Delay = 10
+        GameFlags = gfRandomOrder + gfResetWeps + gfInfAttack + gfPlaceHog
+        Delay = 10
 end
 
 function onGameStart()
-   	
-	CreateTeam()
+
+        CreateTeam()
 
-	ShowMission	(
-				loc("THE SPECIALISTS"),
-				loc("a Hedgewars mini-game"),
+        ShowMission     (
+                                loc("THE SPECIALISTS"),
+                                loc("a Hedgewars mini-game"),
 
-				loc("Eliminate the enemy specialists.") .. "|" ..
-				" " .. "|" ..
+                                loc("Eliminate the enemy specialists.") .. "|" ..
+                                " " .. "|" ..
 
-				loc("Game Modifiers: ") .. "|" ..
-				loc("Per-Hog Ammo") .. "|" ..				
-				loc("Weapons Reset") .. "|" ..				
-				loc("Unlimited Attacks") .. "|" ..
+                                loc("Game Modifiers: ") .. "|" ..
+                                loc("Per-Hog Ammo") .. "|" ..
+                                loc("Weapons Reset") .. "|" ..
+                                loc("Unlimited Attacks") .. "|" ..
 
-				"", 4, 4000
-				)
+                                "", 4, 4000
+                                )
 
 end
 
 
 function onNewTurn()
-	currName = GetHogName(CurrentHedgehog)
-	lastName = GetHogName(CurrentHedgehog)
-	AssignAmmo()
-	AddAmmo(CurrentHedgehog, amSwitch, 1)
+        currName = GetHogName(CurrentHedgehog)
+        lastName = GetHogName(CurrentHedgehog)
+        AssignAmmo()
+
+        ---------------
+        --switch
+        started = false
+        switchStage = 0
+        --AddAmmo(CurrentHedgehog, amSwitch, 1)
+	---------------
+
 end
 
 function onGameTick()
@@ -224,11 +245,30 @@
 
 		currName = GetHogName(CurrentHedgehog)
 		
-		if currName ~= lastName then
+		if (currName ~= lastName) and (switchStage > 100) then
 			AddCaption(loc("Switched to ") .. currName .. "!")
 			AssignAmmo()		
 		end
 
+		if (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) and (switchStage < 100) then			
+			
+			AddCaption(loc("Prepare yourself") .. ", " .. currName .. "!") 
+
+			switchStage = switchStage + 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
+				switchStage = 110
+				AddAmmo(CurrentHedgehog, amSwitch, 0)
+			end
+		end		
+		
 		lastName = currName
 
 	end
@@ -236,11 +276,11 @@
 end
 
 function onGearAdd(gear)
-    
-	if GetGearType(gear) == gtHedgehog then
-		hhs[numhhs] = gear
-		numhhs = numhhs + 1
-	end
+
+        if GetGearType(gear) == gtHedgehog then
+                hhs[numhhs] = gear
+                numhhs = numhhs + 1
+        end
 
 end
 
@@ -249,8 +289,6 @@
 end
 
 function onAmmoStoreInit()
-
+--
 end
 
-
-
--- a/share/hedgewars/Data/Scripts/Multiplayer/Tumbler.lua	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Tumbler.lua	Thu Jul 07 08:09:12 2011 -0400
@@ -43,7 +43,7 @@
 
 
 function onGameStart()
-	ShowMission(loc("TUMBLER"), "a Hedgewars mini-game", "- Use the arrow keys to move|- Use [enter] and [backspace] to fire", 4, 4000)
+	ShowMission("TUMBLER", "a Hedgewars mini-game", "- Use the arrow keys to move|- Use [enter] and [backspace] to fire", 4, 4000)
 end
 
 function onHJump()
@@ -164,7 +164,7 @@
 
 	if (CurrentHedgehog ~= nil) and (tumbleStarted == true) then
 
-		--AddCaption(loc("Speed: ") .. GetSpeed())
+		--AddCaption(LOC_NOT("Speed: ") .. GetSpeed())
 
 		-- Calculate and display turn time
 		TimeLeftCounter = TimeLeftCounter + 1
@@ -181,10 +181,10 @@
 
 		--if TimeLeft >= 0 then
 		--	--TurnTimeLeft = TimeLeft
-		--	AddCaption(loc("Time Left: ") .. TimeLeft)
+		--	AddCaption(LOC_NOT("Time Left: ") .. TimeLeft)
 		--end
 
-		--ShowMission(loc("TUMBLER"), loc("v0.2"), loc("Speed: ") .. GetSpeed() .. "|" .. loc("Ammo: ") .. shotsLeft, 4, 0)
+		--ShowMission("TUMBLER", "v0.2", LOC_NOT("Speed: ") .. GetSpeed() .. "|" .. LOC_NOT("Ammo: ") .. shotsLeft, 4, 0)
 
 		if TimeLeft == 0 then
 			stopMovement = true
--- a/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml	Thu Jul 07 08:09:12 2011 -0400
@@ -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	Tue Jun 28 20:42:04 2011 +0000
+++ b/share/hedgewars/Data/misc/hwengine.desktop.in	Thu Jul 07 08:09:12 2011 -0400
@@ -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