merge hedgeroid
authorXeli
Tue, 28 Jun 2011 17:57:54 +0200
branchhedgeroid
changeset 5375 ec4006837feb
parent 5373 ad1c61a6ab4d (current diff)
parent 5336 174734adc06b (diff)
child 5377 72761a5d97b8
merge
hedgewars/uWorld.pas
--- a/QTfrontend/main.cpp	Tue Jun 28 17:56:25 2011 +0200
+++ b/QTfrontend/main.cpp	Tue Jun 28 17:57:54 2011 +0200
@@ -397,39 +397,38 @@
 
         QList<QPair<QIcon, QIcon> > icons;
 
+        themes.sort();
         for(int i = themes.size() - 1; i >= 0; --i)
         {
             QFile tmpfile;
             tmpfile.setFileName(QString("%1/Data/Themes/%2/icon.png").arg(cfgdir->absolutePath()).arg(themes.at(i)));
             if (!tmpfile.exists())
-            {
                 tmpfile.setFileName(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(themes.at(i)));
-                if(tmpfile.exists())
-                { // load icon
-                    QPair<QIcon, QIcon> ic;
-                    ic.first = QIcon(QFileInfo(tmpfile).absoluteFilePath());
+
+            if(tmpfile.exists())
+            { // load icon
+                QPair<QIcon, QIcon> ic;
+                ic.first = QIcon(QFileInfo(tmpfile).absoluteFilePath());
 
-                    QFile previewIconFile;
-                    previewIconFile.setFileName(QString("%1/Data/Themes/%2/icon@2x.png").arg(cfgdir->absolutePath()).arg(themes.at(i)));
-                    if (previewIconFile.exists()) ic.second = QIcon(QFileInfo(previewIconFile).absoluteFilePath());
-                    else ic.second = QIcon(QString("%1/Themes/%2/icon@2x.png").arg(datadir->absolutePath()).arg(themes.at(i)));
+                QFile previewIconFile;
+                previewIconFile.setFileName(QString("%1/Data/Themes/%2/icon@2x.png").arg(cfgdir->absolutePath()).arg(themes.at(i)));
+                if (previewIconFile.exists()) ic.second = QIcon(QFileInfo(previewIconFile).absoluteFilePath());
+                else ic.second = QIcon(QString("%1/Themes/%2/icon@2x.png").arg(datadir->absolutePath()).arg(themes.at(i)));
 
-                    icons.prepend(ic);
-                }
-                else
-                {
-                    themes.removeAt(i);
-                }
+                icons.prepend(ic);
+            }
+            else
+            {
+                themes.removeAt(i);
             }
         }
 
         themesModel = new ThemesModel(themes);
+        Q_ASSERT(themes.size() == icons.size());
         for(int i = 0; i < icons.size(); ++i)
         {
             themesModel->setData(themesModel->index(i), icons[i].first, Qt::DecorationRole);
             themesModel->setData(themesModel->index(i), icons[i].second, Qt::UserRole);
-
-            qDebug() << "icon test" << themesModel->index(i).data(Qt::UserRole).toString();
         }
     }
 
@@ -465,8 +464,8 @@
         if(cc.isEmpty())
             cc = QLocale::system().name();
         QFile tmpfile;
-        tmpfile.setFileName(cfgdir->absolutePath() + "Data/Locale/hedgewars_" + cc);
-        if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "Locale/hedgewars_" + cc);
+        tmpfile.setFileName(cfgdir->absolutePath() + "/Data/Locale/hedgewars_" + cc);
+        if (!tmpfile.exists()) tmpfile.setFileName(datadir->absolutePath() + "/Locale/hedgewars_" + cc);
         Translator.load(QFileInfo(tmpfile).absoluteFilePath());
         app.installTranslator(&Translator);
     }
--- a/QTfrontend/pageeditteam.cpp	Tue Jun 28 17:56:25 2011 +0200
+++ b/QTfrontend/pageeditteam.cpp	Tue Jun 28 17:57:54 2011 +0200
@@ -145,10 +145,13 @@
         CBVoicepack = new QComboBox(GBoxTeam);
         {
             QDir tmpdir;
+            QStringList list;
             tmpdir.cd(cfgdir->absolutePath());
-            tmpdir.cd("Data/Sounds/voices");
-            QStringList list = tmpdir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name);
-            CBVoicepack->addItems(list);
+            if (tmpdir.cd("Data/Sounds/voices")) 
+            {
+                list = tmpdir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name);
+                CBVoicepack->addItems(list);
+            }
 
             tmpdir.cd(datadir->absolutePath());
             tmpdir.cd("Sounds/voices");
@@ -182,12 +185,14 @@
     vbox2->addWidget(GBoxFort);
 
     QDir tmpdir;
+    QStringList userforts;
     tmpdir.cd(cfgdir->absolutePath());
-    tmpdir.cd("Data/Forts");
-    tmpdir.setFilter(QDir::Files);
-
-    QStringList userforts = tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1");
-    CBFort->addItems(userforts);
+    if (tmpdir.cd("Data/Forts"))
+    {
+        tmpdir.setFilter(QDir::Files);
+        userforts = tmpdir.entryList(QStringList("*L.png")).replaceInStrings(QRegExp("^(.*)L\\.png"), "\\1");
+        CBFort->addItems(userforts);
+    }
 
     tmpdir.cd("../Graphics/Graves");
     QStringList userlist = tmpdir.entryList(QStringList("*.png"));
@@ -207,7 +212,7 @@
     for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it)
         if (!userforts.contains(*it,Qt::CaseInsensitive)) dataforts.append(*it);
 
-    CBVoicepack->addItems(dataforts);
+    CBFort->addItems(dataforts);
     connect(CBFort, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(CBFort_activated(const QString &)));
 
     tmpdir.cd("../Graphics/Graves");
--- a/QTfrontend/themesmodel.cpp	Tue Jun 28 17:56:25 2011 +0200
+++ b/QTfrontend/themesmodel.cpp	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/hedgewars/GSHandlers.inc	Tue Jun 28 17:57:54 2011 +0200
@@ -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;
@@ -2074,6 +2076,7 @@
     end
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepShover(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3308,6 +3311,7 @@
     Gear^.doStep := @doStepRCPlaneWork
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepJetpackWork(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3435,7 +3439,6 @@
         end
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepJetpack(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3471,7 +3474,6 @@
     end;
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepBirdyFly(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3565,7 +3567,6 @@
         end
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepBirdyDescend(Gear: PGear);
 var 
     HHGear: PGear;
@@ -3607,7 +3608,6 @@
     end
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepBirdy(Gear: PGear);
 var 
     HHGear: PGear;
@@ -4145,6 +4145,7 @@
     newPortal^.doStep := @doStepMovingPortal;
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepPiano(Gear: PGear);
 var 
     r0, r1: LongInt;
@@ -4444,6 +4445,7 @@
     Gear^.doStep := @doStepFlamethrowerWork
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepLandGunWork(Gear: PGear);
 var 
     HHGear: PGear;
@@ -4519,6 +4521,7 @@
     Gear^.doStep := @doStepLandGunWork
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepPoisonCloud(Gear: PGear);
 begin
     if Gear^.Timer = 0 then
@@ -4576,7 +4579,6 @@
 Gear^.doStep:= @doStepIdle
 end;
 
-////////////////////////////////////////////////////////////////////////////////
 procedure doStepHammerHitWork(Gear: PGear);
 var 
     i, ei: LongInt;
@@ -4811,8 +4813,15 @@
 procedure doStepStructure(Gear: PGear);
 var 
     x, y: LongInt;
-    hog: PHedgehog;
 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 
@@ -4861,6 +4870,7 @@
         end;
 end;
 
+////////////////////////////////////////////////////////////////////////////////
 procedure doStepTardis(Gear: PGear);
 (*var 
     i, x, y: LongInt;
@@ -4903,3 +4913,6 @@
             DeleteGear(Gear)
         end
 end;
+
+////////////////////////////////////////////////////////////////////////////////
+
--- a/hedgewars/HHHandlers.inc	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/HHHandlers.inc	Tue Jun 28 17:57:54 2011 +0200
@@ -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,81 @@
             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);
+                    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);
+                       amNapalm: newGear:= AddGear(CurWeapon^.Pos, 0, gtAirAttack, 2, _0, _0, 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 +334,72 @@
                                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);
+                   amDrillStrike: newGear:= 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,8 @@
 begin
 Gear^.Message:= gmDestroy;
 PlaySound(sndShotgunReload);
+if (Gear^.Pos and posCaseTrap) <> 0 then doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, HH^.Hedgehog, EXPLAutoSound)
+else
 case Gear^.Pos of
        posCaseUtility,
        posCaseAmmo: begin
--- a/hedgewars/uAmmos.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uAmmos.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -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,17 @@
 ammos[ammo]:= cnt;
 if ammos[ammo] > AMMO_INFINITE then ammos[ammo]:= AMMO_INFINITE;
 
-FillAmmoStore(hhammo, ammos)
+FillAmmoStore(hhammo, ammos);
+CurWeapon:= GetAmmoEntry(Hedgehog);
+with Hedgehog do
+    begin
+    with CurWeapon^ do
+        if Count = 0 then
+            begin
+            PackAmmo(Ammo, Ammoz[AmmoType].Slot);
+            CurAmmoType:= amNothing
+            end
+    end
 end;
 
 procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt);
--- a/hedgewars/uCaptions.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uCaptions.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -15,6 +15,8 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
+ 
+{$INCLUDE "options.inc"}
 
 unit uCaptions;
 
@@ -58,7 +60,7 @@
     offset: LongInt;
 begin
 {$IFDEF IPHONEOS}
-    offset:= 40;
+    offset:= 48;
 {$ELSE}
     offset:= 8;
 {$ENDIF}
--- a/hedgewars/uConsts.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uConsts.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -242,6 +242,7 @@
     ammoprop_NotBorder    = $00000800;
     ammoprop_Utility      = $00001000;
     ammoprop_Effect       = $00002000;
+    ammoprop_SetBounce    = $00004000;
     ammoprop_NoRoundEnd   = $10000000;
 
     AMMO_INFINITE = 100;
@@ -258,6 +259,8 @@
     posCaseAmmo    = $00000001;
     posCaseHealth  = $00000002;
     posCaseUtility = $00000004;
+    posCaseDummy   = $00000008;
+    posCaseTrap    = $00000010;
 
     NoPointX = Low(LongInt);
     cTargetPointRef : TPoint = (X: NoPointX; Y: 0);
--- a/hedgewars/uFloat.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uFloat.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -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/uGears.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uGears.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -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; trap: boolean ): PGear;
 procedure ResurrectHedgehog(gear: PGear);
 procedure ProcessGears;
 procedure EndTurnCleanup;
@@ -120,7 +121,7 @@
             @doStepKamikaze,
             @doStepCake,
             @doStepSeduction,
-            @doStepWatermelon,
+            @doStepBomb,
             @doStepCluster,
             @doStepBomb,
             @doStepWaterUp,
@@ -221,12 +222,64 @@
 gear^.SoundChannel:= -1;
 gear^.ImpactSound:= sndNone;
 gear^.nImpactSounds:= 0;
+gear^.AmmoType:= amNothing;
 
 if CurrentHedgehog <> nil then
     begin
     gear^.Hedgehog:= CurrentHedgehog;
     gear^.IntersectGear:= CurrentHedgehog^.Gear
     end;
+// Define ammo association, if any.
+case Kind of
+        gtGrenade: gear^.AmmoType:= amGrenade;
+          gtShell: gear^.AmmoType:= amBazooka;
+            gtBee: gear^.AmmoType:= amBee;
+    gtShotgunShot: gear^.AmmoType:= amShotgun;
+     gtPickHammer: gear^.AmmoType:= amPickHammer;
+           gtRope: gear^.AmmoType:= amRope;
+     gtDEagleShot: gear^.AmmoType:= amDEagle;
+       gtDynamite: gear^.AmmoType:= amDynamite;
+    gtClusterBomb, 
+        gtCluster: gear^.AmmoType:= amClusterBomb;
+         gtShover: gear^.AmmoType:= amBaseballBat;  // Shover is only used for baseball bat right now
+      gtFirePunch: gear^.AmmoType:= amFirePunch;
+      gtParachute: gear^.AmmoType:= amParachute;
+        gtAirBomb: gear^.AmmoType:= amAirAttack;
+      gtBlowTorch: gear^.AmmoType:= amBlowTorch;
+         gtGirder: gear^.AmmoType:= amGirder;
+       gtTeleport: gear^.AmmoType:= amTeleport;
+       gtSwitcher: gear^.AmmoType:= amSwitch;
+         gtMortar: gear^.AmmoType:= amMortar;
+           gtWhip: gear^.AmmoType:= amWhip;
+       gtKamikaze: gear^.AmmoType:= amKamikaze;
+           gtCake: gear^.AmmoType:= amCake;
+      gtSeduction: gear^.AmmoType:= amSeduction;
+     gtWatermelon,
+     gtMelonPiece: gear^.AmmoType:= amWatermelon;
+    gtHellishBomb: gear^.AmmoType:= amHellishBomb;
+          gtDrill: gear^.AmmoType:= amDrill;
+        gtBallGun,
+           gtBall: gear^.AmmoType:= amBallgun;
+        gtRCPlane: gear^.AmmoType:= amRCPlane;
+gtSniperRifleShot: gear^.AmmoType:= amSniperRifle;
+        gtJetpack: gear^.AmmoType:= amJetpack;
+        gtMolotov: gear^.AmmoType:= amMolotov;
+          gtBirdy, 
+            gtEgg: gear^.AmmoType:= amBirdy;
+         gtPortal: gear^.AmmoType:= amPortalGun;
+          gtPiano: gear^.AmmoType:= amPiano;
+        gtGasBomb: gear^.AmmoType:= amGasBomb;
+    gtSineGunShot: gear^.AmmoType:= amSineGun;
+   gtFlamethrower: gear^.AmmoType:= amFlamethrower;
+          gtSMine: gear^.AmmoType:= amSMine;
+         gtHammer, 
+      gtHammerHit: gear^.AmmoType:= amHammer;
+    gtResurrector: gear^.AmmoType:= amResurrector;
+       gtSnowball: gear^.AmmoType:= amSnowball;
+      gtStructure: gear^.AmmoType:= amStructure;  // TODO - This will undoubtedly change once there is more than one structure
+        gtLandGun: gear^.AmmoType:= amLandGun;
+         gtTardis: gear^.AmmoType:= amTardis;
+end;
 
 case Kind of
      gtGrenade,
@@ -540,11 +593,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;
@@ -1607,12 +1660,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 +1685,34 @@
     SpawnCustomCrateAt := FollowGear;
 end;
 
+function SpawnFakeCrateAt(x, y: LongInt; crate: TCrateType; trap: boolean): PGear;
+begin
+    FollowGear := AddGear(x, y, gtCase, 0, _0, _0, 0);
+    cCaseFactor := 0;
+    
+    if trap then FollowGear^.Pos := posCaseTrap
+    else FollowGear^.Pos := posCaseDummy;
+
+    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 17:56:25 2011 +0200
+++ b/hedgewars/uGearsRender.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/hedgewars/uLandGraphics.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -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;
@@ -746,7 +747,7 @@
             LandPixels[yy, xx]:= 0;
 
         Land[Y, X]:= 0;
-        if not pixelsweep then exit(true);
+        exit(true);
         end;
     end;
 Despeckle:= false
--- a/hedgewars/uScript.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uScript.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -223,16 +223,64 @@
     lc_campaignunlock:= 0;
 end;
 
+function lc_spawnfakehealthcrate(L: Plua_State) : LongInt; Cdecl;
+var gear: PGear;
+begin
+    if lua_gettop(L) <> 3 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_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) <> 3 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_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) <> 3 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_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;        
@@ -1740,6 +1788,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/uTypes.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uTypes.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -183,6 +183,7 @@
             Pos: LongWord;
             AmmoType: TAmmoType;
             AttackVoice: TSound;
+            Bounciness: LongWord;
             end;
 
     TVertex2f = record
@@ -390,7 +391,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 17:56:25 2011 +0200
+++ b/hedgewars/uVariables.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -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,7 +857,8 @@
                 Timer: 0;
                 Pos: 0;
                 AmmoType: amBee;
-                AttackVoice: sndNone);
+                AttackVoice: sndNone;
+                Bounciness: 1000);
             Slot: 0;
             TimeAfterTurn: 3000;
             minAngle: 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;
--- a/hedgewars/uWorld.pas	Tue Jun 28 17:56:25 2011 +0200
+++ b/hedgewars/uWorld.pas	Tue Jun 28 17:57:54 2011 +0200
@@ -1227,14 +1227,14 @@
             CursorPoint.X:= cScreenWidth div 2 - EdgesDist
         end;
 
-    shs:= cScreenHeight div 2 - trunc(cScreenHeight / cScaleFactor) + EdgesDist;
+    shs:= min(cScreenHeight div 2 - trunc(cScreenHeight / cScaleFactor) + EdgesDist, cScreenHeight - EdgesDist);
     if CursorPoint.Y < shs then
     begin
         WorldDy:= WorldDy + CursorPoint.Y - shs;
         CursorPoint.Y:= shs;
     end
     else
-        if CursorPoint.Y > cScreenHeight - EdgesDist then
+        if (CursorPoint.Y > cScreenHeight - EdgesDist) then
         begin
            WorldDy:= WorldDy + CursorPoint.Y - cScreenHeight + EdgesDist;
            CursorPoint.Y:= cScreenHeight - EdgesDist
--- a/share/hedgewars/Data/Locale/de.lua	Tue Jun 28 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/de.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/en.txt	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/es.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/fr.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -1,93 +1,175 @@
 locale = {
 --      [":("] = "",
 --      ["!!!"] = "",
-      ["A game of luck"] = "Un jeu de chance",
+--      ["..."] = "",
+--      ["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|pendant le temps alloué.", --Bazooka, Shotgun, SniperRifle
-      ["CONTROL"] = "Domination",
       ["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 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 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 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é",
+--      ["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",
+--      ["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",
+--      ["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",
+--      ["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!"] = "Il y a eu un mélange avec votre équipement et maintenant| vous devrez utiliser ce qui vous arrivera 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",
+--      ["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 atteins le but !| |Temps : ",
 --      ["'Zooka Team"] = "",
--- a/share/hedgewars/Data/Locale/it.lua	Tue Jun 28 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/it.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/ko.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/pl.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/pt_BR.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/pt_PT.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/sk.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/stub.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/sv.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/uk.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Locale/zh_CN.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Maps/Control/map.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/GaudyRacer.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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/Space_Invasion.lua	Tue Jun 28 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Space_Invasion.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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/Tumbler.lua	Tue Jun 28 17:56:25 2011 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Tumbler.lua	Tue Jun 28 17:57:54 2011 +0200
@@ -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