Merge physfslayer branch into default. Have fun!
authorunc0rr
Sun, 18 Nov 2012 01:00:26 +0400
changeset 8057 93e16240f178
parent 8051 f26422ef0333 (diff)
parent 8055 04dd8b7fb605 (current diff)
child 8058 bcebfc477459
Merge physfslayer branch into default. Have fun!
QTfrontend/hwform.cpp
hedgewars/hwengine.pas
hedgewars/uStore.pas
hedgewars/uVariables.pas
misc/quazip/CMakeLists.txt
misc/quazip/JlCompress.cpp
misc/quazip/JlCompress.h
misc/quazip/crypt.h
misc/quazip/doc/faq.dox
misc/quazip/doc/index.dox
misc/quazip/doc/usage.dox
misc/quazip/ioapi.h
misc/quazip/qioapi.cpp
misc/quazip/quaadler32.cpp
misc/quazip/quaadler32.h
misc/quazip/quachecksum32.h
misc/quazip/quacrc32.cpp
misc/quazip/quacrc32.h
misc/quazip/quazip.cpp
misc/quazip/quazip.h
misc/quazip/quazip.pri
misc/quazip/quazip.pro
misc/quazip/quazip_global.h
misc/quazip/quazipfile.cpp
misc/quazip/quazipfile.h
misc/quazip/quazipfileinfo.h
misc/quazip/quazipnewinfo.cpp
misc/quazip/quazipnewinfo.h
misc/quazip/unzip.c
misc/quazip/unzip.h
misc/quazip/zconf.h
misc/quazip/zip.c
misc/quazip/zip.h
misc/quazip/zlib.h
share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua
--- a/QTfrontend/hwform.cpp	Sun Nov 18 00:58:57 2012 +0400
+++ b/QTfrontend/hwform.cpp	Sun Nov 18 01:00:26 2012 +0400
@@ -187,10 +187,8 @@
     connect(ui.pageMain->BtnSetup, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
     pageSwitchMapper->setMapping(ui.pageMain->BtnSetup, ID_PAGE_SETUP);
 
-#if 0
     connect(ui.pageMain->BtnFeedback, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
     pageSwitchMapper->setMapping(ui.pageMain->BtnFeedback, ID_PAGE_FEEDBACK);
-#endif
 
     connect(ui.pageMain->BtnNet, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
     pageSwitchMapper->setMapping(ui.pageMain->BtnNet, ID_PAGE_NETTYPE);
--- a/QTfrontend/net/newnetclient.cpp	Sun Nov 18 00:58:57 2012 +0400
+++ b/QTfrontend/net/newnetclient.cpp	Sun Nov 18 01:00:26 2012 +0400
@@ -380,11 +380,13 @@
         {
             flags.remove(0, 1);
             char c = flags[0].toAscii();
+            bool inRoom = (netClientState == InRoom || netClientState == InGame);
 
             switch(c)
             {
                 // flag indicating if a player is ready to start a game
                 case 'r':
+                    if(inRoom)
                         foreach (const QString & nick, nicks)
                         {
                             if (nick == mynick)
@@ -401,14 +403,16 @@
                         foreach(const QString & nick, nicks)
                             m_playersModel->setFlag(nick, PlayersListModel::Registered, setFlag);
                         break;
-
+                // flag indicating if a player has engine running
                 case 'g':
+                    if(inRoom)
                         foreach(const QString & nick, nicks)
                             m_playersModel->setFlag(nick, PlayersListModel::InGame, setFlag);
                         break;
 
                 // flag indicating if a player is the host/master of the room
                 case 'h':
+                    if(inRoom)
                         foreach (const QString & nick, nicks)
                         {
                             if (nick == mynick)
--- a/QTfrontend/ui/page/pagemain.cpp	Sun Nov 18 00:58:57 2012 +0400
+++ b/QTfrontend/ui/page/pagemain.cpp	Sun Nov 18 01:00:26 2012 +0400
@@ -58,11 +58,9 @@
     BtnInfo->setWhatsThis(tr("Read about who is behind the Hedgewars Project"));
     pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
 
-#if 0
     BtnFeedback = addButton("Feedback", pageLayout, 4, 0, 1, 4, false);
     BtnFeedback->setWhatsThis(tr("Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars"));
     pageLayout->setAlignment(BtnFeedback, Qt::AlignHCenter);
-#endif
 
     BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 5, 0, 1, 4, false);
     //BtnDataDownload->setToolTip(tr(Downloadable Content"));
--- a/hedgewars/GSHandlers.inc	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/GSHandlers.inc	Sun Nov 18 01:00:26 2012 +0400
@@ -1691,7 +1691,7 @@
         end
     else
         begin 
-        if (Gear^.Pos <> posCaseHealth) and (GameTicks and $3FF = 0) then // stir it up every second or so
+        if (Gear^.Pos <> posCaseHealth) and (GameTicks and $1FFF = 0) then // stir 'em up periodically
             begin
             gi := GearsList;
             while gi <> nil do
@@ -5143,6 +5143,7 @@
         begin
         with gi^ do CheckSum:= CheckSum xor X.round xor X.frac xor dX.round xor dX.frac xor Y.round xor Y.frac xor dY.round xor dY.frac;
         AddRandomness(CheckSum);
+        if gi^.Kind = gtGenericFaller then gi^.State:= gi^.State and not gstTmpFlag;
         gi := gi^.NextGear
         end;
     AddPickup(Gear^.Hedgehog^, a, Gear^.Power, hwRound(Gear^.X), hwRound(Gear^.Y));
@@ -5160,8 +5161,17 @@
         DeleteGear(Gear);
         exit
         end;
-    
-doStepFallingGear(Gear);
+if (Gear^.State and gstTmpFlag <> 0) or (GameTicks and $7 = 0) then
+    begin
+    doStepFallingGear(Gear);
+    if (Gear^.State and gstInvisible <> 0) and (GameTicks and $FF = 0) and ((hwRound(Gear^.X) < leftX) or (hwRound(Gear^.X) > rightX) or (hwRound(Gear^.Y) < topY)) then
+        begin
+        Gear^.X:= int2hwFloat(GetRandom(rightX-leftX)+leftX);
+        Gear^.Y:= int2hwFloat(GetRandom(LAND_HEIGHT-topY)+topY);
+        Gear^.dX:= _90-(GetRandomf*_360);
+        Gear^.dY:= _90-(GetRandomf*_360)
+        end;
+    end
 end;
 
 procedure doStepCreeper(Gear: PGear);
--- a/hedgewars/hwengine.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/hwengine.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -91,15 +91,15 @@
             end;
         gsConfirm, gsGame:
             begin
-            DrawWorld(Lag);
+            if not cOnlyStats then DrawWorld(Lag);
             DoGameTick(Lag);
-            ProcessVisualGears(Lag);
+            if not cOnlyStats then ProcessVisualGears(Lag);
             end;
         gsChat:
             begin
-            DrawWorld(Lag);
+            if not cOnlyStats then DrawWorld(Lag);
             DoGameTick(Lag);
-            ProcessVisualGears(Lag);
+            if not cOnlyStats then ProcessVisualGears(Lag);
             end;
         gsExit:
             begin
@@ -109,7 +109,7 @@
             exit(false);
             end;
 
-    SwapBuffers;
+    if not cOnlyStats then SwapBuffers;
 
 {$IFDEF USE_VIDEO_RECORDING}
     if flagPrerecording then
@@ -345,7 +345,7 @@
         AddFileLog(inttostr(i) + ': ' + ParamStr(i));
 
     WriteToConsole('Init SDL... ');
-    SDLTry(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE) >= 0, true);
+    if not cOnlyStats then SDLTry(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE) >= 0, true);
     WriteLnToConsole(msgOK);
 
     SDL_EnableUNICODE(1);
--- a/hedgewars/uAI.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uAI.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -291,18 +291,13 @@
                     begin
                     with Stack.States[Pred(Stack.Count)] do
                         begin
-                        if Me^.dX.isNegative then
+                        if (Me^.Message and gmLeft) <> 0 then
                             AddAction(MadeActions, aia_LookRight, 0, 200, 0, 0)
                         else
                             AddAction(MadeActions, aia_LookLeft, 0, 200, 0, 0);
                             
                         AddAction(MadeActions, aia_HJump, 0, 305 + random(50), 0, 0);
                         AddAction(MadeActions, aia_HJump, 0, 350, 0, 0);
-                        
-                        if Me^.dX.isNegative then
-                            AddAction(MadeActions, aia_LookLeft, 0, 200, 0, 0)
-                        else
-                            AddAction(MadeActions, aia_LookRight, 0, 200, 0, 0);
                         end;
                     // but first check walking forward
                     Push(ticks, Stack.States[Pred(Stack.Count)].MadeActions, AltMe, Me^.Message)
@@ -318,7 +313,7 @@
                 if Push(ticks, Actions, AltMe, Me^.Message xor 3) then
                     with Stack.States[Pred(Stack.Count)] do
                         begin
-                        if Me^.dX.isNegative then
+                        if (Me^.Message and gmLeft) <> 0 then
                             AddAction(MadeActions, aia_LookLeft, 0, 200, 0, 0)
                         else
                             AddAction(MadeActions, aia_LookRight, 0, 200, 0, 0);
--- a/hedgewars/uAIAmmoTests.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uAIAmmoTests.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -40,6 +40,7 @@
 function TestMolotov(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
 function TestClusterBomb(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
 function TestWatermelon(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestDrillRocket(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
 function TestMortar(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
 function TestShotgun(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
 function TestDesertEagle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
@@ -91,7 +92,7 @@
             (proc: @TestWatermelon;  flags: 0), // amWatermelon
             (proc: nil;              flags: 0), // amHellishBomb
             (proc: nil;              flags: 0), // amNapalm
-            (proc: nil;              flags: 0), // amDrill
+            (proc: @TestDrillRocket; flags: 0), // amDrill
             (proc: nil;              flags: 0), // amBallgun
             (proc: nil;              flags: 0), // amRCPlane
             (proc: nil;              flags: 0), // amLowGravity
@@ -187,6 +188,65 @@
 TestBazooka:= valueResult
 end;
 
+
+function TestDrillRocket(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+var Vx, Vy, r, mX, mY: real;
+    rTime: LongInt;
+    EX, EY: LongInt;
+    valueResult: LongInt;
+    x, y, dX, dY: real;
+    t: LongInt;
+    value: LongInt;
+begin
+    mX:= hwFloat2Float(Me^.X);
+    mY:= hwFloat2Float(Me^.Y);
+    ap.Time:= 0;
+    rTime:= 350;
+    ap.ExplR:= 0;
+    valueResult:= BadTurn;
+    repeat
+        rTime:= rTime + 300 + Level * 50 + random(300);
+        Vx:= - windSpeed * rTime * 0.5 + (Targ.X + AIrndSign(2) - mX) / rTime;
+        Vy:= cGravityf * rTime * 0.5 - (Targ.Y - 35 - mY) / rTime;
+        r:= sqr(Vx) + sqr(Vy);
+        if not (r > 1) then
+            begin
+            x:= mX;
+            y:= mY;
+            dX:= Vx;
+            dY:= -Vy;
+            t:= rTime;
+            repeat
+                x:= x + dX;
+                y:= y + dY;
+                dX:= dX + windSpeed;
+                dY:= dY + cGravityf;
+                dec(t)
+            until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or 
+                   ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 5))) or (y > cWaterLine);
+            
+            EX:= trunc(x);
+            EY:= trunc(y);
+            if Level = 1 then
+                value:= RateExplosion(Me, EX, EY, 101, afTrackFall or afErasesLand)
+            else value:= RateExplosion(Me, EX, EY, 101);
+            if value = 0 then
+                value:= 1024 - Metric(Targ.X, Targ.Y, EX, EY) div 64;
+            if valueResult <= value then
+                begin
+                ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random((Level - 1) * 9));
+                ap.Power:= trunc(sqrt(r) * cMaxPower) - random((Level - 1) * 17 + 1);
+                ap.ExplR:= 100;
+                ap.ExplX:= EX;
+                ap.ExplY:= EY;
+                valueResult:= value
+                end;
+            end
+    until rTime > 4250;
+    TestDrillRocket:= valueResult
+end;
+
+
 function TestSnowball(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
 var Vx, Vy, r: real;
     rTime: LongInt;
--- a/hedgewars/uCaptions.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uCaptions.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -44,6 +44,7 @@
 
 procedure AddCaption(s: shortstring; Color: Longword; Group: TCapGroup);
 begin
+    if cOnlyStats then exit;
     if Captions[Group].Text <> s then
         begin
         FreeTexture(Captions[Group].Tex);
--- a/hedgewars/uGame.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uGame.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -50,17 +50,16 @@
 
     if (GameType = gmtDemo) then 
         if isSpeed then
-        begin
+            begin
             i:= RealTicks-SpeedStart;
             if i < 2000 then Lag:= Lag*5
             else if i < 4000 then Lag:= Lag*10
             else if i < 6000 then Lag:= Lag*20
             else if i < 8000 then Lag:= Lag*40
             else Lag:= Lag*80;
-        end
-        else
-            if cOnlyStats then
-                Lag:= High(LongInt);
+            end
+        else if cOnlyStats then
+            Lag:= High(LongInt)
     end;
 PlayNextVoice;
 i:= 1;
--- a/hedgewars/uGears.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uGears.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -643,7 +643,7 @@
 
 if (GameFlags and gfArtillery) <> 0 then
     cArtillery:= true;
-for i:= GetRandom(10)+30 downto 0 do
+for i:= (LAND_WIDTH*LAND_HEIGHT) div 524288+2 downto 0 do
     begin
     rx:= GetRandom(rightX-leftX)+leftX;
     ry:= GetRandom(LAND_HEIGHT-topY)+topY;
--- a/hedgewars/uGearsHedgehog.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uGearsHedgehog.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -103,6 +103,13 @@
             LoadHedgehogHat(HHGear^.Hedgehog^, 'Reserved/chef')
         else if prevAmmo = amKnife then
             LoadHedgehogHat(HHGear^.Hedgehog^, Hat);
+        end;
+    // Try again in the next slot
+    if CurAmmoType = prevAmmo then 
+        begin
+        if slot >= cMaxSlotIndex then slot:= 0 else inc(slot);
+        HHGear^.MsgParam:= slot;
+        ChangeAmmo(HHGear)
         end
     end
 end;
@@ -641,9 +648,10 @@
                         gi := GearsList;
                         while gi <> nil do
                             begin
-                            if gi^.Kind = gtGenericFaller then
+                            if (gi^.Kind = gtGenericFaller) and (gi^.State and gstInvisible <> 0) then
                                 begin
                                 gi^.Active:= true;
+                                gi^.State:= gi^.State or gstTmpFlag;
                                 gi^.X:= int2hwFloat(GetRandom(rightX-leftX)+leftX);
                                 gi^.Y:= int2hwFloat(GetRandom(LAND_HEIGHT-topY)+topY);
                                 gi^.dX:= _90-(GetRandomf*_360);
--- a/hedgewars/uIO.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uIO.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -237,10 +237,10 @@
 procedure SendIPCXY(cmd: char; X, Y: LongInt);
 var s: shortstring;
 begin
-s[0]:= #5;
+s[0]:= #9;
 s[1]:= cmd;
 SDLNet_Write32(X, @s[2]);
-SDLNet_Write32(Y, @s[4]);
+SDLNet_Write32(Y, @s[6]);
 SendIPC(s)
 end;
 
--- a/hedgewars/uLandTexture.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uLandTexture.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -66,6 +66,7 @@
 procedure UpdateLandTexture(X, Width, Y, Height: LongInt; landAdded: boolean);
 var tx, ty: Longword;
 begin
+    if cOnlyStats then exit;
     if (Width <= 0) or (Height <= 0) then
         exit;
     TryDo((X >= 0) and (X < LAND_WIDTH), 'UpdateLandTexture: wrong X parameter', true);
@@ -93,6 +94,7 @@
 var x, y, ty, tx, lx, ly : LongWord;
     isEmpty: boolean;
 begin
+    if cOnlyStats then exit;
 (*
 if LandTextures[0, 0].tex = nil then
     for x:= 0 to LANDTEXARW -1 do
--- a/hedgewars/uStore.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uStore.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -148,6 +148,7 @@
     texsurf, flagsurf, iconsurf: PSDL_Surface;
     foundBot: boolean;
 begin
+    if cOnlyStats then exit;
 r.x:= 0;
 r.y:= 0;
 drY:= - 4;
@@ -575,7 +576,7 @@
     if ((imageFlags and ifIgnoreCaps) = 0) and ((tmpsurf^.w > MaxTextureSize) or (tmpsurf^.h > MaxTextureSize)) then
     begin
         SDL_FreeSurface(tmpsurf);
-        OutError(msgFailedSize, (imageFlags and ifCritical) <> 0);
+        OutError(msgFailedSize, ((not cOnlyStats) and ((imageFlags and ifCritical) <> 0)));
         // dummy surface to replace non-critical textures that failed to load due to their size
         LoadImage:= SDL_CreateRGBSurface(SDL_SWSURFACE, 2, 2, 32, RMask, GMask, BMask, AMask);
         exit;
@@ -867,6 +868,7 @@
 var r: TSDL_Rect;
     texsurf: PSDL_Surface;
 begin
+    if cOnlyStats then exit;
     if Step = 0 then
     begin
         WriteToConsole(msgLoading + 'progress sprite: ');
@@ -1121,10 +1123,14 @@
     {$IFNDEF DARWIN}ico: PSDL_Surface;{$ENDIF}
     {$IFDEF SDL13}x, y: LongInt;{$ENDIF}
 begin
+    if cOnlyStats then
+        begin
+        MaxTextureSize:= 1024;
+        exit
+        end;
     if Length(s) = 0 then
-        cFullScreen:= (not cFullScreen)
-    else
-        cFullScreen:= s = '1';
+         cFullScreen:= (not cFullScreen)
+    else cFullScreen:= s = '1';
 
     AddFileLog('Preparing to change video parameters...');
 {$IFDEF SDL13}
--- a/hedgewars/uTextures.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uTextures.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -126,6 +126,7 @@
     tmpp: pointer;
     fromP4, toP4: PLongWordArray;
 begin
+if cOnlyStats then exit(nil);
 new(Surface2Tex);
 Surface2Tex^.PrevTexture:= nil;
 Surface2Tex^.NextTexture:= nil;
--- a/hedgewars/uVariables.pas	Sun Nov 18 00:58:57 2012 +0400
+++ b/hedgewars/uVariables.pas	Sun Nov 18 01:00:26 2012 +0400
@@ -2559,6 +2559,7 @@
     GrayScale       := false;
     PathPrefix      := './';
     GameType        := gmtLocal;
+    cOnlyStats      := False;
 
 {$IFDEF USE_VIDEO_RECORDING}
     RecPrefix          := '';
@@ -2579,7 +2580,6 @@
 
     cFlattenFlakes      := false;
     cFlattenClouds      := false;
-    cOnlyStats          := False;
     lastVisualGearByUID := nil;
     lastGearByUID       := nil;
     cReadyDelay         := 5000;
--- a/project_files/Android-build/CMakeLists.txt	Sun Nov 18 00:58:57 2012 +0400
+++ b/project_files/Android-build/CMakeLists.txt	Sun Nov 18 01:00:26 2012 +0400
@@ -74,7 +74,7 @@
 set(SDL_DIR /home/richard/Downloads/android-project)
 
 
-set(ANDROID_SDK_API_LVL 14)
+set(ANDROID_SDK_API_LVL 16)
 set(ANDROID_NDK_API_LVL 5)
 
 MESSAGE(STATUS "Creating Makefile.android...")
--- a/share/hedgewars/Data/Locale/cs.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/cs.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
       ["Hooray!"] = "Hurá!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/da.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/da.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
         ["Hooray!"] = "Hurra!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/de.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/de.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 	["Hooray!"] = "Hurra!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/es.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/es.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 	["Hooray!"] = "¡Hurra!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/fr.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/fr.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -331,7 +331,7 @@
 	  ["Hmmm...perhaps a little more time will help."] = "humm...Peut être qu'un peu plus de temps aiderait",
 --      ["Hogminator"] = "",
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "",
       ["Hooray!"] = "Hourra ! ",
       ["Hostage Situation"] = "Situation d'otage",
--- a/share/hedgewars/Data/Locale/it.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/it.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 	["Hooray!"] = "Hurrà!!!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/ko.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/ko.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 --      ["Hooray!"] = "",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/lt.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/lt.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
    ["Hooray!"] = "Hurah!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/pl.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/pl.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
     ["Hooray!"] = "Hurraaa!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/pt_BR.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/pt_BR.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 --      ["Hooray!"] = "",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/pt_PT.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/pt_PT.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 	["Hooray!"] = "Hurra!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/ru.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/ru.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
       ["Hmmm..."] = "Хммм...",
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
       ["Hooray!"] = "Ура!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/sk.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/sk.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
         ["Hooray!"] = "Hurá!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/stub.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/stub.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 --      ["Hooray!"] = "",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/sv.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/sv.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -332,7 +332,7 @@
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 	["Hooray!"] = "Hurra!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/uk.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/uk.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -331,7 +331,7 @@
         ["Hmmm..."] = "Хмм...",
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
         ["Hooray!"] = "Урааа!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Locale/zh_CN.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Locale/zh_CN.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -331,7 +331,7 @@
       ["Hmmm..."] = "呃...",
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHIT!"] = "", -- Mutant
+--      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
       ["Hooray!"] = "呼!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
--- a/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua	Sun Nov 18 00:58:57 2012 +0400
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua	Sun Nov 18 01:00:26 2012 +0400
@@ -238,7 +238,7 @@
             AddCaption(loc("LUDICROUS KILL"))
             PlaySound(sndNutter)
         elseif killsCounter == 7 then
-            AddCaption(loc("HOLY SHIT!"))
+            AddCaption(loc("HOLY SHYTE!"))
             PlaySound(sndLaugh)
         elseif killsCounter > 8 then
             AddCaption(loc("INSANITY"))