Merge with github pull requests
authorhwmirror
Mon, 09 Nov 2015 16:34:32 +0000
changeset 11336 14de659a4b79
parent 11335 91370591662b (diff)
parent 11331 721210d689a5 (current diff)
child 11337 41ca5f8ace18
child 11339 8ce376b16132
Merge with github pull requests
--- a/.hgtags	Thu Oct 01 12:17:42 2015 +0200
+++ b/.hgtags	Mon Nov 09 16:34:32 2015 +0000
@@ -64,3 +64,9 @@
 7e55468ffe384a3065524c483eb5e3cdb1658fd5 0.9.21-release
 7e55468ffe384a3065524c483eb5e3cdb1658fd5 fab746a3597e
 0f5961910e2712582b162abd08ae3eed330cc978 Nice one
+d9622394ec9c2974a84b9b4d9e6c0ac26c4060ff 0.9.22-RC
+0f5961910e2712582b162abd08ae3eed330cc978 Nice one
+0000000000000000000000000000000000000000 Nice one
+4c4f22cc3fa4e6c1e5cd6cce35350dd93478415f 0.9.22-release
+4c4f22cc3fa4e6c1e5cd6cce35350dd93478415f 0.9.22-release
+9621fdcad96589b3fd78713a0f31e72f26f068bb 0.9.22-release
--- a/CMakeLists.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/CMakeLists.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -52,8 +52,8 @@
 #versioning
 set(CPACK_PACKAGE_VERSION_MAJOR 0)
 set(CPACK_PACKAGE_VERSION_MINOR 9)
-set(CPACK_PACKAGE_VERSION_PATCH 22)
-set(HEDGEWARS_PROTO_VER 50)
+set(CPACK_PACKAGE_VERSION_PATCH 23)
+set(HEDGEWARS_PROTO_VER 52)
 set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
 include(${CMAKE_MODULE_PATH}/revinfo.cmake)
 
--- a/ChangeLog.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/ChangeLog.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -1,22 +1,39 @@
 + features
 * bugfixes
 
+0.9.22 -> 0.9.23
+ * Hammer damage is now rounded down. This means it will cause NO DAMAGE to a hedgehog with less than 3 hp.
+ * Fixed bee not being affected by wrap world edge while still being thrown
+ * Fixed turn not ending when sticky mine was trapped on rubberband
+
 0.9.21 -> 0.9.22
+ + New Weapon / Map object: AirMine (floating mine that will follow nearby hedgehogs)
  + Extensive changes to TechRacer: Variable terrain types, enhanced parameters, hwmap interpreter, fuel limiter, etc. 
+ + HedgeEditor - create missions/etc. in-game! see http://hedgewars.org/HedgeEditor
  + Map previews can now take script parameters into account and preview waypoints in TechRacer
  + Added a couple new flags
- + Small improvements to the interface and in-game chat
- + Divided teams options will now just be ignored when more/less than 2 teams, instead of displaying a fatal error
+ + Various tweaks to the interface and in-game chat
+ + Divided teams options will now just be ignored when more/less than 2 teams/clans, instead of displaying a fatal error
  + Added 6 TechRacer maps to TechMaps
  + Added 3 SpeedShoppa Challenges: Shoppa Love, Ropes and Crates, The Customer is King
  + Hammer damage is now rounded up. This means it can be used to execute hedgehogs with only 1 hp.
  + Improved "Art" theme.
  * Generated bridges/girders are now connected better to the land mass
  * Fixed rubberband sprite
+ * Fixed Wind-Indicator being wrong in certain situations
+ * Melon Bomb Pieces now bounce on Rubberband
+ * Reduced menu music volume
  * The game will now fallback to default voicepack if a team's voicepack is not locally installed. (Instead of rendering team voiceless)
  * Hammer now does more damage when the Extra-Damage utility is used
  * Many other bug fixes
 
+Lua-API:
+ + New map parameter: MapFeatureSize -- numeric representation of detail slider below map preview; use within onGameInit()/onPreviewInit()
+ + New function: SetMaxBuildDistance([ distInPx ]) -- specify how many pixels away a hedgehog can still place girders/etc. set to 0 for no limit; call with no param to reset to default
+ + New hook: onSuddenDeath() -- called by engine when sudden death begins
+ * Previously missing gear states are now available (gstSubmersible, gstFrozen and gstNoGravity)
+ * Fixed OnHogAttack giving the incorrect AmmoType (amNothing) under certain conditions
+
 0.9.20 -> 0.9.21:
  + New type of randomly generated maps: Perlin Maps.
  + Old Random generated maps are more diverse now.
--- a/QTfrontend/res/html/about.html	Thu Oct 01 12:17:42 2015 +0200
+++ b/QTfrontend/res/html/about.html	Mon Nov 09 16:34:32 2015 +0000
@@ -35,6 +35,7 @@
         Keybinds, feedback, maps and hats interfaces: Drew Gottlieb &lt;<a href="mailto:gottlieb.drew@gmail.com">gottlieb.drew@gmail.com</a>&gt;<br>
         Login dialogs, frontend improvements: Ondrej Skopek &lt;<a href="mailto:skopekondrej@gmail.com">skopekondrej@gmail.com</a>&gt;<br>
         Icegun weapon: Julia Struchenko &lt;<a href="mailto:urbertar@gmail.com">urbertar@gmail.com</a>&gt;<br>
+        iPhone/iPad ports: Anton Malmygin &lt;<a href="mailto:antonc27@mail.ru">antonc27@mail.ru</a>&gt;<br>
         </p>
 
         <h2>Art:</h2>
@@ -82,7 +83,7 @@
             Lithuanian: Lukas Urbonas &lt;<a href="mailto:lukasu08@gmail.com">lukasu08@gmail.com</a>&gt;<br>
             Polish: Maciej Mroziński &lt;<a href="mailto:mynick2@o2.pl">mynick2@o2.pl</a>&gt;, Wojciech Latkowski &lt;<a href="mailto:magik17l@gmail.com">magik17l@gmail.com</a>&gt;, Piotr Mitana, Maciej Górny<br>
             Portuguese: Fábio Canário &lt;<a href="mailto:inufabie@gmail.com">inufabie@gmail.com</a>&gt;<br>
-            Russian: Andrey Korotaev &lt;<a href="mailto:unC0Rr@gmail.com">unC0Rr@gmail.com</a>&gt;, Vitaly Novichkov &lt;<a href="mailto:admin@wohlnet.ru">admin@wohlnet.ru</a>&gt;<br>
+            Russian: Andrey Korotaev &lt;<a href="mailto:unC0Rr@gmail.com">unC0Rr@gmail.com</a>&gt;, Vitaly Novichkov &lt;<a href="mailto:admin@wohlnet.ru">admin@wohlnet.ru</a>&gt;, Anton Malmygin &lt;<a href="mailto:antonc27@mail.ru">antonc27@mail.ru</a>&gt;<br>
             Slovak: Jose Riha<br>
             Spanish: Carlos Vives &lt;<a href="mailto:mail@carlosvives.es">mail@carlosvives.es</a>&gt;<br>
             Swedish: Niklas Grahn &lt;<a href="mailto:raewolusjoon@yaoo.com">raewolusjoon@yaoo.com</a>&gt;, Henrik Rostedt &lt;<a href="mailto:henrik.rostedt@gmail.com">henrik.rostedt@gmail.com</a>&gt;<br>
--- a/QTfrontend/util/LibavInteraction.cpp	Thu Oct 01 12:17:42 2015 +0200
+++ b/QTfrontend/util/LibavInteraction.cpp	Mon Nov 09 16:34:32 2015 +0000
@@ -21,7 +21,9 @@
 #if VIDEOREC
 extern "C"
 {
+#include "libavcodec/avcodec.h"
 #include "libavformat/avformat.h"
+#include "libavutil/avutil.h"
 }
 
 #include <QVector>
@@ -30,13 +32,25 @@
 
 #include "HWApplication.h"
 
-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(54, 25, 0)
-#define CodecID AVCodecID
+// compatibility section
+#if LIBAVCODEC_VERSION_MAJOR < 55
+#define av_codec_is_encoder(x)          x->encode
+#define AVCodecID                       CodecID
+#endif
+
+#if LIBAVFORMAT_VERSION_MAJOR < 54
+#define avformat_find_stream_info(x, y) av_find_stream_info(x)
+#define avformat_close_input(x)         av_close_input_file(*(x))
+#endif
+
+#if LIBAVUTIL_VERSION_MAJOR < 54
+#define AVPixelFormat                   PixelFormat
+#define AV_PIX_FMT_YUV420P              PIX_FMT_YUV420P
 #endif
 
 struct Codec
 {
-    CodecID id;
+    AVCodecID id;
     bool isAudio;
     QString shortName; // used for identification
     QString longName; // used for displaying to user
@@ -56,7 +70,7 @@
 QMap<QString,Format> formats;
 
 // test if given format supports given codec
-bool FormatQueryCodec(AVOutputFormat *ofmt, enum CodecID codec_id)
+bool FormatQueryCodec(AVOutputFormat *ofmt, enum AVCodecID codec_id)
 {
 #if LIBAVFORMAT_VERSION_MAJOR >= 54
     return avformat_query_codec(ofmt, codec_id, FF_COMPLIANCE_NORMAL) == 1;
@@ -76,11 +90,7 @@
     AVCodec* pCodec = NULL;
     while ((pCodec = av_codec_next(pCodec)))
     {
-#if LIBAVCODEC_VERSION_MAJOR >= 54
         if (!av_codec_is_encoder(pCodec))
-#else
-        if (!pCodec->encode)
-#endif
             continue;
 
         if (pCodec->type != AVMEDIA_TYPE_VIDEO && pCodec->type != AVMEDIA_TYPE_AUDIO)
@@ -106,8 +116,8 @@
             if (!pCodec->pix_fmts)
                 continue;
             bool yuv420Supported = false;
-            for (const PixelFormat* pfmt = pCodec->pix_fmts; *pfmt != -1; pfmt++)
-                if (*pfmt == PIX_FMT_YUV420P)
+            for (const enum AVPixelFormat* pfmt = pCodec->pix_fmts; *pfmt != -1; pfmt++)
+                if (*pfmt == AV_PIX_FMT_YUV420P)
                 {
                     yuv420Supported = true;
                     break;
@@ -121,7 +131,7 @@
             if (!pCodec->sample_fmts)
                 continue;
             bool s16Supported = false;
-            for (const AVSampleFormat* pfmt = pCodec->sample_fmts; *pfmt != -1; pfmt++)
+            for (const enum AVSampleFormat* pfmt = pCodec->sample_fmts; *pfmt != -1; pfmt++)
                 if (*pfmt == AV_SAMPLE_FMT_S16)
                 {
                     s16Supported = true;
@@ -274,11 +284,7 @@
     QByteArray utf8path = filepath.toUtf8();
     if (avformat_open_input(&pContext, utf8path.data(), NULL, NULL) < 0)
         return "";
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-    if (av_find_stream_info(pContext) < 0)
-#else
     if (avformat_find_stream_info(pContext, NULL) < 0)
-#endif
         return "";
 
     int s = float(pContext->duration)/AV_TIME_BASE;
@@ -312,11 +318,7 @@
     AVDictionaryEntry* pComment = av_dict_get(pContext->metadata, "comment", NULL, 0);
     if (pComment)
         desc += QString("\n") + pComment->value;
-#if LIBAVFORMAT_VERSION_MAJOR < 53
-    av_close_input_file(pContext);
-#else
     avformat_close_input(&pContext);
-#endif
     return desc;
 }
 
--- a/README	Thu Oct 01 12:17:42 2015 +0200
+++ b/README	Mon Nov 09 16:34:32 2015 +0000
@@ -1,46 +1,1 @@
-Hedgewars - a turn based strategy game.
-=======================================
-
-Copyright 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> and others.
-See QTfrontend/res/html/about.html and CREDITS for a complete list of authors.
-
-Licence:
---------
-Source code is distributed under the terms of the GNU General Public Licence
-version 2; images and sounds are distributed under the terms of the GNU Free
-Documentation Licence version 1.2. See the COPYING file for the full text of
-the licenses.
-
-Instructions:
--------------
-See our wiki at: https://code.google.com/p/hedgewars/wiki/BuildingHedgewars
-
-You can find an outline of the necessary dependencies in the INSTALL file.
-
-Source code:
-------------
-Our main repository is located at http://hedgewars.googlecode.com using
-Mercurial as DVCS. A Git repository is also available (mirrored daily)
-at https://github.com/hedgewars/hw
-
-Contribute:
------------
-If you see a bug or have any suggestion please use the official bug tracker at
-http://code.google.com/p/hedgewars/issues/list or the integrated feedback
-button.
-
-If you want to help or get to know the sources better you can do that with some
-easy tasks from http://code.google.com/p/hedgewars/wiki/TODO. We also have an
-extended API in LUA to customize your adventures in our wiki at
-http://code.google.com/p/hedgewars/wiki/LuaAPI.
-
-If you know your way through the code feel free to send a patch or open a pull
-request. The best LUA scripts get released in the official DLC page and later
-integrated in the next version.
-
-Contact:
---------
-* IRC channel     - irc://irc.freenode.net/hedgewars
-* community forum - http://www.hedgewars.org/forum
-* mailing list    - https://mail.gna.org/listinfo/hedgewars-dev
-
+README.md
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,46 @@
+Hedgewars - a turn based strategy game.
+=======================================
+
+Copyright 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> and others.
+See QTfrontend/res/html/about.html and CREDITS for a complete list of authors.
+
+Licence:
+--------
+Source code is distributed under the terms of the GNU General Public Licence
+version 2; images and sounds are distributed under the terms of the GNU Free
+Documentation Licence version 1.2. See the COPYING file for the full text of
+the licenses.
+
+Instructions:
+-------------
+See our wiki at: http://hedgewars.org/kb/BuildingHedgewars
+
+You can find an outline of the necessary dependencies in the INSTALL file.
+
+Source code:
+------------
+Our main repository is located at http://hg.hedgewars.org/hedgewars/ using
+Mercurial as DVCS. A Git repository is also available (mirrored daily)
+at https://github.com/hedgewars/hw
+
+Contribute:
+-----------
+If you see a bug or have any suggestion please use the official bug tracker at
+http://code.google.com/p/hedgewars/issues/list or the integrated feedback
+button.
+
+If you want to help or get to know the sources better you can do that with some
+easy tasks from http://hedgewars.org/kb/TODO. We also have an
+extended API in LUA to customize your adventures in our wiki at
+http://hedgewars.org/kb/LuaAPI.
+
+If you know your way through the code feel free to send a patch or open a pull
+request. The best LUA scripts get released in the official DLC page and later
+integrated in the next version.
+
+Contact:
+--------
+* IRC channel     - irc://irc.freenode.net/hedgewars
+* community forum - http://www.hedgewars.org/forum
+* mailing list    - https://mail.gna.org/listinfo/hedgewars-dev
+
--- a/gameServer/Actions.hs	Thu Oct 01 12:17:42 2015 +0200
+++ b/gameServer/Actions.hs	Mon Nov 09 16:34:32 2015 +0000
@@ -757,15 +757,16 @@
 
 
 processAction (CheckFailed msg) = do
-    Just (CheckInfo fileName _) <- client's checkInfo
+    Just (CheckInfo fileName _ _) <- client's checkInfo
     io $ moveFailedRecord fileName
 
 
 processAction (CheckSuccess info) = do
-    Just (CheckInfo fileName teams) <- client's checkInfo
+    Just (CheckInfo fileName teams gameDetails) <- client's checkInfo
     p <- client's clientProto
     si <- gets serverInfo
-    io $ writeChan (dbQueries si) $ StoreAchievements p (B.pack fileName) (map toPair teams) info
+    when (isJust gameDetails)
+        $ io $ writeChan (dbQueries si) $ StoreAchievements p (B.pack fileName) (map toPair teams) (fromJust gameDetails) info
     io $ moveCheckedRecord fileName
     where
         toPair t = (teamname t, teamowner t)
--- a/gameServer/CoreTypes.hs	Thu Oct 01 12:17:42 2015 +0200
+++ b/gameServer/CoreTypes.hs	Mon Nov 09 16:34:32 2015 +0000
@@ -16,7 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  \-}
 
-{-# LANGUAGE CPP, OverloadedStrings, DeriveDataTypeable #-}
+{-# LANGUAGE CPP, OverloadedStrings, DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
 module CoreTypes where
 
 import Control.Concurrent
@@ -119,7 +119,8 @@
     CheckInfo
     {
         recordFileName :: String,
-        recordTeams :: [TeamInfo]
+        recordTeams :: [TeamInfo],
+        details :: Maybe GameDetails
     }
 
 data ClientInfo =
@@ -303,8 +304,8 @@
     ServerInfo
         True
         "<h2><p align=center><a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a></p></h2>"
-        "<font color=yellow><h3 align=center>Hedgewars 0.9.19 is out! Please update.</h3><p align=center><a href=http://hedgewars.org/download.html>Download page here</a></font>"
-        47 -- latestReleaseVersion
+        "<font color=yellow><h3 align=center>Hedgewars 0.9.22 is out! Please update.</h3><p align=center><a href=http://hedgewars.org/download.html>Download page here</a></font>"
+        51 -- latestReleaseVersion
         41 -- earliestCompatibleVersion
         46631
         ""
@@ -345,10 +346,21 @@
     CheckAccount ClientIndex Int B.ByteString B.ByteString
     | ClearCache
     | SendStats Int Int
-    | StoreAchievements Word16 B.ByteString [(B.ByteString, B.ByteString)] [B.ByteString]
+    | StoreAchievements Word16 B.ByteString [(B.ByteString, B.ByteString)] GameDetails [B.ByteString]
     | GetReplayName ClientIndex Int B.ByteString
     deriving (Show, Read)
 
+data GameDetails =
+    GameDetails {
+        gameScript :: B.ByteString
+        , infRope
+        , isVamp
+        , infAttacks :: Bool
+    } deriving (Show, Read)
+
+instance NFData GameDetails where
+    rnf (GameDetails a b c d) = a `deepseq` b `deepseq` c `deepseq` d `deepseq` ()
+
 data CoreMessage =
     Accept ClientInfo
     | ClientMessage (ClientIndex, [B.ByteString])
--- a/gameServer/EngineInteraction.hs	Thu Oct 01 12:17:42 2015 +0200
+++ b/gameServer/EngineInteraction.hs	Mon Nov 09 16:34:32 2015 +0000
@@ -100,8 +100,8 @@
         -> Map.Map B.ByteString B.ByteString
         -> Map.Map B.ByteString [B.ByteString]
         -> [B.ByteString]
-        -> [B.ByteString]
-replayToDemo ti mParams prms msgs = if not sane then [] else concat [
+        -> (Maybe GameDetails, [B.ByteString])
+replayToDemo ti mParams prms msgs = if not sane then (Nothing, []) else (Just $ GameDetails scriptName infRopes vamp infattacks, concat [
         [em "TD"]
         , maybeScript
         , maybeMap
@@ -117,7 +117,7 @@
         , concatMap teamSetup ti
         , msgs
         , [em "!"]
-        ]
+        ])
     where
         keys1, keys2 :: Set.Set B.ByteString
         keys1 = Set.fromList ["FEATURE_SIZE", "MAP", "MAPGEN", "MAZE_SIZE", "SEED", "TEMPLATE"]
@@ -126,8 +126,10 @@
             && Set.null (keys2 Set.\\ Map.keysSet prms)
             && (not . null . drop 41 $ scheme)
             && (not . null . tail $ prms Map.! "AMMO")
+            && ((B.length . head . tail $ prms Map.! "AMMO") > 200)
         mapGenTypes = ["+rnd+", "+maze+", "+drawn+", "+perlin+"]
-        maybeScript = let s = head . fromMaybe ["Normal"] $ Map.lookup "SCRIPT" prms in if s == "Normal" then [] else [eml ["escript Scripts/Multiplayer/", s, ".lua"]]
+        scriptName = head . fromMaybe ["Normal"] $ Map.lookup "SCRIPT" prms
+        maybeScript = let s = scriptName in if s == "Normal" then [] else [eml ["escript Scripts/Multiplayer/", s, ".lua"]]
         maybeMap = let m = mParams Map.! "MAP" in if m `elem` mapGenTypes then [] else [eml ["emap ", m]]
         scheme = tail $ prms Map.! "SCHEME"
         mapgen = mParams Map.! "MAPGEN"
@@ -161,6 +163,9 @@
                             ])
                         $ hedgehogs t
                         )
+        infRopes = ammoStr `B.index` 7  == '9'
+        vamp = gameFlags .&. 0x00000200 /= 0
+        infattacks = gameFlags .&. 0x00100000 /= 0
 
 drawnMapData :: B.ByteString -> [B.ByteString]
 drawnMapData =
--- a/gameServer/OfficialServer/GameReplayStore.hs	Thu Oct 01 12:17:42 2015 +0200
+++ b/gameServer/OfficialServer/GameReplayStore.hs	Mon Nov 09 16:34:32 2015 +0000
@@ -16,7 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  \-}
 
-{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE ScopedTypeVariables, OverloadedStrings #-}
 module OfficialServer.GameReplayStore where
 
 import Data.Time
@@ -70,11 +70,12 @@
     where
         loadFile :: String -> IO (Maybe CheckInfo, [B.ByteString])
         loadFile fileName = E.handle (\(e :: SomeException) ->
-                    warningM "REPLAYS" ("Problems reading " ++ fileName ++ ": " ++ show e) >> return (Just $ CheckInfo fileName [], [])) $ do
+                    warningM "REPLAYS" ("Problems reading " ++ fileName ++ ": " ++ show e) >> return (Just $ CheckInfo fileName [] Nothing, [])) $ do
             (teams, params1, params2, roundMsgs) <- liftM read $ readFile fileName
-            return $ (
-                Just (CheckInfo fileName teams)
-                , let d = replayToDemo teams (Map.fromList params1) (Map.fromList params2) (reverse roundMsgs) in d `deepseq` d
+            let d = replayToDemo teams (Map.fromList params1) (Map.fromList params2) (reverse roundMsgs)
+            d `deepseq` return $ (
+                Just (CheckInfo fileName teams (fst d))
+                , snd d
                 )
 
 moveFailedRecord :: String -> IO ()
--- a/gameServer/OfficialServer/extdbinterface.hs	Thu Oct 01 12:17:42 2015 +0200
+++ b/gameServer/OfficialServer/extdbinterface.hs	Mon Nov 09 16:34:32 2015 +0000
@@ -28,9 +28,10 @@
 import Database.MySQL.Simple
 import Database.MySQL.Simple.QueryResults
 import Database.MySQL.Simple.Result
-import Data.List (lookup)
+import Data.List (lookup, elem)
 import qualified Data.ByteString.Char8 as B
 import Data.Word
+import Data.Int
 --------------------------
 import CoreTypes
 import Utils
@@ -50,6 +51,15 @@
     \ VALUES (?, (SELECT id FROM achievement_types WHERE name = ?), (SELECT uid FROM users WHERE name = ?), \
     \ ?, ?, ?, ?)"
 
+dbQueryGamesHistory =
+    "INSERT INTO rating_games (script, protocol, filename, time, vamp, ropes, infattacks) \
+    \ VALUES (?, ?, ?, ?, ?, ?, ?)"
+
+dbQueryGameId = "SELECT LAST_INSERT_ID()"
+
+dbQueryGamesHistoryPlaces = "INSERT INTO rating_players (userid, gameid, place) \
+    \ VALUES ((SELECT uid FROM users WHERE name = ?), ?, ?)"
+
 dbQueryReplayFilename = "SELECT filename FROM achievements WHERE id = ?"
 
 
@@ -83,36 +93,54 @@
 
         SendStats clients rooms ->
                 void $ execute dbConn dbQueryStats (clients, rooms)
-        StoreAchievements p fileName teams info ->
-            mapM_ (execute dbConn dbQueryAchievement) $ (parseStats p fileName teams) info
+        StoreAchievements p fileName teams g info ->
+            sequence_ $ parseStats dbConn p fileName teams g info
 
 
 --readTime = read . B.unpack . B.take 19 . B.drop 8
 readTime = B.take 19 . B.drop 8
 
 parseStats :: 
-    Word16 
+    Connection
+    -> Word16 
     -> B.ByteString 
     -> [(B.ByteString, B.ByteString)] 
-    -> [B.ByteString] 
-    -> [(B.ByteString, B.ByteString, B.ByteString, Int, B.ByteString, B.ByteString, Int)]
-parseStats p fileName teams = ps
+    -> GameDetails
+    -> [B.ByteString]
+    -> [IO Int64]
+parseStats dbConn p fileName teams (GameDetails script infRopes vamp infAttacks) = ps
     where
     time = readTime fileName
+    ps :: [B.ByteString] -> [IO Int64]
     ps [] = []
-    ps ("DRAW" : bs) = ps bs
-    ps ("WINNERS" : n : bs) = ps $ drop (readInt_ n) bs
-    ps ("ACHIEVEMENT" : typ : teamname : location : value : bs) =
+    ps ("DRAW" : bs) = execute dbConn dbQueryGamesHistory (script, (fromIntegral p) :: Int, fileName, time, vamp, infRopes, infAttacks)
+        : places (map drawParams teams)
+        : ps bs
+    ps ("WINNERS" : n : bs) = let winNum = readInt_ n in execute dbConn dbQueryGamesHistory (script, (fromIntegral p) :: Int, fileName, time, vamp, infRopes, infAttacks)
+        : places (map (placeParams (take winNum bs)) teams)
+        : ps (drop winNum bs)
+    ps ("ACHIEVEMENT" : typ : teamname : location : value : bs) = execute dbConn dbQueryAchievement
         ( time
         , typ
         , fromMaybe "" (lookup teamname teams)
-        , readInt_ value
+        , (readInt_ value) :: Int
         , fileName
         , location
-        , fromIntegral p
+        , (fromIntegral p) :: Int
         ) : ps bs
     ps (b:bs) = ps bs
-
+    drawParams t = (snd t, 0 :: Int)
+    placeParams winners t = (snd t, if (fst t) `elem` winners then 1 else 2 :: Int)
+    places :: [(B.ByteString, Int)] -> IO Int64
+    places params = do
+        res <- query_ dbConn dbQueryGameId
+        let gameId = case res of
+                [Only a] -> a
+                _ -> 0
+        mapM_ (execute dbConn dbQueryGamesHistoryPlaces . midInsert gameId) params
+        return 0
+    midInsert :: Int -> (a, b) -> (a, Int, b)
+    midInsert g (a, b) = (a, g, b)
 
 dbConnectionLoop mySQLConnectionInfo =
     Control.Exception.handle (\(e :: SomeException) -> hPutStrLn stderr $ show e) $
--- a/gameServer/Utils.hs	Thu Oct 01 12:17:42 2015 +0200
+++ b/gameServer/Utils.hs	Mon Nov 09 16:34:32 2015 +0000
@@ -115,6 +115,8 @@
             , (48, "0.9.21-dev")
             , (49, "0.9.21")
             , (50, "0.9.22-dev")
+            , (51, "0.9.22")
+            , (52, "0.9.23-dev")
             ]
 
 askFromConsole :: B.ByteString -> IO B.ByteString
--- a/hedgewars/CMakeLists.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/CMakeLists.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -137,7 +137,7 @@
     if(${sdl_framework} GREATER -1)
         add_flag_append(CMAKE_Pascal_FLAGS "-k-lsdl -k-lsdl_image -k-lsdl_mixer -k-lsdl_ttf -k-lsdl_net")
     else()
-        add_flag_append(CMAKE_Pascal_FLAGS "-k-framework -kSDL -k-framework -kSDL_image -k-framework -k SDL_mixer -k-framework -k SDL_net -k-framework -kSDL_net")
+        add_flag_append(CMAKE_Pascal_FLAGS "-k-framework -kSDL -k-framework -kSDL_image -k-framework -kSDL_mixer -k-framework -kSDL_net -k-framework -kSDL_net -k-framework -kSDL_ttf")
     endif()
 endif()
 
--- a/hedgewars/avwrapper/avwrapper.c	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/avwrapper/avwrapper.c	Mon Nov 09 16:34:32 2015 +0000
@@ -21,13 +21,12 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdarg.h>
+
+#include "libavcodec/avcodec.h"
 #include "libavformat/avformat.h"
+#include "libavutil/avutil.h"
 #include "libavutil/mathematics.h"
 
-#ifndef AVIO_FLAG_WRITE
-#define AVIO_FLAG_WRITE AVIO_WRONLY
-#endif
-
 #if (defined _MSC_VER)
 #define AVWRAP_DECL __declspec(dllexport)
 #elif ((__GNUC__ >= 3) && (!__EMX__) && (!sun))
@@ -57,11 +56,38 @@
 static int g_NumSamples;
 
 
+// compatibility section
 #if LIBAVCODEC_VERSION_MAJOR < 54
 #define OUTBUFFER_SIZE 200000
 static uint8_t g_OutBuffer[OUTBUFFER_SIZE];
+#define avcodec_open2(x, y, z)              avcodec_open(x, y)
 #endif
 
+#if LIBAVCODEC_VERSION_MAJOR < 56
+#define av_frame_alloc                      avcodec_alloc_frame
+#define av_frame_free                       av_freep
+#endif
+
+#if LIBAVCODEC_VERSION_MAJOR < 57
+#define AV_CODEC_CAP_DELAY                  CODEC_CAP_DELAY
+#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE    CODEC_CAP_VARIABLE_FRAME_SIZE
+#define AV_CODEC_FLAG_GLOBAL_HEADER         CODEC_FLAG_GLOBAL_HEADER
+#define AV_CODEC_FLAG_QSCALE                CODEC_FLAG_QSCALE
+#endif
+
+#if LIBAVFORMAT_VERSION_MAJOR < 53
+#define AVIO_FLAG_WRITE                     AVIO_WRONLY
+#endif
+
+#if LIBAVFORMAT_VERSION_MAJOR < 54
+#define avformat_new_stream(x, y)           av_new_stream(x, y->type == AVMEDIA_TYPE_AUDIO)
+#endif
+
+#if LIBAVUTIL_VERSION_MAJOR < 54
+#define AV_PIX_FMT_YUV420P                  PIX_FMT_YUV420P
+#endif
+
+
 // pointer to function from hwengine (uUtils.pas)
 static void (*AddFileLogRaw)(const char* pString);
 
@@ -105,11 +131,7 @@
 
 static void AddAudioStream()
 {
-#if LIBAVFORMAT_VERSION_MAJOR >= 53
     g_pAStream = avformat_new_stream(g_pContainer, g_pACodec);
-#else
-    g_pAStream = av_new_stream(g_pContainer, 1);
-#endif
     if(!g_pAStream)
     {
         Log("Could not allocate audio stream\n");
@@ -131,26 +153,22 @@
     g_pAudio->bit_rate = 160000;
 
     // for codecs that support variable bitrate use it, it should be better
-    g_pAudio->flags |= CODEC_FLAG_QSCALE;
+    g_pAudio->flags |= AV_CODEC_FLAG_QSCALE;
     g_pAudio->global_quality = 1*FF_QP2LAMBDA;
 
     // some formats want stream headers to be separate
     if (g_pFormat->flags & AVFMT_GLOBALHEADER)
-        g_pAudio->flags |= CODEC_FLAG_GLOBAL_HEADER;
+        g_pAudio->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 
     // open it
-#if LIBAVCODEC_VERSION_MAJOR >= 53
     if (avcodec_open2(g_pAudio, g_pACodec, NULL) < 0)
-#else
-    if (avcodec_open(g_pAudio, g_pACodec) < 0)
-#endif
     {
         Log("Could not open audio codec %s\n", g_pACodec->long_name);
         return;
     }
 
 #if LIBAVCODEC_VERSION_MAJOR >= 54
-    if (g_pACodec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
+    if (g_pACodec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
 #else
     if (g_pAudio->frame_size == 0)
 #endif
@@ -158,7 +176,7 @@
     else
         g_NumSamples = g_pAudio->frame_size;
     g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t));
-    g_pAFrame = avcodec_alloc_frame();
+    g_pAFrame = av_frame_alloc();
     if (!g_pAFrame)
     {
         Log("Could not allocate frame\n");
@@ -172,7 +190,7 @@
     if (!g_pAStream)
         return 0;
 
-    AVPacket Packet = { 0 };
+    AVPacket Packet;
     av_init_packet(&Packet);
 
     int NumSamples = fread(g_pSamples, 2*g_Channels, g_NumSamples, g_pSoundFile);
@@ -217,11 +235,7 @@
 // add a video output stream
 static int AddVideoStream()
 {
-#if LIBAVFORMAT_VERSION_MAJOR >= 53
     g_pVStream = avformat_new_stream(g_pContainer, g_pVCodec);
-#else
-    g_pVStream = av_new_stream(g_pContainer, 0);
-#endif
     if (!g_pVStream)
         return FatalError("Could not allocate video stream");
 
@@ -241,20 +255,20 @@
     g_pVideo->time_base.den = g_Framerate.num;
     g_pVideo->time_base.num = g_Framerate.den;
     //g_pVideo->gop_size = 12; /* emit one intra frame every twelve frames at most */
-    g_pVideo->pix_fmt = PIX_FMT_YUV420P;
+    g_pVideo->pix_fmt = AV_PIX_FMT_YUV420P;
 
     // set quality
     if (g_VQuality > 100)
         g_pVideo->bit_rate = g_VQuality;
     else
     {
-        g_pVideo->flags |= CODEC_FLAG_QSCALE;
+        g_pVideo->flags |= AV_CODEC_FLAG_QSCALE;
         g_pVideo->global_quality = g_VQuality*FF_QP2LAMBDA;
     }
 
     // some formats want stream headers to be separate
     if (g_pFormat->flags & AVFMT_GLOBALHEADER)
-        g_pVideo->flags |= CODEC_FLAG_GLOBAL_HEADER;
+        g_pVideo->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 
 #if LIBAVCODEC_VERSION_MAJOR < 53
     // for some versions of ffmpeg x264 options must be set explicitly
@@ -288,18 +302,10 @@
 #endif
 
     // open the codec
-#if LIBAVCODEC_VERSION_MAJOR >= 53
-    AVDictionary* pDict = NULL;
-    if (strcmp(g_pVCodec->name, "libx264") == 0)
-        av_dict_set(&pDict, "preset", "medium", 0);
-
-    if (avcodec_open2(g_pVideo, g_pVCodec, &pDict) < 0)
-#else
-    if (avcodec_open(g_pVideo, g_pVCodec) < 0)
-#endif
+    if (avcodec_open2(g_pVideo, g_pVCodec, NULL) < 0)
         return FatalError("Could not open video codec %s", g_pVCodec->long_name);
 
-    g_pVFrame = avcodec_alloc_frame();
+    g_pVFrame = av_frame_alloc();
     if (!g_pVFrame)
         return FatalError("Could not allocate frame");
 
@@ -317,10 +323,10 @@
     // write interleaved audio frame
     if (g_pAStream)
     {
-        VideoTime = (double)g_pVStream->pts.val*g_pVStream->time_base.num/g_pVStream->time_base.den;
+        VideoTime = (double)g_pVFrame->pts * g_pVStream->time_base.num/g_pVStream->time_base.den;
         do
         {
-            AudioTime = (double)g_pAStream->pts.val*g_pAStream->time_base.num/g_pAStream->time_base.den;
+            AudioTime = (double)g_pAFrame->pts * g_pAStream->time_base.num/g_pAStream->time_base.den;
             ret = WriteAudioFrame();
         }
         while (AudioTime < VideoTime && ret);
@@ -496,7 +502,7 @@
 {
     int ret;
     // output buffered frames
-    if (g_pVCodec->capabilities & CODEC_CAP_DELAY)
+    if (g_pVCodec->capabilities & AV_CODEC_CAP_DELAY)
     {
         do
             ret = WriteFrame(NULL);
@@ -526,14 +532,14 @@
         avcodec_close(g_pVideo);
         av_free(g_pVideo);
         av_free(g_pVStream);
-        av_free(g_pVFrame);
+        av_frame_free(&g_pVFrame);
     }
     if (g_pAStream)
     {
         avcodec_close(g_pAudio);
         av_free(g_pAudio);
         av_free(g_pAStream);
-        av_free(g_pAFrame);
+        av_frame_free(&g_pAFrame);
         av_free(g_pSamples);
         fclose(g_pSoundFile);
     }
--- a/hedgewars/uGears.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uGears.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -320,6 +320,7 @@
                     Ammoz[amTardis].Probability:= 0;
                     end;
                 AddCaption(trmsg[sidSuddenDeath], cWhiteColor, capgrpGameState);
+                ScriptCall('onSuddenDeath');
                 playSound(sndSuddenDeath);
                 StopMusic;
                 if SDMusicFN <> '' then PlayMusic
--- a/hedgewars/uGearsHandlersMess.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uGearsHandlersMess.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -1094,6 +1094,7 @@
     AllInactive := false;
     Gear^.X := Gear^.X + Gear^.dX;
     Gear^.Y := Gear^.Y + Gear^.dY;
+    WorldWrap(Gear);
     Gear^.dY := Gear^.dY + cGravity;
     CheckGearDrowning(Gear);
     CheckCollision(Gear);
@@ -1959,7 +1960,7 @@
     if land = 0 then land:= TestCollisionYwithGear(Gear,-2);
     if land = 0 then land:= TestCollisionXwithGear(Gear,-2);
     if land = 0 then land:= TestCollisionYwithGear(Gear, 2);
-    if (land <> 0) and (land and lfBouncy = 0) then
+    if (land <> 0) and ((land and lfBouncy = 0) or ((Gear^.State and gstMoving) = 0)) then
         begin
         if ((Gear^.State and gstMoving) <> 0) or (not isZero(Gear^.dX)) or (not isZero(Gear^.dY)) then
             begin
@@ -5197,7 +5198,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 procedure doStepPoisonCloud(Gear: PGear);
 begin
-    WorldWrap(Gear);
+    // don't bounce
+    if WorldEdge <> weBounce then
+        WorldWrap(Gear);
     if Gear^.Timer = 0 then
         begin
         DeleteGear(Gear);
@@ -5253,13 +5256,12 @@
                         d:= 2
                     else
                         d:= 3;
-                    // always round up
-                    if dmg mod d > 0 then
-                        dmg:= dmg div d + 1
-                    else
-                        dmg:= dmg div d;
-
-                    ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown);
+
+                    // always rounding down
+                    dmg:= dmg div d;
+
+                    if dmg > 0 then
+                        ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown);
                     end;
                 end;
 
@@ -5429,7 +5431,7 @@
         for i:= 0 to graves.size - 1 do
             if graves.ar^[i]^.Health > 0 then
                 begin
-                resgear := AddGear(hwRound(graves.ar^[i]^.X), hwRound(graves.ar^[i]^.Y), gtHedgehog, gstWait, _0, _0, 0);
+                resgear := AddGear(hwRound(graves.ar^[i]^.X), hwRound(graves.ar^[i]^.Y), gtHedgehog, gstWait, _0, _0, 0,graves.ar^[i]^.Pos);
                 resgear^.Hedgehog := graves.ar^[i]^.Hedgehog;
                 resgear^.Health := graves.ar^[i]^.Health;
                 PHedgehog(graves.ar^[i]^.Hedgehog)^.Gear := resgear;
--- a/hedgewars/uGearsHandlersRope.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uGearsHandlersRope.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -42,7 +42,8 @@
         OutError('ERROR: doStepRopeAfterAttack called while HHGear = nil', IsNilHHFatal);
         DeleteGear(Gear);
         exit()
-        end;
+        end
+    else if not CurrentTeam^.ExtDriven and (FollowGear <> nil) then FollowGear := HHGear;
 
     tX:= HHGear^.X;
     if WorldWrap(HHGear) and (WorldEdge = weWrap) and
@@ -137,7 +138,8 @@
         OutError('ERROR: doStepRopeWork called while HHGear = nil', IsNilHHFatal);
         DeleteGear(Gear);
         exit()
-        end;
+        end
+    else if not CurrentTeam^.ExtDriven and (FollowGear <> nil) then FollowGear := HHGear;
 
     if ((HHGear^.State and gstHHDriven) = 0) or
         (CheckGearDrowning(HHGear)) or (Gear^.PortalCounter <> 0) then
@@ -425,6 +427,7 @@
     HHGear: PGear;
     tx, ty, tt: hwFloat;
 begin
+    
     Gear^.X := Gear^.X - Gear^.dX;
     Gear^.Y := Gear^.Y - Gear^.dY;
     Gear^.Elasticity := Gear^.Elasticity + _1;
@@ -435,7 +438,8 @@
         OutError('ERROR: doStepRopeAttach called while HHGear = nil', IsNilHHFatal);
         DeleteGear(Gear);
         exit()
-        end;
+        end
+    else if not CurrentTeam^.ExtDriven and (FollowGear <> nil) then FollowGear := HHGear;
 
     DeleteCI(HHGear);
 
--- a/hedgewars/uGearsHedgehog.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uGearsHedgehog.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -451,7 +451,7 @@
             if CurAmmoType = amAirMine then newGear^.Hedgehog:= nil;
 
             if ((CurAmmoType = amMine) or (CurAmmoType = amSMine) or (CurAmmoType = amAirMine)) and (GameFlags and gfInfAttack <> 0) then
-                newGear^.FlightTime:= GameTicks + 1000
+                newGear^.FlightTime:= GameTicks + min(TurnTimeLeft,1000)
             else if CurAmmoType = amDrill then
                 newGear^.FlightTime:= GameTicks + 250;
             if Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NeedTarget <> 0 then
@@ -572,6 +572,7 @@
 procedure doStepHedgehogDead(Gear: PGear);
 const frametime = 200;
       timertime = frametime * 6;
+var grave:  PGear;
 begin
 if Gear^.Hedgehog^.Unplaced then
     exit;
@@ -587,7 +588,10 @@
     Gear^.Hedgehog^.Effects[heFrozen]:= 0;
     Gear^.State:= Gear^.State or gstNoDamage;
     doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, CurrentHedgehog, EXPLAutoSound);
-    AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtGrave, 0, _0, _0, 0)^.Hedgehog:= Gear^.Hedgehog;
+    grave:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtGrave, 0, _0, _0, 0);
+    grave^.Hedgehog:= Gear^.Hedgehog;
+    grave^.Pos:= Gear^.uid;
+    
     DeleteGear(Gear);
     SetAllToActive
     end
@@ -906,6 +910,7 @@
         end;
     Gear^.State:= Gear^.State or gstMoving;
     if (Gear^.State and gstHHDriven <> 0) and
+       (FollowGear <> nil) and
        (not CurrentTeam^.ExtDriven) and (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > _0_003) then
         begin
         // TODO: why so aggressive at setting FollowGear when falling?
--- a/hedgewars/uGearsList.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uGearsList.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -23,6 +23,7 @@
 uses uFloat, uTypes, SDLh;
 
 function  AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear;
+function  AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer, newUid: LongWord): PGear;
 procedure DeleteGear(Gear: PGear);
 procedure InsertGearToList(Gear: PGear);
 procedure RemoveGearFromList(Gear: PGear);
@@ -164,11 +165,16 @@
 
 
 function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear;
+begin
+AddGear:= AddGear(X, Y, Kind, State, dX, dY, Timer, 0);
+end;
+function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer, newUid: LongWord): PGear;
 var gear: PGear;
     //c: byte;
     cakeData: PCakeData;
 begin
-inc(GCounter);
+if newUid = 0 then
+    inc(GCounter);
 
 AddFileLog('AddGear: #' + inttostr(GCounter) + ' (' + inttostr(x) + ',' + inttostr(y) + '), d(' + floattostr(dX) + ',' + floattostr(dY) + ') type = ' + EnumToStr(Kind));
 
@@ -186,7 +192,9 @@
 gear^.doStep:= doStepHandlers[Kind];
 gear^.CollisionIndex:= -1;
 gear^.Timer:= Timer;
-gear^.uid:= GCounter;
+if newUid = 0 then
+     gear^.uid:= GCounter
+else gear^.uid:= newUid;
 gear^.SoundChannel:= -1;
 gear^.ImpactSound:= sndNone;
 gear^.Density:= _1;
--- a/hedgewars/uLandGenTemplateBased.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uLandGenTemplateBased.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -9,7 +9,7 @@
 var minDistance, dabDiv: LongInt; // different details size
 
 implementation
-uses uVariables, uConsts, uFloat, uLandUtils, uRandom, SDLh, math;
+uses uVariables, uTypes, uConsts, uFloat, uLandUtils, uRandom, SDLh, math;
 
 
 procedure SetPoints(var Template: TEdgeTemplate; var pa: TPixAr; fps: PPointArray);
@@ -327,6 +327,9 @@
         DivideEdges(Template.FillPointsCount, pa)
     until i = pa.Count;
 
+{$IFDEF IPHONEOS}
+    if GameType <> gmtLandPreview then
+{$ENDIF}
     // make it smooth
     BezierizeEdge(pa, _0_2);
 end;
--- a/hedgewars/uLocale.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uLocale.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -138,11 +138,13 @@
     PathPrefix := Strpas(path);
  
     uUtils.initModule(false);
+    uVariables.initModule;
     uPhysFSLayer.initModule;
  
     LoadLocale(Strpas(filename));
  
     uPhysFSLayer.freeModule;
+    uVariables.freeModule;
     uUtils.freeModule;
 end;
 {$ENDIF}
--- a/hedgewars/uScript.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uScript.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -628,7 +628,9 @@
         begin
         gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
         HealthCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
-        lua_pushinteger(L, gear^.uid);
+        if gear <> nil then
+             lua_pushinteger(L, gear^.uid)
+        else lua_pushnil(L)
         end
     else
         lua_pushnil(L);
@@ -642,7 +644,9 @@
         begin
         gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
         AmmoCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
-        lua_pushinteger(L, gear^.uid);
+        if gear <> nil then
+             lua_pushinteger(L, gear^.uid)
+        else lua_pushnil(L)
         end
     else
         lua_pushnil(L);
@@ -656,7 +660,9 @@
         begin
         gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
         UtilityCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
-        lua_pushinteger(L, gear^.uid);
+        if gear <> nil then
+             lua_pushinteger(L, gear^.uid)
+        else lua_pushnil(L)
         end
     else
         lua_pushnil(L);
@@ -675,9 +681,8 @@
             health:= cHealthCaseAmount;
         gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), HealthCrate, health, 0);
         if gear <> nil then
-            lua_pushinteger(L, gear^.uid)
-        else
-            lua_pushnil(L);
+             lua_pushinteger(L, gear^.uid)
+        else lua_pushnil(L);
         end
     else
         lua_pushnil(L);
@@ -694,9 +699,8 @@
              gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), AmmoCrate, lua_tointeger(L, 3), 0)
         else gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), AmmoCrate, lua_tointeger(L, 3), lua_tointeger(L, 4));
         if gear <> nil then
-            lua_pushinteger(L, gear^.uid)
-        else
-            lua_pushnil(L);
+             lua_pushinteger(L, gear^.uid)
+        else lua_pushnil(L);
         end
     else
         lua_pushnil(L);
@@ -713,9 +717,8 @@
              gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), UtilityCrate, lua_tointeger(L, 3), 0)
         else gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), UtilityCrate, lua_tointeger(L, 3), lua_tointeger(L, 4));
         if gear <> nil then
-            lua_pushinteger(L, gear^.uid)
-        else
-            lua_pushnil(L);
+             lua_pushinteger(L, gear^.uid)
+        else lua_pushnil(L);
        end
     else
         lua_pushnil(L);
--- a/hedgewars/uSound.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uSound.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -301,7 +301,7 @@
 end;
 
 procedure InitSound;
-const channels: LongInt = {$IFDEF MOBILE}1{$ELSE}2{$ENDIF};
+const channels: LongInt = 2;
 var success: boolean;
 begin
     if not (isSoundEnabled or isMusicEnabled) then
--- a/hedgewars/uTouch.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uTouch.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -296,7 +296,7 @@
     end;
 
 if targetting then
-    AddCaption('Press the target button to mark the target', cWhiteColor, capgrpAmmoInfo);
+    AddCaption(trmsg[sidPressTarget], cWhiteColor, capgrpAmmoInfo);
 
 deleteFinger(pointerId);
 end;
--- a/hedgewars/uTypes.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uTypes.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -61,6 +61,7 @@
 {$IFDEF USE_TOUCH_INTERFACE}
             sprFireButton, sprArrowUp, sprArrowDown, sprArrowLeft, sprArrowRight,
             sprJumpWidget, sprAMWidget, sprPauseButton, sprTimerButton, sprTargetButton,
+            sprSwitchButton,
 {$ENDIF}
             sprFlake, sprHandRope, sprHandBazooka, sprHandShotgun,
             sprHandDEagle, sprHandAirAttack, sprHandBaseball, sprPHammer,
@@ -455,7 +456,7 @@
             sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
             sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady,
             sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce,
-            sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn);
+            sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn, sidPressTarget);
 
     // 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	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uVariables.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -441,10 +441,12 @@
             Width: 128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprJumpWidget
             (FileName: 'pause'; Path: ptButtons; AltPath: ptNone; Texture: nil; Surface: nil;
             Width: 120; Height: 100; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprPauseButton
-            (FileName: 'pause'; Path: ptButtons; AltPath: ptNone; Texture: nil; Surface: nil;//TODO correct image
-            Width: 120; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprTimerButton
-            (FileName: 'forwardjump'; Path: ptButtons; AltPath: ptNone; Texture: nil; Surface: nil;//TODO correct image
-            Width: 120; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprTargetButton
+            (FileName: 'timerbutton'; Path: ptButtons; AltPath: ptNone; Texture: nil; Surface: nil;
+            Width: 128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprTimerButton
+            (FileName: 'targetbutton'; Path: ptButtons; AltPath: ptNone; Texture: nil; Surface: nil;
+            Width: 128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprTargetButton
+            (FileName: 'switchbutton'; Path: ptButtons; AltPath: ptNone; Texture: nil; Surface: nil;
+            Width: 128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true), // sprSwitchButton
 {$ENDIF}
             (FileName:      'Flake'; Path:ptCurrTheme; AltPath: ptNone; Texture: nil; Surface: nil;
             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprFlake
@@ -1363,7 +1365,7 @@
             NameTex: nil;
             Probability: 100;
             NumberInCase: 4;
-            Ammo: (Propz: 0;
+            Ammo: (Propz: ammoprop_NeedUpDown;
                 Count: 4;
                 NumPerTurn: 0;
                 Timer: 0;
@@ -2154,6 +2156,7 @@
             NumberInCase: 1;
             Ammo: (Propz: ammoprop_Power or
                           ammoprop_AltUse or
+                          ammoprop_NeedUpDown or
                           ammoprop_NoRoundEnd;
                 Count: 2;
                 NumPerTurn: 0;
@@ -2235,6 +2238,7 @@
             Probability: 20;
             NumberInCase: 1;
             Ammo: (Propz: ammoprop_NoRoundEnd or
+                          ammoprop_NeedUpDown or
                           ammoprop_Utility;
                 Count: 1;
                 NumPerTurn: 0;
--- a/hedgewars/uWorld.pas	Thu Oct 01 12:17:42 2015 +0200
+++ b/hedgewars/uWorld.pas	Mon Nov 09 16:34:32 2015 +0000
@@ -1930,7 +1930,7 @@
     ammoType:= CurrentHedgehog^.CurAmmoType;
 
 if(CurrentHedgehog <> nil)then
-    if (Ammoz[ammoType].Ammo.Propz and ammoprop_Timerable) <> 0 then
+    if ((Ammoz[ammoType].Ammo.Propz and ammoprop_Timerable) <> 0) and (ammoType <> amDrillStrike) then
         begin
         utilityWidget.sprite:= sprTimerButton;
         animateWidget(@utilityWidget, true, true);
@@ -1942,7 +1942,7 @@
         end
     else if ammoType = amSwitch then
         begin
-        utilityWidget.sprite:= sprTargetButton;
+        utilityWidget.sprite:= sprSwitchButton;
         animateWidget(@utilityWidget, true, true);
         end
     else if utilityWidget.show then
--- a/misc/liblua/Xcode/Lua.xcodeproj/project.pbxproj	Thu Oct 01 12:17:42 2015 +0200
+++ b/misc/liblua/Xcode/Lua.xcodeproj/project.pbxproj	Mon Nov 09 16:34:32 2015 +0000
@@ -290,7 +290,7 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0640;
+				LastUpgradeCheck = 0710;
 			};
 			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Lua" */;
 			compatibilityVersion = "Xcode 3.2";
@@ -398,6 +398,7 @@
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
--- a/misc/libphysfs/Xcode/Physfs.xcodeproj/project.pbxproj	Thu Oct 01 12:17:42 2015 +0200
+++ b/misc/libphysfs/Xcode/Physfs.xcodeproj/project.pbxproj	Mon Nov 09 16:34:32 2015 +0000
@@ -179,7 +179,7 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0640;
+				LastUpgradeCheck = 0710;
 			};
 			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Physfs" */;
 			compatibilityVersion = "Xcode 3.2";
@@ -273,6 +273,7 @@
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
--- a/misc/libphyslayer/Xcode/Physlayer.xcodeproj/project.pbxproj	Thu Oct 01 12:17:42 2015 +0200
+++ b/misc/libphyslayer/Xcode/Physlayer.xcodeproj/project.pbxproj	Mon Nov 09 16:34:32 2015 +0000
@@ -125,7 +125,7 @@
 		0867D690FE84028FC02AAC07 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0640;
+				LastUpgradeCheck = 0710;
 			};
 			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Physlayer" */;
 			compatibilityVersion = "Xcode 3.2";
@@ -204,6 +204,7 @@
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
Binary file project_files/Android-build/SDL-android-project/assets/Data/Graphics/Buttons/switchbutton.png has changed
Binary file project_files/Android-build/SDL-android-project/assets/Data/Graphics/Buttons/targetbutton.png has changed
Binary file project_files/Android-build/SDL-android-project/assets/Data/Graphics/Buttons/timerbutton.png has changed
--- a/project_files/HedgewarsMobile/Classes/AboutViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -27,7 +27,10 @@
     return rotationManager(interfaceOrientation);
 }
 
--(void) viewDidLoad {
+-(void) viewDidLoad
+{
+    [super viewDidLoad];
+    
     [self.tableView setBackgroundColorForAnyTable:[UIColor clearColor]];
     self.tableView.allowsSelection = NO;
 
@@ -48,7 +51,7 @@
     [self.view insertSubview:background atIndex:0];
     [background release];
 
-    [super viewDidLoad];
+    [self localizeSegmentedControl];
 }
 
 -(IBAction) buttonPressed:(id) sender {
@@ -56,6 +59,17 @@
     [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
 }
 
+#pragma mark - Segmented Control
+
+- (void)localizeSegmentedControl
+{
+    for (NSUInteger i = 0; i < self.segmentedControl.numberOfSegments; i++)
+    {
+        NSString *oldTitle = [self.segmentedControl titleForSegmentAtIndex:i];
+        [self.segmentedControl setTitle:NSLocalizedStringFromTable(oldTitle, @"About", nil) forSegmentAtIndex:i];
+    }
+}
+
 -(IBAction) segmentedControlChanged:(id) sender {
     [[AudioManagerController mainManager] playClickSound];
     [self.tableView setContentOffset:CGPointMake(0, 0) animated:NO];
@@ -119,6 +133,7 @@
     label.textColor = [UIColor lightGrayColor];
     label.numberOfLines = 5;
     label.text = footerString;
+    [footerString release];
 
     label.backgroundColor = [UIColor clearColor];
     [footer addSubview:label];
--- a/project_files/HedgewarsMobile/Classes/Appirater.h	Thu Oct 01 12:17:42 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- This file is part of Appirater, http://arashpayan.com
-
- Copyright (c) 2010, Arash Payan
- All rights reserved.
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#import <Foundation/Foundation.h>
-
-extern NSString *const kAppiraterLaunchDate;
-extern NSString *const kAppiraterLaunchCount;
-extern NSString *const kAppiraterCurrentVersion;
-extern NSString *const kAppiraterRatedCurrentVersion;
-extern NSString *const kAppiraterDeclinedToRate;
-
-/*
- Place your Apple generated software id here.
- */
-#define APPIRATER_APP_ID                391234866
-
-/*
- Your app's name.
- */
-#define APPIRATER_APP_NAME              [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey]
-
-/*
- This is the message your users will see once they've passed the day+launches
- threshold.
- */
-#define APPIRATER_MESSAGE               [NSString stringWithFormat:@"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!", APPIRATER_APP_NAME]
-
-/*
- This is the title of the message alert that users will see.
- */
-#define APPIRATER_MESSAGE_TITLE         [NSString stringWithFormat:@"Rate %@", APPIRATER_APP_NAME]
-
-/*
- The text of the button that rejects reviewing the app.
- */
-#define APPIRATER_CANCEL_BUTTON         NSLocalizedString(@"No thanks",@"")
-
-/*
- Text of button that will send user to app review page.
- */
-#define APPIRATER_RATE_BUTTON           [NSString stringWithFormat:@"Rate %@", APPIRATER_APP_NAME]
-
-/*
- Text for button to remind the user to review later.
- */
-#define APPIRATER_RATE_LATER            NSLocalizedString(@"Remind me later",@"")
-
-/*
- Users will need to have the same version of your app installed for this many
- days before they will be prompted to rate it.
- */
-#define DAYS_UNTIL_PROMPT               3       // double
-
-/*
- Users will need to launch the same version of the app this many times before
- they will be prompted to rate it.
- */
-#define LAUNCHES_UNTIL_PROMPT           5      // integer
-
-/*
- 'YES' will show the Appirater alert everytime. Useful for testing how your message
- looks and making sure the link to your app's review page works.
- */
-#define APPIRATER_DEBUG                 NO      // bool
-
-@interface Appirater : NSObject <UIAlertViewDelegate> {
-
-}
-
-+(void) appLaunched;
-
-@end
--- a/project_files/HedgewarsMobile/Classes/Appirater.m	Thu Oct 01 12:17:42 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
- This file is part of Appirater, http://arashpayan.com
-
- Copyright (c) 2010, Arash Payan
- All rights reserved.
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#import "Appirater.h"
-#import <SystemConfiguration/SCNetworkReachability.h>
-#import <netinet/in.h>
-
-NSString *const kAppiraterLaunchDate            = @"kAppiraterLaunchDate";
-NSString *const kAppiraterLaunchCount           = @"kAppiraterLaunchCount";
-NSString *const kAppiraterCurrentVersion        = @"kAppiraterCurrentVersion";
-NSString *const kAppiraterRatedCurrentVersion   = @"kAppiraterRatedCurrentVersion";
-NSString *const kAppiraterDeclinedToRate        = @"kAppiraterDeclinedToRate";
-
-NSString *templateReviewURL = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";
-
-@implementation Appirater
-
-+(void) appLaunched {
-    Appirater *appirater = [[Appirater alloc] init];
-    [NSThread detachNewThreadSelector:@selector(appLaunchedHandler) toTarget:appirater withObject:nil];
-}
-
--(void) appLaunchedHandler {
-    @autoreleasepool {
-
-    if (APPIRATER_DEBUG) {
-        [self performSelectorOnMainThread:@selector(showPrompt) withObject:nil waitUntilDone:NO];
-        return;
-    }
-
-    BOOL willShowPrompt = NO;
-
-    // get the app's version
-    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
-
-    // get the version number that we've been tracking
-    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-    NSString *trackingVersion = [userDefaults stringForKey:kAppiraterCurrentVersion];
-    if (trackingVersion == nil) {
-        trackingVersion = version;
-        [userDefaults setObject:version forKey:kAppiraterCurrentVersion];
-    }
-
-    if (APPIRATER_DEBUG)
-        DLog(@"APPIRATER Tracking version: %@", trackingVersion);
-
-    if ([trackingVersion isEqualToString:version]) {
-        // get the launch date
-        NSTimeInterval timeInterval = [userDefaults doubleForKey:kAppiraterLaunchDate];
-        if (timeInterval == 0) {
-            timeInterval = [[NSDate date] timeIntervalSince1970];
-            [userDefaults setDouble:timeInterval forKey:kAppiraterLaunchDate];
-        }
-
-        NSTimeInterval secondsSinceLaunch = [[NSDate date] timeIntervalSinceDate:[NSDate dateWithTimeIntervalSince1970:timeInterval]];
-        double secondsUntilPrompt = 60 * 60 * 24 * DAYS_UNTIL_PROMPT;
-
-        // get the launch count
-        NSInteger launchCount = [userDefaults integerForKey:kAppiraterLaunchCount];
-        launchCount++;
-        [userDefaults setInteger:launchCount forKey:kAppiraterLaunchCount];
-        if (APPIRATER_DEBUG)
-            NSLog(@"APPIRATER Launch count: %ld", (long)launchCount);
-
-        // have they previously declined to rate this version of the app?
-        BOOL declinedToRate = [userDefaults boolForKey:kAppiraterDeclinedToRate];
-
-        // have they already rated the app?
-        BOOL ratedApp = [userDefaults boolForKey:kAppiraterRatedCurrentVersion];
-
-        if (secondsSinceLaunch > secondsUntilPrompt &&
-             launchCount > LAUNCHES_UNTIL_PROMPT &&
-             !declinedToRate &&
-             !ratedApp) {
-            if ([HWUtils isNetworkReachable]) { // check if they can reach the app store
-                willShowPrompt = YES;
-                [self performSelectorOnMainThread:@selector(showPrompt) withObject:nil waitUntilDone:NO];
-            }
-        }
-    } else {
-        // it's a new version of the app, so restart tracking
-        [userDefaults setObject:version forKey:kAppiraterCurrentVersion];
-        [userDefaults setDouble:[[NSDate date] timeIntervalSince1970] forKey:kAppiraterLaunchDate];
-        [userDefaults setInteger:1 forKey:kAppiraterLaunchCount];
-        [userDefaults setBool:NO forKey:kAppiraterRatedCurrentVersion];
-        [userDefaults setBool:NO forKey:kAppiraterDeclinedToRate];
-    }
-
-    [userDefaults synchronize];
-    if (!willShowPrompt)
-        [self autorelease];
-
-    }
-}
-
--(void) showPrompt {
-    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:APPIRATER_MESSAGE_TITLE
-                                                        message:APPIRATER_MESSAGE
-                                                       delegate:self
-                                              cancelButtonTitle:APPIRATER_CANCEL_BUTTON
-                                              otherButtonTitles:APPIRATER_RATE_BUTTON, APPIRATER_RATE_LATER, nil];
-    [alertView show];
-    [alertView release];
-}
-
--(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger) buttonIndex {
-    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-
-    switch (buttonIndex) {
-        case 0:
-            // they don't want to rate it
-            [userDefaults setBool:YES forKey:kAppiraterDeclinedToRate];
-            break;
-        case 1:
-            // they want to rate it
-            [[UIApplication sharedApplication] openURL:
-             [NSURL URLWithString:[templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", APPIRATER_APP_ID]]]];
-
-            [userDefaults setBool:YES forKey:kAppiraterRatedCurrentVersion];
-            break;
-        case 2:
-            // remind them later
-            break;
-        default:
-            break;
-    }
-
-    [userDefaults synchronize];
-
-    [self release];
-}
-
-@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ar.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "إذا كنت تستمع باستخدام %@، فهل تمانع بأن تأخذ دقيقة من وقتك لتقيمه؟ لن يستغرق الأمر أكثر من دقيقة. شكرا لدعمك!";
+"Rate %@" = "قيم %@";
+"No, Thanks" = "لا شكرا";
+"Remind me later" = "ذكرني لاحقا";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ca.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Si li agrada utilitzar %@, li importaria prendre’s un moment per a valorar-lo? No trigarà més d’un minut. Gràcies por la seva col·laboració!";
+"Rate %@" = "Valorar %@";
+"No, Thanks" = "No, gràcies";
+"Remind me later" = "Recordar-m’ho més tard";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/cs.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Pokud se Vám aplikace %@ líbí, mohli byste ji prosím ohodnotit v App Store? Zabere to jen chvilku. Díky za Vaši podporu!";
+"Rate %@" = "Ohodnotit %@";
+"No, Thanks" = "Ne, díky";
+"Remind me later" = "Možná později";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/da.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Hvis du synes om at bruge %@, vil du have noget imod at bruge et kort øjeblik på at bedømme det? Det tager kun et minut. Tak for din støtte!";
+"Rate %@" = "Bedøm %@";
+"No, Thanks" = "Nej tak";
+"Remind me later" = "Påmind mig senere";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/de.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Sie nutzen %@ gerne? Dann nehmen Sie sich bitte für eine Bewertung einen Moment Zeit! Es dauert nicht länger als eine Minute. Vielen Dank!";
+"Rate %@" = "Bewerte %@";
+"No, Thanks" = "Nein, danke";
+"Remind me later" = "Später erinnern";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/el.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Αν σου αρέσει το %@, θα μπορούσες να αφιερώσεις μια στιγμή για να το βαθμολογήσεις; Η διαδικασία είναι πολύ σύντομη. Ευχαριστούμε για τη στήριξη!";
+"Rate %@" = "Βαθμολόγηση του %@";
+"No, Thanks" = "Όχι, ευχαριστώ";
+"Remind me later" = "Υπενθύμιση αργότερα";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/en.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!";
+"Rate %@" = "Rate %@";
+"No, Thanks" = "No, thanks";
+"Remind me later" = "Remind me later";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/es.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Si te ha gustado  %@, ¿te gustaría calificarnos? No te tomará más de un minuto. ¡Gracias por tu colaboración!";
+"Rate %@" = "Calificar %@";
+"No, Thanks" = "No, gracias";
+"Remind me later" = "Recuérdame más tarde";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/fi.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Jos käytät mielelläsi %@, voisitko käyttää hetken ja arvostella sen? Se ei kestä minuuttia kauempaa. Kiitos tuestasi!";
+"Rate %@" = "Arvioi %@";
+"No, Thanks" = "Ei kiitos";
+"Remind me later" = "Muistuta minua myöhemmin";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/fr.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Si vous aimez %@, voulez-vous prendre un moment pour l'évaluer ? Cela ne vous prendra pas plus d'une minute. Merci de votre soutien !";
+"Rate %@" = "Évaluer %@";
+"No, Thanks" = "Non, merci";
+"Remind me later" = "Me rappeler plus tard";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/he.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "אם נהנת להשתמש ב %@, האם תסכים לדרג אותה? זה לא יקח יותר מדקה. תודה על התמיכה!";
+"Rate %@" = "דרג את %@";
+"No, Thanks" = "לא תודה";
+"Remind me later" = "מאוחר יותר";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/hu.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Ha tetszik a %@, ne felejtsd el értékelni az App Store-ban! Csak egy perc az egész. Köszönet a támogatásért!";
+"Rate %@" = "%@ értékelése";
+"No, Thanks" = "Most inkább nem";
+"Remind me later" = "Emlékeztess később";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/id.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Jika anda menyukai %@, maukah anda memberikan rating kepada aplikasi ini? Rating hanya memakan waktu kurang dari 1 menit. Terimakasih untuk dukungan anda!";
+"Rate %@" = "Rating %@";
+"No, Thanks" = "Tidak, terimakasih";
+"Remind me later" = "Silakan ingatkan saya lagi";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/it.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Se ti piace %@, perché non dedichi qualche istante a darne una valutazione sull'App Store? Non richiederà più di un minuto. Grazie per il supporto!";
+"Rate %@" = "Valuta %@";
+"No, Thanks" = "No, grazie";
+"Remind me later" = "Ricordamelo più tardi";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ja.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "%@をお使いいただきありがとうございます。もしよろしければ、ほんの少しだけお時間をいただき評価をお願いできませんか?ご協力感謝いたします!";
+"Rate %@" = "%@を評価する";
+"No, Thanks" ="結構です";
+"Remind me later" = "あとで";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ko.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "%@ 사용이 맘에 드셨나요? 잠시만 시간을 내서 평가를 부탁드리겠습니다. 감사합니다!";
+"Rate %@" = "%@ 평가하기";
+"No, Thanks" = "평가하지 않겠습니다";
+"Remind me later" = "다음에 평가하겠습니다";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ms.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Jika anda suka %@, bolehkah luangkan sedikit masa untuk beri penarafan? Tak sampai seminit pun. Terima kasih atas sokongan anda!";
+"Rate %@" = "Tarafkan %@";
+"No, Thanks" = "Terima kasih saja";
+"Remind me later" = "Ingatkan saya lain kali";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/nb.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Hvis du liker å bruke %@, kan du ta deg et øyeblikk for å vurdere den? Det vil ikke ta mer enn ett minutt. Takk for din støtte!";
+"Rate %@" = "Vurder %@";
+"No, Thanks" = "Nei, takk";
+"Remind me later" = "Påminn meg senere";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/nl.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Als het gebruik van %@ je bevalt, zou je dan een momentje de tijd willen nemen om het te beoordelen? Het duurt nog geen minuut. Bedankt voor je steun!";
+"Rate %@" = "%@ beoordelen";
+"No, Thanks" = "Nee, bedankt";
+"Remind me later" = "Herinner me er later aan";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/pl.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Jeżeli podoba Ci się korzystanie z %@, może zechciałbyś poświęcić chwilę czasu, aby ocenić aplikację? Nie zajmie Ci to więcej niż minutę. Dziękujemy za pomoc!";
+"Rate %@" = "Oceń %@";
+"No, Thanks" = "Nie, dziękuję";
+"Remind me later" = "Przypomnij później";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/pt-BR.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Se você gosta de usar o %@, que tal avaliá-lo? Não levará mais de um minuto. Agradecemos o seu apoio!";
+"Rate %@" = "Avaliar o %@";
+"No, Thanks" = "Não, obrigado";
+"Remind me later" = "Mais tarde";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/pt.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Se você gosta de usar o %@, que tal avaliá-lo? Não levará mais de um minuto. Agradecemos o seu apoio!";
+"Rate %@" = "Avaliar o %@";
+"No, Thanks" = "Não, obrigado";
+"Remind me later" = "Mais tarde";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ro.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Dacă îți place %@, acordă-i o notă te rog, nu durează mult. Mulțumim pentru susținere!";
+"Rate %@" = "Acordă notă pentru %@";
+"No, Thanks" = "Nu, mulțumesc";
+"Remind me later" = "Adu-mi aminte mai târziu";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/ru.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Если Вам нравится %@, пожалуйста, поставьте свою оценку. Это займет у Вас не больше одной минуты.\n Спасибо за поддержку!";
+"Rate %@" = "Оценить %@";
+"No, Thanks" = "Нет, спасибо";
+"Remind me later" = "Напомнить позже";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/sk.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Pokiaľ sa Vám páči aplikácia %@, mohli by ste ju prosím ohodnotiť v App Store? Zaberie to len chvíľu. Vďaka za Vašu podporu!";
+"Rate %@" = "Ohodnotiť %@";
+"No, Thanks" = "Nie, ďakujem";
+"Remind me later" = "Pripomenúť neskôr";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/sv.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Om du gillar att använda %@, kan du tänka dig att betygsätta det åt oss? Det tar bara en minut. Tack för hjälpen!";
+"Rate %@" = "Betygsätt %@";
+"No, Thanks" = "Nej tack";
+"Remind me later" = "Påminn mig senare";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/th.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "ถ้าคุณกำลังใช้ %@ โปรดสละเวลาสักครู่ในการให้อันดับแก่เรา คุณจะเสียเวลาไม่เกินหนึ่งนาที ขอบคุณสำหรับการสนับสนุน!";
+"Rate %@" = "ให้อันดับ %@";
+"No, Thanks" = "ไม่ ขอบคุณ";
+"Remind me later" = "เตือนฉันภายหลัง";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/tr.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Eğer %@ uygulamasını kullanmaktan keyif alıyorsanız, onu değerlendirmek için zaman ayırabilir misiniz? Desteğiniz için teşekkür ederiz!";
+"Rate %@" = "%@ uygulamasını değerlendir";
+"No, Thanks" = "Hayır, teşekkürler";
+"Remind me later" = "Daha sonra hatırlat";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/uk.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Якщо вам сподобалося %@, будь ласка, поставте свою оцінку. Це займає не більше однієї хвилини.\n Дякуємо за підтримку!";
+"Rate %@" = "Оцінити %@";
+"No, Thanks" = "Ні, дякую";
+"Remind me later" = "Нагадати пізніше";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/vi.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "Cảm ơn bạn đã sử dụng ứng dụng %@ trong thời gian qua, bạn có thể dành chút thời gian để đánh giá ứng dụng trong AppStore không?";
+"Rate %@" = "Đánh giá %@";
+"No, Thanks" = "Không, xin cảm ơn";
+"Remind me later" = "Hãy nhắc nhở tôi sau";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/zh-Hans.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "如果你喜欢使用%@,你介意花一点时间给它评分吗?不会超过一分钟。感谢您的支持!";
+"Rate %@" = "给%@评分";
+"No, Thanks" = "不,谢谢";
+"Remind me later" = "稍后提醒我";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.bundle/zh-Hant.lproj/AppiraterLocalizable.strings	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,4 @@
+"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!" = "如果你喜歡使用%@,你介意花一點時間給它評分嗎?不會超過一分鐘。感謝您的支持!";
+"Rate %@" = "給%@評分";
+"No, Thanks" = "不,謝謝";
+"Remind me later" = "稍後提醒我";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.h	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,331 @@
+/*
+ This file is part of Appirater.
+ 
+ Copyright (c) 2012, Arash Payan
+ All rights reserved.
+ 
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ 
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ */
+/*
+ * Appirater.h
+ * appirater
+ *
+ * Created by Arash Payan on 9/5/09.
+ * http://arashpayan.com
+ * Copyright 2012 Arash Payan. All rights reserved.
+ */
+
+#import <Foundation/Foundation.h>
+#import "AppiraterDelegate.h"
+#import <StoreKit/StoreKit.h>
+
+extern NSString *const kAppiraterFirstUseDate;
+extern NSString *const kAppiraterUseCount;
+extern NSString *const kAppiraterSignificantEventCount;
+extern NSString *const kAppiraterCurrentVersion;
+extern NSString *const kAppiraterRatedCurrentVersion;
+extern NSString *const kAppiraterDeclinedToRate;
+extern NSString *const kAppiraterReminderRequestDate;
+
+/*!
+ Your localized app's name.
+ */
+#define APPIRATER_LOCALIZED_APP_NAME    [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:@"CFBundleDisplayName"]
+
+/*!
+ Your app's name.
+ */
+#define APPIRATER_APP_NAME				APPIRATER_LOCALIZED_APP_NAME ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]
+
+/*!
+ This is the message your users will see once they've passed the day+launches
+ threshold.
+ */
+#define APPIRATER_LOCALIZED_MESSAGE     NSLocalizedStringFromTableInBundle(@"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!", @"AppiraterLocalizable", [Appirater bundle], nil)
+#define APPIRATER_MESSAGE				[NSString stringWithFormat:APPIRATER_LOCALIZED_MESSAGE, APPIRATER_APP_NAME]
+
+/*!
+ This is the title of the message alert that users will see.
+ */
+#define APPIRATER_LOCALIZED_MESSAGE_TITLE   NSLocalizedStringFromTableInBundle(@"Rate %@", @"AppiraterLocalizable", [Appirater bundle], nil)
+#define APPIRATER_MESSAGE_TITLE             [NSString stringWithFormat:APPIRATER_LOCALIZED_MESSAGE_TITLE, APPIRATER_APP_NAME]
+
+/*!
+ The text of the button that rejects reviewing the app.
+ */
+#define APPIRATER_CANCEL_BUTTON			NSLocalizedStringFromTableInBundle(@"No, Thanks", @"AppiraterLocalizable", [Appirater bundle], nil)
+
+/*!
+ Text of button that will send user to app review page.
+ */
+#define APPIRATER_LOCALIZED_RATE_BUTTON NSLocalizedStringFromTableInBundle(@"Rate %@", @"AppiraterLocalizable", [Appirater bundle], nil)
+#define APPIRATER_RATE_BUTTON			[NSString stringWithFormat:APPIRATER_LOCALIZED_RATE_BUTTON, APPIRATER_APP_NAME]
+
+/*!
+ Text for button to remind the user to review later.
+ */
+#define APPIRATER_RATE_LATER			NSLocalizedStringFromTableInBundle(@"Remind me later", @"AppiraterLocalizable", [Appirater bundle], nil)
+
+@interface Appirater : NSObject <UIAlertViewDelegate, SKStoreProductViewControllerDelegate> {
+
+	UIAlertView		*ratingAlert;
+}
+
+@property(nonatomic, strong) UIAlertView *ratingAlert;
+@property(nonatomic) BOOL openInAppStore;
+#if __has_feature(objc_arc_weak)
+@property(nonatomic, weak) NSObject <AppiraterDelegate> *delegate;
+#else
+@property(nonatomic, unsafe_unretained) NSObject <AppiraterDelegate> *delegate;
+#endif
+
+/*!
+ Tells Appirater that the app has launched, and on devices that do NOT
+ support multitasking, the 'uses' count will be incremented. You should
+ call this method at the end of your application delegate's
+ application:didFinishLaunchingWithOptions: method.
+ 
+ If the app has been used enough to be rated (and enough significant events),
+ you can suppress the rating alert
+ by passing NO for canPromptForRating. The rating alert will simply be postponed
+ until it is called again with YES for canPromptForRating. The rating alert
+ can also be triggered by appEnteredForeground: and userDidSignificantEvent:
+ (as long as you pass YES for canPromptForRating in those methods).
+ */
++ (void)appLaunched:(BOOL)canPromptForRating;
+
+/*!
+ Tells Appirater that the app was brought to the foreground on multitasking
+ devices. You should call this method from the application delegate's
+ applicationWillEnterForeground: method.
+ 
+ If the app has been used enough to be rated (and enough significant events),
+ you can suppress the rating alert
+ by passing NO for canPromptForRating. The rating alert will simply be postponed
+ until it is called again with YES for canPromptForRating. The rating alert
+ can also be triggered by appLaunched: and userDidSignificantEvent:
+ (as long as you pass YES for canPromptForRating in those methods).
+ */
++ (void)appEnteredForeground:(BOOL)canPromptForRating;
+
+/*!
+ Tells Appirater that the user performed a significant event. A significant
+ event is whatever you want it to be. If you're app is used to make VoIP
+ calls, then you might want to call this method whenever the user places
+ a call. If it's a game, you might want to call this whenever the user
+ beats a level boss.
+ 
+ If the user has performed enough significant events and used the app enough,
+ you can suppress the rating alert by passing NO for canPromptForRating. The
+ rating alert will simply be postponed until it is called again with YES for
+ canPromptForRating. The rating alert can also be triggered by appLaunched:
+ and appEnteredForeground: (as long as you pass YES for canPromptForRating
+ in those methods).
+ */
++ (void)userDidSignificantEvent:(BOOL)canPromptForRating;
+
+/*!
+ Tells Appirater to try and show the prompt (a rating alert). The prompt will be showed
+ if there is connection available, the user hasn't declined to rate
+ or hasn't rated current version.
+ 
+ You could call to show the prompt regardless Appirater settings,
+ e.g., in case of some special event in your app.
+ */
++ (void)tryToShowPrompt;
+
+/*!
+ Tells Appirater to show the prompt (a rating alert).
+ Similar to tryToShowPrompt, but without checks (the prompt is always displayed).
+ Passing false will hide the rate later button on the prompt.
+  
+ The only case where you should call this is if your app has an
+ explicit "Rate this app" command somewhere. This is similar to rateApp,
+ but instead of jumping to the review directly, an intermediary prompt is displayed.
+ */
++ (void)forceShowPrompt:(BOOL)displayRateLaterButton;
+
+/*!
+ Tells Appirater to open the App Store page where the user can specify a
+ rating for the app. Also records the fact that this has happened, so the
+ user won't be prompted again to rate the app.
+
+ The only case where you should call this directly is if your app has an
+ explicit "Rate this app" command somewhere.  In all other cases, don't worry
+ about calling this -- instead, just call the other functions listed above,
+ and let Appirater handle the bookkeeping of deciding when to ask the user
+ whether to rate the app.
+ */
++ (void)rateApp;
+
+/*!
+ Tells Appirater to immediately close any open rating modals (e.g. StoreKit rating VCs).
+*/
++ (void)closeModal;
+
+/*!
+ Asks Appirater if the user has declined to rate;
+*/
+- (BOOL)userHasDeclinedToRate;
+
+/*!
+ Asks Appirater if the user has rated the current version.
+ Note that this is not a guarantee that the user has actually rated the app in the 
+ app store, but they've just clicked the rate button on the Appirater dialog. 
+*/
+- (BOOL)userHasRatedCurrentVersion;
+
+@end
+
+@interface Appirater(Configuration)
+
+/*!
+ Set your Apple generated software id here.
+ */
++ (void) setAppId:(NSString*)appId;
+
+/*!
+ Users will need to have the same version of your app installed for this many
+ days before they will be prompted to rate it.
+ */
++ (void) setDaysUntilPrompt:(double)value;
+
+/*!
+ An example of a 'use' would be if the user launched the app. Bringing the app
+ into the foreground (on devices that support it) would also be considered
+ a 'use'. You tell Appirater about these events using the two methods:
+ [Appirater appLaunched:]
+ [Appirater appEnteredForeground:]
+ 
+ Users need to 'use' the same version of the app this many times before
+ before they will be prompted to rate it.
+ */
++ (void) setUsesUntilPrompt:(NSInteger)value;
+
+/*!
+ A significant event can be anything you want to be in your app. In a
+ telephone app, a significant event might be placing or receiving a call.
+ In a game, it might be beating a level or a boss. This is just another
+ layer of filtering that can be used to make sure that only the most
+ loyal of your users are being prompted to rate you on the app store.
+ If you leave this at a value of -1, then this won't be a criterion
+ used for rating. To tell Appirater that the user has performed
+ a significant event, call the method:
+ [Appirater userDidSignificantEvent:];
+ */
++ (void) setSignificantEventsUntilPrompt:(NSInteger)value;
+
+
+/*!
+ Once the rating alert is presented to the user, they might select
+ 'Remind me later'. This value specifies how long (in days) Appirater
+ will wait before reminding them.
+ */
++ (void) setTimeBeforeReminding:(double)value;
+
+/*!
+ Set customized title for alert view.
+ */
++ (void) setCustomAlertTitle:(NSString *)title;
+
+/*!
+ Set customized message for alert view.
+ */
++ (void) setCustomAlertMessage:(NSString *)message;
+
+/*!
+ Set customized cancel button title for alert view.
+ */
++ (void) setCustomAlertCancelButtonTitle:(NSString *)cancelTitle;
+
+/*!
+ Set customized rate button title for alert view.
+ */
++ (void) setCustomAlertRateButtonTitle:(NSString *)rateTitle;
+
+/*!
+ Set customized rate later button title for alert view.
+ */
++ (void) setCustomAlertRateLaterButtonTitle:(NSString *)rateLaterTitle;
+
+/*!
+ 'YES' will show the Appirater alert everytime. Useful for testing how your message
+ looks and making sure the link to your app's review page works.
+ */
++ (void) setDebug:(BOOL)debug;
+
+/*!
+ Set the delegate if you want to know when Appirater does something
+ */
++ (void)setDelegate:(id<AppiraterDelegate>)delegate;
+
+/*!
+ Set whether or not Appirater uses animation (currently respected when pushing modal StoreKit rating VCs).
+ */
++ (void)setUsesAnimation:(BOOL)animation;
+
+/*!
+ If set to YES, Appirater will open App Store link (instead of SKStoreProductViewController on iOS 6). Default YES.
+ */
++ (void)setOpenInAppStore:(BOOL)openInAppStore;
+
+/*!
+ If set to YES, the main bundle will always be used to load localized strings.
+ Set this to YES if you have provided your own custom localizations in AppiraterLocalizable.strings
+ in your main bundle.  Default is NO.
+ */
++ (void)setAlwaysUseMainBundle:(BOOL)useMainBundle;
+
+@end
+
+
+/*!
+ Methods in this interface are public out of necessity, but may change without notice
+ */
+@interface Appirater(Unsafe)
+
+/*!
+ The bundle localized strings will be loaded from.
+*/
++(NSBundle *)bundle;
+
+@end
+
+@interface Appirater(Deprecated)
+
+/*!
+ DEPRECATED: While still functional, it's better to use
+ appLaunched:(BOOL)canPromptForRating instead.
+ 
+ Calls [Appirater appLaunched:YES]. See appLaunched: for details of functionality.
+ */
++ (void)appLaunched __attribute__((deprecated)); 
+
+/*!
+ DEPRECATED: While still functional, it's better to use
+ tryToShowPrompt instead.
+ 
+ Calls [Appirater tryToShowPrompt]. See tryToShowPrompt for details of functionality.
+ */
++ (void)showPrompt __attribute__((deprecated));
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/Appirater.m	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,732 @@
+/*
+ This file is part of Appirater.
+ 
+ Copyright (c) 2012, Arash Payan
+ All rights reserved.
+ 
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ 
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ */
+/*
+ * Appirater.m
+ * appirater
+ *
+ * Created by Arash Payan on 9/5/09.
+ * http://arashpayan.com
+ * Copyright 2012 Arash Payan. All rights reserved.
+ */
+
+#import "Appirater.h"
+#import <SystemConfiguration/SCNetworkReachability.h>
+#include <netinet/in.h>
+
+#if ! __has_feature(objc_arc)
+#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
+#endif
+
+NSString *const kAppiraterFirstUseDate				= @"kAppiraterFirstUseDate";
+NSString *const kAppiraterUseCount					= @"kAppiraterUseCount";
+NSString *const kAppiraterSignificantEventCount		= @"kAppiraterSignificantEventCount";
+NSString *const kAppiraterCurrentVersion			= @"kAppiraterCurrentVersion";
+NSString *const kAppiraterRatedCurrentVersion		= @"kAppiraterRatedCurrentVersion";
+NSString *const kAppiraterDeclinedToRate			= @"kAppiraterDeclinedToRate";
+NSString *const kAppiraterReminderRequestDate		= @"kAppiraterReminderRequestDate";
+
+NSString *templateReviewURL = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APP_ID";
+NSString *templateReviewURLiOS7 = @"itms-apps://itunes.apple.com/app/idAPP_ID";
+NSString *templateReviewURLiOS8 = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";
+
+static NSString *_appId;
+static double _daysUntilPrompt = 30;
+static NSInteger _usesUntilPrompt = 20;
+static NSInteger _significantEventsUntilPrompt = -1;
+static double _timeBeforeReminding = 1;
+static BOOL _debug = NO;
+#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0
+	static id<AppiraterDelegate> _delegate;
+#else
+	__weak static id<AppiraterDelegate> _delegate;
+#endif
+static BOOL _usesAnimation = TRUE;
+static UIStatusBarStyle _statusBarStyle;
+static BOOL _modalOpen = false;
+static BOOL _alwaysUseMainBundle = NO;
+
+@interface Appirater ()
+@property (nonatomic, copy) NSString *alertTitle;
+@property (nonatomic, copy) NSString *alertMessage;
+@property (nonatomic, copy) NSString *alertCancelTitle;
+@property (nonatomic, copy) NSString *alertRateTitle;
+@property (nonatomic, copy) NSString *alertRateLaterTitle;
+- (BOOL)connectedToNetwork;
++ (Appirater*)sharedInstance;
+- (void)showPromptWithChecks:(BOOL)withChecks
+      displayRateLaterButton:(BOOL)displayRateLaterButton;
+- (void)showRatingAlert:(BOOL)displayRateLaterButton;
+- (void)showRatingAlert;
+- (BOOL)ratingAlertIsAppropriate;
+- (BOOL)ratingConditionsHaveBeenMet;
+- (void)incrementUseCount;
+- (void)hideRatingAlert;
+@end
+
+@implementation Appirater 
+
+@synthesize ratingAlert;
+
++ (void) setAppId:(NSString *)appId {
+    _appId = appId;
+}
+
++ (void) setDaysUntilPrompt:(double)value {
+    _daysUntilPrompt = value;
+}
+
++ (void) setUsesUntilPrompt:(NSInteger)value {
+    _usesUntilPrompt = value;
+}
+
++ (void) setSignificantEventsUntilPrompt:(NSInteger)value {
+    _significantEventsUntilPrompt = value;
+}
+
++ (void) setTimeBeforeReminding:(double)value {
+    _timeBeforeReminding = value;
+}
+
++ (void) setCustomAlertTitle:(NSString *)title
+{
+    [self sharedInstance].alertTitle = title;
+}
+
++ (void) setCustomAlertMessage:(NSString *)message
+{
+    [self sharedInstance].alertMessage = message;
+}
+
++ (void) setCustomAlertCancelButtonTitle:(NSString *)cancelTitle
+{
+    [self sharedInstance].alertCancelTitle = cancelTitle;
+}
+
++ (void) setCustomAlertRateButtonTitle:(NSString *)rateTitle
+{
+    [self sharedInstance].alertRateTitle = rateTitle;
+}
+
++ (void) setCustomAlertRateLaterButtonTitle:(NSString *)rateLaterTitle
+{
+    [self sharedInstance].alertRateLaterTitle = rateLaterTitle;
+}
+
++ (void) setDebug:(BOOL)debug {
+    _debug = debug;
+}
++ (void)setDelegate:(id<AppiraterDelegate>)delegate{
+	_delegate = delegate;
+}
++ (void)setUsesAnimation:(BOOL)animation {
+	_usesAnimation = animation;
+}
++ (void)setOpenInAppStore:(BOOL)openInAppStore {
+    [Appirater sharedInstance].openInAppStore = openInAppStore;
+}
++ (void)setStatusBarStyle:(UIStatusBarStyle)style {
+	_statusBarStyle = style;
+}
++ (void)setModalOpen:(BOOL)open {
+	_modalOpen = open;
+}
++ (void)setAlwaysUseMainBundle:(BOOL)alwaysUseMainBundle {
+    _alwaysUseMainBundle = alwaysUseMainBundle;
+}
+
++ (NSBundle *)bundle
+{
+    NSBundle *bundle;
+
+    if (_alwaysUseMainBundle) {
+        bundle = [NSBundle mainBundle];
+    } else {
+        NSURL *appiraterBundleURL = [[NSBundle mainBundle] URLForResource:@"Appirater" withExtension:@"bundle"];
+
+        if (appiraterBundleURL) {
+            // Appirater.bundle will likely only exist when used via CocoaPods
+            bundle = [NSBundle bundleWithURL:appiraterBundleURL];
+        } else {
+            bundle = [NSBundle mainBundle];
+        }
+    }
+
+    return bundle;
+}
+
+- (NSString *)alertTitle
+{
+    return _alertTitle ? _alertTitle : APPIRATER_MESSAGE_TITLE;
+}
+
+- (NSString *)alertMessage
+{
+    return _alertMessage ? _alertMessage : APPIRATER_MESSAGE;
+}
+
+- (NSString *)alertCancelTitle
+{
+    return _alertCancelTitle ? _alertCancelTitle : APPIRATER_CANCEL_BUTTON;
+}
+
+- (NSString *)alertRateTitle
+{
+    return _alertRateTitle ? _alertRateTitle : APPIRATER_RATE_BUTTON;
+}
+
+- (NSString *)alertRateLaterTitle
+{
+    return _alertRateLaterTitle ? _alertRateLaterTitle : APPIRATER_RATE_LATER;
+}
+
+- (void)dealloc {
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
+            self.openInAppStore = YES;
+        } else {
+            self.openInAppStore = NO;
+        }
+    }
+    
+    return self;
+}
+
+- (BOOL)connectedToNetwork {
+    // Create zero addy
+    struct sockaddr_in zeroAddress;
+    bzero(&zeroAddress, sizeof(zeroAddress));
+    zeroAddress.sin_len = sizeof(zeroAddress);
+    zeroAddress.sin_family = AF_INET;
+	
+    // Recover reachability flags
+    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
+    SCNetworkReachabilityFlags flags;
+	
+    Boolean didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
+    CFRelease(defaultRouteReachability);
+	
+    if (!didRetrieveFlags)
+    {
+        NSLog(@"Error. Could not recover network reachability flags");
+        return NO;
+    }
+	
+    BOOL isReachable = flags & kSCNetworkFlagsReachable;
+    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
+	BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
+	
+	NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
+	NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL  cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20.0];
+	NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:self];
+	
+    return ((isReachable && !needsConnection) || nonWiFi) ? (testConnection ? YES : NO) : NO;
+}
+
++ (Appirater*)sharedInstance {
+	static Appirater *appirater = nil;
+	if (appirater == nil)
+	{
+        static dispatch_once_t onceToken;
+        dispatch_once(&onceToken, ^{
+            appirater = [[Appirater alloc] init];
+			appirater.delegate = _delegate;
+            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActive) name:
+                UIApplicationWillResignActiveNotification object:nil];
+        });
+	}
+	
+	return appirater;
+}
+
+- (void)showRatingAlert:(BOOL)displayRateLaterButton {
+  UIAlertView *alertView = nil;
+  id <AppiraterDelegate> delegate = _delegate;
+    
+  if(delegate && [delegate respondsToSelector:@selector(appiraterShouldDisplayAlert:)] && ![delegate appiraterShouldDisplayAlert:self]) {
+      return;
+  }
+  
+  if (displayRateLaterButton) {
+  	alertView = [[UIAlertView alloc] initWithTitle:self.alertTitle
+                                           message:self.alertMessage
+                                          delegate:self
+                                 cancelButtonTitle:self.alertCancelTitle
+                                 otherButtonTitles:self.alertRateTitle, self.alertRateLaterTitle, nil];
+  } else {
+  	alertView = [[UIAlertView alloc] initWithTitle:self.alertTitle
+                                           message:self.alertMessage
+                                          delegate:self
+                                 cancelButtonTitle:self.alertCancelTitle
+                                 otherButtonTitles:self.alertRateTitle, nil];
+  }
+
+	self.ratingAlert = alertView;
+    [alertView show];
+
+    if (delegate && [delegate respondsToSelector:@selector(appiraterDidDisplayAlert:)]) {
+             [delegate appiraterDidDisplayAlert:self];
+    }
+}
+
+- (void)showRatingAlert
+{
+  [self showRatingAlert:true];
+}
+
+// is this an ok time to show the alert? (regardless of whether the rating conditions have been met)
+//
+// things checked here:
+// * connectivity with network
+// * whether user has rated before
+// * whether user has declined to rate
+// * whether rating alert is currently showing visibly
+// things NOT checked here:
+// * time since first launch
+// * number of uses of app
+// * number of significant events
+// * time since last reminder
+- (BOOL)ratingAlertIsAppropriate {
+    return ([self connectedToNetwork]
+            && ![self userHasDeclinedToRate]
+            && !self.ratingAlert.visible
+            && ![self userHasRatedCurrentVersion]);
+}
+
+// have the rating conditions been met/earned? (regardless of whether this would be a moment when it's appropriate to show a new rating alert)
+//
+// things checked here:
+// * time since first launch
+// * number of uses of app
+// * number of significant events
+// * time since last reminder
+// things NOT checked here:
+// * connectivity with network
+// * whether user has rated before
+// * whether user has declined to rate
+// * whether rating alert is currently showing visibly
+- (BOOL)ratingConditionsHaveBeenMet {
+	if (_debug)
+		return YES;
+	
+	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+	
+	NSDate *dateOfFirstLaunch = [NSDate dateWithTimeIntervalSince1970:[userDefaults doubleForKey:kAppiraterFirstUseDate]];
+	NSTimeInterval timeSinceFirstLaunch = [[NSDate date] timeIntervalSinceDate:dateOfFirstLaunch];
+	NSTimeInterval timeUntilRate = 60 * 60 * 24 * _daysUntilPrompt;
+	if (timeSinceFirstLaunch < timeUntilRate)
+		return NO;
+	
+	// check if the app has been used enough
+	NSInteger useCount = [userDefaults integerForKey:kAppiraterUseCount];
+	if (useCount < _usesUntilPrompt)
+		return NO;
+	
+	// check if the user has done enough significant events
+	NSInteger sigEventCount = [userDefaults integerForKey:kAppiraterSignificantEventCount];
+	if (sigEventCount < _significantEventsUntilPrompt)
+		return NO;
+	
+	// if the user wanted to be reminded later, has enough time passed?
+	NSDate *reminderRequestDate = [NSDate dateWithTimeIntervalSince1970:[userDefaults doubleForKey:kAppiraterReminderRequestDate]];
+	NSTimeInterval timeSinceReminderRequest = [[NSDate date] timeIntervalSinceDate:reminderRequestDate];
+	NSTimeInterval timeUntilReminder = 60 * 60 * 24 * _timeBeforeReminding;
+	if (timeSinceReminderRequest < timeUntilReminder)
+		return NO;
+	
+	return YES;
+}
+
+- (void)incrementUseCount {
+	// get the app's version
+	NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
+	
+	// get the version number that we've been tracking
+	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+	NSString *trackingVersion = [userDefaults stringForKey:kAppiraterCurrentVersion];
+	if (trackingVersion == nil)
+	{
+		trackingVersion = version;
+		[userDefaults setObject:version forKey:kAppiraterCurrentVersion];
+	}
+	
+	if (_debug)
+		NSLog(@"APPIRATER Tracking version: %@", trackingVersion);
+	
+	if ([trackingVersion isEqualToString:version])
+	{
+		// check if the first use date has been set. if not, set it.
+		NSTimeInterval timeInterval = [userDefaults doubleForKey:kAppiraterFirstUseDate];
+		if (timeInterval == 0)
+		{
+			timeInterval = [[NSDate date] timeIntervalSince1970];
+			[userDefaults setDouble:timeInterval forKey:kAppiraterFirstUseDate];
+		}
+		
+		// increment the use count
+		NSInteger useCount = [userDefaults integerForKey:kAppiraterUseCount];
+		useCount++;
+		[userDefaults setInteger:useCount forKey:kAppiraterUseCount];
+		if (_debug)
+			NSLog(@"APPIRATER Use count: %@", @(useCount));
+	}
+	else
+	{
+		// it's a new version of the app, so restart tracking
+		[userDefaults setObject:version forKey:kAppiraterCurrentVersion];
+		[userDefaults setDouble:[[NSDate date] timeIntervalSince1970] forKey:kAppiraterFirstUseDate];
+		[userDefaults setInteger:1 forKey:kAppiraterUseCount];
+		[userDefaults setInteger:0 forKey:kAppiraterSignificantEventCount];
+		[userDefaults setBool:NO forKey:kAppiraterRatedCurrentVersion];
+		[userDefaults setBool:NO forKey:kAppiraterDeclinedToRate];
+		[userDefaults setDouble:0 forKey:kAppiraterReminderRequestDate];
+	}
+	
+	[userDefaults synchronize];
+}
+
+- (void)incrementSignificantEventCount {
+	// get the app's version
+	NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
+	
+	// get the version number that we've been tracking
+	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+	NSString *trackingVersion = [userDefaults stringForKey:kAppiraterCurrentVersion];
+	if (trackingVersion == nil)
+	{
+		trackingVersion = version;
+		[userDefaults setObject:version forKey:kAppiraterCurrentVersion];
+	}
+	
+	if (_debug)
+		NSLog(@"APPIRATER Tracking version: %@", trackingVersion);
+	
+	if ([trackingVersion isEqualToString:version])
+	{
+		// check if the first use date has been set. if not, set it.
+		NSTimeInterval timeInterval = [userDefaults doubleForKey:kAppiraterFirstUseDate];
+		if (timeInterval == 0)
+		{
+			timeInterval = [[NSDate date] timeIntervalSince1970];
+			[userDefaults setDouble:timeInterval forKey:kAppiraterFirstUseDate];
+		}
+		
+		// increment the significant event count
+		NSInteger sigEventCount = [userDefaults integerForKey:kAppiraterSignificantEventCount];
+		sigEventCount++;
+		[userDefaults setInteger:sigEventCount forKey:kAppiraterSignificantEventCount];
+		if (_debug)
+			NSLog(@"APPIRATER Significant event count: %@", @(sigEventCount));
+	}
+	else
+	{
+		// it's a new version of the app, so restart tracking
+		[userDefaults setObject:version forKey:kAppiraterCurrentVersion];
+		[userDefaults setDouble:0 forKey:kAppiraterFirstUseDate];
+		[userDefaults setInteger:0 forKey:kAppiraterUseCount];
+		[userDefaults setInteger:1 forKey:kAppiraterSignificantEventCount];
+		[userDefaults setBool:NO forKey:kAppiraterRatedCurrentVersion];
+		[userDefaults setBool:NO forKey:kAppiraterDeclinedToRate];
+		[userDefaults setDouble:0 forKey:kAppiraterReminderRequestDate];
+	}
+	
+	[userDefaults synchronize];
+}
+
+- (void)incrementAndRate:(BOOL)canPromptForRating {
+	[self incrementUseCount];
+	
+	if (canPromptForRating &&
+        [self ratingConditionsHaveBeenMet] &&
+        [self ratingAlertIsAppropriate])
+	{
+        dispatch_async(dispatch_get_main_queue(),
+                       ^{
+                           [self showRatingAlert];
+                       });
+	}
+}
+
+- (void)incrementSignificantEventAndRate:(BOOL)canPromptForRating {
+	[self incrementSignificantEventCount];
+	
+    if (canPromptForRating &&
+        [self ratingConditionsHaveBeenMet] &&
+        [self ratingAlertIsAppropriate])
+	{
+        dispatch_async(dispatch_get_main_queue(),
+                       ^{
+                           [self showRatingAlert];
+                       });
+	}
+}
+
+- (BOOL)userHasDeclinedToRate {
+    return [[NSUserDefaults standardUserDefaults] boolForKey:kAppiraterDeclinedToRate];
+}
+
+- (BOOL)userHasRatedCurrentVersion {
+    return [[NSUserDefaults standardUserDefaults] boolForKey:kAppiraterRatedCurrentVersion];
+}
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-implementations"
++ (void)appLaunched {
+	[Appirater appLaunched:YES];
+}
+#pragma GCC diagnostic pop
+
++ (void)appLaunched:(BOOL)canPromptForRating {
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
+                   ^{
+                       Appirater *a = [Appirater sharedInstance];
+                       if (_debug) {
+                           dispatch_async(dispatch_get_main_queue(),
+                                          ^{
+                                              [a showRatingAlert];
+                                          });
+                       } else {
+                           [a incrementAndRate:canPromptForRating]; 
+                       }
+                   });
+}
+
+- (void)hideRatingAlert {
+	if (self.ratingAlert.visible) {
+		if (_debug)
+			NSLog(@"APPIRATER Hiding Alert");
+		[self.ratingAlert dismissWithClickedButtonIndex:-1 animated:NO];
+	}	
+}
+
++ (void)appWillResignActive {
+	if (_debug)
+		NSLog(@"APPIRATER appWillResignActive");
+	[[Appirater sharedInstance] hideRatingAlert];
+}
+
++ (void)appEnteredForeground:(BOOL)canPromptForRating {
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
+                   ^{
+                       [[Appirater sharedInstance] incrementAndRate:canPromptForRating];
+                   });
+}
+
++ (void)userDidSignificantEvent:(BOOL)canPromptForRating {
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
+                   ^{
+                       [[Appirater sharedInstance] incrementSignificantEventAndRate:canPromptForRating];
+                   });
+}
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-implementations"
++ (void)showPrompt {
+  [Appirater tryToShowPrompt];
+}
+#pragma GCC diagnostic pop
+
++ (void)tryToShowPrompt {
+  [[Appirater sharedInstance] showPromptWithChecks:true
+                            displayRateLaterButton:true];
+}
+
++ (void)forceShowPrompt:(BOOL)displayRateLaterButton {
+  [[Appirater sharedInstance] showPromptWithChecks:false
+                            displayRateLaterButton:displayRateLaterButton];
+}
+
+- (void)showPromptWithChecks:(BOOL)withChecks
+      displayRateLaterButton:(BOOL)displayRateLaterButton {
+  if (withChecks == NO || [self ratingAlertIsAppropriate]) {
+    [self showRatingAlert:displayRateLaterButton];
+  }
+}
+
++ (id)getRootViewController {
+    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
+    if (window.windowLevel != UIWindowLevelNormal) {
+        NSArray *windows = [[UIApplication sharedApplication] windows];
+        for(window in windows) {
+            if (window.windowLevel == UIWindowLevelNormal) {
+                break;
+            }
+        }
+    }
+    
+    return [Appirater iterateSubViewsForViewController:window]; // iOS 8+ deep traverse
+}
+
++ (id)iterateSubViewsForViewController:(UIView *) parentView {
+    for (UIView *subView in [parentView subviews]) {
+        UIResponder *responder = [subView nextResponder];
+        if([responder isKindOfClass:[UIViewController class]]) {
+            return [self topMostViewController: (UIViewController *) responder];
+        }
+        id found = [Appirater iterateSubViewsForViewController:subView];
+        if( nil != found) {
+            return found;
+        }
+    }
+    return nil;
+}
+
++ (UIViewController *) topMostViewController: (UIViewController *) controller {
+	BOOL isPresenting = NO;
+	do {
+		// this path is called only on iOS 6+, so -presentedViewController is fine here.
+		UIViewController *presented = [controller presentedViewController];
+		isPresenting = presented != nil;
+		if(presented != nil) {
+			controller = presented;
+		}
+		
+	} while (isPresenting);
+	
+	return controller;
+}
+
++ (void)rateApp {
+	
+	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+	[userDefaults setBool:YES forKey:kAppiraterRatedCurrentVersion];
+	[userDefaults synchronize];
+
+	//Use the in-app StoreKit view if available (iOS 6) and imported. This works in the simulator.
+	if (![Appirater sharedInstance].openInAppStore && NSStringFromClass([SKStoreProductViewController class]) != nil) {
+		
+		SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
+		NSNumber *appId = [NSNumber numberWithInteger:_appId.integerValue];
+		[storeViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:appId} completionBlock:nil];
+		storeViewController.delegate = self.sharedInstance;
+        
+        id <AppiraterDelegate> delegate = self.sharedInstance.delegate;
+		if ([delegate respondsToSelector:@selector(appiraterWillPresentModalView:animated:)]) {
+			[delegate appiraterWillPresentModalView:self.sharedInstance animated:_usesAnimation];
+		}
+		[[self getRootViewController] presentViewController:storeViewController animated:_usesAnimation completion:^{
+			[self setModalOpen:YES];
+			//Temporarily use a black status bar to match the StoreKit view.
+			[self setStatusBarStyle:[UIApplication sharedApplication].statusBarStyle];
+#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
+			[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent animated:_usesAnimation];
+#endif
+		}];
+	
+	//Use the standard openUrl method if StoreKit is unavailable.
+	} else {
+		
+		#if TARGET_IPHONE_SIMULATOR
+		NSLog(@"APPIRATER NOTE: iTunes App Store is not supported on the iOS simulator. Unable to open App Store page.");
+		#else
+		NSString *reviewURL = [templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%@", _appId]];
+
+		// iOS 7 needs a different templateReviewURL @see https://github.com/arashpayan/appirater/issues/131
+        // Fixes condition @see https://github.com/arashpayan/appirater/issues/205
+		if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 8.0) {
+			reviewURL = [templateReviewURLiOS7 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%@", _appId]];
+		}
+        // iOS 8 needs a different templateReviewURL also @see https://github.com/arashpayan/appirater/issues/182
+        else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
+        {
+            reviewURL = [templateReviewURLiOS8 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%@", _appId]];
+        }
+
+		[[UIApplication sharedApplication] openURL:[NSURL URLWithString:reviewURL]];
+		#endif
+	}
+}
+
+- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
+	NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
+    
+    id <AppiraterDelegate> delegate = _delegate;
+	
+	switch (buttonIndex) {
+		case 0:
+		{
+			// they don't want to rate it
+			[userDefaults setBool:YES forKey:kAppiraterDeclinedToRate];
+			[userDefaults synchronize];
+			if(delegate && [delegate respondsToSelector:@selector(appiraterDidDeclineToRate:)]){
+				[delegate appiraterDidDeclineToRate:self];
+			}
+			break;
+		}
+		case 1:
+		{
+			// they want to rate it
+			[Appirater rateApp];
+			if(delegate&& [delegate respondsToSelector:@selector(appiraterDidOptToRate:)]){
+				[delegate appiraterDidOptToRate:self];
+			}
+			break;
+		}
+		case 2:
+			// remind them later
+			[userDefaults setDouble:[[NSDate date] timeIntervalSince1970] forKey:kAppiraterReminderRequestDate];
+			[userDefaults synchronize];
+			if(delegate && [delegate respondsToSelector:@selector(appiraterDidOptToRemindLater:)]){
+				[delegate appiraterDidOptToRemindLater:self];
+			}
+			break;
+		default:
+			break;
+	}
+}
+
+//Delegate call from the StoreKit view.
+- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
+	[Appirater closeModal];
+}
+
+//Close the in-app rating (StoreKit) view and restore the previous status bar style.
++ (void)closeModal {
+	if (_modalOpen) {
+		[[UIApplication sharedApplication]setStatusBarStyle:_statusBarStyle animated:_usesAnimation];
+		BOOL usedAnimation = _usesAnimation;
+		[self setModalOpen:NO];
+		
+		// get the top most controller (= the StoreKit Controller) and dismiss it
+		UIViewController *presentingController = [UIApplication sharedApplication].keyWindow.rootViewController;
+		presentingController = [self topMostViewController: presentingController];
+		[presentingController dismissViewControllerAnimated:_usesAnimation completion:^{
+            id <AppiraterDelegate> delegate = self.sharedInstance.delegate;
+			if ([delegate respondsToSelector:@selector(appiraterDidDismissModalView:animated:)]) {
+				[delegate appiraterDidDismissModalView:(Appirater *)self animated:usedAnimation];
+			}
+		}];
+		[self.class setStatusBarStyle:(UIStatusBarStyle)nil];
+	}
+}
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/Appirater/AppiraterDelegate.h	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,23 @@
+//
+//  AppiraterDelegate.h
+//  Banana Stand
+//
+//  Created by Robert Haining on 9/25/12.
+//  Copyright (c) 2012 News.me. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class Appirater;
+
+@protocol AppiraterDelegate <NSObject>
+
+@optional
+-(BOOL)appiraterShouldDisplayAlert:(Appirater *)appirater;
+-(void)appiraterDidDisplayAlert:(Appirater *)appirater;
+-(void)appiraterDidDeclineToRate:(Appirater *)appirater;
+-(void)appiraterDidOptToRate:(Appirater *)appirater;
+-(void)appiraterDidOptToRemindLater:(Appirater *)appirater;
+-(void)appiraterWillPresentModalView:(Appirater *)appirater animated:(BOOL)animated;
+-(void)appiraterDidDismissModalView:(Appirater *)appirater animated:(BOOL)animated;
+@end
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m	Mon Nov 09 16:34:32 2015 +0000
@@ -57,7 +57,7 @@
         [[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL];
     NSArray *schemeNames = [[NSArray alloc] initWithObjects:@"Default",@"Pro Mode",@"Shoppa",@"Clean Slate",
                             @"Minefield",@"Barrel Mayhem",@"Tunnel Hogs",@"Fort Mode",@"Timeless",
-                            @"Thinking with Portals",@"King Mode",nil];
+                            @"Thinking with Portals",@"King Mode",@"Construction Mode",nil];
     index = 0;
     for (NSString *name in schemeNames)
         [self createSchemeNamed:name ofType:index++];
@@ -65,7 +65,7 @@
 
     // WEAPONS - always overwrite as merge is not needed (missing weaps are 0ed automatically)
     NSArray *weaponNames = [[NSArray alloc] initWithObjects:@"Default",@"Crazy",@"Pro Mode",@"Shoppa",@"Clean Slate",
-                            @"Minefield",@"Thinking with Portals",nil];
+                            @"Minefield",@"Thinking with Portals",@"One of Everything",@"Highlander",@"Construction Mode",@"Shoppa Pro",nil];
     index = 0;
     for (NSString *name in weaponNames)
         [self createWeaponNamed:name ofType:index++];
@@ -241,6 +241,30 @@
             delay = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
             crate = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
             break;
+        case 7:  //one of everything
+            qt = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_QT length:ammolineSize encoding:NSUTF8StringEncoding];
+            prob = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
+            delay = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
+            crate = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
+            break;
+        case 8:  //highlander
+            qt = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_QT length:ammolineSize encoding:NSUTF8StringEncoding];
+            prob = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
+            delay = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
+            crate = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
+            break;
+        case 9:  //construction mode
+            qt = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_QT length:ammolineSize encoding:NSUTF8StringEncoding];
+            prob = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
+            delay = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
+            crate = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
+            break;
+        case 10:  //shoppa pro
+            qt = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_QT length:ammolineSize encoding:NSUTF8StringEncoding];
+            prob = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
+            delay = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
+            crate = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
+            break;
     }
 
     NSDictionary *theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: qt,@"ammostore_initialqt",
@@ -303,6 +327,7 @@
             [basicArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithInt:25]];
             [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
             [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
+            [basicArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithInt:8]];
             [gamemodArray replaceObjectAtIndex:1 withObject:[NSNumber numberWithBool:YES]];
             [gamemodArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithBool:YES]];
             [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
@@ -342,6 +367,7 @@
             [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:10]];
             [basicArray replaceObjectAtIndex:12 withObject:[NSNumber numberWithInt:10]];
             [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:10]];
+            [basicArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithInt:4]];
             [gamemodArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithBool:YES]];
             [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
             [gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
@@ -373,6 +399,7 @@
             [basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:4]];
             [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:5]];
             [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:5]];
+            [basicArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithInt:4]];
             [gamemodArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithBool:YES]];
             [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
             break;
@@ -380,6 +407,15 @@
             [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
             [gamemodArray replaceObjectAtIndex:12 withObject:[NSNumber numberWithBool:YES]];
             break;
+        case 11: // construction mode
+            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
+            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
+            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
+            [gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
+            [gamemodArray replaceObjectAtIndex:16 withObject:[NSNumber numberWithBool:YES]];
+            [gamemodArray replaceObjectAtIndex:18 withObject:[NSNumber numberWithBool:YES]];
+            [gamemodArray replaceObjectAtIndex:20 withObject:[NSNumber numberWithBool:YES]];
+            break;
     }
 
     NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
--- a/project_files/HedgewarsMobile/Classes/EditableCellView.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/EditableCellView.m	Mon Nov 09 16:34:32 2015 +0000
@@ -18,7 +18,7 @@
 
 
 #import "EditableCellView.h"
-
+#import "UITableViewCell+FindTable.h"
 
 @implementation EditableCellView
 @synthesize delegate, textField, titleLabel, minimumCharacters, maximumCharacters, respectEditing, oldValue;
@@ -103,13 +103,13 @@
 -(BOOL) textFieldShouldBeginEditing:(UITextField *)aTextField {
     return (delegate != nil) &&
            [delegate respondsToSelector:@selector(saveTextFieldValue:withTag:)] &&
-           (respectEditing) ? ((UITableView*)[self superview]).editing : YES;
+           (respectEditing) ? [self findTable].editing : YES;
 }
 
 // the textfield is being modified, update the navigation controller
 -(void) textFieldDidBeginEditing:(UITextField *)aTextField{
     // don't interact with table below
-    ((UITableView*)[self superview]).scrollEnabled = NO;
+    [self findTable].scrollEnabled = NO;
 
     self.oldValue = self.textField.text;
 
@@ -147,9 +147,9 @@
         [self save:aTextField];
 
     // restores default behaviour on caller
-    ((UITableView*)[self superview]).scrollEnabled = YES;
-    [(UITableViewController *)delegate navigationItem].rightBarButtonItem = [(UITableViewController *)delegate navigationItem].backBarButtonItem;
-    [(UITableViewController *)delegate navigationItem].leftBarButtonItem = nil;
+    [self findTable].scrollEnabled = YES;
+    [(UITableViewController *)delegate navigationItem].leftBarButtonItem = [(UITableViewController *)delegate navigationItem].backBarButtonItem;
+    [(UITableViewController *)delegate navigationItem].rightBarButtonItem = nil;
 }
 
 #pragma mark -
--- a/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m	Mon Nov 09 16:34:32 2015 +0000
@@ -197,7 +197,7 @@
 
 // wrapper that computes the length of the message and then sends the command string, saving the command on a file
 -(int) sendToEngine:(NSString *)string {
-    uint8_t length = [string length];
+    uint8_t length = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
 
     [self dumpRawData:[string UTF8String] ofSize:length];
     SDLNet_TCP_Send(csd, &length, 1);
@@ -206,7 +206,7 @@
 
 // wrapper that computes the length of the message and then sends the command string, skipping file writing
 -(int) sendToEngineNoSave:(NSString *)string {
-    uint8_t length = [string length];
+    uint8_t length = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
 
     SDLNet_TCP_Send(csd, &length, 1);
     return SDLNet_TCP_Send(csd, [string UTF8String], length);
@@ -341,19 +341,25 @@
                 NSString *tempStr = [NSString stringWithUTF8String:&buffer[2]];
                 NSArray *info = [tempStr componentsSeparatedByString:@" "];
                 NSString *arg = [info objectAtIndex:0];
-                int index = [arg length] + 3;
+                int index = [arg lengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 3;
                 switch (buffer[1]) {
                     case 'r':           // winning team
                         [statsArray insertObject:[NSString stringWithUTF8String:&buffer[2]] atIndex:1];
                         break;
                     case 'D':           // best shot
-                        [statsArray addObject:[NSString stringWithFormat:@"The best shot award won by %s (with %@ points)", &buffer[index], arg]];
+                    {
+                        NSString *hogName = [NSString stringWithUTF8String:&buffer[index]];
+                        [statsArray addObject:[NSString stringWithFormat:NSLocalizedString(@"The best shot award won by %@ (with %@ points)", nil), hogName, arg]];
                         break;
+                    }
                     case 'k':           // best hedgehog
-                        [statsArray addObject:[NSString stringWithFormat:@"The best killer is %s with %@ kill(s) in a turn", &buffer[index], arg]];
+                    {
+                        NSString *hogName = [NSString stringWithUTF8String:&buffer[index]];
+                        [statsArray addObject:[NSString stringWithFormat:NSLocalizedString(@"The best killer is %@ with %@ kill(s) in a turn", nil), hogName, arg]];
                         break;
+                    }
                     case 'K':           // number of hogs killed
-                        [statsArray addObject:[NSString stringWithFormat:@"%@ hedgehog(s) were killed during this round", arg]];
+                        [statsArray addObject:[NSString stringWithFormat:NSLocalizedString(@"%@ hedgehog(s) were killed during this round", nil), arg]];
                         break;
                     case 'H':           // team health/graph
                         break;
@@ -364,14 +370,23 @@
                         [[statsArray objectAtIndex:0] addObject:tempStr];
                         break;
                     case 's':           // self damage
-                        [statsArray addObject:[NSString stringWithFormat:@"%s thought it's good to shoot his own hedgehogs with %@ points", &buffer[index], arg]];
+                    {
+                        NSString *hogName = [NSString stringWithUTF8String:&buffer[index]];
+                        [statsArray addObject:[NSString stringWithFormat:NSLocalizedString(@"%@ thought it's good to shoot his own hedgehogs with %@ points", nil), hogName, arg]];
                         break;
+                    }
                     case 'S':           // friendly fire
-                        [statsArray addObject:[NSString stringWithFormat:@"%s killed %@ of his own hedgehogs", &buffer[index], arg]];
+                    {
+                        NSString *hogName = [NSString stringWithUTF8String:&buffer[index]];
+                        [statsArray addObject:[NSString stringWithFormat:NSLocalizedString(@"%@ killed %@ of his own hedgehogs", nil), hogName, arg]];
                         break;
+                    }
                     case 'B':           // turn skipped
-                        [statsArray addObject:[NSString stringWithFormat:@"%s was scared and skipped turn %@ times", &buffer[index], arg]];
+                    {
+                        NSString *hogName = [NSString stringWithUTF8String:&buffer[index]];
+                        [statsArray addObject:[NSString stringWithFormat:NSLocalizedString(@"%@ was scared and skipped turn %@ times", nil), hogName, arg]];
                         break;
+                    }
                     default:
                         DLog(@"Unhandled stat message, see statsPage.cpp");
                         break;
--- a/project_files/HedgewarsMobile/Classes/FortsViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/FortsViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -38,11 +38,13 @@
 
     NSArray *directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:FORTS_DIRECTORY() error:NULL];
     NSMutableArray *filteredContents = [[NSMutableArray alloc] initWithCapacity:([directoryContents count] / IMGNUM_PER_FORT)];
-    // we need to remove the double entries and the L.png suffix
-    for (NSUInteger i = 0; i < [directoryContents count]; i++) {
-        if (i % IMGNUM_PER_FORT == IMGNUM_PER_FORT-1) {
-            NSString *currentName = [directoryContents objectAtIndex:i];
-            NSString *correctName = [currentName substringToIndex:([currentName length] - 5)];
+    // we assume here that fort's images has one image with the 'L.png' suffix and we remove this suffix to get the correct name
+    for (NSUInteger i = 0; i < [directoryContents count]; i++)
+    {
+        NSString *currentName = [directoryContents objectAtIndex:i];
+        if ([currentName rangeOfString:@"L.png"].location != NSNotFound)
+        {
+            NSString *correctName = [currentName stringByReplacingOccurrencesOfString:@"L.png" withString:@""];
             [filteredContents addObject:correctName];
         }
     }
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController-iPhone.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController-iPhone.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,438 +1,105 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
-	<data>
-		<int key="IBDocument.SystemTarget">1792</int>
-		<string key="IBDocument.SystemVersion">14E46</string>
-		<string key="IBDocument.InterfaceBuilderVersion">7706</string>
-		<string key="IBDocument.AppKitVersion">1348.17</string>
-		<string key="IBDocument.HIToolboxVersion">758.70</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">7703</string>
-		</object>
-		<array key="IBDocument.IntegratedClassDependencies">
-			<string>IBProxyObject</string>
-			<string>IBUIBarButtonItem</string>
-			<string>IBUISegmentedControl</string>
-			<string>IBUIToolbar</string>
-			<string>IBUIView</string>
-			<string>IBUIViewController</string>
-		</array>
-		<array key="IBDocument.PluginDependencies">
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</array>
-		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
-		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<object class="IBProxyObject" id="841351856">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBProxyObject" id="606714003">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBUIView" id="766721923">
-				<nil key="NSNextResponder"/>
-				<int key="NSvFlags">274</int>
-				<array class="NSMutableArray" key="NSSubviews">
-					<object class="IBUIToolbar" id="836721772">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">266</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUISegmentedControl" id="563596142">
-								<reference key="NSNextResponder" ref="836721772"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{105, 8}, {270, 30}}</string>
-								<reference key="NSSuperview" ref="836721772"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<int key="IBUITag">12345</int>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<int key="IBSegmentControlStyle">2</int>
-								<int key="IBNumberOfSegments">4</int>
-								<int key="IBSelectedSegmentIndex">0</int>
-								<array key="IBSegmentTitles">
-									<string>Map</string>
-									<string>Teams</string>
-									<string>Details</string>
-									<string>Help</string>
-								</array>
-								<array class="NSMutableArray" key="IBSegmentWidths">
-									<real value="0.0"/>
-									<real value="0.0"/>
-									<real value="0.0"/>
-									<real value="0.0"/>
-								</array>
-								<array class="NSMutableArray" key="IBSegmentEnabledStates">
-									<boolean value="YES"/>
-									<boolean value="YES"/>
-									<boolean value="YES"/>
-									<boolean value="YES"/>
-								</array>
-								<array class="NSMutableArray" key="IBSegmentContentOffsets">
-									<string>{0, 0}</string>
-									<string>{0, 0}</string>
-									<string>{0, 0}</string>
-									<string>{0, 0}</string>
-								</array>
-								<array class="NSMutableArray" key="IBSegmentImages">
-									<object class="NSNull" id="4"/>
-									<reference ref="4"/>
-									<reference ref="4"/>
-									<reference ref="4"/>
-								</array>
-								<object class="NSColor" key="IBTintColor">
-									<int key="NSColorSpace">1</int>
-									<bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
-								</object>
-							</object>
-						</array>
-						<string key="NSFrame">{{0, 276}, {480, 44}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="563596142"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIBarStyle">1</int>
-						<array class="NSMutableArray" key="IBUIItems">
-							<object class="IBUIBarButtonItem" id="80281356">
-								<string key="IBUITitle">Back</string>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<int key="IBUIStyle">1</int>
-								<reference key="IBUIToolbar" ref="836721772"/>
-							</object>
-							<object class="IBUIBarButtonItem" id="716161941">
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<reference key="IBUIToolbar" ref="836721772"/>
-								<int key="IBUISystemItemIdentifier">5</int>
-							</object>
-							<object class="IBUIBarButtonItem" id="530186890">
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<reference key="IBUICustomView" ref="563596142"/>
-								<reference key="IBUIToolbar" ref="836721772"/>
-							</object>
-							<object class="IBUIBarButtonItem" id="188600069">
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<reference key="IBUIToolbar" ref="836721772"/>
-								<int key="IBUISystemItemIdentifier">5</int>
-							</object>
-							<object class="IBUIBarButtonItem" id="919181414">
-								<int key="IBUITag">1</int>
-								<string key="IBUITitle">Start</string>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<float key="IBUIWidth">68</float>
-								<int key="IBUIStyle">2</int>
-								<reference key="IBUIToolbar" ref="836721772"/>
-							</object>
-						</array>
-					</object>
-					<object class="IBUIView" id="914954699">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">274</int>
-						<string key="NSFrameSize">{480, 276}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="848489667"/>
-						<object class="NSColor" key="IBUIBackgroundColor">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MQA</bytes>
-							<object class="NSColorSpace" key="NSCustomColorSpace" id="9020506">
-								<int key="NSID">2</int>
-							</object>
-						</object>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-					</object>
-					<object class="IBUIView" id="848489667">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">274</int>
-						<string key="NSFrameSize">{480, 276}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="836721772"/>
-						<object class="NSColor" key="IBUIBackgroundColor">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MQA</bytes>
-							<reference key="NSCustomColorSpace" ref="9020506"/>
-						</object>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-					</object>
-				</array>
-				<string key="NSFrameSize">{480, 320}</string>
-				<reference key="NSNextKeyView" ref="914954699"/>
-				<object class="NSColor" key="IBUIBackgroundColor">
-					<int key="NSColorSpace">3</int>
-					<bytes key="NSWhite">MQA</bytes>
-				</object>
-				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="IBUIInterfaceOrientation">3</int>
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics">
-					<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
-					<string key="IBUIDisplayName">Freeform</string>
-				</object>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBUIViewController" id="682131721">
-				<string key="IBUINibName">MapConfigViewController-iPhone</string>
-				<object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics" id="789431191">
-					<int key="IBUIInterfaceOrientation">3</int>
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics" id="387354061">
-					<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
-					<string key="IBUITargetRuntime">IBCocoaTouchFramework</string>
-					<string key="IBUIDisplayName">iPhone 4-inch</string>
-					<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<array key="dict.sortedKeys">
-							<integer value="1"/>
-							<integer value="3"/>
-						</array>
-						<array key="dict.values">
-							<string>{320, 568}</string>
-							<string>{568, 320}</string>
-						</array>
-					</object>
-					<int key="IBUIType">2</int>
-				</object>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-				<bool key="IBUIHorizontal">YES</bool>
-			</object>
-			<object class="IBUIViewController" id="508843780">
-				<object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics" id="129104688">
-					<int key="IBUIBarStyle">1</int>
-				</object>
-				<reference key="IBUISimulatedOrientationMetrics" ref="789431191"/>
-				<reference key="IBUISimulatedDestinationMetrics" ref="387354061"/>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-				<bool key="IBUIHorizontal">YES</bool>
-			</object>
-			<object class="IBUIViewController" id="290947091">
-				<reference key="IBUISimulatedBottomBarMetrics" ref="129104688"/>
-				<reference key="IBUISimulatedOrientationMetrics" ref="789431191"/>
-				<reference key="IBUISimulatedDestinationMetrics" ref="387354061"/>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-				<bool key="IBUIHorizontal">YES</bool>
-			</object>
-		</array>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<array key="connectionRecords">
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="766721923"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">mapConfigViewController</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="682131721"/>
-					</object>
-					<int key="connectionID">33</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">teamConfigViewController</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="508843780"/>
-					</object>
-					<int key="connectionID">34</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">schemeWeaponConfigViewController</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="290947091"/>
-					</object>
-					<int key="connectionID">35</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonPressed:</string>
-						<reference key="source" ref="80281356"/>
-						<reference key="destination" ref="841351856"/>
-					</object>
-					<int key="connectionID">17</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonPressed:</string>
-						<reference key="source" ref="919181414"/>
-						<reference key="destination" ref="841351856"/>
-					</object>
-					<int key="connectionID">23</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">segmentPressed:</string>
-						<reference key="source" ref="563596142"/>
-						<reference key="destination" ref="841351856"/>
-						<int key="IBEventType">13</int>
-					</object>
-					<int key="connectionID">29</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="508843780"/>
-						<reference key="destination" ref="914954699"/>
-					</object>
-					<int key="connectionID">42</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="290947091"/>
-						<reference key="destination" ref="848489667"/>
-					</object>
-					<int key="connectionID">43</int>
-				</object>
-			</array>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<array key="orderedObjects">
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<array key="object" id="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="841351856"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="606714003"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="766721923"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="836721772"/>
-							<reference ref="914954699"/>
-							<reference ref="848489667"/>
-						</array>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">15</int>
-						<reference key="object" ref="836721772"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="80281356"/>
-							<reference ref="919181414"/>
-							<reference ref="188600069"/>
-							<reference ref="530186890"/>
-							<reference ref="716161941"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">16</int>
-						<reference key="object" ref="80281356"/>
-						<reference key="parent" ref="836721772"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">18</int>
-						<reference key="object" ref="919181414"/>
-						<reference key="parent" ref="836721772"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">19</int>
-						<reference key="object" ref="188600069"/>
-						<reference key="parent" ref="836721772"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">21</int>
-						<reference key="object" ref="530186890"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="563596142"/>
-						</array>
-						<reference key="parent" ref="836721772"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">20</int>
-						<reference key="object" ref="563596142"/>
-						<reference key="parent" ref="530186890"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">22</int>
-						<reference key="object" ref="716161941"/>
-						<reference key="parent" ref="836721772"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">30</int>
-						<reference key="object" ref="682131721"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">31</int>
-						<reference key="object" ref="508843780"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">32</int>
-						<reference key="object" ref="290947091"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">40</int>
-						<reference key="object" ref="914954699"/>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">TeamConfigViewController View</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">41</int>
-						<reference key="object" ref="848489667"/>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">SchemeWeaponConfigViewController View</string>
-					</object>
-				</array>
-			</object>
-			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.CustomClassName">GameConfigViewController</string>
-				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="-2.CustomClassName">UIResponder</string>
-				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="30.CustomClassName">MapConfigViewController</string>
-				<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="31.CustomClassName">TeamConfigViewController</string>
-				<string key="31.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="32.CustomClassName">SchemeWeaponConfigViewController</string>
-				<string key="32.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			</dictionary>
-			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-			<nil key="activeLocalization"/>
-			<dictionary class="NSMutableDictionary" key="localizations"/>
-			<nil key="sourceID"/>
-			<int key="maxID">45</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes"/>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
-		<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="4600" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="8191" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GameConfigViewController">
+            <connections>
+                <outlet property="backButton" destination="16" id="JdX-PP-V4d"/>
+                <outlet property="mapConfigViewController" destination="30" id="33"/>
+                <outlet property="schemeWeaponConfigViewController" destination="32" id="35"/>
+                <outlet property="startButton" destination="18" id="0Gc-dB-ioC"/>
+                <outlet property="tabsSegmentedControl" destination="20" id="PVz-zB-sKx"/>
+                <outlet property="teamConfigViewController" destination="31" id="34"/>
+                <outlet property="view" destination="2" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" barStyle="black" id="15">
+                    <rect key="frame" x="0.0" y="276" width="480" height="44"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <items>
+                        <barButtonItem title="Back" id="16">
+                            <connections>
+                                <action selector="buttonPressed:" destination="-1" id="17"/>
+                            </connections>
+                        </barButtonItem>
+                        <barButtonItem style="plain" systemItem="flexibleSpace" id="22"/>
+                        <barButtonItem style="plain" id="21">
+                            <segmentedControl key="customView" opaque="NO" tag="12345" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="0" id="20">
+                                <rect key="frame" x="105" y="7" width="270" height="30"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                <animations/>
+                                <segments>
+                                    <segment title="Map"/>
+                                    <segment title="Teams"/>
+                                    <segment title="Details"/>
+                                    <segment title="Help"/>
+                                </segments>
+                                <color key="tintColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                                <connections>
+                                    <action selector="segmentPressed:" destination="-1" eventType="valueChanged" id="29"/>
+                                </connections>
+                            </segmentedControl>
+                        </barButtonItem>
+                        <barButtonItem style="plain" systemItem="flexibleSpace" id="19"/>
+                        <barButtonItem tag="1" title="Start" width="68" style="done" id="18">
+                            <connections>
+                                <action selector="buttonPressed:" destination="-1" id="23"/>
+                            </connections>
+                        </barButtonItem>
+                    </items>
+                </toolbar>
+                <view clipsSubviews="YES" contentMode="scaleToFill" id="40" userLabel="TeamConfigViewController View">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="276"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <animations/>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                </view>
+                <view clipsSubviews="YES" contentMode="scaleToFill" id="41" userLabel="SchemeWeaponConfigViewController View">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="276"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <animations/>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                </view>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="944" y="504"/>
+        </view>
+        <viewController nibName="MapConfigViewController-iPhone" id="30" customClass="MapConfigViewController">
+            <extendedEdge key="edgesForExtendedLayout"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+        </viewController>
+        <viewController id="31" customClass="TeamConfigViewController">
+            <extendedEdge key="edgesForExtendedLayout"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="black"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <connections>
+                <outlet property="view" destination="40" id="42"/>
+            </connections>
+        </viewController>
+        <viewController id="32" customClass="SchemeWeaponConfigViewController">
+            <extendedEdge key="edgesForExtendedLayout"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="black"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <connections>
+                <outlet property="view" destination="41" id="43"/>
+            </connections>
+        </viewController>
+    </objects>
+</document>
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -36,7 +36,8 @@
     HelpPageLobbyViewController *helpPage;
 }
 
-@property (retain) UIView *imgContainer;
+@property (atomic) BOOL isDrawingNiceHogs;
+@property (nonatomic,retain) UIView *imgContainer;
 @property (nonatomic,retain) UILabel * sliderBackground;
 @property (nonatomic,retain) IBOutlet UIImageView *titleImage;
 @property (nonatomic,retain) IBOutlet SchemeWeaponConfigViewController *schemeWeaponConfigViewController;
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -24,6 +24,13 @@
 #import "GameInterfaceBridge.h"
 #import "HelpPageLobbyViewController.h"
 
+@interface GameConfigViewController ()
+@property (nonatomic, retain) IBOutlet UISegmentedControl *tabsSegmentedControl; //iPhone only
+
+@property (nonatomic, retain) IBOutlet UIBarButtonItem *backButton; //iPhone only
+@property (nonatomic, retain) IBOutlet UIBarButtonItem *startButton; //iPhone only
+@end
+
 @implementation GameConfigViewController
 @synthesize imgContainer, titleImage, sliderBackground, helpPage,
             mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController;
@@ -32,6 +39,8 @@
     return rotationManager(interfaceOrientation);
 }
 
+#pragma mark - Buttons
+
 -(IBAction) buttonPressed:(id) sender {
     UIButton *theButton = (UIButton *)sender;
 
@@ -55,12 +64,7 @@
             if ([self isEverythingSet] == NO)
                 return;
             theButton.enabled = NO;
-            for (UIView *oneView in self.imgContainer.subviews) {
-                if ([oneView isMemberOfClass:[UIImageView class]]) {
-                    UIImageView *anImageView = (UIImageView *)oneView;
-                    [anImageView removeFromSuperview];
-                }
-            }
+            [self clearImgContainer];
             [self startGame:theButton];
 
             break;
@@ -81,6 +85,17 @@
     }
 }
 
+#pragma mark - Tabs Segmented Control
+
+- (void)localizeTabsSegmentedControl
+{
+    for (NSUInteger i = 0; i < self.tabsSegmentedControl.numberOfSegments; i++)
+    {
+        NSString *oldTitle = [self.tabsSegmentedControl titleForSegmentAtIndex:i];
+        [self.tabsSegmentedControl setTitle:NSLocalizedString(oldTitle, nil) forSegmentAtIndex:i];
+    }
+}
+
 -(IBAction) segmentPressed:(id) sender {
 
     UISegmentedControl *theSegment = (UISegmentedControl *)sender;
@@ -121,6 +136,8 @@
 
 }
 
+#pragma mark -
+
 -(BOOL) isEverythingSet {
     // don't start playing if the preview is in progress
     if ([self.mapConfigViewController busy]) {
@@ -229,73 +246,95 @@
     [gameDictionary release];
 }
 
--(void) loadNiceHogs {
-    @autoreleasepool {
+-(void) loadNiceHogs
+{
+    @autoreleasepool
+    {
     
-    srand(time(NULL));
-    NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Hedgehog/Idle.png",GRAPHICS_DIRECTORY()];
-    UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:filePath];
-    [filePath release];
+        NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Hedgehog/Idle.png",GRAPHICS_DIRECTORY()];
+        UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:filePath];
+        [filePath release];
 
-    NSArray *hatArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:HATS_DIRECTORY() error:NULL];
-    NSUInteger numberOfHats = [hatArray count];
-    int animationFrames = IS_VERY_POWERFUL([HWUtils modelType]) ? 18 : 1;
-
-    if (self.imgContainer != nil)
-        [self.imgContainer removeFromSuperview];
-
-    self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
-    NSInteger numberOfHogs = 1 + random() % 20;
-    DLog(@"Drawing %ld nice hedgehogs", (long)numberOfHogs);
-    for (int i = 0; i < numberOfHogs; i++) {
-        NSString *hat = [hatArray objectAtIndex:random()%numberOfHats];
+        NSArray *hatArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:HATS_DIRECTORY() error:NULL];
+        NSUInteger numberOfHats = [hatArray count];
+        int animationFrames = IS_VERY_POWERFUL([HWUtils modelType]) ? 16 : 1;
+        
+        self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
+        NSInteger numberOfHogs = 1 + arc4random_uniform(15);
+        DLog(@"Drawing %ld nice hedgehogs", (long)numberOfHogs);
+        for (int i = 0; i < numberOfHogs; i++) {
+            NSString *hat = [hatArray objectAtIndex:arc4random_uniform((int)numberOfHats)];
 
-        NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
-        UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile:hatFile];
-        NSMutableArray *animation = [[NSMutableArray alloc] initWithCapacity:animationFrames];
-        for (int j = 0; j < animationFrames; j++) {
-            int x = ((j*32)/(int)hatSprite.size.height)*32;
-            int y = (j*32)%(int)hatSprite.size.height;
-            UIImage *hatSpriteFrame = [hatSprite cutAt:CGRectMake(x, y, 32, 32)];
-            UIImage *hogSpriteFrame = [hogSprite cutAt:CGRectMake(x, y, 32, 32)];
-            UIImage *hogWithHat = [hogSpriteFrame mergeWith:hatSpriteFrame atPoint:CGPointMake(0, 5)];
-            [animation addObject:hogWithHat];
-        }
-        [hatSprite release];
-        [hatFile release];
+            NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
+            UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile:hatFile];
+            NSMutableArray *animation = [[NSMutableArray alloc] initWithCapacity:animationFrames];
+            for (int j = 0; j < animationFrames; j++) {
+                int x = ((j*32)/(int)hatSprite.size.height)*32;
+                int y = (j*32)%(int)hatSprite.size.height;
+                UIImage *hatSpriteFrame = [hatSprite cutAt:CGRectMake(x, y, 32, 32)];
+                UIImage *hogSpriteFrame = [hogSprite cutAt:CGRectMake(x, y, 32, 32)];
+                UIImage *hogWithHat = [hogSpriteFrame mergeWith:hatSpriteFrame atPoint:CGPointMake(0, 5)];
+                [animation addObject:hogWithHat];
+            }
+            [hatSprite release];
+            [hatFile release];
+
+            UIImageView *hog = [[UIImageView alloc] initWithImage:[animation objectAtIndex:0]];
+            hog.animationImages = animation;
+            hog.animationDuration = 3;
+            [animation release];
 
-        UIImageView *hog = [[UIImageView alloc] initWithImage:[animation objectAtIndex:0]];
-        hog.animationImages = animation;
-        hog.animationDuration = 3;
-        [animation release];
-
-        int x = 20*i+random()%128;
-        if (x > 320 - 32)
-            x = i*random()%32;
-        hog.frame = CGRectMake(x, 25, hog.frame.size.width, hog.frame.size.height);
-        [self.imgContainer addSubview:hog];
-        [hog startAnimating];
-        [hog release];
-    }
-
-    // don't place the nice hogs if there is no space for them
-    if ((self.interfaceOrientation == UIInterfaceOrientationPortrait ||
-         self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))
-        self.imgContainer.alpha = 0;
-
-    [self.view addSubview:self.imgContainer];
-    [hogSprite release];
+            int x = 20*i+arc4random_uniform(128);
+            while (x > 320 - 32)
+                x = i*arc4random_uniform(32);
+            
+            hog.frame = CGRectMake(x, 25, hog.frame.size.width, hog.frame.size.height);
+            [self.imgContainer addSubview:hog];
+            [hog startAnimating];
+            [hog release];
+        }
+        [hogSprite release];
         
+        dispatch_async(dispatch_get_main_queue(), ^{
+            
+            [self.view addSubview:self.imgContainer];
+            
+            // don't place the nice hogs if there is no space for them
+            if ((self.interfaceOrientation == UIInterfaceOrientationPortrait ||
+                 self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))
+                self.imgContainer.alpha = 0;
+            
+            self.isDrawingNiceHogs = NO;
+        });
     }
 }
 
--(void) viewDidLoad {
+- (void)clearImgContainer
+{
+    for (UIView *oneView in [self.imgContainer subviews])
+    {
+        if ([oneView isMemberOfClass:[UIImageView class]])
+        {
+            UIImageView *anImageView = (UIImageView *)oneView;
+            [anImageView removeFromSuperview];
+        }
+    }
+    
+    [self.imgContainer removeFromSuperview];
+    self.imgContainer = nil;
+}
+
+-(void) viewDidLoad
+{
+    [super viewDidLoad];
+    
     self.view.backgroundColor = [UIColor blackColor];
 
     CGRect screenRect = [[UIScreen mainScreen] safeBounds];
     self.view.frame = screenRect;
 
-    if (IS_IPAD()) {
+    if (IS_IPAD())
+    {
         // the label for the filter slider
         UILabel *backLabel = [[UILabel alloc] initWithFrame:CGRectMake(116, 714, 310, 40)
                                                    andTitle:nil
@@ -314,13 +353,19 @@
         [self.view addSubview:maxLabel];
         self.mapConfigViewController.maxLabel = maxLabel;
         [maxLabel release];
-    } else {
+    }
+    else
+    {
+        [self localizeTabsSegmentedControl];
+        
+        [self.backButton setTitle:NSLocalizedString(@"Back", nil)];
+        [self.startButton setTitle:NSLocalizedString(@"Start", nil)];
+        
         self.mapConfigViewController.view.frame = CGRectMake(0, 0, screenRect.size.width, screenRect.size.height-44);
     }
+    
     [self.view addSubview:self.mapConfigViewController.view];
     [self.view bringSubviewToFront:self.mapConfigViewController.slider];
-
-    [super viewDidLoad];
 }
 
 -(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval) duration {
@@ -329,8 +374,6 @@
 
     [self updateiPadUIForInterfaceOrientation:toInterfaceOrientation];
 
-    [self.schemeWeaponConfigViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation
-                                                                            duration:duration];
     if (self.helpPage)
     {
         self.helpPage.view.frame = self.view.frame;
@@ -361,9 +404,15 @@
     }
 }
 
--(void) viewWillAppear:(BOOL)animated {
-//    if (IS_IPAD())
-//        [NSThread detachNewThreadSelector:@selector(loadNiceHogs) toTarget:self withObject:nil];
+-(void) viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    
+    if (IS_IPAD() && !self.imgContainer && !self.isDrawingNiceHogs)
+    {
+        self.isDrawingNiceHogs = YES;
+        [NSThread detachNewThreadSelector:@selector(loadNiceHogs) toTarget:self withObject:nil];
+    }
     
     if (IS_IPAD())
     {
@@ -371,38 +420,23 @@
         UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
         [self updateiPadUIForInterfaceOrientation:currentOrientation];
     }
-    
-    [self.mapConfigViewController viewWillAppear:animated];
-    [self.teamConfigViewController viewWillAppear:animated];
-    [self.schemeWeaponConfigViewController viewWillAppear:animated];
-    // add other controllers here and below
-
-    [super viewWillAppear:animated];
-}
-
--(void) viewDidAppear:(BOOL)animated {
-    [self.mapConfigViewController viewDidAppear:animated];
-    [self.teamConfigViewController viewDidAppear:animated];
-    [self.schemeWeaponConfigViewController viewDidAppear:animated];
-    [super viewDidAppear:animated];
 }
 
--(void) viewWillDisappear:(BOOL)animated {
-    [self.mapConfigViewController viewWillDisappear:animated];
-    [self.teamConfigViewController viewWillDisappear:animated];
-    [self.schemeWeaponConfigViewController viewWillDisappear:animated];
-    [super viewWillDisappear:animated];
+- (void)viewDidAppear:(BOOL)animated
+{
+    [super viewDidAppear:animated];
+
+    if (IS_IPAD())
+    {
+        // need to call this again in order to fix layout on iOS 9 when going back from rotated stats page
+        UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
+        [self updateiPadUIForInterfaceOrientation:currentOrientation];
+    }
 }
 
--(void) viewDidDisappear:(BOOL)animated {
-    [self.mapConfigViewController viewDidDisappear:animated];
-    [self.teamConfigViewController viewDidDisappear:animated];
-    [self.schemeWeaponConfigViewController viewDidDisappear:animated];
-    [super viewDidDisappear:animated];
-}
-
--(void) didReceiveMemoryWarning {
-    self.imgContainer = nil;
+-(void) didReceiveMemoryWarning
+{
+    [self clearImgContainer];
 
     if (self.titleImage.superview == nil)
         self.titleImage = nil;
@@ -434,6 +468,9 @@
 }
 
 -(void) dealloc {
+    releaseAndNil(_tabsSegmentedControl);
+    releaseAndNil(_backButton);
+    releaseAndNil(_startButton);
     releaseAndNil(imgContainer);
     releaseAndNil(titleImage);
     releaseAndNil(sliderBackground);
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m	Mon Nov 09 16:34:32 2015 +0000
@@ -99,7 +99,9 @@
     CGFloat width, height;
     CGFloat screenScale = [[UIScreen mainScreen] safeScale];
     NSString *ipcString = [[NSString alloc] initWithFormat:@"%d",self.port];
-    NSString *localeString = [[NSString alloc] initWithFormat:@"%@.txt",[[NSLocale preferredLanguages] objectAtIndex:0]];
+    
+    NSString *localeString = [[NSString alloc] initWithFormat:@"%@.txt", [HWUtils languageID]];
+    
     NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
 
     CGRect screenBounds = [[UIScreen mainScreen] safeBounds];
@@ -248,8 +250,6 @@
 }
 
 +(void) startSimpleGame {
-    srand(time(0));
-
     // generate a seed
     CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
     NSString *seed = (NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);
@@ -259,7 +259,7 @@
 
     // pick a random static map
     NSArray *listOfMaps = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL];
-    NSString *mapName = [listOfMaps objectAtIndex:random()%[listOfMaps count]];
+    NSString *mapName = [listOfMaps objectAtIndex:arc4random_uniform((int)[listOfMaps count])];
     NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg",MAPS_DIRECTORY(),mapName];
     NSString *contents = [[NSString alloc] initWithContentsOfFile:fileCfg encoding:NSUTF8StringEncoding error:NULL];
     [fileCfg release];
@@ -272,8 +272,8 @@
     NSArray *colorArray = [HWUtils teamColors];
     NSInteger firstColorIndex, secondColorIndex;
     do {
-        firstColorIndex = random()%[colorArray count];
-        secondColorIndex = random()%[colorArray count];
+        firstColorIndex = arc4random_uniform((int)[colorArray count]);
+        secondColorIndex = arc4random_uniform((int)[colorArray count]);
     } while (firstColorIndex == secondColorIndex);
     unsigned int firstColor = [[colorArray objectAtIndex:firstColorIndex] intValue];
     unsigned int secondColor = [[colorArray objectAtIndex:secondColorIndex] intValue];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/GameLogViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,23 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ */
+
+#import <UIKit/UIKit.h>
+
+@interface GameLogViewController : UIViewController
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/GameLogViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,144 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ */
+
+#import "GameLogViewController.h"
+
+#ifdef DEBUG
+#import <MessageUI/MFMailComposeViewController.h>
+#endif
+
+@interface GameLogViewController ()
+#ifdef DEBUG
+<MFMailComposeViewControllerDelegate>
+#endif
+
+@end
+
+@implementation GameLogViewController
+
+#pragma mark - View life cycle
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+    
+    self.title = @"Last game log";
+    
+    UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStylePlain target:self action:@selector(dismissAction)];
+    self.navigationItem.rightBarButtonItem = closeButton;
+    [closeButton release];
+    
+#ifdef DEBUG
+    if ([self allowSendLogByEmail])
+    {
+        UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:@"Send" style:UIBarButtonItemStylePlain target:self action:@selector(sendLogByEmailAction)];
+        self.navigationItem.leftBarButtonItem = sendButton;
+        [sendButton release];
+    }
+#endif
+    
+    NSString *debugStr = nil;
+    if ([[NSFileManager defaultManager] fileExistsAtPath:DEBUG_FILE()])
+        debugStr = [[NSString alloc] initWithContentsOfFile:DEBUG_FILE() encoding:NSUTF8StringEncoding error:nil];
+    else
+        debugStr = [[NSString alloc] initWithString:@"Here be log"];
+    
+    UITextView *logView = [[UITextView alloc] initWithFrame:self.view.frame];
+    [logView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
+    logView.text = debugStr;
+    [debugStr release];
+    logView.editable = NO;
+    
+    [self.view addSubview:logView];
+    [logView release];
+}
+
+#pragma mark - Parameters
+
+#ifdef DEBUG
+- (BOOL)allowSendLogByEmail
+{
+    return ([MFMailComposeViewController canSendMail] && [[NSFileManager defaultManager] fileExistsAtPath:DEBUG_FILE()]);
+}
+#endif
+
+#pragma mark - Actions
+
+#ifdef DEBUG
+- (void)sendLogByEmailAction
+{
+    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
+    picker.mailComposeDelegate = self;
+    [picker setSubject:@"Log file of iHedgewars game"];
+    
+    // Attach a log file to the email
+    NSData *logData = [NSData dataWithContentsOfFile:DEBUG_FILE()];
+    [picker addAttachmentData:logData mimeType:@"text/plain" fileName:@"game0.log"];
+    
+    // Fill out the email body text
+    NSString *emailBody = @"Add here description of a problem/log";
+    [picker setMessageBody:emailBody isHTML:NO];
+    
+    [self presentViewController:picker animated:YES completion:nil];
+    [picker release];
+}
+#endif
+
+- (void)dismissAction
+{
+    [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+#pragma mark - MailCompose delegate
+
+#ifdef DEBUG
+- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
+{
+    // Notifies users about errors associated with the interface
+    switch (result)
+    {
+        case MFMailComposeResultCancelled:
+            NSLog(@"MailComposeResult: canceled");
+            break;
+        case MFMailComposeResultSaved:
+            NSLog(@"MailComposeResult: saved");
+            break;
+        case MFMailComposeResultSent:
+            NSLog(@"MailComposeResult: sent");
+            break;
+        case MFMailComposeResultFailed:
+            NSLog(@"MailComposeResult: failed");
+            break;
+        default:
+            NSLog(@"MailComposeResult: not sent");
+            break;
+    }
+    
+    [self dismissViewControllerAnimated:YES completion:nil];
+}
+#endif
+
+#pragma mark - Memory warning
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+@end
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -18,9 +18,9 @@
 
 
 #import <UIKit/UIKit.h>
-
+#import "TableViewControllerWithDoneButton.h"
 
-@interface GeneralSettingsViewController : UITableViewController <EditableCellViewDelegate> {
+@interface GeneralSettingsViewController : TableViewControllerWithDoneButton <EditableCellViewDelegate> {
 
 }
 
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -30,7 +30,7 @@
 #pragma mark -
 #pragma mark View Lifecycle
 -(void) viewDidLoad {
-    self.navigationItem.title = @"Edit game options";
+    self.navigationItem.title = NSLocalizedString(@"Edit game options", nil);
     [super viewDidLoad];
 }
 
@@ -179,7 +179,7 @@
 
             switchContent = (UISwitch *)cell.accessoryView;
             if (row == 0) {
-                cell.textLabel.text = NSLocalizedString(@"Sound Effects", @"from the settings table");
+                cell.textLabel.text = NSLocalizedString(@"Sound", @"from the settings table");
                 switchContent.on = [[settings objectForKey:@"sound"] boolValue];
                 switchContent.tag = 10;
             } else {
--- a/project_files/HedgewarsMobile/Classes/HWUtils.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HWUtils.h	Mon Nov 09 16:34:32 2015 +0000
@@ -41,6 +41,7 @@
 +(NSInteger) randomPort;
 +(void) freePort:(NSInteger) port;
 +(BOOL) isNetworkReachable;
++(NSString *) languageID;
 //+(UIView *)mainSDLViewInstance;
 
 @end
--- a/project_files/HedgewarsMobile/Classes/HWUtils.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HWUtils.m	Mon Nov 09 16:34:32 2015 +0000
@@ -103,14 +103,13 @@
 +(NSInteger) randomPort {
     // set a new feed only at initialization time and forbid connecting to the server port
     if (activePorts == nil) {
-        srandom(time(NULL));
         activePorts = [[NSMutableArray arrayWithObject:[NSNumber numberWithInt:NETGAME_DEFAULT_PORT]] retain];
     }
 
     // pick a random number from the free ports list
     NSInteger res = 0;
     do {
-        res = (random() % 64511) + 1024;
+        res = (arc4random_uniform(64511)) + 1024;
     } while ([activePorts containsObject:[NSNumber numberWithInteger:res]]);
 
     // add this number to the forbdding list
@@ -156,6 +155,12 @@
     return ((isReachable && !needsConnection) || nonWiFi) ? testResult : NO;
 }
 
++ (NSString *)languageID
+{
+    NSString *language = [[NSLocale preferredLanguages] firstObject];
+    return [[language componentsSeparatedByString:@"-"] firstObject];
+}
+
 /*
 +(UIView *)mainSDLViewInstance {
     SDL_Window *window = HW_getSDLWindow();
--- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m	Mon Nov 09 16:34:32 2015 +0000
@@ -19,7 +19,7 @@
 
 #import "HedgewarsAppDelegate.h"
 #import "MainMenuViewController.h"
-
+#import "Appirater.h"
 
 @implementation SDLUIKitDelegate (customDelegate)
 
@@ -50,7 +50,16 @@
 }
 
 // override the direct execution of SDL_main to allow us to implement our own frontend
--(void) postFinishLaunch {
+-(void) postFinishLaunch
+{
+    // Setup Appirater
+    [Appirater setAppId:@"391234866"];
+    [Appirater setDaysUntilPrompt:3];
+    [Appirater setUsesUntilPrompt:5];
+    [Appirater setSignificantEventsUntilPrompt:-1];
+    [Appirater setTimeBeforeReminding:1];
+    //[Appirater setDebug:YES];
+    
     [self performSelector:@selector(hideLaunchScreen) withObject:nil afterDelay:0.0];
     
     [[UIApplication sharedApplication] setStatusBarHidden:YES];
--- a/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController-iPad.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController-iPad.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,1126 +1,320 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
-	<data>
-		<int key="IBDocument.SystemTarget">1792</int>
-		<string key="IBDocument.SystemVersion">14E46</string>
-		<string key="IBDocument.InterfaceBuilderVersion">7706</string>
-		<string key="IBDocument.AppKitVersion">1348.17</string>
-		<string key="IBDocument.HIToolboxVersion">758.70</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">7703</string>
-		</object>
-		<array key="IBDocument.IntegratedClassDependencies">
-			<string>IBProxyObject</string>
-			<string>IBUIImageView</string>
-			<string>IBUILabel</string>
-			<string>IBUIView</string>
-		</array>
-		<array key="IBDocument.PluginDependencies">
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</array>
-		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
-		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<object class="IBProxyObject" id="841351856">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBProxyObject" id="606714003">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBUIView" id="766721923">
-				<nil key="NSNextResponder"/>
-				<int key="NSvFlags">256</int>
-				<array class="NSMutableArray" key="NSSubviews">
-					<object class="IBUIView" id="632193951">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">292</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="845663511">
-								<reference key="NSNextResponder" ref="632193951"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{0, 1}, {278, 50}}</string>
-								<reference key="NSSuperview" ref="632193951"/>
-								<reference key="NSNextKeyView" ref="823916653"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<object class="NSCustomResource" key="IBUIImage" id="158398638">
-									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">helpleft.png</string>
-								</object>
-							</object>
-							<object class="IBUILabel" id="823916653">
-								<reference key="NSNextResponder" ref="632193951"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{22, -2}, {248, 54}}</string>
-								<reference key="NSSuperview" ref="632193951"/>
-								<reference key="NSNextKeyView" ref="885820836"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Did you know you can customize almost everything in the settings page?</string>
-								<object class="NSColor" key="IBUITextColor" id="283637272">
-									<int key="NSColorSpace">1</int>
-									<bytes key="NSRGB">MCAwIDAAA</bytes>
-									<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
-								</object>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<object class="IBUIFontDescription" key="IBUIFontDescription">
-									<string key="name">Helvetica-Oblique</string>
-									<string key="family">Helvetica</string>
-									<int key="traits">1</int>
-									<double key="pointSize">14</double>
-								</object>
-								<object class="NSFont" key="IBUIFont">
-									<string key="NSName">Helvetica-Oblique</string>
-									<double key="NSSize">14</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">248</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{10, 8}, {278, 52}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="845663511"/>
-						<object class="NSColor" key="IBUIBackgroundColor" id="469062490">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MCAwAA</bytes>
-						</object>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="649057968">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">297</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="1011244481">
-								<reference key="NSNextResponder" ref="649057968"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 102}</string>
-								<reference key="NSSuperview" ref="649057968"/>
-								<reference key="NSNextKeyView" ref="552788325"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<object class="NSCustomResource" key="IBUIImage" id="468391955">
-									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">helpabove.png</string>
-								</object>
-							</object>
-							<object class="IBUILabel" id="636170775">
-								<reference key="NSNextResponder" ref="649057968"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{12, 19}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="649057968"/>
-								<reference key="NSNextKeyView" ref="572108157"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Map theme</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<object class="IBUIFontDescription" key="IBUIFontDescription" id="1061259526">
-									<string key="name">Helvetica-Bold</string>
-									<string key="family">Helvetica</string>
-									<int key="traits">2</int>
-									<double key="pointSize">18</double>
-								</object>
-								<object class="NSFont" key="IBUIFont" id="583365693">
-									<string key="NSName">Helvetica-Bold</string>
-									<double key="NSSize">18</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="552788325">
-								<reference key="NSNextResponder" ref="649057968"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{11, 36}, {218, 66}}</string>
-								<reference key="NSSuperview" ref="649057968"/>
-								<reference key="NSNextKeyView" ref="636170775"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Here you can choose how your map will appear in game.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<object class="IBUIFontDescription" key="IBUIFontDescription" id="506240258">
-									<string key="name">Helvetica</string>
-									<string key="family">Helvetica</string>
-									<int key="traits">0</int>
-									<double key="pointSize">16</double>
-								</object>
-								<object class="NSFont" key="IBUIFont" id="818038162">
-									<string key="NSName">Helvetica</string>
-									<double key="NSSize">16</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">218</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{742, 360}, {240, 102}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="1011244481"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="506833582">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">289</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="379980516">
-								<reference key="NSNextResponder" ref="506833582"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 146}</string>
-								<reference key="NSSuperview" ref="506833582"/>
-								<reference key="NSNextKeyView" ref="901581152"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<reference key="IBUIImage" ref="468391955"/>
-							</object>
-							<object class="IBUILabel" id="901581152">
-								<reference key="NSNextResponder" ref="506833582"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{11, 22}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="506833582"/>
-								<reference key="NSNextKeyView" ref="595424508"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Map type</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="595424508">
-								<reference key="NSNextResponder" ref="506833582"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{11, 41}, {218, 99}}</string>
-								<reference key="NSSuperview" ref="506833582"/>
-								<reference key="NSNextKeyView" ref="1061986830"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">218</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{653, 202}, {240, 146}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="379980516"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="885820836">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">289</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="162303877">
-								<reference key="NSNextResponder" ref="885820836"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 101}</string>
-								<reference key="NSSuperview" ref="885820836"/>
-								<reference key="NSNextKeyView" ref="687330896"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<object class="NSCustomResource" key="IBUIImage">
-									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">helpright.png</string>
-								</object>
-							</object>
-							<object class="IBUILabel" id="323588470">
-								<reference key="NSNextResponder" ref="885820836"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{9, 7}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="885820836"/>
-								<reference key="NSNextKeyView" ref="182206756"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Map preview</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="687330896">
-								<reference key="NSNextResponder" ref="885820836"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{8, 25}, {218, 65}}</string>
-								<reference key="NSSuperview" ref="885820836"/>
-								<reference key="NSNextKeyView" ref="323588470"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">This is a small preview of your next map. Tap to select / generate a new map.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">218</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{494, 20}, {240, 101}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="162303877"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="977068896">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">269</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="713859408">
-								<reference key="NSNextResponder" ref="977068896"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{242, 171}</string>
-								<reference key="NSSuperview" ref="977068896"/>
-								<reference key="NSNextKeyView" ref="896727228"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<reference key="IBUIImage" ref="468391955"/>
-							</object>
-							<object class="IBUILabel" id="896727228">
-								<reference key="NSNextResponder" ref="977068896"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{8, 25}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="977068896"/>
-								<reference key="NSNextKeyView" ref="704238452"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Teams</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="704238452">
-								<reference key="NSNextResponder" ref="977068896"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{10, 45}, {232, 120}}</string>
-								<reference key="NSSuperview" ref="977068896"/>
-								<reference key="NSNextKeyView" ref="649057968"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">232</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{358, 389}, {242, 171}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="713859408"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="182206756">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">292</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="993770514">
-								<reference key="NSNextResponder" ref="182206756"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 104}</string>
-								<reference key="NSSuperview" ref="182206756"/>
-								<reference key="NSNextKeyView" ref="488737408"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<reference key="IBUIImage" ref="158398638"/>
-							</object>
-							<object class="IBUILabel" id="488737408">
-								<reference key="NSNextResponder" ref="182206756"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{23, 8}, {204, 22}}</string>
-								<reference key="NSSuperview" ref="182206756"/>
-								<reference key="NSNextKeyView" ref="463058693"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Schemes and Weapons</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="463058693">
-								<reference key="NSNextResponder" ref="182206756"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{23, 27}, {210, 71}}</string>
-								<reference key="NSSuperview" ref="182206756"/>
-								<reference key="NSNextKeyView" ref="506833582"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Here you can choose which rules and which weapon set will be applied in game.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">210</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{142, 160}, {240, 104}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="993770514"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="572108157">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">268</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="678356402">
-								<reference key="NSNextResponder" ref="572108157"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 117}</string>
-								<reference key="NSSuperview" ref="572108157"/>
-								<reference key="NSNextKeyView" ref="1068254353"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<object class="NSCustomResource" key="IBUIImage" id="835742298">
-									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">helpbottom.png</string>
-								</object>
-							</object>
-							<object class="IBUILabel" id="1068254353">
-								<reference key="NSNextResponder" ref="572108157"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{10, 8}, {138, 22}}</string>
-								<reference key="NSSuperview" ref="572108157"/>
-								<reference key="NSNextKeyView" ref="1023832701"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Max hedgehogs</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="1023832701">
-								<reference key="NSNextResponder" ref="572108157"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{11, 26}, {218, 73}}</string>
-								<reference key="NSSuperview" ref="572108157"/>
-								<reference key="NSNextKeyView" ref="90778258"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">This number is the maximum size for all the hogs playing (in every team).</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">218</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{35, 590}, {240, 117}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="678356402"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="189120545">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">265</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="261734864">
-								<reference key="NSNextResponder" ref="189120545"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 109}</string>
-								<reference key="NSSuperview" ref="189120545"/>
-								<reference key="NSNextKeyView" ref="578857422"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<reference key="IBUIImage" ref="835742298"/>
-							</object>
-							<object class="IBUILabel" id="578857422">
-								<reference key="NSNextResponder" ref="189120545"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{8, 6}, {138, 22}}</string>
-								<reference key="NSSuperview" ref="189120545"/>
-								<reference key="NSNextKeyView" ref="972150858"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Size slider</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="972150858">
-								<reference key="NSNextResponder" ref="189120545"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{11, 22}, {218, 73}}</string>
-								<reference key="NSSuperview" ref="189120545"/>
-								<reference key="NSNextKeyView"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">For Random and Maze maps you can decide to generate only maps of a certain size.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">218</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{695, 598}, {240, 109}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="261734864"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="1061986830">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">292</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="533288614">
-								<reference key="NSNextResponder" ref="1061986830"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 128}</string>
-								<reference key="NSSuperview" ref="1061986830"/>
-								<reference key="NSNextKeyView" ref="203633929"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<object class="NSCustomResource" key="IBUIImage">
-									<string key="NSClassName">NSImage</string>
-									<string key="NSResourceName">helpplain.png</string>
-								</object>
-							</object>
-							<object class="IBUILabel" id="203633929">
-								<reference key="NSNextResponder" ref="1061986830"/>
-								<int key="NSvFlags">288</int>
-								<string key="NSFrame">{{6, 8}, {229, 22}}</string>
-								<reference key="NSSuperview" ref="1061986830"/>
-								<reference key="NSNextKeyView" ref="345016434"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Tap anywhere to dismiss</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUITextAlignment">1</int>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="345016434">
-								<reference key="NSNextResponder" ref="1061986830"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{8, 32}, {224, 87}}</string>
-								<reference key="NSSuperview" ref="1061986830"/>
-								<reference key="NSNextKeyView" ref="977068896"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">224</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{45, 360}, {240, 128}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="533288614"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-					<object class="IBUIView" id="90778258">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">269</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUIImageView" id="109182727">
-								<reference key="NSNextResponder" ref="90778258"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrameSize">{240, 61}</string>
-								<reference key="NSSuperview" ref="90778258"/>
-								<reference key="NSNextKeyView" ref="815146899"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<reference key="IBUIImage" ref="835742298"/>
-							</object>
-							<object class="IBUILabel" id="815146899">
-								<reference key="NSNextResponder" ref="90778258"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{8, 3}, {138, 22}}</string>
-								<reference key="NSSuperview" ref="90778258"/>
-								<reference key="NSNextKeyView" ref="379008984"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">Start button</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="1061259526"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="379008984">
-								<reference key="NSNextResponder" ref="90778258"/>
-								<int key="NSvFlags">274</int>
-								<string key="NSFrame">{{11, 14}, {218, 46}}</string>
-								<reference key="NSSuperview" ref="90778258"/>
-								<reference key="NSNextKeyView" ref="189120545"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<string key="IBUIText">This button starts the game.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="506240258"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">218</double>
-							</object>
-						</array>
-						<string key="NSFrame">{{344, 646}, {240, 61}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<reference key="NSNextKeyView" ref="109182727"/>
-						<reference key="IBUIBackgroundColor" ref="469062490"/>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-					</object>
-				</array>
-				<string key="NSFrameSize">{1024, 768}</string>
-				<reference key="NSNextKeyView" ref="632193951"/>
-				<object class="NSColor" key="IBUIBackgroundColor">
-					<int key="NSColorSpace">3</int>
-					<bytes key="NSWhite">MCAwLjQAA</bytes>
-				</object>
-				<bool key="IBUIOpaque">NO</bool>
-				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="IBUIInterfaceOrientation">3</int>
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
-					<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
-					<string key="IBUITargetRuntime">IBIPadFramework</string>
-					<string key="IBUIDisplayName">iPad Full Screen</string>
-					<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<array key="dict.sortedKeys">
-							<integer value="1"/>
-							<integer value="3"/>
-						</array>
-						<array key="dict.values">
-							<string>{768, 1024}</string>
-							<string>{1024, 768}</string>
-						</array>
-					</object>
-					<int key="IBUIType">1</int>
-				</object>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-		</array>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<array key="connectionRecords">
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="766721923"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">dismiss</string>
-						<reference key="source" ref="766721923"/>
-						<reference key="destination" ref="841351856"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">16</int>
-				</object>
-			</array>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<array key="orderedObjects">
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<array key="object" id="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="841351856"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="606714003"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="766721923"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="977068896"/>
-							<reference ref="1061986830"/>
-							<reference ref="90778258"/>
-							<reference ref="649057968"/>
-							<reference ref="506833582"/>
-							<reference ref="885820836"/>
-							<reference ref="182206756"/>
-							<reference ref="632193951"/>
-							<reference ref="572108157"/>
-							<reference ref="189120545"/>
-						</array>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">60</int>
-						<reference key="object" ref="977068896"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="713859408"/>
-							<reference ref="896727228"/>
-							<reference ref="704238452"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Teams Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">43</int>
-						<reference key="object" ref="713859408"/>
-						<reference key="parent" ref="977068896"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">44</int>
-						<reference key="object" ref="896727228"/>
-						<reference key="parent" ref="977068896"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">45</int>
-						<reference key="object" ref="704238452"/>
-						<reference key="parent" ref="977068896"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">61</int>
-						<reference key="object" ref="1061986830"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="533288614"/>
-							<reference ref="203633929"/>
-							<reference ref="345016434"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Tap anywere Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">25</int>
-						<reference key="object" ref="533288614"/>
-						<reference key="parent" ref="1061986830"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">26</int>
-						<reference key="object" ref="203633929"/>
-						<reference key="parent" ref="1061986830"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">27</int>
-						<reference key="object" ref="345016434"/>
-						<reference key="parent" ref="1061986830"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">62</int>
-						<reference key="object" ref="90778258"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="109182727"/>
-							<reference ref="815146899"/>
-							<reference ref="379008984"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Start button Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">49</int>
-						<reference key="object" ref="109182727"/>
-						<reference key="parent" ref="90778258"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">50</int>
-						<reference key="object" ref="815146899"/>
-						<reference key="parent" ref="90778258"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">51</int>
-						<reference key="object" ref="379008984"/>
-						<reference key="parent" ref="90778258"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">63</int>
-						<reference key="object" ref="189120545"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="261734864"/>
-							<reference ref="578857422"/>
-							<reference ref="972150858"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Size slider Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">37</int>
-						<reference key="object" ref="261734864"/>
-						<reference key="parent" ref="189120545"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">38</int>
-						<reference key="object" ref="578857422"/>
-						<reference key="parent" ref="189120545"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">39</int>
-						<reference key="object" ref="972150858"/>
-						<reference key="parent" ref="189120545"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">64</int>
-						<reference key="object" ref="572108157"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="678356402"/>
-							<reference ref="1068254353"/>
-							<reference ref="1023832701"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Max hogs Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">34</int>
-						<reference key="object" ref="678356402"/>
-						<reference key="parent" ref="572108157"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">35</int>
-						<reference key="object" ref="1068254353"/>
-						<reference key="parent" ref="572108157"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">36</int>
-						<reference key="object" ref="1023832701"/>
-						<reference key="parent" ref="572108157"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">65</int>
-						<reference key="object" ref="649057968"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="1011244481"/>
-							<reference ref="636170775"/>
-							<reference ref="552788325"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Map theme Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">28</int>
-						<reference key="object" ref="1011244481"/>
-						<reference key="parent" ref="649057968"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">29</int>
-						<reference key="object" ref="636170775"/>
-						<reference key="parent" ref="649057968"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">30</int>
-						<reference key="object" ref="552788325"/>
-						<reference key="parent" ref="649057968"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">66</int>
-						<reference key="object" ref="506833582"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="379980516"/>
-							<reference ref="901581152"/>
-							<reference ref="595424508"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Map type Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">52</int>
-						<reference key="object" ref="379980516"/>
-						<reference key="parent" ref="506833582"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">53</int>
-						<reference key="object" ref="901581152"/>
-						<reference key="parent" ref="506833582"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">54</int>
-						<reference key="object" ref="595424508"/>
-						<reference key="parent" ref="506833582"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">67</int>
-						<reference key="object" ref="885820836"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="162303877"/>
-							<reference ref="323588470"/>
-							<reference ref="687330896"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Map preview Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">6</int>
-						<reference key="object" ref="162303877"/>
-						<reference key="parent" ref="885820836"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">7</int>
-						<reference key="object" ref="323588470"/>
-						<reference key="parent" ref="885820836"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">8</int>
-						<reference key="object" ref="687330896"/>
-						<reference key="parent" ref="885820836"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">68</int>
-						<reference key="object" ref="182206756"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="993770514"/>
-							<reference ref="488737408"/>
-							<reference ref="463058693"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Schemes &amp; Weapons Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">40</int>
-						<reference key="object" ref="993770514"/>
-						<reference key="parent" ref="182206756"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">41</int>
-						<reference key="object" ref="488737408"/>
-						<reference key="parent" ref="182206756"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">42</int>
-						<reference key="object" ref="463058693"/>
-						<reference key="parent" ref="182206756"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">69</int>
-						<reference key="object" ref="632193951"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="845663511"/>
-							<reference ref="823916653"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-						<string key="objectName">Customize Bubble</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">58</int>
-						<reference key="object" ref="845663511"/>
-						<reference key="parent" ref="632193951"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">59</int>
-						<reference key="object" ref="823916653"/>
-						<reference key="parent" ref="632193951"/>
-					</object>
-				</array>
-			</object>
-			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.CustomClassName">HelpPageLobbyViewController</string>
-				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="-2.CustomClassName">UIResponder</string>
-				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="2.CustomClassName">UIControl</string>
-				<reference key="2.IBNSViewMetadataGestureRecognizers" ref="0"/>
-				<string key="2.IBPersistedLastKnownCanvasPosition">{581, 369}</string>
-				<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="34.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="42.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="49.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="50.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="51.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="52.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="53.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="54.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="58.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="59.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<reference key="60.IBNSViewMetadataGestureRecognizers" ref="0"/>
-				<string key="60.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="61.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="62.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="63.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="64.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<reference key="65.IBNSViewMetadataGestureRecognizers" ref="0"/>
-				<string key="65.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="66.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="67.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="68.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="69.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			</dictionary>
-			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-			<nil key="activeLocalization"/>
-			<dictionary class="NSMutableDictionary" key="localizations"/>
-			<nil key="sourceID"/>
-			<int key="maxID">70</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes"/>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
-		<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="4600" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<string key="helpabove.png">{295, 156}</string>
-			<string key="helpbottom.png">{295, 156}</string>
-			<string key="helpleft.png">{308, 144}</string>
-			<string key="helpplain.png">{296, 138}</string>
-			<string key="helpright.png">{308, 144}</string>
-		</dictionary>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="8191" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HelpPageLobbyViewController">
+            <connections>
+                <outlet property="view" destination="2" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2" customClass="UIControl">
+            <rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" id="69" userLabel="Customize Bubble">
+                    <rect key="frame" x="10" y="8" width="278" height="52"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpleft.png" id="58">
+                            <rect key="frame" x="0.0" y="1" width="278" height="50"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Did you know you can customize almost everything in the settings page?" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="59" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="22" y="8" width="248" height="36"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Oblique" family="Helvetica" pointSize="14"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="65" userLabel="Map theme Bubble">
+                    <rect key="frame" x="742" y="360" width="240" height="102"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpabove.png" id="28">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="102"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Map theme" lineBreakMode="tailTruncation" minimumFontSize="10" id="29" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="11" y="19" width="218" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Here you can choose how your map will appear in game." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="30" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="11" y="43" width="218" height="51"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="66" userLabel="Map type Bubble">
+                    <rect key="frame" x="653" y="202" width="240" height="146"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpabove.png" id="52">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="146"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Map type" lineBreakMode="tailTruncation" minimumFontSize="10" id="53" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="11" y="22" width="221" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="54" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="11" y="46" width="218" height="94"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <string key="text">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="67" userLabel="Map preview Bubble">
+                    <rect key="frame" x="494" y="20" width="240" height="101"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpright.png" id="6">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="101"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Map preview" lineBreakMode="tailTruncation" minimumFontSize="10" id="7" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="7" width="218" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="This is a small preview of your next map. Tap to select / generate a new map." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="8" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="25" width="218" height="65"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="60" userLabel="Teams Bubble">
+                    <rect key="frame" x="358" y="389" width="242" height="171"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpabove.png" id="43">
+                            <rect key="frame" x="0.0" y="0.0" width="242" height="171"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Teams" lineBreakMode="tailTruncation" minimumFontSize="10" id="44" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="25" width="226" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="45" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="48" width="226" height="115"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <string key="text">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="68" userLabel="Schemes &amp; Weapons Bubble">
+                    <rect key="frame" x="142" y="160" width="240" height="104"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpleft.png" id="40">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="104"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Schemes and Weapons" lineBreakMode="tailTruncation" minimumFontSize="10" id="41" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="23" y="8" width="204" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Here you can choose which rules and which weapon set will be applied in game." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="42" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="23" y="27" width="210" height="71"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="64" userLabel="Max hogs Bubble">
+                    <rect key="frame" x="35" y="590" width="240" height="117"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpbottom.png" id="34">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="117"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Max hedgehogs" lineBreakMode="tailTruncation" minimumFontSize="10" id="35" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="10" y="8" width="219" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="This number is the maximum size for all the hogs playing (in every team)." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="36" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="11" y="32" width="218" height="62"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="63" userLabel="Size slider Bubble">
+                    <rect key="frame" x="695" y="598" width="240" height="109"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpbottom.png" id="37">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="109"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Size slider" lineBreakMode="tailTruncation" minimumFontSize="10" id="38" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="6" width="224" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="For Random and Maze maps you can decide to generate only maps of a certain size." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="39" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="29" width="224" height="59"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="61" userLabel="Tap anywere Bubble">
+                    <rect key="frame" x="45" y="360" width="240" height="128"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpplain.png" id="25">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="128"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tap anywhere to dismiss" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="26" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="6" y="7" width="229" height="34"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="27" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="38" width="224" height="81"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" id="62" userLabel="Start button Bubble">
+                    <rect key="frame" x="344" y="646" width="240" height="61"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <subviews>
+                        <imageView opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" image="helpbottom.png" id="49">
+                            <rect key="frame" x="0.0" y="0.0" width="240" height="61"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                        </imageView>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Start button" lineBreakMode="tailTruncation" minimumFontSize="10" id="50" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="3" width="224" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="This button starts the game." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="51" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="8" y="25" width="224" height="28"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </view>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" white="0.0" alpha="0.40000000000000002" colorSpace="calibratedWhite"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <connections>
+                <action selector="dismiss" destination="-1" eventType="touchUpInside" id="16"/>
+            </connections>
+            <point key="canvasLocation" x="581" y="369"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="helpabove.png" width="295" height="156"/>
+        <image name="helpbottom.png" width="295" height="156"/>
+        <image name="helpleft.png" width="308" height="144"/>
+        <image name="helpplain.png" width="296" height="138"/>
+        <image name="helpright.png" width="308" height="144"/>
+    </resources>
+</document>
--- a/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController-iPhone.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController-iPhone.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,614 +1,166 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
-	<data>
-		<int key="IBDocument.SystemTarget">1792</int>
-		<string key="IBDocument.SystemVersion">14E46</string>
-		<string key="IBDocument.InterfaceBuilderVersion">7706</string>
-		<string key="IBDocument.AppKitVersion">1348.17</string>
-		<string key="IBDocument.HIToolboxVersion">758.70</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">7703</string>
-		</object>
-		<array key="IBDocument.IntegratedClassDependencies">
-			<string>IBProxyObject</string>
-			<string>IBUILabel</string>
-			<string>IBUIScrollView</string>
-			<string>IBUIView</string>
-		</array>
-		<array key="IBDocument.PluginDependencies">
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</array>
-		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
-		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<object class="IBProxyObject" id="841351856">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBProxyObject" id="606714003">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBUIView" id="766721923">
-				<nil key="NSNextResponder"/>
-				<int key="NSvFlags">274</int>
-				<array class="NSMutableArray" key="NSSubviews">
-					<object class="IBUIScrollView" id="451725730">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">274</int>
-						<array class="NSMutableArray" key="NSSubviews">
-							<object class="IBUILabel" id="381271451">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 587}, {440, 52}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.</string>
-								<object class="NSColor" key="IBUITextColor" id="283637272">
-									<int key="NSColorSpace">1</int>
-									<bytes key="NSRGB">MCAwIDAAA</bytes>
-								</object>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<int key="IBUITextAlignment">1</int>
-								<object class="IBUIFontDescription" key="IBUIFontDescription" id="82958746">
-									<string key="name">Helvetica</string>
-									<string key="family">Helvetica</string>
-									<int key="traits">0</int>
-									<double key="pointSize">16</double>
-								</object>
-								<object class="NSFont" key="IBUIFont" id="818038162">
-									<string key="NSName">Helvetica</string>
-									<double key="NSSize">16</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-							<object class="IBUILabel" id="160273292">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 279}, {138, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Size slider</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<object class="IBUIFontDescription" key="IBUIFontDescription" id="460648940">
-									<string key="name">Helvetica-Bold</string>
-									<string key="family">Helvetica</string>
-									<int key="traits">2</int>
-									<double key="pointSize">18</double>
-								</object>
-								<object class="NSFont" key="IBUIFont" id="583365693">
-									<string key="NSName">Helvetica-Bold</string>
-									<double key="NSSize">18</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="399703336">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 298}, {440, 44}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">For Random and Maze maps you can decide to generate only maps of a certain size.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-							<object class="IBUILabel" id="780482878">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 511}, {204, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Schemes and Weapons</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="460648940"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="715276626">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 530}, {433, 45}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Here you can choose which rules and which weapon set will be applied in game.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">433</double>
-							</object>
-							<object class="IBUILabel" id="81383071">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 68}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Map preview</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="460648940"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="518187701">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 88}, {440, 44}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">This is a small preview of your next map. Tap to select / generate a new map.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-							<object class="IBUILabel" id="601567061">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 140}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Map type</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="460648940"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="514192288">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 164}, {440, 58}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-							<object class="IBUILabel" id="136109594">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 229}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Map theme</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="460648940"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="345586237">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 244}, {440, 33}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Here you can choose how your map will appear in game.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-							<object class="IBUILabel" id="686505362">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 347}, {138, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Max hedgehogs</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="460648940"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="629677748">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 367}, {440, 41}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">This number is the maximum size for all the hogs playing (in every team).</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-							<object class="IBUILabel" id="79643170">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">292</int>
-								<string key="NSFrame">{{20, 418}, {109, 22}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Teams</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<reference key="IBUIFontDescription" ref="460648940"/>
-								<reference key="IBUIFont" ref="583365693"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-							</object>
-							<object class="IBUILabel" id="676482380">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 436}, {433, 66}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<reference key="IBUIFontDescription" ref="82958746"/>
-								<reference key="IBUIFont" ref="818038162"/>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">433</double>
-							</object>
-							<object class="IBUILabel" id="66496634">
-								<reference key="NSNextResponder" ref="451725730"/>
-								<int key="NSvFlags">290</int>
-								<string key="NSFrame">{{20, 3}, {440, 60}}</string>
-								<reference key="NSSuperview" ref="451725730"/>
-								<bool key="IBUIOpaque">NO</bool>
-								<bool key="IBUIClipsSubviews">YES</bool>
-								<int key="IBUIContentMode">7</int>
-								<bool key="IBUIUserInteractionEnabled">NO</bool>
-								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-								<string key="IBUIText">Here you can find help for the game configuration options. You can customize almost everything in the settings page.</string>
-								<reference key="IBUITextColor" ref="283637272"/>
-								<nil key="IBUIHighlightedColor"/>
-								<int key="IBUIBaselineAdjustment">1</int>
-								<float key="IBUIMinimumFontSize">10</float>
-								<int key="IBUINumberOfLines">0</int>
-								<int key="IBUITextAlignment">1</int>
-								<object class="IBUIFontDescription" key="IBUIFontDescription">
-									<string key="name">Helvetica-Oblique</string>
-									<string key="family">Helvetica</string>
-									<int key="traits">1</int>
-									<double key="pointSize">16</double>
-								</object>
-								<object class="NSFont" key="IBUIFont">
-									<string key="NSName">Helvetica-Oblique</string>
-									<double key="NSSize">16</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
-								<double key="preferredMaxLayoutWidth">440</double>
-							</object>
-						</array>
-						<string key="NSFrameSize">{480, 276}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<bool key="IBUIMultipleTouchEnabled">YES</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-					</object>
-				</array>
-				<string key="NSFrameSize">{480, 276}</string>
-				<object class="NSColor" key="IBUIBackgroundColor">
-					<int key="NSColorSpace">2</int>
-					<bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA</bytes>
-				</object>
-				<bool key="IBUIOpaque">NO</bool>
-				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-				<object class="IBUISimulatedToolbarMetrics" key="IBUISimulatedBottomBarMetrics"/>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="IBUIInterfaceOrientation">3</int>
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics">
-					<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
-					<string key="IBUIDisplayName">Freeform</string>
-				</object>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-		</array>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<array key="connectionRecords">
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="766721923"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">scrollView</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="451725730"/>
-					</object>
-					<int key="connectionID">95</int>
-				</object>
-			</array>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<array key="orderedObjects">
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<array key="object" id="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="841351856"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="606714003"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="766721923"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="451725730"/>
-						</array>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">60</int>
-						<reference key="object" ref="451725730"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="381271451"/>
-							<reference ref="160273292"/>
-							<reference ref="399703336"/>
-							<reference ref="81383071"/>
-							<reference ref="518187701"/>
-							<reference ref="601567061"/>
-							<reference ref="514192288"/>
-							<reference ref="136109594"/>
-							<reference ref="345586237"/>
-							<reference ref="686505362"/>
-							<reference ref="629677748"/>
-							<reference ref="780482878"/>
-							<reference ref="715276626"/>
-							<reference ref="79643170"/>
-							<reference ref="676482380"/>
-							<reference ref="66496634"/>
-						</array>
-						<reference key="parent" ref="766721923"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">61</int>
-						<reference key="object" ref="381271451"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">62</int>
-						<reference key="object" ref="160273292"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">63</int>
-						<reference key="object" ref="399703336"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">64</int>
-						<reference key="object" ref="780482878"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">65</int>
-						<reference key="object" ref="715276626"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">66</int>
-						<reference key="object" ref="81383071"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">67</int>
-						<reference key="object" ref="518187701"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">68</int>
-						<reference key="object" ref="601567061"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">69</int>
-						<reference key="object" ref="514192288"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">70</int>
-						<reference key="object" ref="136109594"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">71</int>
-						<reference key="object" ref="345586237"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">72</int>
-						<reference key="object" ref="686505362"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">73</int>
-						<reference key="object" ref="629677748"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">74</int>
-						<reference key="object" ref="79643170"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">75</int>
-						<reference key="object" ref="676482380"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">76</int>
-						<reference key="object" ref="66496634"/>
-						<reference key="parent" ref="451725730"/>
-					</object>
-				</array>
-			</object>
-			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.CustomClassName">HelpPageLobbyViewController</string>
-				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="-2.CustomClassName">UIResponder</string>
-				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="2.IBPersistedLastKnownCanvasPosition">{505, 338}</string>
-				<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="60.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="61.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="62.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="63.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="64.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="65.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="66.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="67.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="68.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="69.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="70.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="71.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="72.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="73.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="74.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="75.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="76.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			</dictionary>
-			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-			<nil key="activeLocalization"/>
-			<dictionary class="NSMutableDictionary" key="localizations"/>
-			<nil key="sourceID"/>
-			<int key="maxID">95</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes"/>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
-		<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="4600" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HelpPageLobbyViewController">
+            <connections>
+                <outlet property="scrollView" destination="60" id="95"/>
+                <outlet property="view" destination="2" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="276"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="60">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="276"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <subviews>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="61" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="587" width="440" height="52"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Size slider" lineBreakMode="tailTruncation" minimumFontSize="10" id="62" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="279" width="138" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="For Random and Maze maps you can decide to generate only maps of a certain size." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="63" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="298" width="440" height="44"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Schemes and Weapons" lineBreakMode="tailTruncation" minimumFontSize="10" id="64" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="511" width="204" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Here you can choose which rules and which weapon set will be applied in game." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="65" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="530" width="433" height="45"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Map preview" lineBreakMode="tailTruncation" minimumFontSize="10" id="66" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="68" width="109" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="This is a small preview of your next map. Tap to select / generate a new map." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="67" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="88" width="440" height="44"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Map type" lineBreakMode="tailTruncation" minimumFontSize="10" id="68" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="140" width="109" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="69" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="164" width="440" height="58"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <string key="text">Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.</string>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Map theme" lineBreakMode="tailTruncation" minimumFontSize="10" id="70" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="229" width="109" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Here you can choose how your map will appear in game." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="71" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="244" width="440" height="33"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Max hedgehogs" lineBreakMode="tailTruncation" minimumFontSize="10" id="72" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="347" width="138" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="This number is the maximum size for all the hogs playing (in every team)." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="73" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="367" width="440" height="41"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Teams" lineBreakMode="tailTruncation" minimumFontSize="10" id="74" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="418" width="109" height="22"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="75" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="436" width="433" height="66"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <string key="text">Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.</string>
+                            <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Here you can find help for the game configuration options. You can customize almost everything in the settings page." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" id="76" customClass="LabelWithIBLocalization">
+                            <rect key="frame" x="20" y="3" width="440" height="60"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <animations/>
+                            <fontDescription key="fontDescription" name="Helvetica-Oblique" family="Helvetica" pointSize="16"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <animations/>
+                </scrollView>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" red="0.99607849120000003" green="0.98823535439999999" blue="1" alpha="1" colorSpace="deviceRGB"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="505" y="338"/>
+        </view>
+    </objects>
+</document>
--- a/project_files/HedgewarsMobile/Classes/HogHatViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HogHatViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -26,13 +26,11 @@
 
     NSArray *hatArray;
     UIImage *normalHogSprite;
-    NSIndexPath *lastIndexPath;
 }
 
 @property (nonatomic,retain) NSDictionary *teamDictionary;
 @property (nonatomic) NSInteger selectedHog;
 @property (nonatomic,retain) NSArray *hatArray;
 @property (nonatomic,retain) UIImage *normalHogSprite;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
 
 @end
--- a/project_files/HedgewarsMobile/Classes/HogHatViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HogHatViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -21,7 +21,7 @@
 
 
 @implementation HogHatViewController
-@synthesize teamDictionary, hatArray, normalHogSprite, lastIndexPath, selectedHog;
+@synthesize teamDictionary, hatArray, normalHogSprite, selectedHog;
 
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
@@ -77,8 +77,7 @@
     if (cell == nil)
         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
 
-    NSDictionary *hog = [[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:selectedHog];
-    NSString *hat = [hatArray objectAtIndex:[indexPath row]];
+    NSString *hat = [self.hatArray objectAtIndex:[indexPath row]];
     cell.textLabel.text = [hat stringByDeletingPathExtension];
 
     NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
@@ -87,9 +86,9 @@
     cell.imageView.image = [self.normalHogSprite mergeWith:hatSprite atPoint:CGPointMake(0, 5)];
     [hatSprite release];
 
-    if ([hat isEqualToString:[hog objectForKey:@"hat"]]) {
+    NSDictionary *hog = (self.selectedHog != -1) ? [[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:self.selectedHog] : nil;
+    if ([[hat stringByDeletingPathExtension] isEqualToString:[hog objectForKey:@"hat"]]) {
         cell.accessoryType = UITableViewCellAccessoryCheckmark;
-        self.lastIndexPath = indexPath;
     } else {
         cell.accessoryType = UITableViewCellAccessoryNone;
     }
@@ -100,45 +99,53 @@
 
 #pragma mark -
 #pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    NSInteger newRow = [indexPath row];
-    NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
-
-    if (newRow != oldRow) {
-        // if the two selected rows differ update data on the hog dictionary and reload table content
-        // TODO: maybe this section could be cleaned up
-        NSDictionary *oldHog = [[teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:selectedHog];
+-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    NSInteger selectedRow = [indexPath row];
+    NSString *newHat = [[self.hatArray objectAtIndex:selectedRow] stringByDeletingPathExtension];
+    
+    // update data on the hogs dictionary
+    if (self.selectedHog != -1)
+    {
+        // update only selected hog with new hat
+        [self updateTeamDictionaryWithNewHat:newHat forStartHogIndex:self.selectedHog toEndHogIndex:self.selectedHog];
+    }
+    else
+    {
+        // update all hogs with new hat
+        NSInteger startIndex = 0;
+        NSInteger endIndex = [[self.teamDictionary objectForKey:@"hedgehogs"] count] - 1;
+        [self updateTeamDictionaryWithNewHat:newHat forStartHogIndex:startIndex toEndHogIndex:endIndex];
+    }
 
-        NSMutableDictionary *newHog = [[NSMutableDictionary alloc] initWithDictionary: oldHog];
-        [newHog setObject:[[hatArray objectAtIndex:newRow] stringByDeletingPathExtension] forKey:@"hat"];
-        [[teamDictionary objectForKey:@"hedgehogs"] replaceObjectAtIndex:selectedHog withObject:newHog];
-        [newHog release];
-
-        // tell our boss to write this new stuff on disk
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil];
-
-        UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
-        newCell.accessoryType = UITableViewCellAccessoryCheckmark;
-        UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
-        oldCell.accessoryType = UITableViewCellAccessoryNone;
-        self.lastIndexPath = indexPath;
-        [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
-    }
-    [aTableView deselectRowAtIndexPath:indexPath animated:YES];
+    // tell our boss to write this new stuff on disk
+    [[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil];
+    
     [self.navigationController popViewControllerAnimated:YES];
 }
 
+- (void)updateTeamDictionaryWithNewHat:(NSString *)newHat forStartHogIndex:(NSInteger)startIndex toEndHogIndex:(NSInteger)endIndex
+{
+    NSMutableArray *hogsArray = [self.teamDictionary objectForKey:@"hedgehogs"];
+    
+    for (NSInteger i=startIndex; i <= endIndex; i++)
+    {
+        NSDictionary *oldHog = [hogsArray objectAtIndex:i];
+        NSMutableDictionary *newHog = [[NSMutableDictionary alloc] initWithDictionary:oldHog];
+        [newHog setObject:newHat forKey:@"hat"];
+        [hogsArray replaceObjectAtIndex:i withObject:newHog];
+        [newHog release];
+    }
+}
 
 #pragma mark -
 #pragma mark Memory management
 -(void) didReceiveMemoryWarning {
-    self.lastIndexPath = nil;
     MSG_MEMCLEAN();
     [super didReceiveMemoryWarning];
 }
 
 -(void) viewDidUnload {
-    self.lastIndexPath = nil;
     self.normalHogSprite = nil;
     self.teamDictionary = nil;
     self.hatArray = nil;
@@ -150,7 +157,6 @@
     releaseAndNil(hatArray);
     releaseAndNil(teamDictionary);
     releaseAndNil(normalHogSprite);
-    releaseAndNil(lastIndexPath);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m	Mon Nov 09 16:34:32 2015 +0000
@@ -18,7 +18,7 @@
 
 
 #import "HoldTableViewCell.h"
-
+#import "UITableViewCell+FindTable.h"
 
 @implementation HoldTableViewCell
 @synthesize delegate;
@@ -66,22 +66,6 @@
     }
 }
 
-- (UITableView *)findTable
-{
-    UIView *tableView = self.superview;
-    while (![tableView isKindOfClass:[UITableView class]] || (tableView == nil))
-    {
-        tableView = tableView.superview;
-        
-        if ([tableView isEqual:self.window])
-        {
-            tableView = nil;
-        }
-    }
-    
-    return (UITableView *)tableView;
-}
-
 -(void) dealloc {
     self.delegate = nil;
     [super dealloc];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/LabelWithIBLocalization.h	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,23 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import <UIKit/UIKit.h>
+
+@interface LabelWithIBLocalization : UILabel
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/LabelWithIBLocalization.m	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,41 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import "LabelWithIBLocalization.h"
+
+@interface LabelWithIBLocalization ()
+@property (nonatomic) BOOL isAlreadyLocalized;
+@end
+
+@implementation LabelWithIBLocalization
+
+- (void)layoutSubviews
+{
+    [super layoutSubviews];
+    
+    if (!self.isAlreadyLocalized)
+    {
+        // Text which set in Interface Builder used here as a key for localization
+        self.text = NSLocalizedString(self.text, nil);
+        
+        [self setNeedsLayout];
+        self.isAlreadyLocalized = YES;
+    }
+}
+
+@end
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -31,7 +31,6 @@
 #pragma mark View lifecycle
 -(void) viewDidLoad {
     [super viewDidLoad];
-    srandom(time(NULL));
 
     NSArray *array = [[NSArray alloc] initWithObjects:
                       NSLocalizedString(@"Brutal",@""),
@@ -59,10 +58,6 @@
     [self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
 }
 
--(void) viewWillDisappear:(BOOL)animated {
- // stuff like checking that at least 1 field was selected
-}
-
 #pragma mark -
 #pragma mark Table view data source
 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
@@ -133,7 +128,7 @@
     if (theSwitch.on) {
         numberOfSections = 2;
         [self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
-        level = 1 + (random() % ([levelArray count] - 1));
+        level = 1 + arc4random_uniform((int)[levelArray count] - 1);
     } else {
         numberOfSections = 1;
         [self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitCornersView.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitCornersView.m	Mon Nov 09 16:34:32 2015 +0000
@@ -34,8 +34,6 @@
 - (void)dealloc
 {
 	self.cornerBackgroundColor = nil;
-    
-    [super dealloc];
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitDividerView.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitDividerView.m	Mon Nov 09 16:34:32 2015 +0000
@@ -31,8 +31,6 @@
 - (void)dealloc
 {
 	self.splitViewController = nil;
-    
-    [super dealloc];
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -152,8 +152,6 @@
 	_delegate = nil;
 	_viewControllers = nil;
 	[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
-    
-    [super dealloc];
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController-iPad.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController-iPad.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,446 +1,135 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
-	<data>
-		<int key="IBDocument.SystemTarget">1792</int>
-		<string key="IBDocument.SystemVersion">14E46</string>
-		<string key="IBDocument.InterfaceBuilderVersion">7706</string>
-		<string key="IBDocument.AppKitVersion">1348.17</string>
-		<string key="IBDocument.HIToolboxVersion">758.70</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">7703</string>
-		</object>
-		<array key="IBDocument.IntegratedClassDependencies">
-			<string>IBProxyObject</string>
-			<string>IBUIButton</string>
-			<string>IBUIImageView</string>
-			<string>IBUIView</string>
-		</array>
-		<array key="IBDocument.PluginDependencies">
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</array>
-		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
-		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<object class="IBProxyObject" id="372490531">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBProxyObject" id="975951072">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBUIView" id="191373211">
-				<nil key="NSNextResponder"/>
-				<int key="NSvFlags">294</int>
-				<array class="NSMutableArray" key="NSSubviews">
-					<object class="IBUIImageView" id="976741091">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">274</int>
-						<string key="NSFrameSize">{1024, 768}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="95106947"/>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">background.png</string>
-						</object>
-					</object>
-					<object class="IBUIButton" id="867308721">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">301</int>
-						<string key="NSFrame">{{383, 389}, {271, 244}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="894101036"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<double key="IBUITitleEdgeInsets.top">215</double>
-						<double key="IBUITitleEdgeInsets.bottom">0.0</double>
-						<double key="IBUITitleEdgeInsets.left">0.0</double>
-						<double key="IBUITitleEdgeInsets.right">0.0</double>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">2</int>
-							<bytes key="NSRGB">MC45OTYwNzg0OTEyIDAuODAwMDAwMDcxNSAwLjAzOTIxNTY4NzY2AA</bytes>
-						</object>
-						<object class="NSColor" key="IBUIHighlightedTitleColor" id="918890028">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MQA</bytes>
-						</object>
-						<object class="NSColor" key="IBUINormalTitleShadowColor" id="112471976">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MC41AA</bytes>
-						</object>
-						<object class="NSCustomResource" key="IBUINormalImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">localplayButton.png</string>
-						</object>
-						<object class="IBUIFontDescription" key="IBUIFontDescription" id="355429190">
-							<string key="name">Helvetica-Bold</string>
-							<string key="family">Helvetica</string>
-							<int key="traits">2</int>
-							<double key="pointSize">15</double>
-						</object>
-						<object class="NSFont" key="IBUIFont" id="917635782">
-							<string key="NSName">Helvetica-Bold</string>
-							<double key="NSSize">15</double>
-							<int key="NSfFlags">16</int>
-						</object>
-					</object>
-					<object class="IBUIButton" id="95106947">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">289</int>
-						<string key="NSFrame">{{986, 19}, {18, 19}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="1019880682"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<float key="IBUIAlpha">0.31690141558647156</float>
-						<int key="IBUITag">3</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<int key="IBUIButtonType">3</int>
-						<bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<reference key="IBUIFontDescription" ref="355429190"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="898948205">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">265</int>
-						<string key="NSFrame">{{940, 686}, {64, 64}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">2</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<object class="NSCustomResource" key="IBUINormalImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">settingsButton.png</string>
-						</object>
-						<reference key="IBUIFontDescription" ref="355429190"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="894101036">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{20, 686}, {64, 64}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="719094980"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">4</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<object class="NSCustomResource" key="IBUINormalImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">savesButton.png</string>
-						</object>
-						<reference key="IBUIFontDescription" ref="355429190"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIImageView" id="1019880682">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">301</int>
-						<string key="NSFrame">{{242, 43}, {540, 300}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="867308721"/>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">title.png</string>
-						</object>
-					</object>
-					<object class="IBUIButton" id="357438048">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">269</int>
-						<string key="NSFrame">{{565, 686}, {89, 37}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="898948205"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">5</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<int key="IBUIButtonType">1</int>
-						<object class="NSColor" key="IBUINormalTitleColor" id="194673352">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<string key="IBUINormalTitle">Missions</string>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<reference key="IBUIFontDescription" ref="355429190"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="719094980">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">269</int>
-						<string key="NSFrame">{{383, 686}, {89, 37}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSNextKeyView" ref="357438048"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">6</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<int key="IBUIButtonType">1</int>
-						<reference key="IBUINormalTitleColor" ref="194673352"/>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<string key="IBUINormalTitle">Simple</string>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<reference key="IBUIFontDescription" ref="355429190"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-				</array>
-				<string key="NSFrameSize">{1024, 768}</string>
-				<reference key="NSNextKeyView" ref="976741091"/>
-				<object class="NSColor" key="IBUIBackgroundColor">
-					<int key="NSColorSpace">1</int>
-					<bytes key="NSRGB">MCAwIDAAA</bytes>
-					<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
-				</object>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="IBUIInterfaceOrientation">3</int>
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
-					<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
-					<string key="IBUITargetRuntime">IBIPadFramework</string>
-					<string key="IBUIDisplayName">iPad Full Screen</string>
-					<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<array key="dict.sortedKeys">
-							<integer value="1"/>
-							<integer value="3"/>
-						</array>
-						<array key="dict.values">
-							<string>{768, 1024}</string>
-							<string>{1024, 768}</string>
-						</array>
-					</object>
-					<int key="IBUIType">1</int>
-				</object>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-		</array>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<array key="connectionRecords">
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="191373211"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">simpleGameButton</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="719094980"/>
-					</object>
-					<int key="connectionID">95</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">missionsButton</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="357438048"/>
-					</object>
-					<int key="connectionID">96</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="867308721"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">48</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="95106947"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">47</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="898948205"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">54</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="894101036"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">89</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="357438048"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">92</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="719094980"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">94</int>
-				</object>
-			</array>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<array key="orderedObjects">
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<array key="object" id="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">1</int>
-						<reference key="object" ref="191373211"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="976741091"/>
-							<reference ref="867308721"/>
-							<reference ref="898948205"/>
-							<reference ref="894101036"/>
-							<reference ref="1019880682"/>
-							<reference ref="95106947"/>
-							<reference ref="357438048"/>
-							<reference ref="719094980"/>
-						</array>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="372490531"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="975951072"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">39</int>
-						<reference key="object" ref="867308721"/>
-						<reference key="parent" ref="191373211"/>
-						<string key="objectName">local</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">45</int>
-						<reference key="object" ref="95106947"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">52</int>
-						<reference key="object" ref="898948205"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">37</int>
-						<reference key="object" ref="976741091"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">88</int>
-						<reference key="object" ref="894101036"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">90</int>
-						<reference key="object" ref="1019880682"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">91</int>
-						<reference key="object" ref="357438048"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">93</int>
-						<reference key="object" ref="719094980"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-				</array>
-			</object>
-			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.CustomClassName">MainMenuViewController</string>
-				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="-2.CustomClassName">UIResponder</string>
-				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<reference key="1.IBNSViewMetadataGestureRecognizers" ref="0"/>
-				<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="52.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="88.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="90.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="91.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="93.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			</dictionary>
-			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-			<nil key="activeLocalization"/>
-			<dictionary class="NSMutableDictionary" key="localizations"/>
-			<nil key="sourceID"/>
-			<int key="maxID">96</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes"/>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
-		<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="4600" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<string key="background.png">{1024, 768}</string>
-			<string key="localplayButton.png">{263, 244}</string>
-			<string key="savesButton.png">{64, 64}</string>
-			<string key="settingsButton.png">{64, 64}</string>
-			<string key="title.png">{540, 300}</string>
-		</dictionary>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MainMenuViewController">
+            <connections>
+                <outlet property="missionsButton" destination="91" id="96"/>
+                <outlet property="simpleGameButton" destination="93" id="95"/>
+                <outlet property="view" destination="1" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="1">
+            <rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <subviews>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="background.png" id="37">
+                    <rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <animations/>
+                </imageView>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="39" userLabel="local">
+                    <rect key="frame" x="383" y="389" width="271" height="244"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <inset key="titleEdgeInsets" minX="0.0" minY="215" maxX="0.0" maxY="0.0"/>
+                    <state key="normal" image="localplayButton.png">
+                        <color key="titleColor" red="0.99607849120000003" green="0.80000007149999997" blue="0.039215687659999998" alpha="1" colorSpace="deviceRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="48"/>
+                    </connections>
+                </button>
+                <button opaque="NO" clipsSubviews="YES" alpha="0.69999999999999996" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="infoLight" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="45">
+                    <rect key="frame" x="984" y="20" width="22" height="22"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <color key="tintColor" red="0.99607843137254903" green="0.85098039215686272" blue="0.039215686274509803" alpha="1" colorSpace="calibratedRGB"/>
+                    <state key="normal">
+                        <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="47"/>
+                    </connections>
+                </button>
+                <button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="52">
+                    <rect key="frame" x="940" y="686" width="64" height="64"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" image="settingsButton.png">
+                        <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="54"/>
+                    </connections>
+                </button>
+                <button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="88">
+                    <rect key="frame" x="20" y="686" width="64" height="64"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" image="savesButton.png">
+                        <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="89"/>
+                    </connections>
+                </button>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="title.png" id="90">
+                    <rect key="frame" x="242" y="43" width="540" height="300"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                </imageView>
+                <button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="91">
+                    <rect key="frame" x="565" y="686" width="89" height="37"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Missions">
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="92"/>
+                    </connections>
+                </button>
+                <button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="93">
+                    <rect key="frame" x="383" y="686" width="89" height="37"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Simple">
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="94"/>
+                    </connections>
+                </button>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <point key="canvasLocation" x="644" y="499"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="background.png" width="1024" height="768"/>
+        <image name="localplayButton.png" width="263" height="244"/>
+        <image name="savesButton.png" width="64" height="64"/>
+        <image name="settingsButton.png" width="64" height="64"/>
+        <image name="title.png" width="540" height="300"/>
+    </resources>
+</document>
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController-iPhone.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController-iPhone.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,581 +1,137 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
-	<data>
-		<int key="IBDocument.SystemTarget">1792</int>
-		<string key="IBDocument.SystemVersion">14E46</string>
-		<string key="IBDocument.InterfaceBuilderVersion">7706</string>
-		<string key="IBDocument.AppKitVersion">1348.17</string>
-		<string key="IBDocument.HIToolboxVersion">758.70</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">7703</string>
-		</object>
-		<array key="IBDocument.IntegratedClassDependencies">
-			<string>IBProxyObject</string>
-			<string>IBUIButton</string>
-			<string>IBUIImageView</string>
-			<string>IBUIView</string>
-		</array>
-		<array key="IBDocument.PluginDependencies">
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</array>
-		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
-		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<object class="IBProxyObject" id="372490531">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBProxyObject" id="975951072">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBUIView" id="191373211">
-				<reference key="NSNextResponder"/>
-				<int key="NSvFlags">293</int>
-				<array class="NSMutableArray" key="NSSubviews">
-					<object class="IBUIImageView" id="249993817">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">274</int>
-						<string key="NSFrameSize">{480, 320}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="818907840"/>
-						<object class="NSColor" key="IBUIBackgroundColor">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MCAwAA</bytes>
-						</object>
-						<int key="IBUIContentMode">2</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">background.png</string>
-						</object>
-					</object>
-					<object class="IBUIImageView" id="171108356">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">293</int>
-						<string key="NSFrame">{{105, 20}, {270, 150}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="670499101"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-						<int key="IBUIContentMode">4</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">title.png</string>
-						</object>
-					</object>
-					<object class="IBUIButton" id="670499101">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">289</int>
-						<string key="NSFrame">{{376, 14}, {89, 31}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="1052303532"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">5</int>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<int key="IBUIButtonType">1</int>
-						<object class="NSColor" key="IBUINormalTitleColor" id="989198518">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
-						</object>
-						<object class="NSColor" key="IBUIHighlightedTitleColor" id="918890028">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MQA</bytes>
-						</object>
-						<string key="IBUINormalTitle">Missions</string>
-						<object class="NSColor" key="IBUINormalTitleShadowColor" id="112471976">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MC41AA</bytes>
-						</object>
-						<object class="IBUIFontDescription" key="IBUIFontDescription" id="748254727">
-							<string key="name">Helvetica-Bold</string>
-							<string key="family">Helvetica</string>
-							<int key="traits">2</int>
-							<double key="pointSize">15</double>
-						</object>
-						<object class="NSFont" key="IBUIFont" id="917635782">
-							<string key="NSName">Helvetica-Bold</string>
-							<double key="NSSize">15</double>
-							<int key="NSfFlags">16</int>
-						</object>
-					</object>
-					<object class="IBUIButton" id="124270424">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">269</int>
-						<string key="NSFrame">{{190, 200}, {100, 100}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="753723574"/>
-						<object class="NSColor" key="IBUIBackgroundColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MCAwIDAgMAA</bytes>
-						</object>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<object class="NSCustomResource" key="IBUINormalImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">localplayButton.png</string>
-						</object>
-						<reference key="IBUIFontDescription" ref="748254727"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="753723574">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">265</int>
-						<string key="NSFrame">{{396, 236}, {64, 64}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-						<int key="IBUITag">2</int>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<object class="NSCustomResource" key="IBUINormalImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">settingsButton.png</string>
-						</object>
-						<reference key="IBUIFontDescription" ref="748254727"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="705508539">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{20, 236}, {64, 64}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="124270424"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-						<int key="IBUITag">4</int>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<object class="NSCustomResource" key="IBUINormalImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">savesButton.png</string>
-						</object>
-						<reference key="IBUIFontDescription" ref="748254727"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="818907840">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">292</int>
-						<string key="NSFrame">{{20, 19}, {18, 19}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="171108356"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<float key="IBUIAlpha">0.5</float>
-						<int key="IBUITag">3</int>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<int key="IBUIButtonType">3</int>
-						<bool key="IBUIShowsTouchWhenHighlighted">YES</bool>
-						<object class="NSColor" key="IBUINormalTitleColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
-						</object>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<reference key="IBUIFontDescription" ref="748254727"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-					<object class="IBUIButton" id="1052303532">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">289</int>
-						<string key="NSFrame">{{376, 57}, {89, 31}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<reference key="NSWindow"/>
-						<reference key="NSNextKeyView" ref="705508539"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">6</int>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<int key="IBUIButtonType">1</int>
-						<reference key="IBUINormalTitleColor" ref="989198518"/>
-						<reference key="IBUIHighlightedTitleColor" ref="918890028"/>
-						<string key="IBUINormalTitle">Simple</string>
-						<reference key="IBUINormalTitleShadowColor" ref="112471976"/>
-						<reference key="IBUIFontDescription" ref="748254727"/>
-						<reference key="IBUIFont" ref="917635782"/>
-					</object>
-				</array>
-				<string key="NSFrameSize">{480, 320}</string>
-				<reference key="NSSuperview"/>
-				<reference key="NSWindow"/>
-				<reference key="NSNextKeyView" ref="249993817"/>
-				<object class="NSColor" key="IBUIBackgroundColor">
-					<int key="NSColorSpace">1</int>
-					<bytes key="NSRGB">MCAwIDAAA</bytes>
-					<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
-				</object>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="IBUIInterfaceOrientation">3</int>
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics">
-					<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
-					<string key="IBUIDisplayName">Freeform</string>
-				</object>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-		</array>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<array key="connectionRecords">
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="191373211"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">missionsButton</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="670499101"/>
-					</object>
-					<int key="connectionID">54</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">simpleGameButton</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="1052303532"/>
-					</object>
-					<int key="connectionID">56</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="124270424"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">40</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="753723574"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">30</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="818907840"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">42</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="705508539"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">44</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="1052303532"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">55</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">switchViews:</string>
-						<reference key="source" ref="670499101"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">53</int>
-				</object>
-			</array>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<array key="orderedObjects">
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<array key="object" id="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">1</int>
-						<reference key="object" ref="191373211"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="249993817"/>
-							<reference ref="818907840"/>
-							<reference ref="171108356"/>
-							<reference ref="705508539"/>
-							<reference ref="753723574"/>
-							<reference ref="124270424"/>
-							<reference ref="670499101"/>
-							<reference ref="1052303532"/>
-						</array>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="372490531"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="975951072"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">23</int>
-						<reference key="object" ref="171108356"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">22</int>
-						<reference key="object" ref="249993817"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">41</int>
-						<reference key="object" ref="818907840"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">43</int>
-						<reference key="object" ref="705508539"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">24</int>
-						<reference key="object" ref="124270424"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">28</int>
-						<reference key="object" ref="753723574"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">51</int>
-						<reference key="object" ref="1052303532"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">52</int>
-						<reference key="object" ref="670499101"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-				</array>
-			</object>
-			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.CustomClassName">MainMenuViewController</string>
-				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="-2.CustomClassName">UIResponder</string>
-				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<reference key="1.IBNSViewMetadataGestureRecognizers" ref="0"/>
-				<string key="1.IBPersistedLastKnownCanvasPosition">{567, 470}</string>
-				<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="51.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				<string key="52.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			</dictionary>
-			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-			<nil key="activeLocalization"/>
-			<dictionary class="NSMutableDictionary" key="localizations"/>
-			<nil key="sourceID"/>
-			<int key="maxID">56</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<array class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<object class="IBPartialClassDescription">
-					<string key="className">MainMenuViewController</string>
-					<string key="superclassName">UIViewController</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">switchViews:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">switchViews:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">switchViews:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">../Classes/MainMenuViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">MainMenuViewController</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">switchViews:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">switchViews:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">switchViews:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<dictionary class="NSMutableDictionary" key="outlets">
-						<string key="missionsButton">UIButton</string>
-						<string key="simpleGameButton">UIButton</string>
-					</dictionary>
-					<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<object class="IBToOneOutletInfo" key="missionsButton">
-							<string key="name">missionsButton</string>
-							<string key="candidateClassName">UIButton</string>
-						</object>
-						<object class="IBToOneOutletInfo" key="simpleGameButton">
-							<string key="name">simpleGameButton</string>
-							<string key="candidateClassName">UIButton</string>
-						</object>
-					</dictionary>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">../Classes/MainMenuViewController.m</string>
-					</object>
-				</object>
-			</array>
-			<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-				<object class="IBPartialClassDescription">
-					<string key="className">UIButton</string>
-					<string key="superclassName">UIControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIControl</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIGestureRecognizer</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIGestureRecognizer.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIImageView</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIResponder</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchBar</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchDisplayController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
-					</object>
-				</object>
-			</array>
-		</object>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
-		<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="4600" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<string key="background.png">{480, 320}</string>
-			<string key="localplayButton.png">{100, 100}</string>
-			<string key="savesButton.png">{64, 64}</string>
-			<string key="settingsButton.png">{64, 64}</string>
-			<string key="title.png">{270, 150}</string>
-		</dictionary>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MainMenuViewController">
+            <connections>
+                <outlet property="missionsButton" destination="52" id="54"/>
+                <outlet property="simpleGameButton" destination="51" id="56"/>
+                <outlet property="view" destination="1" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="1">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <subviews>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" image="background.png" id="22">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                </imageView>
+                <imageView opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="center" image="title.png" id="23">
+                    <rect key="frame" x="105" y="20" width="270" height="150"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                </imageView>
+                <button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="52">
+                    <rect key="frame" x="376" y="14" width="89" height="31"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Missions">
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="53"/>
+                    </connections>
+                </button>
+                <button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="24">
+                    <rect key="frame" x="190" y="200" width="100" height="100"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" image="localplayButton.png">
+                        <color key="titleColor" red="0.19607843" green="0.30980393000000001" blue="0.52156866000000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="40"/>
+                    </connections>
+                </button>
+                <button opaque="NO" clearsContextBeforeDrawing="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="28">
+                    <rect key="frame" x="396" y="236" width="64" height="64"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" image="settingsButton.png">
+                        <color key="titleColor" red="0.19607843" green="0.30980393000000001" blue="0.52156866000000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="30"/>
+                    </connections>
+                </button>
+                <button opaque="NO" clearsContextBeforeDrawing="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="43">
+                    <rect key="frame" x="20" y="236" width="64" height="64"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" image="savesButton.png">
+                        <color key="titleColor" red="0.19607843" green="0.30980393000000001" blue="0.52156866000000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="44"/>
+                    </connections>
+                </button>
+                <button opaque="NO" alpha="0.69999999999999996" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="infoLight" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="41">
+                    <rect key="frame" x="20" y="20" width="22" height="22"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <color key="tintColor" red="0.99607843137254903" green="0.85098039215686272" blue="0.039215686274509803" alpha="1" colorSpace="calibratedRGB"/>
+                    <state key="normal">
+                        <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <state key="highlighted">
+                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="42"/>
+                    </connections>
+                </button>
+                <button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="51">
+                    <rect key="frame" x="376" y="57" width="89" height="31"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Simple">
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="switchViews:" destination="-1" eventType="touchUpInside" id="55"/>
+                    </connections>
+                </button>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" cocoaTouchSystemColor="darkTextColor"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="567" y="470"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="background.png" width="480" height="320"/>
+        <image name="localplayButton.png" width="100" height="100"/>
+        <image name="savesButton.png" width="64" height="64"/>
+        <image name="settingsButton.png" width="64" height="64"/>
+        <image name="title.png" width="270" height="150"/>
+    </resources>
+</document>
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -19,29 +19,7 @@
 
 #import <UIKit/UIKit.h>
 
-
-@class GameConfigViewController;
-@class SettingsContainerViewController;
-@class AboutViewController;
-@class SavedGamesViewController;
-@class RestoreViewController;
-@class MissionTrainingViewController;
-
-@interface MainMenuViewController : UIViewController <UIAlertViewDelegate> {
-    GameConfigViewController *gameConfigViewController;
-    SettingsContainerViewController *settingsViewController;
-    AboutViewController *aboutViewController;
-    SavedGamesViewController *savedGamesViewController;
-    RestoreViewController *restoreViewController;
-    MissionTrainingViewController *missionsViewController;
-}
-
-@property (nonatomic,retain) GameConfigViewController *gameConfigViewController;
-@property (nonatomic,retain) SettingsContainerViewController *settingsViewController;
-@property (nonatomic,retain) AboutViewController *aboutViewController;
-@property (nonatomic,retain) SavedGamesViewController *savedGamesViewController;
-@property (nonatomic,retain) RestoreViewController *restoreViewController;
-@property (nonatomic,retain) MissionTrainingViewController *missionsViewController;
+@interface MainMenuViewController : UIViewController <UIAlertViewDelegate>
 
 -(IBAction) switchViews:(id)sender;
 
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -20,7 +20,8 @@
 #import "MainMenuViewController.h"
 #import <QuartzCore/QuartzCore.h>
 #import "GameConfigViewController.h"
-#import "SettingsContainerViewController.h"
+#import "MGSplitViewController.h"
+#import "SettingsBaseViewController.h"
 #import "AboutViewController.h"
 #import "SavedGamesViewController.h"
 #import "RestoreViewController.h"
@@ -29,14 +30,23 @@
 #import "ServerProtocolNetwork.h"
 #import "GameInterfaceBridge.h"
 
+#import "SettingsBaseViewController.h"
+#import "GeneralSettingsViewController.h"
+#import "TeamSettingsViewController.h"
+#import "WeaponSettingsViewController.h"
+#import "SchemeSettingsViewController.h"
+#import "SupportViewController.h"
+
+#ifdef DEBUG
+#import "GameLogViewController.h"
+#endif
+
 @interface MainMenuViewController ()
 @property (retain, nonatomic) IBOutlet UIButton *simpleGameButton;
 @property (retain, nonatomic) IBOutlet UIButton *missionsButton;
 @end
 
 @implementation MainMenuViewController
-@synthesize gameConfigViewController, settingsViewController, aboutViewController, savedGamesViewController,
-            restoreViewController, missionsViewController;
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
     return rotationManager(interfaceOrientation);
@@ -47,6 +57,9 @@
     self.view.frame = [[UIScreen mainScreen] safeBounds];
     [super viewDidLoad];
     
+    [self.simpleGameButton setTitle:NSLocalizedString(@"Simple", nil) forState:UIControlStateNormal];
+    [self.missionsButton setTitle:NSLocalizedString(@"Missions", nil) forState:UIControlStateNormal];
+    
     [self.simpleGameButton applyDarkBlueQuickStyle];
     [self.missionsButton applyDarkBlueQuickStyle];
     
@@ -69,19 +82,19 @@
 
     // prompt for restoring any previous game
     NSString *saveString = [userDefaults objectForKey:@"savedGamePath"];
-    if (saveString != nil && [saveString isEqualToString:@""] == NO && [[userDefaults objectForKey:@"saveIsValid"] boolValue]) {
-        if (self.restoreViewController == nil) {
-            NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")];
-            RestoreViewController *restored = [[RestoreViewController alloc] initWithNibName:xibName bundle:nil];
-            if ([restored respondsToSelector:@selector(setModalPresentationStyle:)])
-                restored.modalPresentationStyle = UIModalPresentationFormSheet;
-            self.restoreViewController = restored;
-            [restored release];
-        }
-        [self performSelector:@selector(presentViewController:) withObject:self.restoreViewController afterDelay:0.25];
-    } else {
+    if (saveString != nil && [saveString isEqualToString:@""] == NO && [[userDefaults objectForKey:@"saveIsValid"] boolValue])
+    {
+        NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")];
+        RestoreViewController *restored = [[RestoreViewController alloc] initWithNibName:xibName bundle:nil];
+        if ([restored respondsToSelector:@selector(setModalPresentationStyle:)])
+            restored.modalPresentationStyle = UIModalPresentationFormSheet;
+
+        [self performSelector:@selector(presentViewController:) withObject:restored afterDelay:0.25];
+    }
+    else
+    {
         // let's not prompt for rating when app crashed >_>
-        [Appirater appLaunched];
+        [Appirater appLaunched:YES];
     }
 
     /*
@@ -92,6 +105,7 @@
 - (void) presentViewController:(UIViewController *)vc
 {
     [self presentViewController:vc animated:NO completion:nil];
+    [vc release];
 }
 
 -(void) viewWillAppear:(BOOL)animated {
@@ -104,99 +118,134 @@
     UIButton *button = (UIButton *)sender;
     UIAlertView *alert;
     NSString *xib = nil;
-    NSString *debugStr = nil;
 
     [[AudioManagerController mainManager] playClickSound];
     switch (button.tag) {
         case 0:
-            if (nil == self.gameConfigViewController) {
-                xib = IS_IPAD() ? @"GameConfigViewController-iPad" : @"GameConfigViewController-iPhone";
+            xib = IS_IPAD() ? @"GameConfigViewController-iPad" : @"GameConfigViewController-iPhone";
 
-                GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil];
-                gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
-                self.gameConfigViewController = gcvc;
-                [gcvc release];
-            }
-            [self presentViewController:self.gameConfigViewController animated:YES completion:nil];
+            GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil];
+            gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
+
+            [self presentViewController:gcvc animated:YES completion:nil];
+            [gcvc release];
             break;
         case 2:
-            if (nil == self.settingsViewController) {
-                SettingsContainerViewController *svrc = [[SettingsContainerViewController alloc] initWithNibName:nil bundle:nil];
-                svrc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
-                self.settingsViewController = svrc;
-                [svrc release];
+            if (IS_IPAD())
+            {
+                // the contents on the right of the splitview, setting targetController to nil to avoid creating the table
+                SettingsBaseViewController *rightController = [[SettingsBaseViewController alloc] init];
+                rightController.targetController = nil;
+                UINavigationController *rightNavController = [[UINavigationController alloc] initWithRootViewController:rightController];
+                [rightController release];
+                
+                // the contens on the left of the splitview, setting targetController that will receive push/pop actions
+                SettingsBaseViewController *leftController = [[SettingsBaseViewController alloc] init];
+                leftController.targetController = rightNavController.topViewController;
+                UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController];
+                [leftController release];
+                
+                MGSplitViewController *splitViewRootController = [[MGSplitViewController alloc] init];
+                splitViewRootController.delegate = nil;
+                splitViewRootController.showsMasterInPortrait = YES;
+                splitViewRootController.viewControllers = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];
+                [leftNavController release];
+                [rightNavController release];
+
+                [self presentViewController:splitViewRootController animated:YES completion:nil];
+                [splitViewRootController release];
             }
-            [self presentViewController:self.settingsViewController animated:YES completion:nil];
+            else
+            {
+                NSMutableArray *tabBarNavigationControllers = [[NSMutableArray alloc] initWithCapacity:5];
+                
+                UIViewController *generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+                generalSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"General",@"") imageName:@"flower" selectedImageName:@"flower_filled"];
+                UINavigationController *generalNavController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController];
+                [generalSettingsViewController release];
+                [tabBarNavigationControllers addObject:generalNavController];
+                [generalNavController release];
+                
+                UIViewController *teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+                teamSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Teams",@"") imageName:@"teams" selectedImageName:@"teams_filled"];
+                UINavigationController *teamNavController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController];
+                [teamSettingsViewController release];
+                [tabBarNavigationControllers addObject:teamNavController];
+                [teamNavController release];
+                
+                UIViewController *weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+                weaponSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Weapons",@"") imageName:@"bullet" selectedImageName:@"bullet_filled"];
+                UINavigationController *weaponNavController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController];
+                [weaponSettingsViewController release];
+                [tabBarNavigationControllers addObject:weaponNavController];
+                [weaponNavController release];
+                
+                UIViewController *schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+                schemeSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Schemes",@"") imageName:@"target" selectedImageName:@"target_filled"];
+                UINavigationController *schemeNavController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController];
+                [schemeSettingsViewController release];
+                [tabBarNavigationControllers addObject:schemeNavController];
+                [schemeNavController release];
+                
+                UIViewController *supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
+                supportViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Support",@"") imageName:@"heart" selectedImageName:@"heart_filled"];
+                UINavigationController *supportNavController = [[UINavigationController alloc] initWithRootViewController:supportViewController];
+                [supportViewController release];
+                [tabBarNavigationControllers addObject:supportNavController];
+                [supportNavController release];
+                
+                UITabBarController *settingsTabController = [[UITabBarController alloc] init];
+                settingsTabController.viewControllers = tabBarNavigationControllers;
+                [tabBarNavigationControllers release];
+                
+                [self presentViewController:settingsTabController animated:YES completion:nil];
+                [settingsTabController release];
+            }
             break;
         case 3:
 #ifdef DEBUG
-            if ([[NSFileManager defaultManager] fileExistsAtPath:DEBUG_FILE()])
-                debugStr = [[NSString alloc] initWithContentsOfFile:DEBUG_FILE()];
-            else
-                debugStr = [[NSString alloc] initWithString:@"Here be log"];
-            UITextView *scroll = [[UITextView alloc] initWithFrame:self.view.frame];
-            scroll.text = debugStr;
-            [debugStr release];
-            scroll.editable = NO;
-            scroll.alpha = 0;
-
-            UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
-            [btn addTarget:scroll action:@selector(removeFromSuperview) forControlEvents:UIControlEventTouchUpInside];
-            [btn addTarget:btn action:@selector(removeFromSuperview) forControlEvents:UIControlEventTouchUpInside];
-            btn.frame = CGRectMake(self.view.frame.size.width-58, -6, 64, 64);
-            btn.backgroundColor = [UIColor blackColor];
-            btn.titleLabel.textColor = [UIColor whiteColor];
-            btn.titleLabel.textAlignment = UITextAlignmentCenter;
-            btn.titleLabel.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
-            [btn setTitle:@"Close" forState:UIControlStateNormal];
-            btn.alpha = 0;
-            [btn.layer setCornerRadius:10.0f];
-            [btn.layer setMasksToBounds:YES];
-
-            [self.view addSubview:scroll];
-            [self.view addSubview:btn];
-
-            [UIView beginAnimations:@"fadein" context:NULL];
-            [UIView setAnimationDuration:0.25f];
-            btn.alpha = 1;
-            scroll.alpha = 1;
-            [UIView commitAnimations];
-            [scroll release];
+            {
+                GameLogViewController *gameLogVC = [[GameLogViewController alloc] init];
+                UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:gameLogVC];
+                [gameLogVC release];
+                
+                [self presentViewController:navController animated:YES completion:nil];
+                [navController release];
+            }
 #else
-            debugStr = debugStr; // prevent compiler warning
-            if (nil == self.aboutViewController) {
+            {
                 AboutViewController *about = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil];
                 about.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
                 if ([about respondsToSelector:@selector(setModalPresentationStyle:)])
                      about.modalPresentationStyle = UIModalPresentationFormSheet;
-                self.aboutViewController = about;
+                
+                [self presentViewController:about animated:YES completion:nil];
                 [about release];
             }
-            [self presentViewController:self.aboutViewController animated:YES completion:nil];
 #endif
             break;
         case 4:
-            if (nil == self.savedGamesViewController) {
+            {
                 SavedGamesViewController *savedgames = [[SavedGamesViewController alloc] initWithNibName:@"SavedGamesViewController" bundle:nil];
                 savedgames.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
                 if ([savedgames respondsToSelector:@selector(setModalPresentationStyle:)])
                     savedgames.modalPresentationStyle = UIModalPresentationPageSheet;
-                self.savedGamesViewController = savedgames;
+                
+                [self presentViewController:savedgames animated:YES completion:nil];
                 [savedgames release];
             }
-            [self presentViewController:self.savedGamesViewController animated:YES completion:nil];
             break;
         case 5:
-            if (nil == self.missionsViewController) {
+            {
                 xib = IS_IPAD() ? @"MissionTrainingViewController-iPad" : @"MissionTrainingViewController-iPhone";
                 MissionTrainingViewController *missions = [[MissionTrainingViewController alloc] initWithNibName:xib bundle:nil];
                 missions.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve;
                 if ([missions respondsToSelector:@selector(setModalPresentationStyle:)])
                     missions.modalPresentationStyle = UIModalPresentationPageSheet;
-                self.missionsViewController = missions;
+                
+                [self presentViewController:missions animated:YES completion:nil];
                 [missions release];
             }
-            [self presentViewController:self.missionsViewController animated:YES completion:nil];
             break;
         case 6:
             [GameInterfaceBridge registerCallingController:self];
@@ -214,42 +263,27 @@
     }
 }
 
+- (UITabBarItem *)tabBarItemWithTitle: (NSString *)title
+                            imageName: (NSString *)imageName
+                    selectedImageName: (NSString *)selectedImageName
+{
+    return [[[UITabBarItem alloc] initWithTitle:title
+                                          image:[UIImage imageNamed:imageName]
+                                  selectedImage:[UIImage imageNamed:selectedImageName]] autorelease];
+}
+
 #pragma mark -
 -(void) viewDidUnload {
-    self.gameConfigViewController = nil;
-    self.settingsViewController = nil;
-    self.aboutViewController = nil;
-    self.savedGamesViewController = nil;
-    self.restoreViewController = nil;
-    self.missionsViewController = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
 
 -(void) didReceiveMemoryWarning {
-    if (self.settingsViewController.view.superview == nil)
-        self.settingsViewController = nil;
-    if (self.gameConfigViewController.view.superview == nil)
-        self.gameConfigViewController = nil;
-    if (self.aboutViewController.view.superview == nil)
-        self.aboutViewController = nil;
-    if (self.savedGamesViewController.view.superview == nil)
-        self.savedGamesViewController = nil;
-    if (self.restoreViewController.view.superview == nil)
-        self.restoreViewController = nil;
-    if (self.missionsViewController.view.superview == nil)
-        self.missionsViewController = nil;
     MSG_MEMCLEAN();
     [super didReceiveMemoryWarning];
 }
 
 -(void) dealloc {
-    releaseAndNil(settingsViewController);
-    releaseAndNil(gameConfigViewController);
-    releaseAndNil(aboutViewController);
-    releaseAndNil(savedGamesViewController);
-    releaseAndNil(restoreViewController);
-    releaseAndNil(missionsViewController);
     [_simpleGameButton release];
     [_missionsButton release];
     [super dealloc];
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -62,7 +62,7 @@
     [seed release];
 
     // perform as if user clicked on an entry
-    NSIndexPath *theIndex = [NSIndexPath indexPathForRow:(random()%[source count]) inSection:0];
+    NSIndexPath *theIndex = [NSIndexPath indexPathForRow:arc4random_uniform((int)[source count]) inSection:0];
     [self tableView:self.tableView didSelectRowAtIndexPath:theIndex];
     if (IS_NOT_POWERFUL([HWUtils modelType]) == NO)
         [self.tableView scrollToRowAtIndexPath:theIndex atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
@@ -352,6 +352,15 @@
     oldPage = newPage;
 }
 
+- (void)localizeSegmentedControl
+{
+    for (NSUInteger i = 0; i < self.segmentedControl.numberOfSegments; i++)
+    {
+        NSString *oldTitle = [self.segmentedControl titleForSegmentAtIndex:i];
+        [self.segmentedControl setTitle:NSLocalizedString(oldTitle, nil) forSegmentAtIndex:i];
+    }
+}
+
 #pragma mark -
 #pragma mark view management
 -(NSArray *) dataSourceArray {
@@ -403,8 +412,9 @@
 
 -(void) viewDidLoad {
     [super viewDidLoad];
-    srandom(time(NULL));
-
+    
+    [self localizeSegmentedControl];
+    
     // initialize some "default" values
     self.slider.value = 0.05f;
     self.slider.enabled = NO;
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m	Mon Nov 09 16:34:32 2015 +0000
@@ -58,7 +58,7 @@
 #pragma mark -
 #pragma mark preview
 -(int) sendToEngine:(NSString *)string {
-    unsigned char length = [string length];
+    unsigned char length = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
 
     SDLNet_TCP_Send(csd, &length, 1);
     return SDLNet_TCP_Send(csd, [string UTF8String], length);
--- a/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -20,18 +20,12 @@
 #import <UIKit/UIKit.h>
 
 
-@interface MissionTrainingViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
-    NSArray *listOfMissions;
-    NSArray *listOfDescriptions;
-    NSString *missionName;
-    UIImageView *previewImage;
-    UITableView *tableView;
-    UILabel *descriptionLabel;
-}
+@interface MissionTrainingViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
 
-@property (nonatomic, retain) NSArray *listOfMissions;
-@property (nonatomic, retain) NSArray *listOfDescriptions;
+@property (nonatomic, retain) NSArray *listOfMissionIDs;
+@property (nonatomic, retain) NSDictionary *dictOfMissions;
 @property (nonatomic, retain) NSString *missionName;
+
 @property (nonatomic, retain) IBOutlet UIImageView *previewImage;
 @property (nonatomic, retain) IBOutlet UITableView *tableView;
 @property (nonatomic, retain) IBOutlet UILabel *descriptionLabel;
--- a/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -23,7 +23,6 @@
 
 
 @implementation MissionTrainingViewController
-@synthesize listOfMissions, listOfDescriptions, previewImage, tableView, descriptionLabel, missionName;
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
     return rotationManager(interfaceOrientation);
@@ -31,7 +30,10 @@
 
 #pragma mark -
 #pragma mark View management
--(void) viewDidLoad {
+-(void) viewDidLoad
+{
+    [super viewDidLoad];
+    
     self.previewImage.layer.borderColor = [[UIColor darkYellowColor] CGColor];
     self.previewImage.layer.borderWidth = 3.8f;
     self.previewImage.layer.cornerRadius = 14;
@@ -50,12 +52,11 @@
     self.tableView.separatorColor = [UIColor whiteColor];
 
     self.descriptionLabel.textColor = [UIColor lightYellowColor];
-    [super viewDidLoad];
 }
 
 -(void) viewWillAppear:(BOOL)animated {
-    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:random()%[self.listOfMissions count] inSection:0];
-    [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
+    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:arc4random_uniform((int)[self.listOfMissionIDs count]) inSection:0];
+    [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
     [self tableView:self.tableView didSelectRowAtIndexPath:indexPath];
     [super viewWillAppear:animated];
 }
@@ -72,43 +73,129 @@
     }
 }
 
-#pragma mark -
-#pragma mark override setters/getters for better memory handling
--(NSArray *)listOfMissions {
-    if (listOfMissions == nil)
-        self.listOfMissions = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TRAININGS_DIRECTORY() error:NULL];
-    return listOfMissions;
+#pragma mark - Missions dictionaries methods
+
+- (NSDictionary *)newLocalizedMissionsDictionary
+{
+    NSString *languageID = [HWUtils languageID];
+    
+    NSString *missionsDescLocation = [[NSString alloc] initWithFormat:@"%@/missions_en.txt",LOCALE_DIRECTORY()];
+    NSString *localizedMissionsDescLocation = [[NSString alloc] initWithFormat:@"%@/missions_%@.txt", LOCALE_DIRECTORY(), languageID];
+    
+    if (![languageID isEqualToString:@"en"] && [[NSFileManager defaultManager] fileExistsAtPath:localizedMissionsDescLocation])
+    {
+        NSDictionary *missionsDict = [self newMissionsDictionaryFromMissionsFile:missionsDescLocation];
+        NSDictionary *localizedMissionsDict = [self newMissionsDictionaryFromMissionsFile:localizedMissionsDescLocation];
+        
+        [missionsDescLocation release];
+        [localizedMissionsDescLocation release];
+        
+        NSMutableDictionary *tempMissionsDict = [[NSMutableDictionary alloc] init];
+        
+        for (NSString *key in [missionsDict allKeys])
+        {
+            if ([localizedMissionsDict objectForKey:key])
+            {
+                [tempMissionsDict setObject:[localizedMissionsDict objectForKey:key] forKey:key];
+            }
+            else
+            {
+                [tempMissionsDict setObject:[missionsDict objectForKey:key] forKey:key];
+            }
+        }
+        
+        [missionsDict release];
+        [localizedMissionsDict release];
+        
+        return tempMissionsDict;
+    }
+    else
+    {
+        NSDictionary *missionsDict = [self newMissionsDictionaryFromMissionsFile:missionsDescLocation];
+        
+        [missionsDescLocation release];
+        [localizedMissionsDescLocation release];
+        
+        return missionsDict;
+    }
 }
 
--(NSArray *)listOfDescriptions {
-    if (listOfDescriptions == nil) {
-        NSString *descLocation = [[NSString alloc] initWithFormat:@"%@/missions_en.txt",LOCALE_DIRECTORY()];
-        NSString *descComplete = [[NSString alloc] initWithContentsOfFile:descLocation encoding:NSUTF8StringEncoding error:NULL];
-        [descLocation release];
-        NSArray *descArray = [descComplete componentsSeparatedByString:@"\n"];
-        NSMutableArray *filteredArray = [[NSMutableArray alloc] initWithCapacity:[descArray count]/3];
-        [descComplete release];
-        // sanity check to avoid having missions and descriptions conflicts
-        for (NSUInteger i = 0; i < [self.listOfMissions count]; i++) {
-            NSString *desc = [[self.listOfMissions objectAtIndex:i] stringByDeletingPathExtension];
-            for (NSString *str in descArray)
+- (NSDictionary *)newMissionsDictionaryFromMissionsFile:(NSString *)filePath
+{
+    NSMutableDictionary *missionsDict = [[NSMutableDictionary alloc] init];
+    
+    NSString *missionsFileContents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
+    NSArray *missionsLines = [missionsFileContents componentsSeparatedByString:@"\n"];
+    [missionsFileContents release];
+    
+    for (NSString *line in missionsLines)
+    {
+        if ([line length] > 0)
+        {
+            NSUInteger firstDotLocation = [line rangeOfString:@"."].location;
+            
+            NSString *missionID = [line substringToIndex:firstDotLocation];
+            
+            NSString *missionFullPath = [NSString stringWithFormat:@"%@%@.lua", TRAININGS_DIRECTORY(), missionID];
+            if (![[NSFileManager defaultManager] fileExistsAtPath:missionFullPath])
             {
-                if ([str hasPrefix:desc] && [str hasSuffix:@"\""]) {
-                    NSArray *descriptionText = [str componentsSeparatedByString:@"\""];
-                    [filteredArray addObject:[descriptionText objectAtIndex:1]];
-                    break;
-                }
+                continue;
+            }
+            
+            NSString *nameOrDesc = [line substringFromIndex:firstDotLocation+1];
+            
+            NSString *missionParsedName = ([nameOrDesc hasPrefix:@"name="]) ? [nameOrDesc stringByReplacingOccurrencesOfString:@"name=" withString:@""] : nil;
+            NSString *missionParsedDesc = ([nameOrDesc hasPrefix:@"desc="]) ? [nameOrDesc stringByReplacingOccurrencesOfString:@"desc=" withString:@""] : nil;
+            
+            if (![missionsDict objectForKey:missionID])
+            {
+                NSMutableDictionary *missionDict = [[NSMutableDictionary alloc] init];
+                [missionsDict setObject:missionDict forKey:missionID];
+                [missionDict release];
             }
             
-            if ([filteredArray count] == i)
+            NSMutableDictionary *missionDict = [missionsDict objectForKey:missionID];
+            
+            if (missionParsedName)
             {
-                [filteredArray addObject:@""];
+                [missionDict setObject:missionParsedName forKey:@"name"];
             }
+            
+            if (missionParsedDesc)
+            {
+                missionParsedDesc = [missionParsedDesc stringByReplacingOccurrencesOfString:@"\"" withString:@""];
+                [missionDict setObject:missionParsedDesc forKey:@"desc"];
+            }
+            
+            [missionsDict setObject:missionDict forKey:missionID];
         }
-        self.listOfDescriptions = filteredArray;
-        [filteredArray release];
     }
-    return listOfDescriptions;
+    
+    return missionsDict;
+}
+
+#pragma mark -
+#pragma mark override setters/getters for better memory handling
+
+-(NSArray *)listOfMissionIDs
+{
+    if (!_listOfMissionIDs)
+    {
+        NSArray *sortedKeys = [[self.dictOfMissions allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
+        _listOfMissionIDs = [[NSArray alloc] initWithArray:sortedKeys];
+    }
+    
+    return _listOfMissionIDs;
+}
+
+- (NSDictionary *)dictOfMissions
+{
+    if (!_dictOfMissions)
+    {
+        _dictOfMissions = [self newLocalizedMissionsDictionary];
+    }
+    
+    return _dictOfMissions;
 }
 
 #pragma mark -
@@ -118,7 +205,7 @@
 }
 
 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return [self.listOfMissions count];
+    return [self.listOfMissionIDs count];
 }
 
 -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
@@ -133,21 +220,28 @@
     if (cell == nil)
         cell = [[[UITableViewCell alloc] initWithStyle:(IS_IPAD()) ? UITableViewCellStyleDefault : UITableViewCellStyleSubtitle
                                        reuseIdentifier:CellIdentifier] autorelease];
-
-    cell.textLabel.text = [[[self.listOfMissions objectAtIndex:row] stringByDeletingPathExtension]
-                           stringByReplacingOccurrencesOfString:@"_" withString:@" "];
+    
+    NSString *missionID = [self.listOfMissionIDs objectAtIndex:row];
+    cell.textLabel.text = self.dictOfMissions[missionID][@"name"];
+    
     cell.textLabel.textColor = [UIColor lightYellowColor];
     //cell.textLabel.font = [UIFont fontWithName:@"Bradley Hand Bold" size:[UIFont labelFontSize]];
     cell.textLabel.textAlignment = (IS_IPAD()) ? UITextAlignmentCenter : UITextAlignmentLeft;
     cell.textLabel.backgroundColor = [UIColor clearColor];
     cell.textLabel.adjustsFontSizeToFitWidth = YES;
-    cell.detailTextLabel.text = (IS_IPAD()) ? nil : [self.listOfDescriptions objectAtIndex:row];
+    cell.detailTextLabel.text = (IS_IPAD()) ? nil : self.dictOfMissions[missionID][@"desc"];
     cell.detailTextLabel.textColor = [UIColor whiteColor];
     cell.detailTextLabel.backgroundColor = [UIColor clearColor];
     cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
     cell.detailTextLabel.numberOfLines = ([cell.detailTextLabel.text length] % 40);
     cell.detailTextLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
 
+    UIView *bgColorView = [[UIView alloc] init];
+    bgColorView.backgroundColor = [UIColor colorWithRed:(85.0/255.0) green:(15.0/255.0) blue:(106.0/255.0) alpha:1.0];
+    bgColorView.layer.masksToBounds = YES;
+    cell.selectedBackgroundView = bgColorView;
+    [bgColorView release];
+    
     cell.backgroundColor = [UIColor blackColorTransparent];
     return cell;
 }
@@ -157,7 +251,7 @@
 -(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     NSInteger row = [indexPath row];
 
-    self.missionName = [[self.listOfMissions objectAtIndex:row] stringByDeletingPathExtension];
+    self.missionName = [self.listOfMissionIDs objectAtIndex:row];
     NSString *size = IS_IPAD() ? @"@2x" : @"";
     NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Missions/Training/%@%@.png",GRAPHICS_DIRECTORY(),self.missionName,size];
     UIImage *img = [[UIImage alloc] initWithContentsOfFile:filePath];
@@ -165,24 +259,27 @@
     [self.previewImage setImage:img];
     [img release];
 
-    self.descriptionLabel.text = [self.listOfDescriptions objectAtIndex:row];
+    self.descriptionLabel.text = self.dictOfMissions[self.missionName][@"desc"];
 }
 
 #pragma mark -
 #pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+-(void) didReceiveMemoryWarning
+{
     self.previewImage = nil;
     self.missionName = nil;
-    self.listOfMissions = nil;
-    self.listOfDescriptions = nil;
+    self.listOfMissionIDs = nil;
+    self.dictOfMissions = nil;
     // if you nil this one it won't get updated anymore
     //self.previewImage = nil;
     [super didReceiveMemoryWarning];
 }
 
--(void) viewDidUnload {
-    self.listOfMissions = nil;
-    self.listOfDescriptions = nil;
+-(void) viewDidUnload
+{
+    self.listOfMissionIDs = nil;
+    self.dictOfMissions = nil;
     self.previewImage = nil;
     self.tableView = nil;
     self.descriptionLabel = nil;
@@ -192,13 +289,14 @@
 }
 
 
--(void) dealloc {
-    releaseAndNil(listOfMissions);
-    releaseAndNil(listOfDescriptions);
-    releaseAndNil(previewImage);
-    releaseAndNil(tableView);
-    releaseAndNil(descriptionLabel);
-    releaseAndNil(missionName);
+-(void) dealloc
+{
+    releaseAndNil(_listOfMissionIDs);
+    releaseAndNil(_dictOfMissions);
+    releaseAndNil(_previewImage);
+    releaseAndNil(_tableView);
+    releaseAndNil(_descriptionLabel);
+    releaseAndNil(_missionName);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/RestoreViewController-iPad.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController-iPad.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,654 +1,92 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
-	<data>
-		<int key="IBDocument.SystemTarget">1056</int>
-		<string key="IBDocument.SystemVersion">10K549</string>
-		<string key="IBDocument.InterfaceBuilderVersion">823</string>
-		<string key="IBDocument.AppKitVersion">1038.36</string>
-		<string key="IBDocument.HIToolboxVersion">461.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">132</string>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="1"/>
-		</object>
-		<object class="NSArray" key="IBDocument.PluginDependencies">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys" id="0">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="IBProxyObject" id="372490531">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBProxyObject" id="975951072">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBUIView" id="191373211">
-				<reference key="NSNextResponder"/>
-				<int key="NSvFlags">274</int>
-				<object class="NSMutableArray" key="NSSubviews">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBUIImageView" id="138553579">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">319</int>
-						<string key="NSFrameSize">{540, 640}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">smallerBackground~ipad.png</string>
-						</object>
-					</object>
-					<object class="IBUIButton" id="155385540">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">302</int>
-						<string key="NSFrame">{{84, 517}, {151, 37}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSFont" key="IBUIFont" id="204967016">
-							<string key="NSName">Helvetica-Bold</string>
-							<double key="NSSize">15</double>
-							<int key="NSfFlags">16</int>
-						</object>
-						<int key="IBUIButtonType">1</int>
-						<string key="IBUINormalTitle">Dismiss</string>
-						<object class="NSColor" key="IBUIHighlightedTitleColor" id="790402446">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MQA</bytes>
-						</object>
-						<object class="NSColor" key="IBUINormalTitleColor" id="829178890">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MCAwIDAuNTAxOTYwODE0AA</bytes>
-						</object>
-						<object class="NSColor" key="IBUINormalTitleShadowColor" id="644451038">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MC41AA</bytes>
-						</object>
-					</object>
-					<object class="IBUIButton" id="202794507">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">299</int>
-						<string key="NSFrame">{{308, 517}, {151, 37}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">1</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<reference key="IBUIFont" ref="204967016"/>
-						<int key="IBUIButtonType">1</int>
-						<string key="IBUINormalTitle">Restore</string>
-						<reference key="IBUIHighlightedTitleColor" ref="790402446"/>
-						<reference key="IBUINormalTitleColor" ref="829178890"/>
-						<reference key="IBUINormalTitleShadowColor" ref="644451038"/>
-					</object>
-					<object class="IBUILabel" id="655269955">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">295</int>
-						<string key="NSFrame">{{216, 35}, {108, 29}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<int key="IBUIContentMode">7</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<string key="IBUIText">Hmm...</string>
-						<object class="NSFont" key="IBUIFont">
-							<string key="NSName">Helvetica-Bold</string>
-							<double key="NSSize">24</double>
-							<int key="NSfFlags">16</int>
-						</object>
-						<object class="NSColor" key="IBUITextColor">
-							<int key="NSColorSpace">2</int>
-							<bytes key="NSRGB">MSAwLjc4MDM5MjIyOTYgMAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedColor" ref="790402446"/>
-						<int key="IBUIBaselineAdjustment">1</int>
-						<float key="IBUIMinimumFontSize">10</float>
-						<int key="IBUITextAlignment">1</int>
-					</object>
-					<object class="IBUILabel" id="19933541">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">282</int>
-						<string key="NSFrame">{{80, 375}, {380, 96}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<int key="IBUIContentMode">7</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<string key="IBUIText">Would you like to restore it?</string>
-						<object class="NSFont" key="IBUIFont" id="276115526">
-							<string key="NSName">Helvetica</string>
-							<double key="NSSize">18</double>
-							<int key="NSfFlags">16</int>
-						</object>
-						<object class="NSColor" key="IBUITextColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedColor" ref="790402446"/>
-						<int key="IBUIBaselineAdjustment">1</int>
-						<float key="IBUIMinimumFontSize">10</float>
-						<int key="IBUINumberOfLines">4</int>
-						<int key="IBUITextAlignment">1</int>
-					</object>
-					<object class="IBUILabel" id="151967545">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">306</int>
-						<string key="NSFrame">{{80, 87}, {380, 96}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<int key="IBUIContentMode">7</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<string key="IBUIText">It appears you didn't complete your last game!</string>
-						<reference key="IBUIFont" ref="276115526"/>
-						<object class="NSColor" key="IBUITextColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedColor" ref="790402446"/>
-						<int key="IBUIBaselineAdjustment">1</int>
-						<float key="IBUIMinimumFontSize">10</float>
-						<int key="IBUINumberOfLines">4</int>
-						<int key="IBUITextAlignment">1</int>
-					</object>
-					<object class="IBUIImageView" id="129485928">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">301</int>
-						<string key="NSFrame">{{150, 191}, {240, 160}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">denied.png</string>
-						</object>
-					</object>
-				</object>
-				<string key="NSFrameSize">{540, 640}</string>
-				<reference key="NSSuperview"/>
-				<reference key="IBUIBackgroundColor" ref="790402446"/>
-				<int key="IBUIContentMode">4</int>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-		</object>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<object class="NSMutableArray" key="connectionRecords">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="191373211"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonReleased:</string>
-						<reference key="source" ref="155385540"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">21</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonReleased:</string>
-						<reference key="source" ref="202794507"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">22</int>
-				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<reference key="object" ref="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">1</int>
-						<reference key="object" ref="191373211"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="155385540"/>
-							<reference ref="202794507"/>
-							<reference ref="655269955"/>
-							<reference ref="19933541"/>
-							<reference ref="151967545"/>
-							<reference ref="129485928"/>
-							<reference ref="138553579"/>
-						</object>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="372490531"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="975951072"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">15</int>
-						<reference key="object" ref="155385540"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">16</int>
-						<reference key="object" ref="202794507"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">18</int>
-						<reference key="object" ref="655269955"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">19</int>
-						<reference key="object" ref="19933541"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">20</int>
-						<reference key="object" ref="129485928"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">23</int>
-						<reference key="object" ref="151967545"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">24</int>
-						<reference key="object" ref="138553579"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="flattenedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-1.CustomClassName</string>
-					<string>-2.CustomClassName</string>
-					<string>1.IBEditorWindowLastContentRect</string>
-					<string>1.IBPluginDependency</string>
-					<string>15.IBPluginDependency</string>
-					<string>15.IBViewBoundsToFrameTransform</string>
-					<string>16.IBPluginDependency</string>
-					<string>16.IBViewBoundsToFrameTransform</string>
-					<string>18.IBPluginDependency</string>
-					<string>18.IBViewBoundsToFrameTransform</string>
-					<string>19.IBPluginDependency</string>
-					<string>19.IBViewBoundsToFrameTransform</string>
-					<string>20.IBPluginDependency</string>
-					<string>20.IBViewBoundsToFrameTransform</string>
-					<string>23.IBPluginDependency</string>
-					<string>23.IBViewBoundsToFrameTransform</string>
-					<string>24.IBPluginDependency</string>
-					<string>24.IBViewBoundsToFrameTransform</string>
-				</object>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>RestoreViewController</string>
-					<string>UIResponder</string>
-					<string>{{650, 289}, {540, 640}}</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAABDlIAAw2gAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAABEAkAAw2gAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAABDXAAAw3UAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">AUKgAABDmYAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAABDFgAAw8cAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">P4AAAL+AAABCoAAAw9uAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform"/>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="unlocalizedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="activeLocalization"/>
-			<object class="NSMutableDictionary" key="localizations">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="sourceID"/>
-			<int key="maxID">24</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">RestoreViewController</string>
-					<string key="superclassName">UIViewController</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">buttonReleased:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">buttonReleased:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">buttonReleased:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Classes/RestoreViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UILabel</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Classes/ExtraCategories.h</string>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="749404015">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIButton</string>
-					<string key="superclassName">UIControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIControl</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIImageView</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UILabel</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIResponder</string>
-					<string key="superclassName">NSObject</string>
-					<reference key="sourceIdentifier" ref="749404015"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchBar</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchDisplayController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
-					</object>
-				</object>
-			</object>
-		</object>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
-			<integer value="1056" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="3000" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>denied.png</string>
-				<string>smallerBackground~ipad.png</string>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>{240, 160}</string>
-				<string>{540, 640}</string>
-			</object>
-		</object>
-		<string key="IBCocoaTouchPluginVersion">132</string>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="8191" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RestoreViewController">
+            <connections>
+                <outlet property="dismissButton" destination="15" id="kms-tp-evE"/>
+                <outlet property="restoreButton" destination="16" id="iH9-dH-DWf"/>
+                <outlet property="view" destination="1" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="center" id="1">
+            <rect key="frame" x="0.0" y="0.0" width="540" height="640"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="smallerBackground.png" id="24">
+                    <rect key="frame" x="0.0" y="0.0" width="540" height="640"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                </imageView>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="15">
+                    <rect key="frame" x="84" y="517" width="151" height="37"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Dismiss">
+                        <color key="titleColor" red="0.0" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="buttonReleased:" destination="-1" eventType="touchUpInside" id="21"/>
+                    </connections>
+                </button>
+                <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="16">
+                    <rect key="frame" x="308" y="517" width="151" height="37"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Restore">
+                        <color key="titleColor" red="0.0" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="buttonReleased:" destination="-1" eventType="touchUpInside" id="22"/>
+                    </connections>
+                </button>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Would you like to restore it?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="4" minimumFontSize="10" id="19" customClass="LabelWithIBLocalization">
+                    <rect key="frame" x="80" y="375" width="380" height="96"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="18"/>
+                    <color key="textColor" red="0.90196079019999997" green="0.90196079019999997" blue="0.90196079019999997" alpha="1" colorSpace="calibratedRGB"/>
+                    <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                </label>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="It appears you didn't complete your last game!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="4" minimumFontSize="10" id="23" customClass="LabelWithIBLocalization">
+                    <rect key="frame" x="80" y="87" width="380" height="96"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="18"/>
+                    <color key="textColor" red="0.90196079019999997" green="0.90196079019999997" blue="0.90196079019999997" alpha="1" colorSpace="calibratedRGB"/>
+                    <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="denied.png" id="20">
+                    <rect key="frame" x="150" y="191" width="240" height="160"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                </imageView>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Hmm..." textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="18" customClass="LabelWithIBLocalization">
+                    <rect key="frame" x="80" y="35" width="380" height="29"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="24"/>
+                    <color key="textColor" red="1" green="0.78039222959999999" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
+                    <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                </label>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="denied.png" width="240" height="160"/>
+        <image name="smallerBackground.png" width="540" height="640"/>
+    </resources>
+</document>
--- a/project_files/HedgewarsMobile/Classes/RestoreViewController-iPhone.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController-iPhone.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,620 +1,93 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
-	<data>
-		<int key="IBDocument.SystemTarget">1056</int>
-		<string key="IBDocument.SystemVersion">10K549</string>
-		<string key="IBDocument.InterfaceBuilderVersion">823</string>
-		<string key="IBDocument.AppKitVersion">1038.36</string>
-		<string key="IBDocument.HIToolboxVersion">461.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">132</string>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="1"/>
-		</object>
-		<object class="NSArray" key="IBDocument.PluginDependencies">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys" id="0">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="IBProxyObject" id="372490531">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBProxyObject" id="975951072">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-			<object class="IBUIView" id="191373211">
-				<reference key="NSNextResponder"/>
-				<int key="NSvFlags">274</int>
-				<object class="NSMutableArray" key="NSSubviews">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBUIImageView" id="396922791">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">319</int>
-						<string key="NSFrameSize">{480, 320}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">smallerBackground~iphone.png</string>
-						</object>
-					</object>
-					<object class="IBUIImageView" id="508553704">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">300</int>
-						<string key="NSFrame">{{20, 20}, {240, 160}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<object class="NSCustomResource" key="IBUIImage">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">denied.png</string>
-						</object>
-					</object>
-					<object class="IBUILabel" id="531154203">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">315</int>
-						<string key="NSFrame">{{310, 32}, {108, 29}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<int key="IBUIContentMode">7</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<string key="IBUIText">Hmm...</string>
-						<object class="NSFont" key="IBUIFont">
-							<string key="NSName">Helvetica-Bold</string>
-							<double key="NSSize">24</double>
-							<int key="NSfFlags">16</int>
-						</object>
-						<object class="NSColor" key="IBUITextColor">
-							<int key="NSColorSpace">2</int>
-							<bytes key="NSRGB">MSAwLjgyNzQ1MTA1MDMgMAA</bytes>
-						</object>
-						<object class="NSColor" key="IBUIHighlightedColor" id="790402446">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MQA</bytes>
-						</object>
-						<int key="IBUIBaselineAdjustment">1</int>
-						<float key="IBUIMinimumFontSize">10</float>
-						<int key="IBUITextAlignment">1</int>
-					</object>
-					<object class="IBUILabel" id="785455561">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">307</int>
-						<string key="NSFrame">{{268, 74}, {192, 96}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<int key="IBUIContentMode">7</int>
-						<bool key="IBUIUserInteractionEnabled">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<string key="IBUIText">It appears you didn't complete your last game! Would you like to restore it?</string>
-						<object class="NSFont" key="IBUIFont">
-							<string key="NSName">Helvetica</string>
-							<double key="NSSize">18</double>
-							<int key="NSfFlags">16</int>
-						</object>
-						<object class="NSColor" key="IBUITextColor">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA</bytes>
-						</object>
-						<reference key="IBUIHighlightedColor" ref="790402446"/>
-						<int key="IBUIBaselineAdjustment">1</int>
-						<float key="IBUIMinimumFontSize">10</float>
-						<int key="IBUINumberOfLines">4</int>
-						<int key="IBUITextAlignment">1</int>
-					</object>
-					<object class="IBUIButton" id="472385208">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">302</int>
-						<string key="NSFrame">{{53, 229}, {151, 37}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<object class="NSFont" key="IBUIFont" id="204967016">
-							<string key="NSName">Helvetica-Bold</string>
-							<double key="NSSize">15</double>
-							<int key="NSfFlags">16</int>
-						</object>
-						<int key="IBUIButtonType">1</int>
-						<string key="IBUINormalTitle">Dismiss</string>
-						<reference key="IBUIHighlightedTitleColor" ref="790402446"/>
-						<object class="NSColor" key="IBUINormalTitleColor" id="734262812">
-							<int key="NSColorSpace">1</int>
-							<bytes key="NSRGB">MCAwIDAuNTAxOTYwODE0AA</bytes>
-						</object>
-						<object class="NSColor" key="IBUINormalTitleShadowColor" id="644451038">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MC41AA</bytes>
-						</object>
-					</object>
-					<object class="IBUIButton" id="923913762">
-						<reference key="NSNextResponder" ref="191373211"/>
-						<int key="NSvFlags">299</int>
-						<string key="NSFrame">{{277, 229}, {151, 37}}</string>
-						<reference key="NSSuperview" ref="191373211"/>
-						<bool key="IBUIOpaque">NO</bool>
-						<int key="IBUITag">1</int>
-						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-						<int key="IBUIContentHorizontalAlignment">0</int>
-						<int key="IBUIContentVerticalAlignment">0</int>
-						<reference key="IBUIFont" ref="204967016"/>
-						<int key="IBUIButtonType">1</int>
-						<string key="IBUINormalTitle">Restore</string>
-						<reference key="IBUIHighlightedTitleColor" ref="790402446"/>
-						<reference key="IBUINormalTitleColor" ref="734262812"/>
-						<reference key="IBUINormalTitleShadowColor" ref="644451038"/>
-					</object>
-				</object>
-				<string key="NSFrameSize">{480, 320}</string>
-				<reference key="NSSuperview"/>
-				<reference key="IBUIBackgroundColor" ref="790402446"/>
-				<int key="IBUIContentMode">4</int>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
-			</object>
-		</object>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<object class="NSMutableArray" key="connectionRecords">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="372490531"/>
-						<reference key="destination" ref="191373211"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonReleased:</string>
-						<reference key="source" ref="923913762"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">11</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonReleased:</string>
-						<reference key="source" ref="472385208"/>
-						<reference key="destination" ref="372490531"/>
-						<int key="IBEventType">7</int>
-					</object>
-					<int key="connectionID">12</int>
-				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<reference key="object" ref="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">1</int>
-						<reference key="object" ref="191373211"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="508553704"/>
-							<reference ref="923913762"/>
-							<reference ref="785455561"/>
-							<reference ref="531154203"/>
-							<reference ref="472385208"/>
-							<reference ref="396922791"/>
-						</object>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="372490531"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="975951072"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">5</int>
-						<reference key="object" ref="508553704"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">6</int>
-						<reference key="object" ref="531154203"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">7</int>
-						<reference key="object" ref="785455561"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">8</int>
-						<reference key="object" ref="472385208"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">10</int>
-						<reference key="object" ref="923913762"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">15</int>
-						<reference key="object" ref="396922791"/>
-						<reference key="parent" ref="191373211"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="flattenedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-1.CustomClassName</string>
-					<string>-2.CustomClassName</string>
-					<string>1.IBEditorWindowLastContentRect</string>
-					<string>1.IBPluginDependency</string>
-					<string>10.IBPluginDependency</string>
-					<string>10.IBViewBoundsToFrameTransform</string>
-					<string>15.IBPluginDependency</string>
-					<string>15.IBViewBoundsToFrameTransform</string>
-					<string>5.IBPluginDependency</string>
-					<string>5.IBViewBoundsToFrameTransform</string>
-					<string>6.IBPluginDependency</string>
-					<string>6.IBViewBoundsToFrameTransform</string>
-					<string>7.IBPluginDependency</string>
-					<string>7.IBViewBoundsToFrameTransform</string>
-					<string>8.IBPluginDependency</string>
-					<string>8.IBViewBoundsToFrameTransform</string>
-				</object>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>RestoreViewController</string>
-					<string>UIResponder</string>
-					<string>{{206, 423}, {480, 320}}</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">AUOKgABDZQAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform"/>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">AUGgAABBoAAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">AUObAABCAAAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">AUOGAABClAAAA</bytes>
-					</object>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<object class="NSAffineTransform">
-						<bytes key="NSTransformStruct">AUJUAABDZQAAA</bytes>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="unlocalizedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="activeLocalization"/>
-			<object class="NSMutableDictionary" key="localizations">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="sourceID"/>
-			<int key="maxID">15</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">RestoreViewController</string>
-					<string key="superclassName">UIViewController</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">buttonReleased:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">buttonReleased:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">buttonReleased:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Classes/RestoreViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UILabel</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Classes/ExtraCategories.h</string>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="749404015">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIButton</string>
-					<string key="superclassName">UIControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIControl</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIImageView</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UILabel</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIResponder</string>
-					<string key="superclassName">NSObject</string>
-					<reference key="sourceIdentifier" ref="749404015"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchBar</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchDisplayController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
-					</object>
-				</object>
-			</object>
-		</object>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
-			<integer value="1056" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="3000" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>denied.png</string>
-				<string>smallerBackground~iphone.png</string>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>{240, 160}</string>
-				<string>{480, 320}</string>
-			</object>
-		</object>
-		<string key="IBCocoaTouchPluginVersion">132</string>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="8191" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RestoreViewController">
+            <connections>
+                <outlet property="dismissButton" destination="8" id="0AU-TL-3aN"/>
+                <outlet property="restoreButton" destination="10" id="V8J-Ke-DQd"/>
+                <outlet property="view" destination="1" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="center" id="1">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="smallerBackground.png" id="15">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                </imageView>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="denied.png" id="5">
+                    <rect key="frame" x="20" y="20" width="240" height="160"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                </imageView>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Hmm..." textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="6" customClass="LabelWithIBLocalization">
+                    <rect key="frame" x="268" y="32" width="192" height="29"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="24"/>
+                    <color key="textColor" red="1" green="0.82745105029999999" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
+                    <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                </label>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="It appears you didn't complete your last game!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="4" minimumFontSize="10" id="7" customClass="LabelWithIBLocalization">
+                    <rect key="frame" x="268" y="74" width="192" height="70"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="18"/>
+                    <color key="textColor" red="0.90196079019999997" green="0.90196079019999997" blue="0.90196079019999997" alpha="1" colorSpace="calibratedRGB"/>
+                    <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                </label>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="8">
+                    <rect key="frame" x="53" y="229" width="151" height="37"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Dismiss">
+                        <color key="titleColor" red="0.0" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="buttonReleased:" destination="-1" eventType="touchUpInside" id="12"/>
+                    </connections>
+                </button>
+                <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="10">
+                    <rect key="frame" x="277" y="229" width="151" height="37"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
+                    <state key="normal" title="Restore">
+                        <color key="titleColor" red="0.0" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="calibratedRGB"/>
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="buttonReleased:" destination="-1" eventType="touchUpInside" id="11"/>
+                    </connections>
+                </button>
+                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Would you like to restore it?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="4" minimumFontSize="10" id="GnJ-yZ-dpc" customClass="LabelWithIBLocalization">
+                    <rect key="frame" x="268" y="152" width="192" height="59"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="18"/>
+                    <color key="textColor" red="0.90196079019999997" green="0.90196079019999997" blue="0.90196079019999997" alpha="1" colorSpace="calibratedRGB"/>
+                    <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                </label>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="870" y="246"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="denied.png" width="240" height="160"/>
+        <image name="smallerBackground.png" width="480" height="320"/>
+    </resources>
+</document>
--- a/project_files/HedgewarsMobile/Classes/RestoreViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -20,6 +20,11 @@
 #import "RestoreViewController.h"
 #import "GameInterfaceBridge.h"
 
+@interface RestoreViewController ()
+@property (retain, nonatomic) IBOutlet UIButton *restoreButton;
+@property (retain, nonatomic) IBOutlet UIButton *dismissButton;
+@end
+
 @implementation RestoreViewController
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
@@ -33,7 +38,14 @@
     if (theButton.tag != 0) {
         [[AudioManagerController mainManager] playClickSound];
         [GameInterfaceBridge registerCallingController:self.presentingViewController];
-        [GameInterfaceBridge startSaveGame:[[NSUserDefaults standardUserDefaults] objectForKey:@"savedGamePath"]];
+        
+        // Since iOS 8, the file system layout of app containers has changed.
+        // So, we must rely now on saved game filename, not full path.
+        NSString *oldSavedGamePath = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedGamePath"];
+        NSString *savedGameFile = [oldSavedGamePath lastPathComponent];
+        NSString *newSavedGamePath = [NSString stringWithFormat:@"%@%@", SAVES_DIRECTORY(), savedGameFile];
+        
+        [GameInterfaceBridge startSaveGame:newSavedGamePath];
     } else {
         [[AudioManagerController mainManager] playBackSound];
         [defaults setObject:@"" forKey:@"savedGamePath"];
@@ -44,6 +56,12 @@
 
 -(void) viewDidLoad {
     [super viewDidLoad];
+    
+    [self.restoreButton setTitle:NSLocalizedString(@"Restore", nil) forState:UIControlStateNormal];
+    [self.dismissButton setTitle:NSLocalizedString(@"Dismiss", nil) forState:UIControlStateNormal];
+    
+    [self.restoreButton applyDarkBlueQuickStyle];
+    [self.dismissButton applyDarkBlueQuickStyle];
 }
 
 -(void) didReceiveMemoryWarning {
@@ -55,6 +73,8 @@
 }
 
 -(void) dealloc {
+    [_restoreButton release];
+    [_dismissButton release];
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -24,12 +24,10 @@
                                                         EditableCellViewDelegate, UIActionSheetDelegate>  {
     UITableView *tableView;
     NSMutableArray *listOfSavegames;
-    NSInteger numberOfItems;
 }
 
 @property (nonatomic,retain) IBOutlet UITableView *tableView;
 @property (nonatomic,retain) NSMutableArray *listOfSavegames;
-@property (assign) NSInteger numberOfItems;
 
 -(IBAction) buttonPressed:(id) sender;
 
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -20,9 +20,12 @@
 #import "SavedGamesViewController.h"
 #import "GameInterfaceBridge.h"
 
+@interface SavedGamesViewController ()
+@property (retain, nonatomic) IBOutlet UIBarButtonItem *clearAllButton;
+@end
 
 @implementation SavedGamesViewController
-@synthesize tableView, listOfSavegames, numberOfItems;
+@synthesize tableView, listOfSavegames;
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
     return rotationManager(interfaceOrientation);
@@ -33,12 +36,14 @@
     NSMutableArray *array = [[NSMutableArray alloc] initWithArray:contentsOfDir copyItems:YES];
     self.listOfSavegames = array;
     [array release];
-    self.numberOfItems = [self.listOfSavegames count];
 
     [self.tableView reloadData];
 }
 
--(void) viewDidLoad {
+-(void) viewDidLoad
+{
+    [super viewDidLoad];
+    
     [self.tableView setBackgroundColorForAnyTable:[UIColor clearColor]];
 
     NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png";
@@ -49,10 +54,11 @@
     background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
     [self.view insertSubview:background atIndex:0];
     [background release];
-
+    
+    [self.clearAllButton setTitle:NSLocalizedString(@"Clear All", nil)];
+    
     if (self.listOfSavegames == nil)
         [self updateTable];
-    [super viewDidLoad];
 }
 
 -(void) viewWillAppear:(BOOL)animated {
@@ -96,13 +102,12 @@
         [[NSFileManager defaultManager] createDirectoryAtPath:SAVES_DIRECTORY() withIntermediateDirectories:NO attributes:nil error:NULL];
 
         // update the table and the cached list
-        NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:self.numberOfItems];
-        for (int i = 0; i < self.numberOfItems; i++)
+        NSMutableArray *array = [[NSMutableArray alloc] init];
+        for (int i = 0; i < [self.listOfSavegames count]; i++)
             [array addObject:[NSIndexPath indexPathForRow:i inSection:0]];
-        self.numberOfItems = 0;
+        [self.listOfSavegames removeAllObjects];
+        
         [self.tableView deleteRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationTop];
-        [self.listOfSavegames removeAllObjects];
-
         [array release];
     }
 }
@@ -114,20 +119,19 @@
 }
 
 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return self.numberOfItems;
+    return [self.listOfSavegames count];
 }
 
 -(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     static NSString *CellIdentifier = @"Cell";
 
-    if (self.listOfSavegames == nil)
-        [self updateTable];
     EditableCellView *editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (editableCell == nil) {
         editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
-        editableCell.delegate = self;
+        editableCell.delegate = nil;
+        editableCell.textField.userInteractionEnabled = NO;
     }
-    editableCell.respectEditing = YES;
+    editableCell.tag = [indexPath row];
     editableCell.textField.text = [[self.listOfSavegames objectAtIndex:[indexPath row]] stringByDeletingPathExtension];
     editableCell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
 
@@ -158,13 +162,29 @@
 
 -(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
     [(EditableCellView *)[self.tableView cellForRowAtIndexPath:indexPath] save:nil];
-    self.numberOfItems--;
-    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
+    [self fixTagsForStartTag:[indexPath row]];
 
     NSString *saveName = [self.listOfSavegames objectAtIndex:[indexPath row]];
     NSString *filePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),saveName];
     [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
     [self.listOfSavegames removeObject:saveName];
+    
+    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
+}
+
+#pragma mark - Fix cells' tags
+
+- (void)fixTagsForStartTag:(NSInteger)tag
+{
+    for (UITableViewCell *cell in self.tableView.visibleCells)
+    {
+        NSInteger oldTag = cell.tag;
+        
+        if (oldTag > tag)
+        {
+            cell.tag--;
+        }
+    }
 }
 
 #pragma mark -
@@ -187,7 +207,6 @@
     [[NSFileManager defaultManager] copyItemAtPath:currentFilePath toPath:newFilePath error:nil];
     [newFilePath release];
 
-    self.numberOfItems++;
     [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
 
     [GameInterfaceBridge registerCallingController:self];
@@ -229,6 +248,7 @@
 -(void) dealloc {
     releaseAndNil(tableView);
     releaseAndNil(listOfSavegames);
+    releaseAndNil(_clearAllButton);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.xib	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.xib	Mon Nov 09 16:34:32 2015 +0000
@@ -1,553 +1,56 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
-	<data>
-		<int key="IBDocument.SystemTarget">1056</int>
-		<string key="IBDocument.SystemVersion">10K549</string>
-		<string key="IBDocument.InterfaceBuilderVersion">823</string>
-		<string key="IBDocument.AppKitVersion">1038.36</string>
-		<string key="IBDocument.HIToolboxVersion">461.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-			<string key="NS.object.0">132</string>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="7"/>
-		</object>
-		<object class="NSArray" key="IBDocument.PluginDependencies">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys" id="0">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="IBProxyObject" id="841351856">
-				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBProxyObject" id="606714003">
-				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-			<object class="IBUIView" id="766721923">
-				<reference key="NSNextResponder"/>
-				<int key="NSvFlags">292</int>
-				<object class="NSMutableArray" key="NSSubviews">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBUIToolbar" id="832454237">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">290</int>
-						<string key="NSFrameSize">{768, 44}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-						<int key="IBUITag">458912</int>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<object class="NSMutableArray" key="IBUIItems">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBUIBarButtonItem" id="422926197">
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<int key="IBUIStyle">1</int>
-								<reference key="IBUIToolbar" ref="832454237"/>
-								<int key="IBUISystemItemIdentifier">0</int>
-							</object>
-							<object class="IBUIBarButtonItem" id="881124109">
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<reference key="IBUIToolbar" ref="832454237"/>
-								<int key="IBUISystemItemIdentifier">5</int>
-							</object>
-							<object class="IBUIBarButtonItem" id="882246004">
-								<int key="IBUITag">1</int>
-								<string key="IBUITitle">Clear All</string>
-								<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-								<int key="IBUIStyle">1</int>
-								<reference key="IBUIToolbar" ref="832454237"/>
-							</object>
-						</object>
-					</object>
-					<object class="IBUITableView" id="399289716">
-						<reference key="NSNextResponder" ref="766721923"/>
-						<int key="NSvFlags">274</int>
-						<string key="NSFrame">{{0, 44}, {768, 724}}</string>
-						<reference key="NSSuperview" ref="766721923"/>
-						<object class="NSColor" key="IBUIBackgroundColor">
-							<int key="NSColorSpace">3</int>
-							<bytes key="NSWhite">MCAwAA</bytes>
-						</object>
-						<bool key="IBUIClipsSubviews">YES</bool>
-						<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-						<bool key="IBUIAlwaysBounceVertical">YES</bool>
-						<int key="IBUIStyle">1</int>
-						<int key="IBUISeparatorStyle">2</int>
-						<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
-						<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
-						<float key="IBUIRowHeight">44</float>
-						<float key="IBUISectionHeaderHeight">10</float>
-						<float key="IBUISectionFooterHeight">10</float>
-					</object>
-				</object>
-				<string key="NSFrameSize">{768, 768}</string>
-				<reference key="NSSuperview"/>
-				<object class="NSColor" key="IBUIBackgroundColor">
-					<int key="NSColorSpace">3</int>
-					<bytes key="NSWhite">MQA</bytes>
-				</object>
-				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
-				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
-					<int key="interfaceOrientation">3</int>
-				</object>
-				<string key="targetRuntimeIdentifier">IBIPadFramework</string>
-			</object>
-		</object>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<object class="NSMutableArray" key="connectionRecords">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">view</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="766721923"/>
-					</object>
-					<int key="connectionID">3</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonPressed:</string>
-						<reference key="source" ref="422926197"/>
-						<reference key="destination" ref="841351856"/>
-					</object>
-					<int key="connectionID">6</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">dataSource</string>
-						<reference key="source" ref="399289716"/>
-						<reference key="destination" ref="841351856"/>
-					</object>
-					<int key="connectionID">8</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">delegate</string>
-						<reference key="source" ref="399289716"/>
-						<reference key="destination" ref="841351856"/>
-					</object>
-					<int key="connectionID">9</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchOutletConnection" key="connection">
-						<string key="label">tableView</string>
-						<reference key="source" ref="841351856"/>
-						<reference key="destination" ref="399289716"/>
-					</object>
-					<int key="connectionID">10</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">buttonPressed:</string>
-						<reference key="source" ref="882246004"/>
-						<reference key="destination" ref="841351856"/>
-					</object>
-					<int key="connectionID">17</int>
-				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<reference key="object" ref="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="841351856"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="606714003"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="766721923"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="832454237"/>
-							<reference ref="399289716"/>
-						</object>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">4</int>
-						<reference key="object" ref="832454237"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="422926197"/>
-							<reference ref="881124109"/>
-							<reference ref="882246004"/>
-						</object>
-						<reference key="parent" ref="766721923"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">5</int>
-						<reference key="object" ref="422926197"/>
-						<reference key="parent" ref="832454237"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">7</int>
-						<reference key="object" ref="399289716"/>
-						<reference key="parent" ref="766721923"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">13</int>
-						<reference key="object" ref="881124109"/>
-						<reference key="parent" ref="832454237"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">15</int>
-						<reference key="object" ref="882246004"/>
-						<reference key="parent" ref="832454237"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="flattenedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-1.CustomClassName</string>
-					<string>-2.CustomClassName</string>
-					<string>13.IBPluginDependency</string>
-					<string>15.IBPluginDependency</string>
-					<string>2.IBEditorWindowLastContentRect</string>
-					<string>2.IBPluginDependency</string>
-					<string>4.IBPluginDependency</string>
-					<string>5.IBPluginDependency</string>
-					<string>7.IBPluginDependency</string>
-				</object>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>SavedGamesViewController</string>
-					<string>UIResponder</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>{{467, 276}, {768, 768}}</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="unlocalizedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="activeLocalization"/>
-			<object class="NSMutableDictionary" key="localizations">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="sourceID"/>
-			<int key="maxID">17</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">SavedGamesViewController</string>
-					<string key="superclassName">UIViewController</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">buttonPressed:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">buttonPressed:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">buttonPressed:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="outlets">
-						<string key="NS.key.0">tableView</string>
-						<string key="NS.object.0">UITableView</string>
-					</object>
-					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<string key="NS.key.0">tableView</string>
-						<object class="IBToOneOutletInfo" key="NS.object.0">
-							<string key="name">tableView</string>
-							<string key="candidateClassName">UITableView</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Classes/SavedGamesViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UITableView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">Classes/ExtraCategories.h</string>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="786211723">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIBarButtonItem</string>
-					<string key="superclassName">UIBarItem</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIBarItem</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIResponder</string>
-					<string key="superclassName">NSObject</string>
-					<reference key="sourceIdentifier" ref="786211723"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIScrollView</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchBar</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UISearchDisplayController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UITableView</string>
-					<string key="superclassName">UIScrollView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIToolbar</string>
-					<string key="superclassName">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIView</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">UIViewController</string>
-					<string key="superclassName">UIResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
-					</object>
-				</object>
-			</object>
-		</object>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
-			<integer value="1056" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
-			<integer value="3100" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<string key="IBDocument.LastKnownRelativeProjectPath">../Hedgewars.xcodeproj</string>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<string key="IBCocoaTouchPluginVersion">132</string>
-	</data>
-</archive>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SavedGamesViewController">
+            <connections>
+                <outlet property="clearAllButton" destination="15" id="txV-uc-ITF"/>
+                <outlet property="tableView" destination="7" id="10"/>
+                <outlet property="view" destination="2" id="3"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2">
+            <rect key="frame" x="0.0" y="0.0" width="768" height="768"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <subviews>
+                <toolbar clearsContextBeforeDrawing="NO" tag="458912" contentMode="scaleToFill" id="4">
+                    <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                    <animations/>
+                    <items>
+                        <barButtonItem systemItem="done" id="5">
+                            <connections>
+                                <action selector="buttonPressed:" destination="-1" id="6"/>
+                            </connections>
+                        </barButtonItem>
+                        <barButtonItem style="plain" systemItem="flexibleSpace" id="13"/>
+                        <barButtonItem tag="1" title="Clear All" id="15">
+                            <connections>
+                                <action selector="buttonPressed:" destination="-1" id="17"/>
+                            </connections>
+                        </barButtonItem>
+                    </items>
+                </toolbar>
+                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="7">
+                    <rect key="frame" x="0.0" y="44" width="768" height="724"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                    <connections>
+                        <outlet property="dataSource" destination="-1" id="8"/>
+                        <outlet property="delegate" destination="-1" id="9"/>
+                    </connections>
+                </tableView>
+            </subviews>
+            <animations/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+            <nil key="simulatedStatusBarMetrics"/>
+            <simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+</document>
--- a/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -18,13 +18,10 @@
 
 
 #import <UIKit/UIKit.h>
-
-
-@class SingleSchemeViewController;
+#import "TableViewControllerWithDoneButton.h"
 
-@interface SchemeSettingsViewController : UITableViewController {
+@interface SchemeSettingsViewController : TableViewControllerWithDoneButton {
     NSMutableArray *listOfSchemes;
-    SingleSchemeViewController *childController;
 }
 
 @property (nonatomic, retain) NSMutableArray *listOfSchemes;
--- a/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -40,7 +40,7 @@
     self.navigationItem.rightBarButtonItem = editButton;
     [editButton release];
 
-    self.navigationItem.title = @"List of schemes";
+    self.navigationItem.title = NSLocalizedString(@"List of schemes", nil);
 }
 
 -(void) viewWillAppear:(BOOL) animated {
@@ -131,43 +131,43 @@
 
 #pragma mark -
 #pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    if (childController == nil) {
-        childController = [[SingleSchemeViewController alloc] initWithStyle:UITableViewStyleGrouped];
-    }
-
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    SingleSchemeViewController *singleSchemeViewController = [[SingleSchemeViewController alloc] initWithStyle:UITableViewStyleGrouped];
+    
     NSInteger row = [indexPath row];
     NSString *selectedSchemeFile = [self.listOfSchemes objectAtIndex:row];
 
     // this must be set so childController can load the correct plist
-    childController.schemeName = [selectedSchemeFile stringByDeletingPathExtension];
-    [childController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
+    singleSchemeViewController.schemeName = [selectedSchemeFile stringByDeletingPathExtension];
+    [singleSchemeViewController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
 
-    [self.navigationController pushViewController:childController animated:YES];
+    [self.navigationController pushViewController:singleSchemeViewController animated:YES];
+    [singleSchemeViewController release];
+    
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
 }
 
 
 #pragma mark -
 #pragma mark Memory management
--(void)didReceiveMemoryWarning {
+-(void)didReceiveMemoryWarning
+{
     [super didReceiveMemoryWarning];
-    if (childController.view.superview == nil )
-        childController = nil;
     MSG_MEMCLEAN();
 }
 
--(void) viewDidUnload {
+-(void) viewDidUnload
+{
     self.listOfSchemes = nil;
-    childController = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
 
 
--(void) dealloc {
+-(void) dealloc
+{
     releaseAndNil(listOfSchemes);
-    releaseAndNil(childController);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -20,6 +20,7 @@
 #import "SchemeWeaponConfigViewController.h"
 #import <QuartzCore/QuartzCore.h>
 
+#define DISABLED_GAME_STYLES @[@"Frenzy.lua", @"Gravity.lua", @"HedgeEditor.lua", @"Continental_supplies.lua", @"Space_Invasion.lua", @"Tumbler.lua"]
 
 #define LABEL_TAG 57423
 #define TABLE_TAG 45657
@@ -48,7 +49,7 @@
 
 -(NSString *)selectedScript {
     if (selectedScript == nil)
-        self.selectedScript = @"Normal.plist";
+        self.selectedScript = @"";
     return selectedScript;
 }
 
@@ -73,7 +74,7 @@
 -(NSArray *)listOfScripts {
     if (listOfScripts == nil)
         self.listOfScripts = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCRIPTS_DIRECTORY() error:NULL]
-                              filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF ENDSWITH '.lua'"]];
+                              filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF ENDSWITH '.lua' AND NOT (SELF IN %@)", DISABLED_GAME_STYLES]];
     return listOfScripts;
 }
 
@@ -166,7 +167,7 @@
     else if (self.topControl.selectedSegmentIndex == 1)
         return [self.listOfWeapons count];
     else
-        return [self.listOfScripts count];
+        return [self.listOfScripts count] + 1; // +1 for fake 'Normal'
 }
 
 // Customize the appearance of table view cells.
@@ -205,14 +206,31 @@
             self.lastIndexPath_we = indexPath;
         }
     } else {
-        cell.textLabel.text = [[[self.listOfScripts objectAtIndex:row] stringByDeletingPathExtension]
-                               stringByReplacingOccurrencesOfString:@"_" withString:@" "];
-        //cell.detailTextLabel.text = ;
-        if ([[self.listOfScripts objectAtIndex:row] isEqualToString:self.selectedScript]) {
-            UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
-            cell.accessoryView = checkbox;
-            [checkbox release];
-            self.lastIndexPath_lu = indexPath;
+        if (row == 0)
+        {
+            cell.textLabel.text = @"Normal";
+            
+            if ([self.selectedScript isEqualToString:@""])
+            {
+                UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
+                cell.accessoryView = checkbox;
+                [checkbox release];
+                self.lastIndexPath_lu = indexPath;
+            }
+        }
+        else
+        {
+            row--;
+            
+            cell.textLabel.text = [[[self.listOfScripts objectAtIndex:row] stringByDeletingPathExtension]
+                                   stringByReplacingOccurrencesOfString:@"_" withString:@" "];
+            //cell.detailTextLabel.text = ;
+            if ([[self.listOfScripts objectAtIndex:row] isEqualToString:self.selectedScript]) {
+                UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
+                cell.accessoryView = checkbox;
+                [checkbox release];
+                self.lastIndexPath_lu = indexPath;
+            }
         }
     }
 
@@ -311,44 +329,63 @@
             self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
         } else {
             self.lastIndexPath_lu = indexPath;
-            self.selectedScript = [self.listOfScripts objectAtIndex:newRow];
-
-            // some styles disable or force the choice of a particular scheme/weaponset
-            NSString *path = [[NSString alloc] initWithFormat:@"%@/%@.cfg",SCRIPTS_DIRECTORY(),[self.selectedScript stringByDeletingPathExtension]];
-            NSString *configFile = [[NSString alloc] initWithContentsOfFile:path];
-            [path release];
-            NSArray *scriptOptions = [configFile componentsSeparatedByString:@"\n"];
-            [configFile release];
-
-            self.scriptCommand = [NSString stringWithFormat:@"escript Scripts/Multiplayer/%@",self.selectedScript];
-            NSString *scheme = [scriptOptions objectAtIndex:0];
-            if ([scheme isEqualToString:@"locked"])
+            
+            if (newRow == 0)
             {
+                self.selectedScript = nil;
+                self.scriptCommand = nil;
+                
                 self.selectedScheme = @"Default.plist";
-                [self.topControl setEnabled:NO forSegmentAtIndex:0];
+                [self.topControl setEnabled:YES forSegmentAtIndex:0];
+                
+                self.selectedWeapon = @"Default.plist";
+                [self.topControl setEnabled:YES forSegmentAtIndex:1];
             }
             else
             {
-                if (![scheme isEqualToString:@"*"])
+                newRow--;
+                
+                self.selectedScript = [self.listOfScripts objectAtIndex:newRow];
+                
+                // some styles disable or force the choice of a particular scheme/weaponset
+                NSString *path = [[NSString alloc] initWithFormat:@"%@/%@.cfg",SCRIPTS_DIRECTORY(),[self.selectedScript stringByDeletingPathExtension]];
+                NSString *configFile = [[NSString alloc] initWithContentsOfFile:path];
+                [path release];
+                NSArray *scriptOptions = [configFile componentsSeparatedByString:@"\n"];
+                [configFile release];
+                
+                self.scriptCommand = [NSString stringWithFormat:@"escript Scripts/Multiplayer/%@",self.selectedScript];
+                NSString *scheme = [scriptOptions objectAtIndex:0];
+                if ([scheme isEqualToString:@"locked"])
                 {
-                    self.selectedScheme = [NSString stringWithFormat:@"%@.plist",scheme];
+                    self.selectedScheme = @"Default.plist";
+                    [self.topControl setEnabled:NO forSegmentAtIndex:0];
                 }
-                [self.topControl setEnabled:YES forSegmentAtIndex:0];
-            }
-
-            NSString *weapon = [scriptOptions objectAtIndex:1];
-            if ([weapon isEqualToString:@"locked"])
-            {
-                self.selectedWeapon = @"Default.plist";
-                [self.topControl setEnabled:NO forSegmentAtIndex:1];
-            }
-            else
-            {
-                if (![weapon isEqualToString:@"*"])
+                else
+                {
+                    if (scheme && ![scheme isEqualToString:@"*"])
+                    {
+                        NSString *correctScheme = [scheme stringByReplacingOccurrencesOfString:@"_" withString:@" "];
+                        self.selectedScheme = [NSString stringWithFormat:@"%@.plist", correctScheme];
+                    }
+                    [self.topControl setEnabled:YES forSegmentAtIndex:0];
+                }
+                
+                NSString *weapon = [scriptOptions objectAtIndex:1];
+                if ([weapon isEqualToString:@"locked"])
                 {
-                    self.selectedWeapon = [NSString stringWithFormat:@"%@.plist",weapon];
+                    self.selectedWeapon = @"Default.plist";
+                    [self.topControl setEnabled:NO forSegmentAtIndex:1];
                 }
-                [self.topControl setEnabled:YES forSegmentAtIndex:1];
+                else
+                {
+                    if (weapon && ![weapon isEqualToString:@"*"])
+                    {
+                        NSString *correctWeapon = [weapon stringByReplacingOccurrencesOfString:@"_" withString:@" "];
+                        self.selectedWeapon = [NSString stringWithFormat:@"%@.plist", correctWeapon];
+                    }
+                    [self.topControl setEnabled:YES forSegmentAtIndex:1];
+                }
             }
         }
 
@@ -396,16 +433,6 @@
 #pragma mark -
 #pragma mark Memory management
 -(void) didReceiveMemoryWarning {
-    if ([HWUtils isGameLaunched]) {
-        self.lastIndexPath_sc = nil;
-        self.lastIndexPath_we = nil;
-        self.lastIndexPath_lu = nil;
-        self.selectedScheme = nil;
-        self.selectedWeapon = nil;
-        self.selectedScript = nil;
-        self.scriptCommand = nil;
-        self.topControl = nil;
-    }
     self.listOfSchemes = nil;
     self.listOfWeapons = nil;
     self.listOfScripts = nil;
@@ -414,7 +441,6 @@
 }
 
 -(void) viewDidUnload {
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
     self.listOfSchemes = nil;
     self.listOfWeapons = nil;
     self.listOfScripts = nil;
@@ -430,7 +456,9 @@
     [super viewDidUnload];
 }
 
--(void) dealloc {
+-(void) dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
     releaseAndNil(listOfSchemes);
     releaseAndNil(listOfWeapons);
     releaseAndNil(listOfScripts);
--- a/project_files/HedgewarsMobile/Classes/ServerProtocolNetwork.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerProtocolNetwork.m	Mon Nov 09 16:34:32 2015 +0000
@@ -69,14 +69,14 @@
 #pragma mark Communication layer
 -(int) sendToServer:(NSString *)command {
     NSString *message = [[NSString alloc] initWithFormat:@"%@\n\n",command];
-    int result = SDLNet_TCP_Send(self.ssd, [message UTF8String], [message length]);
+    int result = SDLNet_TCP_Send(self.ssd, [message UTF8String], [message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
     [message release];
     return result;
 }
 
 -(int) sendToServer:(NSString *)command withArgument:(NSString *)argument {
     NSString *message = [[NSString alloc] initWithFormat:@"%@\n%@\n\n",command,argument];
-    int result = SDLNet_TCP_Send(self.ssd, [message UTF8String], [message length]);
+    int result = SDLNet_TCP_Send(self.ssd, [message UTF8String], [message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
     [message release];
     return result;
 }
--- a/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -19,29 +19,16 @@
 
 #import <UIKit/UIKit.h>
 
-
-@class GeneralSettingsViewController;
-@class TeamSettingsViewController;
-@class WeaponSettingsViewController;
-@class SchemeSettingsViewController;
-@class SupportViewController;
-
 @interface SettingsBaseViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UITabBarControllerDelegate> {
     UIViewController *targetController;
     NSArray *controllerNames;
     NSIndexPath *lastIndexPath;
     UITabBarController *tabController;
-    GeneralSettingsViewController *generalSettingsViewController;
-    TeamSettingsViewController *teamSettingsViewController;
-    WeaponSettingsViewController *weaponSettingsViewController;
-    SchemeSettingsViewController *schemeSettingsViewController;
-    SupportViewController *supportViewController;
 }
 
 @property (nonatomic, retain) UIViewController *targetController;
 @property (nonatomic, retain) NSArray *controllerNames;
 @property (nonatomic, retain) NSIndexPath *lastIndexPath;
-@property (nonatomic, retain) UITabBarController *tabController;
 
 -(void) dismissSplitView;
 
--- a/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -26,7 +26,7 @@
 
 
 @implementation SettingsBaseViewController
-@synthesize tabController, targetController, controllerNames, lastIndexPath;
+@synthesize targetController, controllerNames, lastIndexPath;
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
     return rotationManager(interfaceOrientation);
@@ -45,90 +45,35 @@
     self.controllerNames = array;
     [array release];
 
-    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
-                                                                                target:self
-                                                                                action:@selector(dismissSplitView)];
-    if (IS_IPAD()) {
+    if (IS_IPAD())
+    {
         // this class gets loaded twice, we tell the difference by looking at targetController
-        if (self.targetController != nil) {
+        if (self.targetController != nil)
+        {
             UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
+            tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
             tableView.delegate = self;
             tableView.dataSource = self;
             [tableView reloadData];
             [self.view addSubview:tableView];
             [self tableView:tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
             [tableView release];
-            self.navigationItem.leftBarButtonItem = doneButton;
-        }
-    } else {
-        // this class just loads all controllers and set up tabbar and navigation controllers
-        NSMutableArray *tabBarNavigationControllers = [[NSMutableArray alloc] initWithCapacity:5];
-        UINavigationController *navController = nil;
-
-        if (nil == generalSettingsViewController) {
-            generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-            generalSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:0];
-            generalSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/TargetBee.png",GRAPHICS_DIRECTORY()]];
-            navController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController];
-            generalSettingsViewController.navigationItem.backBarButtonItem = doneButton;
-            generalSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
-            [generalSettingsViewController release];
-            [tabBarNavigationControllers addObject:navController];
-            releaseAndNil(navController);
-        }
-        if (nil == teamSettingsViewController) {
-            teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-            teamSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:1];
-            teamSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Egg.png",GRAPHICS_DIRECTORY()]];
-            navController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController];
-            teamSettingsViewController.navigationItem.backBarButtonItem = doneButton;
-            teamSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
-            [tabBarNavigationControllers addObject:navController];
-            releaseAndNil(navController);
+            self.navigationItem.leftBarButtonItem = [self doneButton];
         }
-        if (nil == weaponSettingsViewController) {
-            weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-            weaponSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:2];
-            weaponSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/cheese.png",GRAPHICS_DIRECTORY()]];
-            navController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController];
-            weaponSettingsViewController.navigationItem.backBarButtonItem = doneButton;
-            weaponSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
-            [tabBarNavigationControllers addObject:navController];
-            releaseAndNil(navController);
-        }
-        if (nil == schemeSettingsViewController) {
-            schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-            schemeSettingsViewController.tabBarItem.title = [self.controllerNames objectAtIndex:3];
-            schemeSettingsViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Targetp.png",GRAPHICS_DIRECTORY()]];
-            navController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController];
-            schemeSettingsViewController.navigationItem.backBarButtonItem = doneButton;
-            schemeSettingsViewController.navigationItem.leftBarButtonItem = doneButton;
-            [tabBarNavigationControllers addObject:navController];
-            releaseAndNil(navController);
-        }
-        if (nil == supportViewController) {
-            supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
-            supportViewController.tabBarItem.title = [self.controllerNames objectAtIndex:4];
-            supportViewController.tabBarItem.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Seduction.png",GRAPHICS_DIRECTORY()]];
-            navController = [[UINavigationController alloc] initWithRootViewController:supportViewController];
-            supportViewController.navigationItem.backBarButtonItem = doneButton;
-            supportViewController.navigationItem.leftBarButtonItem = doneButton;
-            [tabBarNavigationControllers addObject:navController];
-            releaseAndNil(navController);
-        }
+    }
+    else
+    {
+        //iPhone part moved to MainMenuViewController
+    }
 
-        self.tabController = [[UITabBarController alloc] init];
-        self.tabController.viewControllers = tabBarNavigationControllers;
-        self.tabController.delegate = self;
-
-        [self.view addSubview:self.tabController.view];
-    }
-    [doneButton release];
     [super viewDidLoad];
 }
 
--(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
-    [viewController viewWillAppear:NO];
+- (UIBarButtonItem *)doneButton
+{
+    return [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+                                                         target:self
+                                                         action:@selector(dismissSplitView)] autorelease];
 }
 
 -(void) dismissSplitView {
@@ -136,16 +81,6 @@
     [[[HedgewarsAppDelegate sharedAppDelegate] mainViewController] dismissViewControllerAnimated:YES completion:nil];
 }
 
--(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
-    if (IS_IPAD() == NO)
-        return;
-
-    if (self.targetController != nil) {
-        CGRect screenRect = [[UIScreen mainScreen] safeBounds];
-        self.view.frame = CGRectMake(0, 0, 320, screenRect.size.height);
-    }
-}
-
 #pragma mark -
 #pragma mark Table view data source
 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
@@ -197,40 +132,33 @@
 
 #pragma mark -
 #pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
     NSInteger newRow = [indexPath row];
     NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
     UIViewController *nextController = nil;
 
-    if (newRow != oldRow) {
+    if (newRow != oldRow)
+    {
         [tableView deselectRowAtIndexPath:lastIndexPath animated:YES];
         [targetController.navigationController popToRootViewControllerAnimated:NO];
 
-        switch (newRow) {
+        switch (newRow)
+        {
             case 0:
-                if (nil == generalSettingsViewController)
-                    generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                nextController = generalSettingsViewController;
+                nextController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];;
                 break;
             case 1:
-                if (nil == teamSettingsViewController)
-                    teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                nextController = teamSettingsViewController;
+                nextController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
                 break;
             case 2:
-                if (nil == weaponSettingsViewController)
-                    weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                nextController = weaponSettingsViewController;
+                nextController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
                 break;
             case 3:
-                if (nil == schemeSettingsViewController)
-                    schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                nextController = schemeSettingsViewController;
+                nextController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
                 break;
             case 4:
-                if (nil == supportViewController)
-                    supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                nextController = supportViewController;
+                nextController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
                 break;
         }
 
@@ -240,6 +168,8 @@
         nextController.navigationItem.hidesBackButton = YES;
         [nextController viewWillAppear:NO];
         [targetController.navigationController pushViewController:nextController animated:NO];
+        [nextController release];
+        
         [[AudioManagerController mainManager] playClickSound];
     }
 }
@@ -247,62 +177,28 @@
 
 #pragma mark -
 #pragma mark Memory management
--(void) didReceiveMemoryWarning {
-    if (generalSettingsViewController.view.superview == nil)
-        generalSettingsViewController = nil;
-    if (teamSettingsViewController.view.superview == nil)
-        teamSettingsViewController = nil;
-    if (weaponSettingsViewController.view.superview == nil)
-        weaponSettingsViewController = nil;
-    if (schemeSettingsViewController.view.superview == nil)
-        schemeSettingsViewController = nil;
-    if (supportViewController.view.superview == nil)
-        supportViewController = nil;
-    if (tabController.view.superview == nil)
-        tabController = nil;
+-(void) didReceiveMemoryWarning
+{
     MSG_MEMCLEAN();
     [super didReceiveMemoryWarning];
 }
 
--(void) viewDidUnload {
+-(void) viewDidUnload
+{
     self.controllerNames = nil;
     self.lastIndexPath = nil;
     self.targetController = nil;
-    self.tabController = nil;
-    generalSettingsViewController = nil;
-    teamSettingsViewController = nil;
-    weaponSettingsViewController = nil;
-    schemeSettingsViewController = nil;
-    supportViewController = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
 
--(void) dealloc {
+-(void) dealloc
+{
     releaseAndNil(targetController);
     releaseAndNil(controllerNames);
     releaseAndNil(lastIndexPath);
-    releaseAndNil(tabController);
-    releaseAndNil(generalSettingsViewController);
-    releaseAndNil(teamSettingsViewController);
-    releaseAndNil(weaponSettingsViewController);
-    releaseAndNil(schemeSettingsViewController);
-    releaseAndNil(supportViewController);
     [super dealloc];
 }
 
-
--(void) viewWillDisappear:(BOOL)animated {
-    // this will send -viewWillDisappear: only the active view
-    [self.tabController viewWillDisappear:animated];
-    // let's send that to every page, even though only GeneralSettingsViewController needs it
-    [generalSettingsViewController viewWillDisappear:animated];
-    [teamSettingsViewController viewWillDisappear:animated];
-    [weaponSettingsViewController viewWillDisappear:animated];
-    [schemeSettingsViewController viewWillDisappear:animated];
-    [supportViewController viewWillDisappear:animated];
-    [super viewWillDisappear:animated];
-}
-
 @end
 
--- a/project_files/HedgewarsMobile/Classes/SettingsContainerViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2012 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
- */
-
-
-#import <UIKit/UIKit.h>
-
-
-@class SettingsBaseViewController;
-@class MGSplitViewController;
-
-@interface SettingsContainerViewController : UIViewController {
-    SettingsBaseViewController *baseController;
-    MGSplitViewController *splitViewRootController;
-}
-
-@property (nonatomic,retain) SettingsBaseViewController *baseController;
-@property (nonatomic,retain) MGSplitViewController *splitViewRootController;
-
-@end
--- a/project_files/HedgewarsMobile/Classes/SettingsContainerViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * Hedgewars-iOS, a Hedgewars port for iOS devices
- * Copyright (c) 2009-2012 Vittorio Giovara <vittorio.giovara@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
- */
-
-
-#import "SettingsContainerViewController.h"
-#import "SettingsBaseViewController.h"
-#import "MGSplitViewController.h"
-
-
-@implementation SettingsContainerViewController
-@synthesize baseController, splitViewRootController;
-
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
-    return rotationManager(interfaceOrientation);
-}
-
--(void) viewDidLoad {
-    CGRect screenRect = [[UIScreen mainScreen] safeBounds];
-    self.view.frame = screenRect;
-
-    if (IS_IPAD()) {
-        // the contents on the right of the splitview, setting targetController to nil to avoid creating the table
-        SettingsBaseViewController *rightController = [[SettingsBaseViewController alloc] init];
-        rightController.targetController = nil;
-        UINavigationController *rightNavController = [[UINavigationController alloc] initWithRootViewController:rightController];
-        [rightController release];
-
-        // the contens on the left of the splitview, setting targetController that will receive push/pop actions
-        SettingsBaseViewController *leftController = [[SettingsBaseViewController alloc] init];
-        leftController.targetController = rightNavController.topViewController;
-        UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController];
-        [leftController release];
-
-        self.splitViewRootController = [[MGSplitViewController alloc] init];
-        self.splitViewRootController.delegate = nil;
-        self.splitViewRootController.view.frame = screenRect;
-        self.splitViewRootController.viewControllers = [NSArray arrayWithObjects: leftNavController, rightNavController, nil];
-        self.splitViewRootController.showsMasterInPortrait = YES;
-        [leftNavController release];
-        [rightNavController release];
-
-        // add view to main controller
-        [self.view addSubview:self.splitViewRootController.view];
-    } else {
-        if (nil == self.baseController) {
-            SettingsBaseViewController *sbvc = [[SettingsBaseViewController alloc] init];
-            self.baseController = sbvc;
-            [sbvc release];
-        }
-        self.baseController.targetController = nil;
-        self.baseController.view.frame = screenRect;
-
-        [self.view addSubview:self.baseController.view];
-    }
-
-    [super viewDidLoad];
-}
-
-#pragma mark -
-#pragma mark Memory management
--(void) didReceiveMemoryWarning {
-    if (self.baseController.view.superview == nil)
-        self.baseController = nil;
-    if (self.splitViewRootController.view.superview == nil)
-        self.splitViewRootController = nil;
-    MSG_MEMCLEAN();
-    [super didReceiveMemoryWarning];
-}
-
--(void) viewDidUnload {
-    self.baseController = nil;
-    self.splitViewRootController = nil;
-    MSG_DIDUNLOAD();
-    [super viewDidUnload];
-}
-
--(void) dealloc {
-    releaseAndNil(baseController);
-    releaseAndNil(splitViewRootController);
-    [super dealloc];
-}
-
-
-#pragma mark -
-#pragma mark view event management propagation
-// every time we add a uiviewcontroller programmatically we need to take care of propgating such messages
-// see http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/
--(void) viewWillAppear:(BOOL)animated {
-    [self.splitViewRootController.detailViewController viewWillAppear:animated];
-    [self.baseController viewWillAppear:animated];
-    [super viewWillAppear:animated];
-}
-
--(void) viewWillDisappear:(BOOL)animated {
-    [self.splitViewRootController.detailViewController viewWillDisappear:animated];
-    [self.baseController viewWillDisappear:animated];
-    [super viewWillDisappear:animated];
-}
-
--(void) viewDidAppear:(BOOL)animated {
-    [self.splitViewRootController.detailViewController viewDidAppear:animated];
-    [self.baseController viewDidAppear:animated];
-    [super viewDidAppear:animated];
-}
-
--(void) viewDidDisappear:(BOOL)animated {
-    [self.splitViewRootController.detailViewController viewDidDisappear:animated];
-    [self.baseController viewDidDisappear:animated];
-    [super viewDidDisappear:animated];
-}
-
--(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
-    [self.splitViewRootController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
-    [self.baseController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
-}
-
--(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
-    [self.splitViewRootController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
-    [self.baseController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
-}
-
--(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
-    [self.splitViewRootController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
-    [self.baseController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
-}
-
-@end
--- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -25,18 +25,6 @@
 #define SLIDER_TAG 54321
 #define SWITCH_TAG 67890
 
-#define checkValueString(detailString,labelSting,sliderRef); \
-    if ([labelSting isEqualToString:@"Turn Time"] && (NSInteger) sliderRef.value == 100) \
-        detailString = @"∞"; \
-    else if ([labelSting isEqualToString:@"Water Rise Amount"] && (NSInteger) sliderRef.value == 100) \
-        detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \
-    else if ([labelSting isEqualToString:@"Crate Drop Turns"] && (NSInteger) sliderRef.value == 0) \
-        detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \
-    else if ([labelSting isEqualToString:@"Mines Time"] && (NSInteger) sliderRef.value == -1) \
-        detailString = NSLocalizedString(@"Rnd",@"Short for 'Random'"); \
-    else \
-        detailString = [NSString stringWithFormat:@"%d",(NSInteger) sliderRef.value];
-
 
 @implementation SingleSchemeViewController
 @synthesize schemeName, schemeDictionary, basicSettingList, gameModifierArray;
@@ -221,8 +209,7 @@
             }
             cellSlider.frame = CGRectMake(hOffset, vOffset, sliderLength, 23);
 
-            NSString *prestring = nil;
-            checkValueString(prestring,basicSettingTitleKey,cellSlider);
+            NSString *prestring = [self localizedValueStringForKey:basicSettingTitleKey andSlider:cellSlider];
 
             // forced to use this weird format otherwise the label disappears when size of the text is bigger than the original
             while ([prestring length] <= 4)
@@ -280,10 +267,10 @@
     UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
     // grab the associated labels
     UILabel *detailLabel = (UILabel *)cell.detailTextLabel;
-    UILabel *cellLabel = (UILabel *)[cell.contentView viewWithTag:LABEL_TAG];
     // modify it
 
-    checkValueString(detailLabel.text,cellLabel.text,theSlider);
+    NSString *basicSettingTitleKey = [[self.basicSettingList objectAtIndex:[indexPath row]] objectForKey:@"title"];
+    detailLabel.text = [self localizedValueStringForKey:basicSettingTitleKey andSlider:theSlider];
 
     // save changes in the main array
     NSMutableArray *array = [self.schemeDictionary objectForKey:@"basic"];
@@ -348,6 +335,42 @@
         return 56;
 }
 
+#pragma mark - Helper methods
+
+- (NSString *)localizedValueStringForKey:(NSString *)keyString andSlider:(UISlider *)slider
+{
+    NSInteger sliderValue = (NSInteger)slider.value;
+    
+    if ([keyString isEqualToString:@"Turn Time"] && sliderValue == 100)
+        return @"∞";
+    else if ([keyString isEqualToString:@"Water Rise Amount"] && sliderValue == 100)
+        return NSLocalizedString(@"Nvr", @"Short for 'Never'");
+    else if ([keyString isEqualToString:@"Crate Drop Turns"] && sliderValue == 0)
+        return NSLocalizedString(@"Nvr", @"Short for 'Never'");
+    else if ([keyString isEqualToString:@"Mines Time"] && sliderValue == -1)
+        return NSLocalizedString(@"Rnd", @"Short for 'Random'");
+    else if ([keyString isEqualToString:@"World Edge"])
+        switch (sliderValue)
+        {
+            case 0:
+                return NSLocalizedString(@"None", nil);
+            
+            case 1:
+                return NSLocalizedString(@"Wrap", nil);
+                
+            case 2:
+                return NSLocalizedString(@"Bounce", nil);
+                
+            case 3:
+                return NSLocalizedString(@"Sea", nil);
+                
+            default:
+                return @"";
+        }
+    else
+        return [NSString stringWithFormat:@"%ld", (long)sliderValue];
+}
+
 #pragma mark -
 #pragma mark Memory management
 -(void) didReceiveMemoryWarning {
--- a/project_files/HedgewarsMobile/Classes/SingleTeamViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleTeamViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -19,14 +19,6 @@
 
 #import <UIKit/UIKit.h>
 
-
-@class HogHatViewController;
-@class GravesViewController;
-@class VoicesViewController;
-@class FortsViewController;
-@class FlagsViewController;
-@class LevelViewController;
-
 @interface SingleTeamViewController : UITableViewController <EditableCellViewDelegate> {
     NSMutableDictionary *teamDictionary;
 
@@ -36,13 +28,6 @@
     NSArray *secondaryItems;
     NSArray *moreSecondaryItems;
     BOOL isWriteNeeded;
-
-    HogHatViewController *hogHatViewController;
-    GravesViewController *gravesViewController;
-    VoicesViewController *voicesViewController;
-    FortsViewController *fortsViewController;
-    FlagsViewController *flagsViewController;
-    LevelViewController *levelViewController;
 }
 
 @property (nonatomic,retain) NSMutableDictionary *teamDictionary;
--- a/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -146,7 +146,7 @@
             rows = 1;
             break;
         case 1: // team members
-            rows = HW_getMaxNumberOfHogs();
+            rows = HW_getMaxNumberOfHogs() + 1; // one for 'Select one hat for all hogs' cell
             break;
         case 2: // team details
             rows = [self.secondaryItems count];
@@ -180,6 +180,7 @@
     static NSString *CellIdentifier0 = @"Cell0";
     static NSString *CellIdentifier1 = @"Cell1";
     static NSString *CellIdentifier2 = @"Cell2";
+    static NSString *CellIdentifierDefault = @"CellDefault";
 
     NSArray *hogArray;
     UITableViewCell *cell = nil;
@@ -204,13 +205,28 @@
             cell = editableCell;
             break;
         case 1:
+            if ([indexPath row] == HW_getMaxNumberOfHogs())
+            {
+                cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierDefault];
+                if (cell == nil)
+                {
+                    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
+                                                   reuseIdentifier:CellIdentifierDefault] autorelease];
+                    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
+                }
+                
+                cell.textLabel.text = NSLocalizedString(@"Select one hat for all hogs", nil);
+                
+                break;
+            }
+            
             editableCell = (EditableCellView *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
             if (editableCell == nil) {
                 editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
                                                reuseIdentifier:CellIdentifier1] autorelease];
                 editableCell.delegate = self;
-                editableCell.tag = [indexPath row];
             }
+            editableCell.tag = [indexPath row];
 
             hogArray = [self.teamDictionary objectForKey:@"hedgehogs"];
 
@@ -290,120 +306,118 @@
     NSInteger row = [indexPath row];
     NSInteger section = [indexPath section];
 
-    if (2 == section) {
-        switch (row) {
+    if (2 == section)
+    {
+        switch (row)
+        {
             case 0: // grave
-                if (nil == gravesViewController)
-                    gravesViewController = [[GravesViewController alloc] initWithStyle:UITableViewStyleGrouped];
+            {
+                GravesViewController *gravesViewController = [[GravesViewController alloc] initWithStyle:UITableViewStyleGrouped];
 
                 [gravesViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:gravesViewController animated:YES];
+                [gravesViewController release];
                 break;
+            }
             case 1: // voice
-                if (nil == voicesViewController)
-                    voicesViewController = [[VoicesViewController alloc] initWithStyle:UITableViewStyleGrouped];
+            {
+                VoicesViewController *voicesViewController = [[VoicesViewController alloc] initWithStyle:UITableViewStyleGrouped];
 
                 [voicesViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:voicesViewController animated:YES];
+                [voicesViewController release];
                 break;
+            }
             case 2: // fort
-                if (nil == fortsViewController)
-                    fortsViewController = [[FortsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+            {
+                FortsViewController *fortsViewController = [[FortsViewController alloc] initWithStyle:UITableViewStyleGrouped];
 
                 [fortsViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:fortsViewController animated:YES];
+                [fortsViewController release];
                 break;
+            }
             case 3: // flag
-                if (nil == flagsViewController)
-                    flagsViewController = [[FlagsViewController alloc] initWithStyle:UITableViewStyleGrouped];
+            {
+                FlagsViewController *flagsViewController = [[FlagsViewController alloc] initWithStyle:UITableViewStyleGrouped];
 
                 [flagsViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:flagsViewController animated:YES];
+                [flagsViewController release];
                 break;
+            }
             case 4: // level
-                if (nil == levelViewController)
-                    levelViewController = [[LevelViewController alloc] initWithStyle:UITableViewStyleGrouped];
+            {
+                LevelViewController *levelViewController = [[LevelViewController alloc] initWithStyle:UITableViewStyleGrouped];
 
                 [levelViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:levelViewController animated:YES];
+                [levelViewController release];
                 break;
+            }
             default:
                 DLog(@"Nope");
                 break;
         }
     } else {
-        EditableCellView *cell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
-        [cell replyKeyboard];
-        [aTableView deselectRowAtIndexPath:indexPath animated:NO];
+        if (section == 1 && row == HW_getMaxNumberOfHogs()) {
+            // 'Select one hat for all hogs' selected
+            [self showHogHatViewControllerForHogIndex:-1];
+        } else {
+            EditableCellView *cell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
+            [cell replyKeyboard];
+            [aTableView deselectRowAtIndexPath:indexPath animated:NO];
+        }
     }
 
 }
 
 // action to perform when you want to change a hog hat
 -(void) tableView:(UITableView *)aTableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
-    if (nil == hogHatViewController)
-        hogHatViewController = [[HogHatViewController alloc] initWithStyle:UITableViewStyleGrouped];
-
-    // cache the dictionary file of the team, so that other controllers can modify it
-    hogHatViewController.teamDictionary = self.teamDictionary;
-    hogHatViewController.selectedHog = [indexPath row];
-
     // if we are editing the field undo any change before proceeding
     EditableCellView *cell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
     [cell cancel:nil];
-
-    [self.navigationController pushViewController:hogHatViewController animated:YES];
+    
+    [self showHogHatViewControllerForHogIndex:[indexPath row]];
 }
 
+- (void)showHogHatViewControllerForHogIndex:(NSInteger)hogIndex
+{
+    HogHatViewController *hogHatViewController = [[HogHatViewController alloc] initWithStyle:UITableViewStyleGrouped];
+    
+    // cache the dictionary file of the team, so that other controllers can modify it
+    hogHatViewController.teamDictionary = self.teamDictionary;
+    hogHatViewController.selectedHog = hogIndex;
+    
+    [self.navigationController pushViewController:hogHatViewController animated:YES];
+    [hogHatViewController release];
+}
 
 #pragma mark -
 #pragma mark Memory management
 -(void) didReceiveMemoryWarning {
     [super didReceiveMemoryWarning];
-    if (hogHatViewController.view.superview == nil)
-        hogHatViewController = nil;
-    if (gravesViewController.view.superview == nil)
-        gravesViewController = nil;
-    if (voicesViewController.view.superview == nil)
-        voicesViewController = nil;
-    if (fortsViewController.view.superview == nil)
-        fortsViewController = nil;
-    if (flagsViewController.view.superview == nil)
-        flagsViewController = nil;
-    if (levelViewController.view.superview == nil)
-        levelViewController = nil;
     MSG_MEMCLEAN();
 }
 
 -(void) viewDidUnload {
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
     self.teamDictionary = nil;
     self.teamName = nil;
     self.normalHogSprite = nil;
     self.secondaryItems = nil;
     self.moreSecondaryItems = nil;
-    hogHatViewController = nil;
-    gravesViewController = nil;
-    voicesViewController = nil;
-    flagsViewController = nil;
-    fortsViewController = nil;
-    levelViewController = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
 
--(void) dealloc {
+-(void) dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
     releaseAndNil(teamDictionary);
     releaseAndNil(teamName);
     releaseAndNil(normalHogSprite);
     releaseAndNil(secondaryItems);
     releaseAndNil(moreSecondaryItems);
-    releaseAndNil(hogHatViewController);
-    releaseAndNil(gravesViewController);
-    releaseAndNil(fortsViewController);
-    releaseAndNil(voicesViewController);
-    releaseAndNil(flagsViewController);
-    releaseAndNil(levelViewController);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -37,7 +37,7 @@
     [super viewDidLoad];
 
     self.trPath = [NSString stringWithFormat:@"%@", LOCALE_DIRECTORY()];
-    self.trFileName = [NSString stringWithFormat:@"%@.txt", [[NSLocale preferredLanguages] firstObject]];
+    self.trFileName = [NSString stringWithFormat:@"%@.txt", [HWUtils languageID]];
     // fill the data structure that we are going to read
     LoadLocaleWrapper([self.trPath UTF8String], [self.trFileName UTF8String]);
 
--- a/project_files/HedgewarsMobile/Classes/StatsPageViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -29,6 +29,7 @@
 
 -(void) viewDidLoad {
     UITableView *aTableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
+    aTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
     [aTableView setBackgroundColorForAnyTable:[UIColor clearColor]];
 
     NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png";
@@ -53,6 +54,20 @@
     [super viewDidLoad];
 }
 
+#pragma mark - Helpers
+
+- (NSString *)teamNameFromInfo: (NSArray *)info
+{
+    NSString *teamName = [NSString stringWithString:[info objectAtIndex:2]];
+    
+    for (int i=3; i < [info count]; i++)
+    {
+        teamName = [teamName stringByAppendingFormat:@" %@", [info objectAtIndex:i]];
+    }
+    
+    return teamName;
+}
+
 #pragma mark -
 #pragma mark Table view data source
 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
@@ -92,7 +107,7 @@
                                                    green:((color >> 8) & 0xFF)/255.0f
                                                     blue:(color & 0xFF)/255.0f
                                                    alpha:1.0f];
-        cell.textLabel.text = [NSString stringWithFormat:@"%d. %@ (%@ kills)", row+1, [info objectAtIndex:2], [info objectAtIndex:1]];
+        cell.textLabel.text = [NSString stringWithFormat:@"%d. %@ (%@ %@)", row+1, [self teamNameFromInfo:info], [info objectAtIndex:1], NSLocalizedString(@"kills", nil)];
         imgName = [NSString stringWithFormat:@"StatsMedal%d",row+1];
     } else if (section == 2) {  // general info
         imgName = @"iconDamage";
@@ -118,7 +133,7 @@
 }
 
 -(CGFloat) tableView:(UITableView *)aTableView heightForHeaderInSection:(NSInteger)section {
-    return 160;
+    return (section == 0) ? 160 : 40;
 }
 
 -(UIView *)tableView:(UITableView *)aTableView viewForHeaderInSection:(NSInteger)section {
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -18,9 +18,9 @@
 
 
 #import <UIKit/UIKit.h>
-
+#import "TableViewControllerWithDoneButton.h"
 
-@interface SupportViewController : UITableViewController {
+@interface SupportViewController : TableViewControllerWithDoneButton {
     NSArray *waysToSupport;
 }
 
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -18,7 +18,7 @@
 
 
 #import "SupportViewController.h"
-
+#import "Appirater.h"
 
 @implementation SupportViewController
 @synthesize waysToSupport;
@@ -95,6 +95,7 @@
                 DLog(@"No way");
                 break;
         }
+        cell.accessoryView = nil;
     }
 
     NSString *imgString = [[NSString alloc] initWithFormat:@"%@/%@.png",[[NSBundle mainBundle] resourcePath],imgName];
@@ -113,12 +114,17 @@
 
 #pragma mark -
 #pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    NSString *urlString = nil;
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
     if ([indexPath section] == 0)
-        urlString = @"http://itunes.apple.com/us/app/hedgewars/id391234866?affC=QQABAAAAHgAFasEiWjVwUGZOc3k1VGctQkRJazlacXhUclpBTVpiU2xteVdfUQ%3D%3D#&mt=8";
+    {
+        [Appirater rateApp];
+    }
     else
-        switch ([indexPath row]) {
+    {
+        NSString *urlString = nil;
+        switch ([indexPath row])
+        {
             case 0:
                 urlString = @"http://www.facebook.com/Hedgewars";
                 break;
@@ -135,7 +141,8 @@
                 DLog(@"No way");
                 break;
         }
-    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
+        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
+    }
 }
 
 -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
@@ -154,7 +161,7 @@
         UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 20)];
         label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
         label.textAlignment = UITextAlignmentCenter;
-        label.text = @" ♥ THANK YOU ♥ ";
+        label.text = NSLocalizedString(@" ♥ THANK YOU ♥ ", nil);
         label.backgroundColor = [UIColor clearColor];
         label.center = CGPointMake(self.tableView.frame.size.width/2, 250);
         [footer addSubview:label];
@@ -167,7 +174,7 @@
 
 -(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
     // image height + label height
-    return 265;
+    return (section == 1) ? 265 : 20;
 }
 
 #pragma mark -
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/TableViewControllerWithDoneButton.h	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,23 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ */
+
+#import <UIKit/UIKit.h>
+
+@interface TableViewControllerWithDoneButton : UITableViewController
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/TableViewControllerWithDoneButton.m	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,52 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ */
+
+#import "TableViewControllerWithDoneButton.h"
+
+@interface TableViewControllerWithDoneButton ()
+
+@end
+
+@implementation TableViewControllerWithDoneButton
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+    
+    if (!IS_IPAD())
+    {
+        UIBarButtonItem *doneButton = [self doneButton];
+        self.navigationItem.backBarButtonItem = doneButton;
+        self.navigationItem.leftBarButtonItem = doneButton;
+    }
+}
+
+- (UIBarButtonItem *)doneButton
+{
+    return [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+                                                          target:self
+                                                          action:@selector(dismissView)] autorelease];
+}
+
+- (void)dismissView
+{
+    [[AudioManagerController mainManager] playBackSound];
+    [[[HedgewarsAppDelegate sharedAppDelegate] mainViewController] dismissViewControllerAnimated:YES completion:nil];
+}
+
+@end
--- a/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -18,13 +18,10 @@
 
 
 #import <UIKit/UIKit.h>
-
-
-@class SingleTeamViewController;
+#import "TableViewControllerWithDoneButton.h"
 
-@interface TeamSettingsViewController : UITableViewController {
+@interface TeamSettingsViewController : TableViewControllerWithDoneButton {
     NSMutableArray *listOfTeams;
-    SingleTeamViewController *childController;
 }
 
 @property (nonatomic, retain) NSMutableArray *listOfTeams;
--- a/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -41,7 +41,7 @@
     self.navigationItem.rightBarButtonItem = editButton;
     [editButton release];
 
-    self.navigationItem.title = @"List of teams";
+    self.navigationItem.title = NSLocalizedString(@"List of teams", nil);
 }
 
 // load the list of teams in the teams directory
@@ -136,43 +136,43 @@
 
 #pragma mark -
 #pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    if (childController == nil) {
-        childController = [[SingleTeamViewController alloc] initWithStyle:UITableViewStyleGrouped];
-    }
-
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    SingleTeamViewController *singleTeamViewController = [[SingleTeamViewController alloc] initWithStyle:UITableViewStyleGrouped];
+    
     NSInteger row = [indexPath row];
     NSString *selectedTeamFile = [listOfTeams objectAtIndex:row];
 
     // this must be set so childController can load the correct plist
-    childController.teamName = [selectedTeamFile stringByDeletingPathExtension];
-    [childController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
+    singleTeamViewController.teamName = [selectedTeamFile stringByDeletingPathExtension];
+    [singleTeamViewController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
 
-    [self.navigationController pushViewController:childController animated:YES];
+    [self.navigationController pushViewController:singleTeamViewController animated:YES];
+    [singleTeamViewController release];
+    
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
 }
 
 
 #pragma mark -
 #pragma mark Memory management
--(void) didReceiveMemoryWarning {
+-(void) didReceiveMemoryWarning
+{
     // Releases the view if it doesn't have a superview.
     [super didReceiveMemoryWarning];
     // Relinquish ownership any cached data, images, etc that aren't in use.
-    if (childController.view.superview == nil )
-        childController = nil;
 }
 
--(void) viewDidUnload {
+-(void) viewDidUnload
+{
     self.listOfTeams = nil;
-    childController = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
 
--(void) dealloc {
+-(void) dealloc
+{
     releaseAndNil(listOfTeams);
-    releaseAndNil(childController);
     [super dealloc];
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/UITableViewCell+FindTable.h	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,25 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import <UIKit/UIKit.h>
+
+@interface UITableViewCell (FindTable)
+
+- (UITableView *)findTable;
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/UITableViewCell+FindTable.m	Mon Nov 09 16:34:32 2015 +0000
@@ -0,0 +1,39 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2015 Anton Malmygin <antonc27@mail.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import "UITableViewCell+FindTable.h"
+
+@implementation UITableViewCell (FindTable)
+
+- (UITableView *)findTable
+{
+    UIView *tableView = self.superview;
+    while (![tableView isKindOfClass:[UITableView class]] || (tableView == nil))
+    {
+        tableView = tableView.superview;
+        
+        if ([tableView isEqual:self.window])
+        {
+            tableView = nil;
+        }
+    }
+    
+    return (UITableView *)tableView;
+}
+
+@end
--- a/project_files/HedgewarsMobile/Classes/VoicesViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/VoicesViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -32,7 +32,6 @@
 #pragma mark View lifecycle
 -(void) viewDidLoad {
     [super viewDidLoad];
-    srandom(time(NULL));
 
     voiceBeingPlayed = NULL;
 
@@ -129,7 +128,7 @@
     NSString *voiceDir = [[NSString alloc] initWithFormat:@"%@/%@/",VOICES_DIRECTORY(),[voiceArray objectAtIndex:newRow]];
     NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:voiceDir error:NULL];
 
-    int index = random() % [array count];
+    int index = arc4random_uniform((int)[array count]);
 
     voiceBeingPlayed = Mix_LoadWAV([[voiceDir stringByAppendingString:[array objectAtIndex:index]] UTF8String]);
     [voiceDir release];
--- a/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.h	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.h	Mon Nov 09 16:34:32 2015 +0000
@@ -18,13 +18,10 @@
 
 
 #import <UIKit/UIKit.h>
-
-
-@class SingleWeaponViewController;
+#import "TableViewControllerWithDoneButton.h"
 
-@interface WeaponSettingsViewController : UITableViewController {
+@interface WeaponSettingsViewController : TableViewControllerWithDoneButton {
     NSMutableArray *listOfWeapons;
-    SingleWeaponViewController *childController;
 }
 
 @property (nonatomic, retain) NSMutableArray *listOfWeapons;
--- a/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m	Mon Nov 09 16:34:32 2015 +0000
@@ -40,7 +40,7 @@
     self.navigationItem.rightBarButtonItem = editButton;
     [editButton release];
 
-    self.navigationItem.title = @"List of weapons";
+    self.navigationItem.title = NSLocalizedString(@"List of weapons", nil);
 }
 
 -(void) viewWillAppear:(BOOL) animated {
@@ -131,42 +131,42 @@
 
 #pragma mark -
 #pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    if (childController == nil) {
-        childController = [[SingleWeaponViewController alloc] initWithStyle:UITableViewStyleGrouped];
-    }
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    SingleWeaponViewController *singleWeaponViewController = [[SingleWeaponViewController alloc] initWithStyle:UITableViewStyleGrouped];
 
     NSInteger row = [indexPath row];
     NSString *selectedWeaponFile = [self.listOfWeapons objectAtIndex:row];
 
     // this must be set so childController can load the correct plist
-    childController.weaponName = [selectedWeaponFile stringByDeletingPathExtension];
-    [childController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
+    singleWeaponViewController.weaponName = [selectedWeaponFile stringByDeletingPathExtension];
+    [singleWeaponViewController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
 
-    [self.navigationController pushViewController:childController animated:YES];
+    [self.navigationController pushViewController:singleWeaponViewController animated:YES];
+    [singleWeaponViewController release];
+    
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
 }
 
 
 #pragma mark -
 #pragma mark Memory management
--(void)didReceiveMemoryWarning {
+-(void)didReceiveMemoryWarning
+{
     [super didReceiveMemoryWarning];
-    if (childController.view.superview == nil )
-        childController = nil;
 }
 
--(void) viewDidUnload {
+-(void) viewDidUnload
+{
     self.listOfWeapons = nil;
-    childController = nil;
     MSG_DIDUNLOAD();
     [super viewDidUnload];
 }
 
 
--(void) dealloc {
+-(void) dealloc
+{
     releaseAndNil(listOfWeapons);
-    releaseAndNil(childController);
     [super dealloc];
 }
 
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Mon Nov 09 16:34:32 2015 +0000
@@ -74,9 +74,9 @@
 		615AD9EB1207654E00F2FF04 /* helpButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD9EA1207654E00F2FF04 /* helpButton.png */; };
 		615BE3D4155C5DDF003CA34D /* uInputHandler.pas in Sources */ = {isa = PBXBuildFile; fileRef = 615BE3D3155C5DDF003CA34D /* uInputHandler.pas */; };
 		615E755A14E41E8C00FBA131 /* MXAudioPlayerFadeOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E755914E41E8C00FBA131 /* MXAudioPlayerFadeOperation.m */; };
-		615E76BC14E4421200FBA131 /* MGSplitCornersView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B714E4421200FBA131 /* MGSplitCornersView.m */; };
-		615E76BD14E4421200FBA131 /* MGSplitDividerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B914E4421200FBA131 /* MGSplitDividerView.m */; };
-		615E76BE14E4421200FBA131 /* MGSplitViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76BB14E4421200FBA131 /* MGSplitViewController.m */; };
+		615E76BC14E4421200FBA131 /* MGSplitCornersView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B714E4421200FBA131 /* MGSplitCornersView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		615E76BD14E4421200FBA131 /* MGSplitDividerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B914E4421200FBA131 /* MGSplitDividerView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		615E76BE14E4421200FBA131 /* MGSplitViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76BB14E4421200FBA131 /* MGSplitViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		615FEAE212A2A6640098EE92 /* localplayButton~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 615FEADF12A2A6640098EE92 /* localplayButton~ipad.png */; };
 		615FEAE312A2A6640098EE92 /* localplayButton~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 615FEAE012A2A6640098EE92 /* localplayButton~iphone.png */; };
 		616065A8159A71FD00CFAEF4 /* hwclassic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 616065A7159A71FD00CFAEF4 /* hwclassic.mp3 */; };
@@ -96,7 +96,6 @@
 		6165921B11CA9BA200D6E256 /* SchemeWeaponConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591FD11CA9BA200D6E256 /* SchemeWeaponConfigViewController.m */; };
 		6165921C11CA9BA200D6E256 /* SingleSchemeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 616591FF11CA9BA200D6E256 /* SingleSchemeViewController.m */; };
 		6165921D11CA9BA200D6E256 /* SingleTeamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920111CA9BA200D6E256 /* SingleTeamViewController.m */; };
-		6165921E11CA9BA200D6E256 /* SettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920311CA9BA200D6E256 /* SettingsContainerViewController.m */; };
 		6165921F11CA9BA200D6E256 /* TeamConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920511CA9BA200D6E256 /* TeamConfigViewController.m */; };
 		6165922011CA9BA200D6E256 /* TeamSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920711CA9BA200D6E256 /* TeamSettingsViewController.m */; };
 		6165922111CA9BA200D6E256 /* VoicesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165920911CA9BA200D6E256 /* VoicesViewController.m */; };
@@ -208,7 +207,6 @@
 		61A670C112747DB900B06CE7 /* MainMenuViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924C11CA9CB400D6E256 /* MainMenuViewController-iPhone.xib */; };
 		61A670C212747DBD00B06CE7 /* MapConfigViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924E11CA9CB400D6E256 /* MapConfigViewController-iPhone.xib */; };
 		61A976B3136F668500DD9878 /* uCursor.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61A976B2136F668500DD9878 /* uCursor.pas */; };
-		61AC067412B2E32D000B52A2 /* Appirater.m in Sources */ = {isa = PBXBuildFile; fileRef = 61AC067312B2E32D000B52A2 /* Appirater.m */; };
 		61B37A1F17837C78009F283D /* ArgParsers.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61B37A1D17837C78009F283D /* ArgParsers.pas */; };
 		61B37A2017837C78009F283D /* uVisualGearsList.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61B37A1E17837C78009F283D /* uVisualGearsList.pas */; };
 		61B37A80178381DB009F283D /* uGearsHandlersMess.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61B37A7F178381DB009F283D /* uGearsHandlersMess.pas */; };
@@ -244,6 +242,27 @@
 		61F9040B11DF59370068B24D /* background.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F9040A11DF59370068B24D /* background.png */; };
 		61F904D711DF7DA30068B24D /* WeaponCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61F904D611DF7DA30068B24D /* WeaponCellView.m */; };
 		922F64900F10F53100DC6EC0 /* libfpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 928301170F10CAFC00CC5A3C /* libfpc.a */; };
+		F60D04771BD137B5003ACB00 /* bullet_filled.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04631BD137B5003ACB00 /* bullet_filled.png */; };
+		F60D04781BD137B5003ACB00 /* bullet_filled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04641BD137B5003ACB00 /* bullet_filled@2x.png */; };
+		F60D04791BD137B5003ACB00 /* bullet.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04651BD137B5003ACB00 /* bullet.png */; };
+		F60D047A1BD137B5003ACB00 /* bullet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04661BD137B5003ACB00 /* bullet@2x.png */; };
+		F60D047B1BD137B5003ACB00 /* flower_filled.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04671BD137B5003ACB00 /* flower_filled.png */; };
+		F60D047C1BD137B5003ACB00 /* flower_filled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04681BD137B5003ACB00 /* flower_filled@2x.png */; };
+		F60D047D1BD137B5003ACB00 /* flower.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04691BD137B5003ACB00 /* flower.png */; };
+		F60D047E1BD137B5003ACB00 /* flower@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D046A1BD137B5003ACB00 /* flower@2x.png */; };
+		F60D047F1BD137B5003ACB00 /* heart_filled.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D046B1BD137B5003ACB00 /* heart_filled.png */; };
+		F60D04801BD137B5003ACB00 /* heart_filled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D046C1BD137B5003ACB00 /* heart_filled@2x.png */; };
+		F60D04811BD137B5003ACB00 /* heart.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D046D1BD137B5003ACB00 /* heart.png */; };
+		F60D04821BD137B5003ACB00 /* heart@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D046E1BD137B5003ACB00 /* heart@2x.png */; };
+		F60D04831BD137B5003ACB00 /* target_filled.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D046F1BD137B5003ACB00 /* target_filled.png */; };
+		F60D04841BD137B5003ACB00 /* target_filled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04701BD137B5003ACB00 /* target_filled@2x.png */; };
+		F60D04851BD137B5003ACB00 /* target.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04711BD137B5003ACB00 /* target.png */; };
+		F60D04861BD137B5003ACB00 /* target@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04721BD137B5003ACB00 /* target@2x.png */; };
+		F60D04871BD137B5003ACB00 /* teams_filled.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04731BD137B5003ACB00 /* teams_filled.png */; };
+		F60D04881BD137B5003ACB00 /* teams_filled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04741BD137B5003ACB00 /* teams_filled@2x.png */; };
+		F60D04891BD137B5003ACB00 /* teams.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04751BD137B5003ACB00 /* teams.png */; };
+		F60D048A1BD137B5003ACB00 /* teams@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F60D04761BD137B5003ACB00 /* teams@2x.png */; };
+		F6448CE31BD2E00500C31C8C /* TableViewControllerWithDoneButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F6448CE21BD2E00500C31C8C /* TableViewControllerWithDoneButton.m */; };
 		F65724FD1B7E784700A86262 /* helpabove.png in Resources */ = {isa = PBXBuildFile; fileRef = F65724F81B7E784700A86262 /* helpabove.png */; };
 		F65724FE1B7E784700A86262 /* helpbottom.png in Resources */ = {isa = PBXBuildFile; fileRef = F65724F91B7E784700A86262 /* helpbottom.png */; };
 		F65724FF1B7E784700A86262 /* helpleft.png in Resources */ = {isa = PBXBuildFile; fileRef = F65724FA1B7E784700A86262 /* helpleft.png */; };
@@ -252,6 +271,11 @@
 		F65E1DBF1B9B95A400A78ADF /* Icon-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F65E1DBC1B9B95A400A78ADF /* Icon-60@2x.png */; };
 		F65E1DC01B9B95A400A78ADF /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = F65E1DBD1B9B95A400A78ADF /* Icon-76.png */; };
 		F65E1DC11B9B95A400A78ADF /* Icon-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F65E1DBE1B9B95A400A78ADF /* Icon-76@2x.png */; };
+		F6756D801BD8550500B6AB6B /* LabelWithIBLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = F6756D7F1BD8550500B6AB6B /* LabelWithIBLocalization.m */; };
+		F67FC8121BEC06E700A9DC75 /* Appirater.m in Sources */ = {isa = PBXBuildFile; fileRef = F67FC8101BEC06E700A9DC75 /* Appirater.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		F67FC8141BEC072B00A9DC75 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F67FC8131BEC072B00A9DC75 /* StoreKit.framework */; };
+		F67FC8161BEC17AC00A9DC75 /* Appirater.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F67FC8151BEC17AC00A9DC75 /* Appirater.bundle */; };
+		F6BA38461BA7A834005D16EA /* GameLogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA38451BA7A834005D16EA /* GameLogViewController.m */; };
 		F6D7E09F1B76884E004F3BCF /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F6D7E09E1B76884E004F3BCF /* Default-568h@2x.png */; };
 		F6D7E0C21B768F19004F3BCF /* uLandGenPerlin.pas in Sources */ = {isa = PBXBuildFile; fileRef = F6D7E0BF1B768F19004F3BCF /* uLandGenPerlin.pas */; };
 		F6D7E0C31B768F19004F3BCF /* uLandGenTemplateBased.pas in Sources */ = {isa = PBXBuildFile; fileRef = F6D7E0C01B768F19004F3BCF /* uLandGenTemplateBased.pas */; };
@@ -261,6 +285,8 @@
 		F6F07BDE1B7E72D40010E48F /* HelpPageLobbyViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6F07BDA1B7E72D40010E48F /* HelpPageLobbyViewController-iPad.xib */; };
 		F6F07BDF1B7E72D40010E48F /* HelpPageLobbyViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6F07BDB1B7E72D40010E48F /* HelpPageLobbyViewController-iPhone.xib */; };
 		F6F07BE01B7E72D40010E48F /* HelpPageLobbyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F6F07BDD1B7E72D40010E48F /* HelpPageLobbyViewController.m */; };
+		F6F7DA8F1BE18F5700432EA7 /* UITableViewCell+FindTable.m in Sources */ = {isa = PBXBuildFile; fileRef = F6F7DA8E1BE18F5700432EA7 /* UITableViewCell+FindTable.m */; };
+		F6FF25A21BB8AEE300124053 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6FF25A11BB8AEE300124053 /* GameController.framework */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXBuildRule section */
@@ -507,8 +533,6 @@
 		616591FF11CA9BA200D6E256 /* SingleSchemeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SingleSchemeViewController.m; sourceTree = "<group>"; };
 		6165920011CA9BA200D6E256 /* SingleTeamViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SingleTeamViewController.h; sourceTree = "<group>"; };
 		6165920111CA9BA200D6E256 /* SingleTeamViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SingleTeamViewController.m; sourceTree = "<group>"; };
-		6165920211CA9BA200D6E256 /* SettingsContainerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsContainerViewController.h; sourceTree = "<group>"; };
-		6165920311CA9BA200D6E256 /* SettingsContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsContainerViewController.m; sourceTree = "<group>"; };
 		6165920411CA9BA200D6E256 /* TeamConfigViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamConfigViewController.h; sourceTree = "<group>"; };
 		6165920511CA9BA200D6E256 /* TeamConfigViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamConfigViewController.m; sourceTree = "<group>"; };
 		6165920611CA9BA200D6E256 /* TeamSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamSettingsViewController.h; sourceTree = "<group>"; };
@@ -652,8 +676,6 @@
 		61A4A39312A5CCC2004D81E6 /* uVariables.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uVariables.pas; path = ../../hedgewars/uVariables.pas; sourceTree = SOURCE_ROOT; };
 		61A4A3A112A5CD56004D81E6 /* uCaptions.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uCaptions.pas; path = ../../hedgewars/uCaptions.pas; sourceTree = SOURCE_ROOT; };
 		61A976B2136F668500DD9878 /* uCursor.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uCursor.pas; path = ../../hedgewars/uCursor.pas; sourceTree = SOURCE_ROOT; };
-		61AC067212B2E32D000B52A2 /* Appirater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Appirater.h; path = Classes/Appirater.h; sourceTree = "<group>"; };
-		61AC067312B2E32D000B52A2 /* Appirater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Appirater.m; path = Classes/Appirater.m; sourceTree = "<group>"; };
 		61B37A1D17837C78009F283D /* ArgParsers.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = ArgParsers.pas; path = ../../hedgewars/ArgParsers.pas; sourceTree = SOURCE_ROOT; };
 		61B37A1E17837C78009F283D /* uVisualGearsList.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uVisualGearsList.pas; path = ../../hedgewars/uVisualGearsList.pas; sourceTree = SOURCE_ROOT; };
 		61B37A7F178381DB009F283D /* uGearsHandlersMess.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uGearsHandlersMess.pas; path = ../../hedgewars/uGearsHandlersMess.pas; sourceTree = SOURCE_ROOT; };
@@ -709,6 +731,28 @@
 		61F904D611DF7DA30068B24D /* WeaponCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WeaponCellView.m; path = Classes/WeaponCellView.m; sourceTree = "<group>"; };
 		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		928301170F10CAFC00CC5A3C /* libfpc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libfpc.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		F60D04631BD137B5003ACB00 /* bullet_filled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bullet_filled.png; path = Resources/Icons/bullet_filled.png; sourceTree = "<group>"; };
+		F60D04641BD137B5003ACB00 /* bullet_filled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bullet_filled@2x.png"; path = "Resources/Icons/bullet_filled@2x.png"; sourceTree = "<group>"; };
+		F60D04651BD137B5003ACB00 /* bullet.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bullet.png; path = Resources/Icons/bullet.png; sourceTree = "<group>"; };
+		F60D04661BD137B5003ACB00 /* bullet@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bullet@2x.png"; path = "Resources/Icons/bullet@2x.png"; sourceTree = "<group>"; };
+		F60D04671BD137B5003ACB00 /* flower_filled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = flower_filled.png; path = Resources/Icons/flower_filled.png; sourceTree = "<group>"; };
+		F60D04681BD137B5003ACB00 /* flower_filled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "flower_filled@2x.png"; path = "Resources/Icons/flower_filled@2x.png"; sourceTree = "<group>"; };
+		F60D04691BD137B5003ACB00 /* flower.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = flower.png; path = Resources/Icons/flower.png; sourceTree = "<group>"; };
+		F60D046A1BD137B5003ACB00 /* flower@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "flower@2x.png"; path = "Resources/Icons/flower@2x.png"; sourceTree = "<group>"; };
+		F60D046B1BD137B5003ACB00 /* heart_filled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = heart_filled.png; path = Resources/Icons/heart_filled.png; sourceTree = "<group>"; };
+		F60D046C1BD137B5003ACB00 /* heart_filled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "heart_filled@2x.png"; path = "Resources/Icons/heart_filled@2x.png"; sourceTree = "<group>"; };
+		F60D046D1BD137B5003ACB00 /* heart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = heart.png; path = Resources/Icons/heart.png; sourceTree = "<group>"; };
+		F60D046E1BD137B5003ACB00 /* heart@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "heart@2x.png"; path = "Resources/Icons/heart@2x.png"; sourceTree = "<group>"; };
+		F60D046F1BD137B5003ACB00 /* target_filled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = target_filled.png; path = Resources/Icons/target_filled.png; sourceTree = "<group>"; };
+		F60D04701BD137B5003ACB00 /* target_filled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "target_filled@2x.png"; path = "Resources/Icons/target_filled@2x.png"; sourceTree = "<group>"; };
+		F60D04711BD137B5003ACB00 /* target.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = target.png; path = Resources/Icons/target.png; sourceTree = "<group>"; };
+		F60D04721BD137B5003ACB00 /* target@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "target@2x.png"; path = "Resources/Icons/target@2x.png"; sourceTree = "<group>"; };
+		F60D04731BD137B5003ACB00 /* teams_filled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = teams_filled.png; path = Resources/Icons/teams_filled.png; sourceTree = "<group>"; };
+		F60D04741BD137B5003ACB00 /* teams_filled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "teams_filled@2x.png"; path = "Resources/Icons/teams_filled@2x.png"; sourceTree = "<group>"; };
+		F60D04751BD137B5003ACB00 /* teams.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = teams.png; path = Resources/Icons/teams.png; sourceTree = "<group>"; };
+		F60D04761BD137B5003ACB00 /* teams@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "teams@2x.png"; path = "Resources/Icons/teams@2x.png"; sourceTree = "<group>"; };
+		F6448CE11BD2E00500C31C8C /* TableViewControllerWithDoneButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewControllerWithDoneButton.h; sourceTree = "<group>"; };
+		F6448CE21BD2E00500C31C8C /* TableViewControllerWithDoneButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewControllerWithDoneButton.m; sourceTree = "<group>"; };
 		F65724F81B7E784700A86262 /* helpabove.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = helpabove.png; sourceTree = "<group>"; };
 		F65724F91B7E784700A86262 /* helpbottom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = helpbottom.png; sourceTree = "<group>"; };
 		F65724FA1B7E784700A86262 /* helpleft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = helpleft.png; sourceTree = "<group>"; };
@@ -720,6 +764,18 @@
 		F65E1DBC1B9B95A400A78ADF /* Icon-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-60@2x.png"; path = "Resources/Icons/Icon-60@2x.png"; sourceTree = "<group>"; };
 		F65E1DBD1B9B95A400A78ADF /* Icon-76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-76.png"; path = "Resources/Icons/Icon-76.png"; sourceTree = "<group>"; };
 		F65E1DBE1B9B95A400A78ADF /* Icon-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-76@2x.png"; path = "Resources/Icons/Icon-76@2x.png"; sourceTree = "<group>"; };
+		F6756D7E1BD8550500B6AB6B /* LabelWithIBLocalization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelWithIBLocalization.h; sourceTree = "<group>"; };
+		F6756D7F1BD8550500B6AB6B /* LabelWithIBLocalization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelWithIBLocalization.m; sourceTree = "<group>"; };
+		F67FC80F1BEC06E700A9DC75 /* Appirater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Appirater.h; sourceTree = "<group>"; };
+		F67FC8101BEC06E700A9DC75 /* Appirater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Appirater.m; sourceTree = "<group>"; };
+		F67FC8111BEC06E700A9DC75 /* AppiraterDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppiraterDelegate.h; sourceTree = "<group>"; };
+		F67FC8131BEC072B00A9DC75 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
+		F67FC8151BEC17AC00A9DC75 /* Appirater.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Appirater.bundle; sourceTree = "<group>"; };
+		F67FC81F1BEC280D00A9DC75 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Locale/tr.lproj/About.strings; sourceTree = "<group>"; };
+		F67FC8201BEC280D00A9DC75 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Locale/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
+		F67FC8211BEC280D00A9DC75 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = Locale/tr.lproj/Scheme.strings; sourceTree = "<group>"; };
+		F6BA38441BA7A834005D16EA /* GameLogViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameLogViewController.h; sourceTree = "<group>"; };
+		F6BA38451BA7A834005D16EA /* GameLogViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameLogViewController.m; sourceTree = "<group>"; };
 		F6D7E09E1B76884E004F3BCF /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
 		F6D7E0BF1B768F19004F3BCF /* uLandGenPerlin.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uLandGenPerlin.pas; path = ../../hedgewars/uLandGenPerlin.pas; sourceTree = "<group>"; };
 		F6D7E0C01B768F19004F3BCF /* uLandGenTemplateBased.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uLandGenTemplateBased.pas; path = ../../hedgewars/uLandGenTemplateBased.pas; sourceTree = "<group>"; };
@@ -730,6 +786,9 @@
 		F6F07BDB1B7E72D40010E48F /* HelpPageLobbyViewController-iPhone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "HelpPageLobbyViewController-iPhone.xib"; sourceTree = "<group>"; };
 		F6F07BDC1B7E72D40010E48F /* HelpPageLobbyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpPageLobbyViewController.h; sourceTree = "<group>"; };
 		F6F07BDD1B7E72D40010E48F /* HelpPageLobbyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HelpPageLobbyViewController.m; sourceTree = "<group>"; };
+		F6F7DA8D1BE18F5700432EA7 /* UITableViewCell+FindTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UITableViewCell+FindTable.h"; path = "Classes/UITableViewCell+FindTable.h"; sourceTree = "<group>"; };
+		F6F7DA8E1BE18F5700432EA7 /* UITableViewCell+FindTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UITableViewCell+FindTable.m"; path = "Classes/UITableViewCell+FindTable.m"; sourceTree = "<group>"; };
+		F6FF25A11BB8AEE300124053 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -737,6 +796,8 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				F67FC8141BEC072B00A9DC75 /* StoreKit.framework in Frameworks */,
+				F6FF25A21BB8AEE300124053 /* GameController.framework in Frameworks */,
 				F6D7E0C81B7698BF004F3BCF /* libstdc++.dylib in Frameworks */,
 				F6D7E0C61B769819004F3BCF /* CoreMotion.framework in Frameworks */,
 				617D791E16D933060091D4D6 /* libPhysfs.a in Frameworks */,
@@ -816,8 +877,7 @@
 				61F8535314578999002CA294 /* Helpers */,
 				61641FE21437CD8F006E049C /* Headers */,
 				61DE91561258B76800B80214 /* Custom UIs */,
-				61AC067212B2E32D000B52A2 /* Appirater.h */,
-				61AC067312B2E32D000B52A2 /* Appirater.m */,
+				F67FC80E1BEC06E700A9DC75 /* Appirater */,
 				61006F93128DE31F00EBA7F7 /* CreationChamber.h */,
 				61006F94128DE31F00EBA7F7 /* CreationChamber.m */,
 				6165929C11CA9E2F00D6E256 /* HedgewarsAppDelegate.h */,
@@ -852,6 +912,8 @@
 		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				F67FC8131BEC072B00A9DC75 /* StoreKit.framework */,
+				F6FF25A11BB8AEE300124053 /* GameController.framework */,
 				617D78D816D932310091D4D6 /* Physfs.xcodeproj */,
 				617D794316D933B00091D4D6 /* Physlayer.xcodeproj */,
 				6195993F1364C82B00B429B6 /* Lua.xcodeproj */,
@@ -893,6 +955,8 @@
 				61F2E7CB1205EDE0005734F7 /* AboutViewController.h */,
 				61F2E7CC1205EDE0005734F7 /* AboutViewController.m */,
 				61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */,
+				F6BA38441BA7A834005D16EA /* GameLogViewController.h */,
+				F6BA38451BA7A834005D16EA /* GameLogViewController.m */,
 				6167A6731391514600AA6D07 /* RestoreViewController.h */,
 				6167A6741391514600AA6D07 /* RestoreViewController.m */,
 				6167A6751391514600AA6D07 /* RestoreViewController-iPhone.xib */,
@@ -938,8 +1002,6 @@
 		6163EE4C11CC2478001C0453 /* Settings Page */ = {
 			isa = PBXGroup;
 			children = (
-				6165920211CA9BA200D6E256 /* SettingsContainerViewController.h */,
-				6165920311CA9BA200D6E256 /* SettingsContainerViewController.m */,
 				616591F411CA9BA200D6E256 /* SettingsBaseViewController.h */,
 				616591F511CA9BA200D6E256 /* SettingsBaseViewController.m */,
 				6163EE4E11CC248D001C0453 /* First Level */,
@@ -968,6 +1030,8 @@
 				F6F07BDD1B7E72D40010E48F /* HelpPageLobbyViewController.m */,
 				F6F07BDA1B7E72D40010E48F /* HelpPageLobbyViewController-iPad.xib */,
 				F6F07BDB1B7E72D40010E48F /* HelpPageLobbyViewController-iPhone.xib */,
+				F6756D7E1BD8550500B6AB6B /* LabelWithIBLocalization.h */,
+				F6756D7F1BD8550500B6AB6B /* LabelWithIBLocalization.m */,
 			);
 			name = "Game Configuration";
 			sourceTree = "<group>";
@@ -975,6 +1039,8 @@
 		6163EE4E11CC248D001C0453 /* First Level */ = {
 			isa = PBXGroup;
 			children = (
+				F6448CE11BD2E00500C31C8C /* TableViewControllerWithDoneButton.h */,
+				F6448CE21BD2E00500C31C8C /* TableViewControllerWithDoneButton.m */,
 				616591E811CA9BA200D6E256 /* GeneralSettingsViewController.h */,
 				616591E911CA9BA200D6E256 /* GeneralSettingsViewController.m */,
 				6165920611CA9BA200D6E256 /* TeamSettingsViewController.h */,
@@ -1113,6 +1179,8 @@
 				619C5BA0124FA59000D041AE /* MapPreviewButtonView.h */,
 				619C5BA1124FA59000D041AE /* MapPreviewButtonView.m */,
 				61F544C512AF1748007FD913 /* HoldTableViewCell.h */,
+				F6F7DA8D1BE18F5700432EA7 /* UITableViewCell+FindTable.h */,
+				F6F7DA8E1BE18F5700432EA7 /* UITableViewCell+FindTable.m */,
 				61F544C612AF1748007FD913 /* HoldTableViewCell.m */,
 				6165922A11CA9BD500D6E256 /* SquareButtonView.h */,
 				6165922B11CA9BD500D6E256 /* SquareButtonView.m */,
@@ -1127,6 +1195,7 @@
 		61F7A42811E2905C0040BA66 /* Icons */ = {
 			isa = PBXGroup;
 			children = (
+				F60D04611BD1378F003ACB00 /* Tabbar */,
 				61F2E7EB12060E31005734F7 /* checkbox.png */,
 				615FEAD912A2A4C10098EE92 /* checkbox@2x.png */,
 				61D3D2A41290E03A003CE7C3 /* irc.png */,
@@ -1298,6 +1367,33 @@
 			name = "Pascal Sources";
 			sourceTree = "<group>";
 		};
+		F60D04611BD1378F003ACB00 /* Tabbar */ = {
+			isa = PBXGroup;
+			children = (
+				F60D04631BD137B5003ACB00 /* bullet_filled.png */,
+				F60D04641BD137B5003ACB00 /* bullet_filled@2x.png */,
+				F60D04651BD137B5003ACB00 /* bullet.png */,
+				F60D04661BD137B5003ACB00 /* bullet@2x.png */,
+				F60D04671BD137B5003ACB00 /* flower_filled.png */,
+				F60D04681BD137B5003ACB00 /* flower_filled@2x.png */,
+				F60D04691BD137B5003ACB00 /* flower.png */,
+				F60D046A1BD137B5003ACB00 /* flower@2x.png */,
+				F60D046B1BD137B5003ACB00 /* heart_filled.png */,
+				F60D046C1BD137B5003ACB00 /* heart_filled@2x.png */,
+				F60D046D1BD137B5003ACB00 /* heart.png */,
+				F60D046E1BD137B5003ACB00 /* heart@2x.png */,
+				F60D046F1BD137B5003ACB00 /* target_filled.png */,
+				F60D04701BD137B5003ACB00 /* target_filled@2x.png */,
+				F60D04711BD137B5003ACB00 /* target.png */,
+				F60D04721BD137B5003ACB00 /* target@2x.png */,
+				F60D04731BD137B5003ACB00 /* teams_filled.png */,
+				F60D04741BD137B5003ACB00 /* teams_filled@2x.png */,
+				F60D04751BD137B5003ACB00 /* teams.png */,
+				F60D04761BD137B5003ACB00 /* teams@2x.png */,
+			);
+			name = Tabbar;
+			sourceTree = "<group>";
+		};
 		F65724F71B7E784700A86262 /* Help Bubbles */ = {
 			isa = PBXGroup;
 			children = (
@@ -1311,6 +1407,18 @@
 			path = "Resources/Frontend/Help Bubbles";
 			sourceTree = "<group>";
 		};
+		F67FC80E1BEC06E700A9DC75 /* Appirater */ = {
+			isa = PBXGroup;
+			children = (
+				F67FC80F1BEC06E700A9DC75 /* Appirater.h */,
+				F67FC8101BEC06E700A9DC75 /* Appirater.m */,
+				F67FC8111BEC06E700A9DC75 /* AppiraterDelegate.h */,
+				F67FC8151BEC17AC00A9DC75 /* Appirater.bundle */,
+			);
+			name = Appirater;
+			path = Classes/Appirater;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -1365,7 +1473,7 @@
 			isa = PBXProject;
 			attributes = {
 				BuildIndependentTargetsInParallel = YES;
-				LastUpgradeCheck = 0640;
+				LastUpgradeCheck = 0710;
 			};
 			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Hedgewars" */;
 			compatibilityVersion = "Xcode 3.2";
@@ -1385,6 +1493,7 @@
 				Portuguese,
 				Romanian,
 				ru,
+				tr,
 			);
 			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
 			projectDirPath = "";
@@ -1500,23 +1609,33 @@
 				611E12FF117BBBDA0044B62F /* Entitlements-Development.plist in Resources */,
 				6165925311CA9CB400D6E256 /* MainMenuViewController-iPad.xib in Resources */,
 				6165925511CA9CB400D6E256 /* MapConfigViewController-iPad.xib in Resources */,
+				F60D04791BD137B5003ACB00 /* bullet.png in Resources */,
 				61F9040911DF58B00068B24D /* settingsButton.png in Resources */,
 				61F9040B11DF59370068B24D /* background.png in Resources */,
 				61EBA62A11DFF2BC0048B68A /* title~iphone.png in Resources */,
 				61F7A43811E290650040BA66 /* Icon-72.png in Resources */,
+				F60D04781BD137B5003ACB00 /* bullet_filled@2x.png in Resources */,
 				61F7A43911E290650040BA66 /* Icon-Small-50.png in Resources */,
+				F60D04871BD137B5003ACB00 /* teams_filled.png in Resources */,
 				61F7A43A11E290650040BA66 /* Icon-Small.png in Resources */,
 				61F7A43C11E290650040BA66 /* Icon.png in Resources */,
 				F65724FE1B7E784700A86262 /* helpbottom.png in Resources */,
 				61F7A43E11E290650040BA66 /* iTunesArtwork.png in Resources */,
+				F60D04811BD137B5003ACB00 /* heart.png in Resources */,
 				F65E1DC11B9B95A400A78ADF /* Icon-76@2x.png in Resources */,
 				6129B9F711EFB04D0017E305 /* denied.png in Resources */,
 				61F2E7CF1205EDE0005734F7 /* AboutViewController.xib in Resources */,
+				F60D047C1BD137B5003ACB00 /* flower_filled@2x.png in Resources */,
 				61F2E7EC12060E31005734F7 /* checkbox.png in Resources */,
+				F60D04821BD137B5003ACB00 /* heart@2x.png in Resources */,
 				615AD96212073B4D00F2FF04 /* startGameButton.png in Resources */,
+				F60D048A1BD137B5003ACB00 /* teams@2x.png in Resources */,
 				F6D7E09F1B76884E004F3BCF /* Default-568h@2x.png in Resources */,
+				F60D047E1BD137B5003ACB00 /* flower@2x.png in Resources */,
+				F60D04841BD137B5003ACB00 /* target_filled@2x.png in Resources */,
 				615AD9E9120764CA00F2FF04 /* backButton.png in Resources */,
 				615AD9EB1207654E00F2FF04 /* helpButton.png in Resources */,
+				F60D04891BD137B5003ACB00 /* teams.png in Resources */,
 				611EE974122A9C4100DF6938 /* clickSound.caf in Resources */,
 				611EE9DA122AA10A00DF6938 /* selSound.caf in Resources */,
 				6199E86D12464A8E00DADF8C /* surprise.png in Resources */,
@@ -1537,8 +1656,12 @@
 				6172FEEF1298D25D00D73365 /* mediumBackground~ipad.png in Resources */,
 				F65E1DBF1B9B95A400A78ADF /* Icon-60@2x.png in Resources */,
 				6172FEF11298D25D00D73365 /* smallerBackground~ipad.png in Resources */,
+				F60D047A1BD137B5003ACB00 /* bullet@2x.png in Resources */,
+				F60D04861BD137B5003ACB00 /* target@2x.png in Resources */,
 				6172FEF21298D25D00D73365 /* smallerBackground~iphone.png in Resources */,
 				61889985129995B500D55FD6 /* title~ipad.png in Resources */,
+				F60D047D1BD137B5003ACB00 /* flower.png in Resources */,
+				F60D04801BD137B5003ACB00 /* heart_filled@2x.png in Resources */,
 				615FEAE212A2A6640098EE92 /* localplayButton~ipad.png in Resources */,
 				615FEAE312A2A6640098EE92 /* localplayButton~iphone.png in Resources */,
 				F65725001B7E784700A86262 /* helpplain.png in Resources */,
@@ -1546,6 +1669,9 @@
 				61188BF812A6FE5C0026C5DA /* background@2x~iphone.png in Resources */,
 				61188BF912A6FE5D0026C5DA /* checkbox@2x.png in Resources */,
 				61188BFB12A6FE610026C5DA /* Default-ipad-Landscape.png in Resources */,
+				F60D047B1BD137B5003ACB00 /* flower_filled.png in Resources */,
+				F60D04771BD137B5003ACB00 /* bullet_filled.png in Resources */,
+				F60D04881BD137B5003ACB00 /* teams_filled@2x.png in Resources */,
 				61188BFC12A6FE630026C5DA /* Default@2x.png in Resources */,
 				61188BFD12A6FE730026C5DA /* fb@2x.png in Resources */,
 				61188BFE12A6FE7C0026C5DA /* irc@2x.png in Resources */,
@@ -1554,6 +1680,7 @@
 				61188C0412A6FE880026C5DA /* savesButton@2x.png in Resources */,
 				61188C0512A6FE8F0026C5DA /* Data in Resources */,
 				61188C0612A6FE950026C5DA /* smallerBackground@2x~iphone.png in Resources */,
+				F67FC8161BEC17AC00A9DC75 /* Appirater.bundle in Resources */,
 				F65724FD1B7E784700A86262 /* helpabove.png in Resources */,
 				F6F07BDE1B7E72D40010E48F /* HelpPageLobbyViewController-iPad.xib in Resources */,
 				61188C0712A6FE960026C5DA /* settingsButton@2x.png in Resources */,
@@ -1573,12 +1700,15 @@
 				6167C8F81429502C003DD50F /* robotBadge@2x.png in Resources */,
 				6167C8F91429502C003DD50F /* star.png in Resources */,
 				6167C8FA1429502C003DD50F /* star@2x.png in Resources */,
+				F60D047F1BD137B5003ACB00 /* heart_filled.png in Resources */,
+				F60D04831BD137B5003ACB00 /* target_filled.png in Resources */,
 				6167CA37142A6ED7003DD50F /* bot0.png in Resources */,
 				6167CA38142A6ED7003DD50F /* bot0@2x.png in Resources */,
 				6167CA39142A6ED7003DD50F /* bot1.png in Resources */,
 				6167CA3A142A6ED7003DD50F /* bot1@2x.png in Resources */,
 				6167CA3B142A6ED7003DD50F /* bot2.png in Resources */,
 				6167CA3C142A6ED7003DD50F /* bot2@2x.png in Resources */,
+				F60D04851BD137B5003ACB00 /* target.png in Resources */,
 				6167CA3D142A6ED7003DD50F /* bot3.png in Resources */,
 				6167CA3E142A6ED7003DD50F /* bot3@2x.png in Resources */,
 				6167CA3F142A6ED7003DD50F /* bot4.png in Resources */,
@@ -1630,7 +1760,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "SOURCE_DIR=${PROJECT_DIR}/../../\n\n#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\necho \"Copying Data...\"\ncp -R ${SOURCE_DIR}/share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some other files\necho \"Fetching additional graphics...\"\nmkdir -p ${PROJECT_DIR}/Data/Graphics/Icons\ncp    ${SOURCE_DIR}/QTfrontend/res/{btn*,icon*,StatsMedal*,ammopic*}.png ${PROJECT_DIR}/Data/Graphics/Icons/\ncp -R ${SOURCE_DIR}/project_files/Android-build/SDL-android-project/assets/Data/Graphics/Buttons ${PROJECT_DIR}/Data/Graphics/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg* -delete\nfind ${PROJECT_DIR}/Data -name *.psd -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\nfind ${PROJECT_DIR}/Data -name *.ts -delete\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/test*\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps and WIP themes (remember to check that no Map uses them)\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\n#delete all names, reserved hats and unused fonts\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\necho \"Handling audio files...\"\n#copy mono audio\ncp -R ${SOURCE_DIR}/project_files/AudioMono/* ${PROJECT_DIR}/Data/\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nfor i in `ls ${PROJECT_DIR}/Data/Maps/`;\ndo \n    if [[ `ls -f ${PROJECT_DIR}/Data/Maps/$i/map.lua 2> /dev/null` != '' ]];\n    then\n        mv ${PROJECT_DIR}/Data/Maps/$i ${PROJECT_DIR}/Data/Missions/Maps/;\n    fi;\ndone;\n\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n\n#reduce the number of flakes for City\nsed -i -e 's/1500/50/' ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\necho \"Done\"";
+			shellScript = "SOURCE_DIR=${PROJECT_DIR}/../../\n\n#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\necho \"Copying Data...\"\ncp -R ${SOURCE_DIR}/share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some other files\necho \"Fetching additional graphics...\"\nmkdir -p ${PROJECT_DIR}/Data/Graphics/Icons\ncp    ${SOURCE_DIR}/QTfrontend/res/{btn*,icon*,StatsMedal*,ammopic*}.png ${PROJECT_DIR}/Data/Graphics/Icons/\ncp -R ${SOURCE_DIR}/project_files/Android-build/SDL-android-project/assets/Data/Graphics/Buttons ${PROJECT_DIR}/Data/Graphics/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg* -delete\nfind ${PROJECT_DIR}/Data -name *.psd -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\nfind ${PROJECT_DIR}/Data -name *.ts -delete\n\n#delete all CMake generated files\nfind ${PROJECT_DIR}/Data -name CMakeFiles -type d -exec rm -r {} +\nfind ${PROJECT_DIR}/Data -name Makefile -delete\nfind ${PROJECT_DIR}/Data -name *.cmake -delete\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/test*\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps and WIP themes (remember to check that no Map uses them)\nrm -rf ${PROJECT_DIR}/Data/Maps/{FlightJoust,ClimbHome}\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\n#delete all names, reserved hats and unused fonts\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nfor i in `ls ${PROJECT_DIR}/Data/Maps/`;\ndo \n    if [[ `ls -f ${PROJECT_DIR}/Data/Maps/$i/map.lua 2> /dev/null` != '' ]];\n    then\n        mv ${PROJECT_DIR}/Data/Maps/$i ${PROJECT_DIR}/Data/Missions/Maps/;\n    fi;\ndone;\n\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n\n#reduce the number of flakes for City\nsed -i -e 's/1500/50/' ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\necho \"Done\"";
 		};
 		61806B78170B83EA00C601BC /* config.inc */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -1676,7 +1806,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "# Compile Pascal Sources\n# 15sep06,ejo  written.\n# 26 April 2007 - Jonas Maebe\n#  * support for ppc64 and x86_64\n#  * don't run when cleaning (in case running scripts when cleaning is ever fixed by Apple)\n#  * split the options in FPC_COMMON_FLAGS (common to all configurations) and FPC_CFG_SPECIFIC_FLAGS (per configuration)\n# 4 January 2009 - Jonas Maebe\n#  * support for ARM\n# 24 October 2009 - Jonas Maebe\n#  * don't hardcode 2.3.1 in some cases anymore\n# 13 December 2009 (Jonas Maebe)\n#  * use new FPC_COMPILER_BINARY_DIR setting to make it easier to change the used FPC version\n\nif [ x\"$ACTION\" != \"xbuild\" ]; then\n  # in case running scripts during cleaning gets fixed\n  exit 0\nfi\n\nif test ! -e \"$FPC_MAIN_FILE\"\nthen\n\techo error: FPC_MAIN_FILE not found \\($FPC_MAIN_FILE\\)\n\texit 2\nfi\n\nfor variant in $BUILD_VARIANTS\ndo\n\tfor arch in $ARCHS\n\tdo\n\t\ttargetos=darwin;\n\t\tcase $arch in\n            arm64) fpc_arch=rossa64; fpc_rtl=aarch64 ;;\n            armv7) fpc_arch=rossarm; fpc_rtl=arm ;;\n            x86_64) fpc_arch=x64; fpc_rtl=x86_64; targetos=iphonesim ;;\n#\t\t\tppc) fpc_arch=ppc; fpc_rtl=powerpc ;;\n#\t\t\ti386) fpc_arch=386; fpc_rtl=i386; targetos=iphonesim ;;\n#\t\t\tppc64) fpc_arch=ppc64; fpc_rtl=powerpc64 ;;\n#\t\t\tx86_64) fpc_arch=x64; fpc_rtl=x86_64 ;;\n#\t\t\tarm*) fpc_arch=arm; fpc_rtl=arm ;;\n\t\t\t*) continue\n\t\tesac\n\n\t\tapp_target_temp_dir=$CONFIGURATION_TEMP_DIR/`basename \"$PROJECT_TEMP_DIR\"`\n\t\tout_dir=$app_target_temp_dir/`basename \"$DERIVED_SOURCES_DIR\"`-$variant/$arch\n\t\tfpccompiler=\"${FPC_COMPILER_BINARY_DIR}/ppc${fpc_arch}\"\n\t\tif test -e \"$fpccompiler\"\n\t\tthen\n\t\t\tfpcversion=`\"$fpccompiler\" -iV`\n\t\t\tmainunitdir=\"$FPC_RTL_UNITS_BASE/$fpcversion/units/${fpc_rtl}-${targetos}/\"\n\t\t\tmkdir -p \"$out_dir\"\n\t\t\tcd \"$out_dir\"\n\t\t\techo \"Compiling to $out_dir\"\n\t\t\trm -f compilefailed\n\t\n\t\t\t# delete any ppu files for which the \".s\" file was somehow deleted (Xcode does that sometimes in case of errors),\n\t\t\t# so that FPC will recompile the unit\n\t\t\tfor file in *.ppu\n\t\t\tdo\n\t\t\t\tasmname=`basename \"$file\" ppu`s\n\t\t\t\tif [ ! -f \"$asmname\" ]; then\n\t\t\t\t\t# can fail in case there are no .ppu files, since then it will try to erase the file with name '*.ppu'\n\t\t\t\t\t# -> use -f so it won't give an error message\n\t\t\t\t\trm -f \"$file\"\n\t\t\t\tfi\n\t\t\tdone\n\n\t\t\techo $fpccompiler -n -l -viwn -a -s -vbr -FE. $FPC_COMMON_OPTIONS $FPC_SPECIFIC_OPTIONS '\\' >ppccmd.sh\n\t\t\techo -Fi\\\"`dirname \"$FPC_MAIN_FILE\"`\\\" '\\' >>ppccmd.sh\n\t\t\techo -Fu\"$mainunitdir/*\" -Fu\"$mainunitdir/rtl\" '\\' >>ppccmd.sh\n\t\t\t# allow FPC_UNIT_PATHS to override default search directory\n\t\t\techo $FPC_UNIT_PATHS '\\' >>ppccmd.sh\n\t\t\techo \\\"$FPC_MAIN_FILE\\\" >>ppccmd.sh\n\t\t\t# cat ppccmd.sh\n\n\t\t\t/bin/sh ppccmd.sh\n\t\t\tif [ $? != 0 ]; then\n\t\t\t\ttouch \"$out_dir\"/compilefailed\n\t\t\t\texit 1\n\t\t\tfi\n\t\telse\n\t\t\ttouch \"$out_dir\"/compilefailed\n\t\t\techo $FPC_MAIN_FILE:1: error: 1: can\\'t compile for $arch \\(ppc${fpc_arch} not found\\)\n\t\t\texit 2\n\t\tfi\n\tdone\ndone\n";
+			shellScript = "# Compile Pascal Sources\n# 15sep06,ejo  written.\n# 26 April 2007 - Jonas Maebe\n#  * support for ppc64 and x86_64\n#  * don't run when cleaning (in case running scripts when cleaning is ever fixed by Apple) (removed)\n#  * split the options in FPC_COMMON_FLAGS (common to all configurations) and FPC_CFG_SPECIFIC_FLAGS (per configuration)\n# 4 January 2009 - Jonas Maebe\n#  * support for ARM\n# 24 October 2009 - Jonas Maebe\n#  * don't hardcode 2.3.1 in some cases anymore\n# 13 December 2009 (Jonas Maebe)\n#  * use new FPC_COMPILER_BINARY_DIR setting to make it easier to change the used FPC version\n\nif test ! -e \"$FPC_MAIN_FILE\"\nthen\n\techo error: FPC_MAIN_FILE not found \\($FPC_MAIN_FILE\\)\n\texit 2\nfi\n\nfor variant in $BUILD_VARIANTS\ndo\n\tfor arch in $ARCHS\n\tdo\n\t\ttargetos=darwin;\n\t\tcase $arch in\n            arm64) fpc_arch=rossa64; fpc_rtl=aarch64 ;;\n            armv7) fpc_arch=rossarm; fpc_rtl=arm ;;\n            x86_64) fpc_arch=x64; fpc_rtl=x86_64; targetos=iphonesim ;;\n#\t\t\tppc) fpc_arch=ppc; fpc_rtl=powerpc ;;\n#\t\t\ti386) fpc_arch=386; fpc_rtl=i386; targetos=iphonesim ;;\n#\t\t\tppc64) fpc_arch=ppc64; fpc_rtl=powerpc64 ;;\n#\t\t\tx86_64) fpc_arch=x64; fpc_rtl=x86_64 ;;\n#\t\t\tarm*) fpc_arch=arm; fpc_rtl=arm ;;\n\t\t\t*) continue\n\t\tesac\n\n\t\tapp_target_temp_dir=$CONFIGURATION_TEMP_DIR/`basename \"$PROJECT_TEMP_DIR\"`\n\t\tout_dir=$app_target_temp_dir/`basename \"$DERIVED_SOURCES_DIR\"`-$variant/$arch\n\t\tfpccompiler=\"${FPC_COMPILER_BINARY_DIR}/ppc${fpc_arch}\"\n\t\tif test -e \"$fpccompiler\"\n\t\tthen\n\t\t\tfpcversion=`\"$fpccompiler\" -iV`\n\t\t\tmainunitdir=\"$FPC_RTL_UNITS_BASE/$fpcversion/units/${fpc_rtl}-${targetos}/\"\n\t\t\tmkdir -p \"$out_dir\"\n\t\t\tcd \"$out_dir\"\n\t\t\techo \"Compiling to $out_dir\"\n\t\t\trm -f compilefailed\n\t\n\t\t\t# delete any ppu files for which the \".s\" file was somehow deleted (Xcode does that sometimes in case of errors),\n\t\t\t# so that FPC will recompile the unit\n\t\t\tfor file in *.ppu\n\t\t\tdo\n\t\t\t\tasmname=`basename \"$file\" ppu`s\n\t\t\t\tif [ ! -f \"$asmname\" ]; then\n\t\t\t\t\t# can fail in case there are no .ppu files, since then it will try to erase the file with name '*.ppu'\n\t\t\t\t\t# -> use -f so it won't give an error message\n\t\t\t\t\trm -f \"$file\"\n\t\t\t\tfi\n\t\t\tdone\n\n\t\t\techo $fpccompiler -n -l -viwn -a -s -vbr -FE. $FPC_COMMON_OPTIONS $FPC_SPECIFIC_OPTIONS '\\' >ppccmd.sh\n\t\t\techo -Fi\\\"`dirname \"$FPC_MAIN_FILE\"`\\\" '\\' >>ppccmd.sh\n\t\t\techo -Fu\"$mainunitdir/*\" -Fu\"$mainunitdir/rtl\" '\\' >>ppccmd.sh\n\t\t\t# allow FPC_UNIT_PATHS to override default search directory\n\t\t\techo $FPC_UNIT_PATHS '\\' >>ppccmd.sh\n\t\t\techo \\\"$FPC_MAIN_FILE\\\" >>ppccmd.sh\n\t\t\t# cat ppccmd.sh\n\n\t\t\t/bin/sh ppccmd.sh\n\t\t\tif [ $? != 0 ]; then\n\t\t\t\ttouch \"$out_dir\"/compilefailed\n\t\t\t\texit 1\n\t\t\tfi\n\t\telse\n\t\t\ttouch \"$out_dir\"/compilefailed\n\t\t\techo $FPC_MAIN_FILE:1: error: 1: can\\'t compile for $arch \\(ppc${fpc_arch} not found\\)\n\t\t\texit 2\n\t\tfi\n\tdone\ndone\n";
 		};
 /* End PBXShellScriptBuildPhase section */
 
@@ -1692,6 +1822,7 @@
 				61798820114AA34C00BA94A9 /* uAIActions.pas in Sources */,
 				61798821114AA34C00BA94A9 /* uAIAmmoTests.pas in Sources */,
 				61798822114AA34C00BA94A9 /* uAIMisc.pas in Sources */,
+				F6BA38461BA7A834005D16EA /* GameLogViewController.m in Sources */,
 				61798823114AA34C00BA94A9 /* uAmmos.pas in Sources */,
 				61798824114AA34C00BA94A9 /* uChat.pas in Sources */,
 				61798825114AA34C00BA94A9 /* uCollisions.pas in Sources */,
@@ -1704,6 +1835,7 @@
 				6179882D114AA34C00BA94A9 /* uLand.pas in Sources */,
 				6179882E114AA34C00BA94A9 /* uLandGraphics.pas in Sources */,
 				6179882F114AA34C00BA94A9 /* uLandObjects.pas in Sources */,
+				F6756D801BD8550500B6AB6B /* LabelWithIBLocalization.m in Sources */,
 				61798830114AA34C00BA94A9 /* uLandTemplates.pas in Sources */,
 				F6D7E0C31B768F19004F3BCF /* uLandGenTemplateBased.pas in Sources */,
 				61798831114AA34C00BA94A9 /* uLandTexture.pas in Sources */,
@@ -1732,7 +1864,6 @@
 				6165921B11CA9BA200D6E256 /* SchemeWeaponConfigViewController.m in Sources */,
 				6165921C11CA9BA200D6E256 /* SingleSchemeViewController.m in Sources */,
 				6165921D11CA9BA200D6E256 /* SingleTeamViewController.m in Sources */,
-				6165921E11CA9BA200D6E256 /* SettingsContainerViewController.m in Sources */,
 				6165921F11CA9BA200D6E256 /* TeamConfigViewController.m in Sources */,
 				6165922011CA9BA200D6E256 /* TeamSettingsViewController.m in Sources */,
 				6165922111CA9BA200D6E256 /* VoicesViewController.m in Sources */,
@@ -1755,10 +1886,12 @@
 				61006F95128DE31F00EBA7F7 /* CreationChamber.m in Sources */,
 				61A4A39412A5CCC2004D81E6 /* uCommandHandlers.pas in Sources */,
 				61A4A39512A5CCC2004D81E6 /* uCommands.pas in Sources */,
+				F6448CE31BD2E00500C31C8C /* TableViewControllerWithDoneButton.m in Sources */,
 				61A4A39612A5CCC2004D81E6 /* uDebug.pas in Sources */,
 				61A4A39712A5CCC2004D81E6 /* uGearsRender.pas in Sources */,
 				61A4A39812A5CCC2004D81E6 /* uRender.pas in Sources */,
 				61A4A39912A5CCC2004D81E6 /* uRenderUtils.pas in Sources */,
+				F6F7DA8F1BE18F5700432EA7 /* UITableViewCell+FindTable.m in Sources */,
 				61A4A39A12A5CCC2004D81E6 /* uSinTable.pas in Sources */,
 				61A4A39B12A5CCC2004D81E6 /* uTextures.pas in Sources */,
 				61A4A39C12A5CCC2004D81E6 /* uTypes.pas in Sources */,
@@ -1767,12 +1900,12 @@
 				61A4A3A212A5CD56004D81E6 /* uCaptions.pas in Sources */,
 				61E5D68D12AB006F00566F29 /* uLandPainted.pas in Sources */,
 				61F544C712AF1748007FD913 /* HoldTableViewCell.m in Sources */,
-				61AC067412B2E32D000B52A2 /* Appirater.m in Sources */,
 				61E2E12E12BAAEE30051B659 /* ServerProtocolNetwork.m in Sources */,
 				61B7A33812CC21080086B604 /* StatsPageViewController.m in Sources */,
 				F6D7E0C41B768F19004F3BCF /* uLandUtils.pas in Sources */,
 				61EDB5B0135B3F97009B29A6 /* GameInterfaceBridge.m in Sources */,
 				61A976B3136F668500DD9878 /* uCursor.pas in Sources */,
+				F67FC8121BEC06E700A9DC75 /* Appirater.m in Sources */,
 				6167A6761391514600AA6D07 /* RestoreViewController.m in Sources */,
 				61C28D3F142D380400DA16C2 /* AudioManagerController.m in Sources */,
 				611D7A50142FDCD3006E0798 /* uTouch.pas in Sources */,
@@ -1868,6 +2001,7 @@
 				61C6783F14B3DD020087425A /* Portuguese */,
 				6154A53114C37E4A00F6EEF6 /* Romanian */,
 				F65725291B7EB9CC00A86262 /* ru */,
+				F67FC81F1BEC280D00A9DC75 /* tr */,
 			);
 			name = About.strings;
 			sourceTree = "<group>";
@@ -1887,6 +2021,7 @@
 				61C6784B14B3DD0B0087425A /* Portuguese */,
 				6154A53E14C37E5400F6EEF6 /* Romanian */,
 				F657252A1B7EB9CC00A86262 /* ru */,
+				F67FC8201BEC280D00A9DC75 /* tr */,
 			);
 			name = Localizable.strings;
 			sourceTree = "<group>";
@@ -1906,6 +2041,7 @@
 				61C6784C14B3DD140087425A /* Portuguese */,
 				6154A54014C37EB100F6EEF6 /* Romanian */,
 				F657252B1B7EB9CC00A86262 /* ru */,
+				F67FC8211BEC280D00A9DC75 /* tr */,
 			);
 			name = Scheme.strings;
 			sourceTree = "<group>";
@@ -1916,24 +2052,32 @@
 		1D6058940D05DD3E006BFB54 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_GENERATE_TEST_COVERAGE_FILES = YES;
 				GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
+				PRODUCT_BUNDLE_IDENTIFIER = org.hedgewars.mobile;
 				PRODUCT_NAME = Hedgewars;
+				PROVISIONING_PROFILE = "";
 			};
 			name = Debug;
 		};
 		1D6058950D05DD3E006BFB54 /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
+				PRODUCT_BUNDLE_IDENTIFIER = org.hedgewars.mobile;
 				PRODUCT_NAME = Hedgewars;
+				PROVISIONING_PROFILE = "";
 			};
 			name = Release;
 		};
@@ -1952,12 +2096,13 @@
 				CODE_SIGN_IDENTITY = "iPhone Distribution";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
 				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_BITCODE = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				FPC_COMMON_OPTIONS = "-l- -dIPHONEOS -Cs2000000 -B  -vwi -Sgix -Fi${PROJECT_DIR}";
 				FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/3.1.1;
 				FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
 				FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
-				FPC_SPECIFIC_OPTIONS = "-Ci- -Cr- -Co- -Os -Xs -dNOCONSOLE";
+				FPC_SPECIFIC_OPTIONS = "-Ci- -Cr- -Co- -O2 -Xs -dNOCONSOLE";
 				FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = default;
@@ -1967,7 +2112,6 @@
 				GCC_OPTIMIZATION_LEVEL = s;
 				GCC_PREPROCESSOR_DEFINITIONS = "";
 				GCC_STRICT_ALIASING = YES;
-				GCC_THUMB_SUPPORT = NO;
 				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
@@ -1993,14 +2137,11 @@
 					"\"$(SRCROOT)/../../../Library/SDL_net/\"",
 					"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
 				);
-				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LLVM_LTO = NO;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_CODE_SIGN_FLAGS = "";
-				OTHER_LDFLAGS = (
-					"-lz",
-					"-Wl,-no_order_inits",
-				);
+				OTHER_LDFLAGS = "-lz";
 				PREBINDING = NO;
 				PROVISIONING_PROFILE = "";
 				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -2020,11 +2161,15 @@
 		61022D7D12305A2800B08935 /* Distro AppStore */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
+				PRODUCT_BUNDLE_IDENTIFIER = org.hedgewars.mobile;
 				PRODUCT_NAME = Hedgewars;
+				PROVISIONING_PROFILE = "";
 			};
 			name = "Distro AppStore";
 		};
@@ -2068,6 +2213,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Distribution";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
 				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_BITCODE = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				FPC_COMMON_OPTIONS = "-l- -dIPHONEOS -Cs2000000 -B  -vwi -Sgix -Fi${PROJECT_DIR}";
 				FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/3.1.1;
@@ -2077,13 +2223,12 @@
 				FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = full;
-				GCC_DYNAMIC_NO_PIC = YES;
+				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_FAST_MATH = YES;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 				GCC_STRICT_ALIASING = YES;
-				GCC_THUMB_SUPPORT = NO;
 				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
@@ -2109,11 +2254,12 @@
 					"\"$(SRCROOT)/../../../Library/SDL_net/\"",
 					"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
 				);
-				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_LDFLAGS = (
 					"-lz",
-					"-Wl,-no_order_inits",
+					"-framework",
+					MessageUI,
 				);
 				PREBINDING = NO;
 				PROVISIONING_PROFILE = "";
@@ -2134,11 +2280,15 @@
 		6137064C117B1CB3004EE44A /* Distro Adhoc */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
 				INFOPLIST_FILE = Info.plist;
+				PRODUCT_BUNDLE_IDENTIFIER = org.hedgewars.mobile;
 				PRODUCT_NAME = Hedgewars;
+				PROVISIONING_PROFILE = "";
 			};
 			name = "Distro Adhoc";
 		};
@@ -2227,7 +2377,9 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_BITCODE = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
 				FPC_COMMON_OPTIONS = "-l- -dIPHONEOS -Cs2000000 -B  -vwi -Sgix -Fi${PROJECT_DIR}";
 				FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/3.1.1;
 				FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
@@ -2242,7 +2394,6 @@
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 				GCC_STRICT_ALIASING = YES;
-				GCC_THUMB_SUPPORT = NO;
 				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
@@ -2268,11 +2419,12 @@
 					"\"$(SRCROOT)/../../../Library/SDL_net/\"",
 					"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
 				);
-				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = (
 					"-lz",
-					"-Wl,-no_order_inits",
+					"-framework",
+					MessageUI,
 				);
 				PREBINDING = NO;
 				PROVISIONING_PROFILE = "";
@@ -2306,12 +2458,13 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_BITCODE = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				FPC_COMMON_OPTIONS = "-l- -dIPHONEOS -Cs2000000 -B  -vwi -Sgix -Fi${PROJECT_DIR}";
 				FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/3.1.1;
 				FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
 				FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
-				FPC_SPECIFIC_OPTIONS = "-Ci- -Cr- -Co- -Os -Xs -dDEBUGFILE";
+				FPC_SPECIFIC_OPTIONS = "-Ci- -Cr- -Co- -O2 -Xs -dDEBUGFILE";
 				FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = default;
@@ -2321,7 +2474,6 @@
 				GCC_OPTIMIZATION_LEVEL = s;
 				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 				GCC_STRICT_ALIASING = YES;
-				GCC_THUMB_SUPPORT = NO;
 				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
@@ -2347,12 +2499,13 @@
 					"\"$(SRCROOT)/../../../Library/SDL_net/\"",
 					"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
 				);
-				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LLVM_LTO = NO;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_LDFLAGS = (
 					"-lz",
-					"-Wl,-no_order_inits",
+					"-framework",
+					MessageUI,
 				);
 				PREBINDING = NO;
 				PROVISIONING_PROFILE = "";
--- a/project_files/HedgewarsMobile/Info.plist	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Info.plist	Mon Nov 09 16:34:32 2015 +0000
@@ -21,7 +21,7 @@
 		<string>Icon-76@2x.png</string>
 	</array>
 	<key>CFBundleIdentifier</key>
-	<string>com.AC27.Hedgewars</string>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<string>6.0</string>
 	<key>CFBundleName</key>
@@ -40,6 +40,8 @@
 	<string>Default-ipad</string>
 	<key>UIPrerenderedIcon</key>
 	<true/>
+	<key>UIRequiresFullScreen</key>
+	<true/>
 	<key>UIStatusBarHidden</key>
 	<true/>
 	<key>UISupportedInterfaceOrientations~ipad</key>
Binary file project_files/HedgewarsMobile/Locale/English.lproj/About.strings has changed
Binary file project_files/HedgewarsMobile/Locale/English.lproj/Localizable.strings has changed
Binary file project_files/HedgewarsMobile/Locale/English.lproj/Scheme.strings has changed
Binary file project_files/HedgewarsMobile/Locale/ru.lproj/About.strings has changed
Binary file project_files/HedgewarsMobile/Locale/ru.lproj/Localizable.strings has changed
Binary file project_files/HedgewarsMobile/Locale/ru.lproj/Scheme.strings has changed
Binary file project_files/HedgewarsMobile/Locale/tr.lproj/About.strings has changed
Binary file project_files/HedgewarsMobile/Locale/tr.lproj/Localizable.strings has changed
Binary file project_files/HedgewarsMobile/Locale/tr.lproj/Scheme.strings has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/bullet.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/bullet@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/bullet_filled.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/bullet_filled@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/flower.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/flower@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/flower_filled.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/flower_filled@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/heart.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/heart@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/heart_filled.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/heart_filled@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/target.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/target@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/target_filled.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/target_filled@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/teams.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/teams@2x.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/teams_filled.png has changed
Binary file project_files/HedgewarsMobile/Resources/Icons/teams_filled@2x.png has changed
--- a/project_files/HedgewarsMobile/Resources/basicFlags.plist	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Resources/basicFlags.plist	Mon Nov 09 16:34:32 2015 +0000
@@ -266,5 +266,41 @@
 		<key>title</key>
 		<string>Get Away Time (%)</string>
 	</dict>
+	<dict>
+		<key>checkOverMax</key>
+		<false/>
+		<key>times1000</key>
+		<false/>
+		<key>command</key>
+		<string>e$airmines</string>
+		<key>default</key>
+		<integer>0</integer>
+		<key>image</key>
+		<string>Mine</string>
+		<key>max</key>
+		<integer>80</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>Air Mines</string>
+	</dict>
+	<dict>
+		<key>checkOverMax</key>
+		<false/>
+		<key>times1000</key>
+		<false/>
+		<key>command</key>
+		<string>e$worldedge</string>
+		<key>default</key>
+		<integer>0</integer>
+		<key>image</key>
+		<string>Earth</string>
+		<key>max</key>
+		<integer>3</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>World Edge</string>
+	</dict>
 </array>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/credits.plist	Thu Oct 01 12:17:42 2015 +0200
+++ b/project_files/HedgewarsMobile/Resources/credits.plist	Mon Nov 09 16:34:32 2015 +0000
@@ -3,9 +3,9 @@
 <plist version="1.0">
 <array>
 	<array>
-		<string>Andrey &quot;UnC0Rr&quot; Korotaev</string>
+		<string>Andrey &quot;unC0Rr&quot; Korotaev</string>
 		<string>Igor &quot;Displacer&quot; Ulyanov</string>
-		<string>Derek &quot;Nemo&quot; Pomery</string>
+		<string>Derek &quot;nemo&quot; Pomery</string>
 		<string>Martin &quot;Affect&quot; Boze</string>
 		<string>David &quot;Krawek&quot; Cuadrado</string>
 		<string>Martin &quot;Ttsmj&quot; Minarik</string>
@@ -13,12 +13,20 @@
 		<string>Vittorio &quot;Koda&quot; Giovara</string>
 		<string>Mario &quot;Smaxx&quot; Liebisch</string>
 		<string>Carlos &quot;Palewolf&quot; Vives</string>
-		<string>Richard &quot;Sheepluva&quot; Korlyi</string>
+		<string>Richard &quot;sheepluva&quot; Karolyi</string>
 		<string>Henning &quot;Prg&quot; Kühn</string>
 		<string>Henrik &quot;Henek&quot; Rostedt</string>
-		<string>John &quot;Mikade&quot; Lambert</string>
+		<string>John &quot;mikade&quot; Lambert</string>
 		<string>Mayur &quot;Zorg&quot; Pawashe</string>
 		<string>Richard &quot;Xeli&quot; Deurwaarder</string>
+		<string>Simeon Maxein</string>
+		<string>Meng Xiangyun</string>
+		<string>Stepan Podoskin</string>
+		<string>Szabolcs Orbàn</string>
+		<string>Drew Gottlieb</string>
+		<string>Ondrej Skopek</string>
+		<string>Julia Struchenko</string>
+		<string>Anton &quot;antonc27&quot; Malmygin</string>
 	</array>
 	<array>
 		<string>John &quot;Fizzy&quot; Dum</string>
@@ -26,7 +34,8 @@
 		<string>Stanko Tadić</string>
 		<string>Julien Koesten</string>
 		<string>Joshua O&apos;Sullivan</string>
-		<string>Nils Luck</string>
+		<string>Nils Lück</string>
+		<string>Guillaume Englert</string>
 		<string>Trey Perry</string>
 	</array>
 	<array>
@@ -42,16 +51,16 @@
 		<string>Jie Luo</string>
 		<string>Andrey Korotaev</string>
 		<string>Nina Kuisma</string>
-		<string>Antoine Turmel</string>
-		<string>Peter Hüwe, Mario Liebisch, Richard Karolyi</string>
+		<string>Antoine Turmel, Clement Woitrain, Matisumi</string>
+		<string>Peter Hüwe, Mario Liebisch, Richard Karolyi, Wuzzy</string>
 		<string>Talos Kriti</string>
-		<string>Luca Bonora, Marco Bresciani</string>
-		<string>Adam Etienne</string>
+		<string>Luca Bonora, Marco Bresciani, Gianfranco Costamagna</string>
+		<string>Adam Etienne, Marco Bresciani</string>
 		<string>Anthony Bellew</string>
 		<string>Lukas Urbonas</string>
 		<string>Maciej Mroziński, Wojciech Latkowski, Piotr Mitana, Maciej Górny</string>
 		<string>Fábio Canário</string>
-		<string>Andrey Korotaev</string>
+		<string>Andrey Korotaev, Vitaly Novichkov, Anton Malmygin</string>
 		<string>Jose Riha</string>
 		<string>Carlos Vives</string>
 		<string>Niklas Grahn, Henrik Rostedt</string>
@@ -80,6 +89,14 @@
 		<string>Lua game modes and missions</string>
 		<string>Desktop frontend improvements</string>
 		<string>Android port</string>
+		<string>Android netplay, portability abstraction</string>
+		<string>WebGL port, some pas2c and GLES2 work</string>
+		<string>Video recording</string>
+		<string>Campaign support, first campaign</string>
+		<string>Keybinds, feedback, maps and hats interfaces</string>
+		<string>Login dialogs, frontend improvements</string>
+		<string>Icegun weapon</string>
+		<string>Current developer of iPhone/iPad versions</string>
 	</array>
 	<array>
 		<string>Main graphics</string>
@@ -88,6 +105,7 @@
 		<string></string>
 		<string></string>
 		<string></string>
+		<string></string>
 		<string>Some hats</string>
 	</array>
 	<array>
--- a/share/hedgewars/Data/Locale/en.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/en.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -86,6 +86,7 @@
 01:22=AFK mode
 01:23=Auto Camera Off
 01:24=Auto Camera On
+01:25=Press the target button to mark the target
 
 ; Event messages
 ; Hog (%1) died
--- a/share/hedgewars/Data/Locale/missions_it.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/missions_it.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -43,5 +43,41 @@
 User_Mission_-_Rope_Knock_Challenge.name=Sfida: a colpi di corda
 User_Mission_-_Rope_Knock_Challenge.desc="Guarda sempre dietro di te!"
 
+User_Mission_-_Nobody_Laugh.name=Missione: Nessuno ride
+User_Mission_-_Nobody_Laugh.desc="Questo non è un gioco."
+
 User_Mission_-_RCPlane_Challenge.name=Sfida: aereo radiocomandato
-User_Mission_-_RCPlane_Challenge.desc="Ti senti abbastanza sicuro, eh, aviatore?"
\ No newline at end of file
+User_Mission_-_RCPlane_Challenge.desc="Ti senti abbastanza sicuro, eh, aviatore?"
+
+portal.name=Missione: Sfida il portale della mente
+portal.desc="Usa il portale per muoverti velocemente e lontano, usalo per uccidere, ma usalo con cauzione!"
+
+Target_Practice_-_Bazooka_easy.name=Tiro al Bersaglio: Bazooka (facile)
+Target_Practice_-_Bazooka_easy.desc="Ok, soldati, fate saltare questi bersagli più in fretta che potete!"
+
+Target_Practice_-_Bazooka_hard.name=Tiro al Bersaglio: Bazooka (difficile)
+Target_Practice_-_Bazooka_hard.desc="Puoi colpire i bersagli anche quando sono molto lontani?"
+
+Target_Practice_-_Cluster_Bomb.name=Tiro al Bersaglio: Bomba Cluster
+Target_Practice_-_Cluster_Bomb.desc="A qualcuno serve una doccia calda!"
+
+Target_Practice_-_Shotgun.name=Tiro al Bersaglio: Shotgun
+Target_Practice_-_Shotgun.desc="Prima spara, poi fai le domande!"
+
+Target_Practice_-_Homing_Bee.name=Tiro al Bersaglio: Ape a ricerca
+Target_Practice_-_Homing_Bee.desc="Usare l'ape a ricerca è più complicato di quello che sembra."
+
+Target_Practice_-_Grenade_easy.name=Tiro al Bersagio: Granata (facile)
+Target_Practice_-_Grenade_easy.desc="Un training di riscaldamento per aspiranti granatieri."
+
+Target_Practice_-_Grenade_hard.name=Tiro al Bersagio: Granata (difficile)
+Target_Practice_-_Grenade_hard.desc="Questo non è per novellini! Piazzeremo i bersagli in posti veramente difficili."
+
+Challenge_-_Speed_Shoppa_-_Hedgelove.name=Sfida: Amo Shoppa
+Challenge_-_Speed_Shoppa_-_Hedgelove.desc="Fai vedere il tuo amore e colleziona alcune casse in una mappa piccola."
+
+Challenge_-_Speed_Shoppa_-_Ropes.name=Sfida: Funi e Casse
+Challenge_-_Speed_Shoppa_-_Ropes.desc="Prendi la tua fune e colleziona tutte le casse in questa mappa media."
+
+Challenge_-_Speed_Shoppa_-_ShoppaKing.name=Sfida: Il Cliente è il Re
+Challenge_-_Speed_Shoppa_-_ShoppaKing.desc="Fai vedere che sei degno di un vero re e colleziona tutte le casse più in fretta che puoi in questa mappa grande."
--- a/share/hedgewars/Data/Locale/missions_ru.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/missions_ru.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -4,17 +4,23 @@
 Basic_Training_-_Grenade.name=Базовое упражнение с гранатой
 Basic_Training_-_Grenade.desc="Запомни: выдерни чеку и бросай!"
 
+Basic_Training_-_Cluster_Bomb.name=Базовое упражнение с касcетной бомбой
+Basic_Training_-_Cluster_Bomb.desc="Кому-то нужен горячий душ!"
+
 Basic_Training_-_Shotgun.name=Базовое упражнение с ружьём
 Basic_Training_-_Shotgun.desc="Стреляй, все вопросы потом!"
 
 Basic_Training_-_Sniper_Rifle.name=Базовое упражнение со снайперской винтовкой
 Basic_Training_-_Sniper_Rifle.desc="БАХ, в яблочко!"
 
-User_Mission_-_Dangerous_Ducklings.name=Миссия: Dangerous Ducklings
+Basic_Training_-_Rope.name=Базовое упражнение с верёвкой
+Basic_Training_-_Rope.desc="Раскачивайся и цепляйся!"
+
+User_Mission_-_Dangerous_Ducklings.name=Миссия: Опасные Утята
 User_Mission_-_Dangerous_Ducklings.desc="Ну что, новобранцы! Пора на практике проверить, чему вы научились на базовых упражнениях!"
 
 User_Mission_-_Diver.name=Миссия: Ныряльщик
-User_Mission_-_Diver.desc="This 'amphibious assault' thing is harder than it looks..."
+User_Mission_-_Diver.desc="'Морской десант' это сложнее, чем кажется..."
 
 User_Mission_-_Teamwork.name=Миссия: Командная работа
 User_Mission_-_Teamwork.desc="Иногда любовь ранит."
@@ -22,11 +28,56 @@
 User_Mission_-_Spooky_Tree.name=Миссия: Зловещее дерево
 User_Mission_-_Spooky_Tree.desc="Здесь много ящиков. Конечно, я уверен, что эта птица не голодна."
 
-User_Mission_-_Bamboo_Thicket.name=Миссия: Bamboo Thicket
+User_Mission_-_Bamboo_Thicket.name=Миссия: Заросли Бамбука
 User_Mission_-_Bamboo_Thicket.desc="Смерть приходит сверху."
 
-User_Mission_-_That_Sinking_Feeling.name=Миссия: That Sinking Feeling
+User_Mission_-_That_Sinking_Feeling.name=Миссия: Дед Мазай и Ёжики
 User_Mission_-_That_Sinking_Feeling.desc="Вода быстро поднимается, а время ограничено. Многие пытались без успеха. Сможешь ли ты спасти всех?"
 
 User_Mission_-_Newton_and_the_Hammock.name=Миссия: Ньютон и гамак
 User_Mission_-_Newton_and_the_Hammock.desc="Ежата, запомните: Скорость тела остаётся постоянной, пока к нему не применяется внешняя сила!"
+
+User_Mission_-_The_Great_Escape.name=Миссия: Великий Побег
+User_Mission_-_The_Great_Escape.desc="Вы думаете, клетка меня остановит!?"
+
+User_Mission_-_Rope_Knock_Challenge.name=Испытание: Толчок Верёвкой
+User_Mission_-_Rope_Knock_Challenge.desc="Оглянись!"
+
+User_Mission_-_Nobody_Laugh.name=Миссия: Никто не смеётся
+User_Mission_-_Nobody_Laugh.desc="Это не шутка ли."
+
+User_Mission_-_RCPlane_Challenge.name=Испытание: Радиоуправляемый самолёт
+User_Mission_-_RCPlane_Challenge.desc="Чувствешь себя довольно уверенно, а, пилотишко?"
+
+portal.name=Миссия: Портальная головоломка
+portal.desc="Используй портал для перемещения, используй его для убийства, используй его с осторожностью!"
+
+Target_Practice_-_Bazooka_easy.name=Учебная Стрельба: Базука (легко)
+Target_Practice_-_Bazooka_easy.desc="Хорошо, солдат, взорви эти цели так быстро, как сможешь!"
+
+Target_Practice_-_Bazooka_hard.name=Учебная Стрельба: Базука (сложно)
+Target_Practice_-_Bazooka_hard.desc="Сможешь ли ты попасть в цели даже если они далеко?"
+
+Target_Practice_-_Cluster_Bomb.name=Учебная Стрельба: Касcетная бомба
+Target_Practice_-_Cluster_Bomb.desc="Кому-то нужен горячий душ!"
+
+Target_Practice_-_Shotgun.name=Учебная Стрельба: Дробовик
+Target_Practice_-_Shotgun.desc="Сначала стреляй, потом спрашивай!"
+
+Target_Practice_-_Homing_Bee.name=Учебная Стрельба: Пчёлка
+Target_Practice_-_Homing_Bee.desc="Использование пчёлки сложнее, чем может показаться на первый взгляд."
+
+Target_Practice_-_Grenade_easy.name=Учебная Стрельба: Граната (легко)
+Target_Practice_-_Grenade_easy.desc="Разминочная тренировка для чистолюбивого гренадера."
+
+Target_Practice_-_Grenade_hard.name=Учебная Стрельба: Граната (сложно)
+Target_Practice_-_Grenade_hard.desc="Это точно не для молокососов! Мы поместили цели в действительно труднодоступные места."
+
+Challenge_-_Speed_Shoppa_-_Hedgelove.name=Испытание: Shoppa Love
+Challenge_-_Speed_Shoppa_-_Hedgelove.desc="Покажите вашу любовь к верёвке и соберите несколько ящиков на маленькой карте."
+
+Challenge_-_Speed_Shoppa_-_Ropes.name=Испытание: Верёвки и Ящики
+Challenge_-_Speed_Shoppa_-_Ropes.desc="Возьмите вашу верёвку и соберите все ящики на этой средних размеров карте."
+
+Challenge_-_Speed_Shoppa_-_ShoppaKing.name=Испытание: Покупатель это Король
+Challenge_-_Speed_Shoppa_-_ShoppaKing.desc="Докажите, что вы настоящий король и соберите все ящики на этой огромной карте так быстро, как сможете."
\ No newline at end of file
--- a/share/hedgewars/Data/Locale/ru.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/ru.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -4,15 +4,18 @@
 --      ["..."] = "",
 --      ["011101000"] = "", -- A_Classic_Fairytale:dragon
 --      ["011101001"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
---      ["+1 to a Bottom Feeder for killing anyone"] = "", -- Mutant
---      ["+1 to a Mutant for killing anyone"] = "", -- Mutant
---      ["-1 to anyone for a suicide"] = "", -- Mutant
---      ["+2 for becoming a Mutant"] = "", -- Mutant
+      ["+1 to a Bottom Feeder for killing anyone"] = "+1 Аутсайдеру за убийство", -- Mutant
+      ["+1 to a Mutant for killing anyone"] = "+1 Мутанту за убийство", -- Mutant
+      ["-1 to anyone for a suicide"] = "-1 за самоубийство", -- Mutant
+      ["+2 for becoming a Mutant"] = "+2 за то, что стал Мутантом", -- Mutant
 --      ["30 minutes later..."] = "", -- A_Classic_Fairytale:shadow
 --      ["About a month ago, a cyborg came and told us that you're the cannibals!"] = "", -- A_Classic_Fairytale:enemy
-      ["Accuracy Bonus!"] = "Бонус за аккуратность!",
---      ["Ace"] = "", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
---      ["Achievement Unlocked"] = "", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_That_Sinking_Feeling, Tumbler
+      ["Above-average pilot"] = "Пилот выше среднего", -- User_Mission_-_RCPlane_Challenge
+      ["Accuracy Bonus!"] = "Бонус за точность!",
+      ["Accuracy bonus: +%d points"] = "Бонус за точность: +%d очков", -- Basic_Training_-_Sniper_Rifle
+      ["Ace"] = "Ас", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
+      ["Achievement obtained: Lively Lifeguard"] = "Достижение получено: Живучий Спасатель", -- User_Mission_-_That_Sinking_Feeling
+      ["Achievement Unlocked"] = "Достижение Разблокировано", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_That_Sinking_Feeling, Tumbler
 --      ["A Classic Fairytale"] = "", -- A_Classic_Fairytale:first_blood
 --      ["???"] = "", -- A_Classic_Fairytale:backstab
 --      ["Actually, you aren't worthy of life! Take this..."] = "", -- A_Classic_Fairytale:shadow
@@ -24,22 +27,23 @@
 --      ["After Leaks A Lot betrayed his tribe, he joined the cannibals..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["After the shock caused by the enemy spy, Leaks A Lot and Dense Cloud went hunting to relax."] = "", -- A_Classic_Fairytale:shadow
 --      ["Again with the 'cannibals' thing!"] = "", -- A_Classic_Fairytale:enemy
---      ["Aggressively removes enemy hedgehogs."] = "", -- Construction_Mode
---      ["a Hedgewars challenge"] = "", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
+      ["Aggressively removes enemy hedgehogs."] = "Агрессивно уничтожает вражеских ежей.", -- Construction_Mode
+      ["a Hedgewars challenge"] = "Hedgewars испытание", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
       ["a Hedgewars mini-game"] = "Мини-игра в Hedgewars", -- Space_Invasion, The_Specialists
---      ["a Hedgewars tag game"] = "", -- Mutant
+      ["a Hedgewars tag game"] = "Ролевая игра в Hedgewars", -- Mutant
 --      ["AHHh, home sweet home.  Made it in %d seconds."] = "", -- ClimbHome
       ["Aiming Practice"] = "Упражнение на точность", --Bazooka, Shotgun, SniperRifle
---      ["Air Attack"] = "", -- Construction_Mode
+      ["Aiming practice"] = "Упражнение на точность", -- TargetPractice
+      ["Air Attack"] = "Воздушная атака", -- Construction_Mode
 --      ["A leap in a leap"] = "", -- A_Classic_Fairytale:first_blood
 --      ["A little gift from the cyborgs"] = "", -- A_Classic_Fairytale:shadow
 --      ["All gone...everything!"] = "", -- A_Classic_Fairytale:enemy
---      ["Allows free teleportation between other nodes."] = "", -- Construction_Mode
---      ["Allows placement of girders, rubber-bands, mines, sticky mines and barrels."] = "", -- Construction_Mode
+      ["Allows free teleportation between other nodes."] = "Позволяет телепортироваться между другими узлами.", -- Construction_Mode
+      ["Allows placement of girders, rubber-bands, mines, sticky mines and barrels."] = "Позволяет размещать балки, батуты, мины, мины-липучки и бочки.", -- Construction_Mode
 --      ["Allows placement of structures."] = "", -- Construction_Mode
---      ["Allows the placement of weapons, utiliites, and health crates."] = "", -- Construction_Mode
+      ["Allows the placement of weapons, utiliites, and health crates."] = "Позволяет размещать ящики с оружием, утилитами и аптечки.", -- Construction_Mode
 --      ["All right, we just need to get to the other side of the island!"] = "", -- A_Classic_Fairytale:journey
---      ["All walls touched!"] = "", -- WxW
+      ["All walls touched!"] = "Все стены тронуты!", -- WxW
 --      ["Ammo"] = "",
 --      ["Ammo Depleted!"] = "",
 --      ["ammo extended!"] = "",
@@ -62,51 +66,58 @@
 --      ["Are you saying that many of us have died for your entertainment?"] = "", -- A_Classic_Fairytale:enemy
 --      ["Artur Detour"] = "", -- A_Classic_Fairytale:queen
 --      ["As a reward for your performance, here's some new technology!"] = "", -- A_Classic_Fairytale:dragon
---      ["a shoppa minigame"] = "", -- WxW
+      ["a shoppa minigame"] = "shoppa мини-игра", -- WxW
 --      ["Asia"] = "", -- Continental_supplies
 --      ["Assault Team"] = "", -- A_Classic_Fairytale:backstab
 --      ["As the ammo is sparse, you might want to reuse ropes while mid-air.|"] = "", -- A_Classic_Fairytale:dragon
 --      ["As the challenge was completed, Leaks A Lot set foot on the ground..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["As you can see, there is no way to get on the other side!"] = "", -- A_Classic_Fairytale:dragon
---      ["Attack From Rope"] = "", -- WxW
+      ["Attack From Rope"] = "Атака с верёвки", -- WxW
 --      ["Australia"] = "", -- Continental_supplies
---      ["Available points remaining: "] = "",
+      ["Available points remaining: "] = "Осталось точек для размещения: ",
+      ["Average pilot"] = "Средний Пилот", -- User_Mission_-_RCPlane_Challenge
 --      ["Back Breaker"] = "", -- A_Classic_Fairytale:backstab
 --      ["Back in the village, after telling the villagers about the threat..."] = "", -- A_Classic_Fairytale:united
 --      ["[Backspace]"] = "",
 --      ["Backstab"] = "", -- A_Classic_Fairytale:backstab
---      ["Bad Team"] = "", -- User_Mission_-_The_Great_Escape
---      ["Ballgun"] = "", -- Construction_Mode
---      ["Bamboo Thicket"] = "",
+      ["Bad Guy"] = "Плохой", -- User_Mission_-_The_Great_Escape
+      ["badmad"] = "Злодеи", -- portal
+      ["Bad Team"] = "Злодеи", -- User_Mission_-_The_Great_Escape
+      ["Ballgun"] = "Шаромёт", -- Construction_Mode
+      ["Bamboo Thicket"] = "Заросли Бамбука", -- User_Mission_-_Bamboo_Thicket
 --      ["Barrel Eater!"] = "",
 --      ["Barrel Launcher"] = "",
---      ["Barrel Placement Mode"] = "", -- Construction_Mode
---      ["Baseball Bat"] = "", -- Construction_Mode
+      ["Barrel Placement Mode"] = "Режим Размещения Бочек", -- Construction_Mode
+      ["Baseball Bat"] = "Бейсбольная бита", -- Construction_Mode
 --      ["Baseballbat"] = "", -- Continental_supplies
---      ["Bat balls at your enemies and|push them into the sea!"] = "",
---      ["Bat your opponents through the|baskets and out of the map!"] = "",
---      ["Bazooka"] = "", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
-      ["Bazooka Training"] = "Упражнение с базукой",
+      ["Bat balls at your enemies and|push them into the sea!"] = "Сбей своих соберников|бейсбольными мячами в воду!",
+      ["Bat your opponents through the|baskets and out of the map!"] = "Выбей своих соберников через корзину в воду!",
+      ["Bazooka"] = "Базука", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
+      ["Bazooka Training"] = "Тренировка с базукой",
 --      ["Beep Loopers"] = "", -- A_Classic_Fairytale:queen
+      ["Beginner"] = "Новичок", -- User_Mission_-_RCPlane_Challenge
+      ["Below-average pilot"] = "Пилот ниже среднего", -- User_Mission_-_RCPlane_Challenge
 --      ["Best laps per team: "] = "",
---      ["Best Team Times: "] = "",
+      ["Best Team Times: "] = "ЛУЧШЕЕ ВРЕМЯ КОМАНДЫ: ",
 --      ["Beware, though! If you are slow, you die!"] = "", -- A_Classic_Fairytale:dragon
---      ["Bio-Filter"] = "", -- Construction_Mode
+      ["Bio-Filter"] = "Био-Фильтр", -- Construction_Mode
 --      ["Biomechanic Team"] = "", -- A_Classic_Fairytale:family
---      ["Birdy"] = "", -- Construction_Mode
+      ["Birdy"] = "Птичка", -- Construction_Mode
 --      ["Blender"] = "", -- A_Classic_Fairytale:family
 --      ["Bloodpie"] = "", -- A_Classic_Fairytale:backstab
 --      ["Bloodrocutor"] = "", -- A_Classic_Fairytale:shadow
 --      ["Bloodsucker"] = "", -- A_Classic_Fairytale:shadow
---      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
---      ["Blowtorch"] = "", -- Construction_Mode, Frenzy
---      ["Blue Team"] = "", -- User_Mission_-_Dangerous_Ducklings
+      ["Bloody Rookies"] = "Новобранцы", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+      ["Blowtorch"] = "Бур", -- Construction_Mode, Frenzy
+      ["Blue Team"] = "Синяя Команда", -- User_Mission_-_Dangerous_Ducklings
+      ["Bobo"] = "Бобо", -- User_Mission_-_Nobody_Laugh
 --      ["Bone Jackson"] = "", -- A_Classic_Fairytale:backstab
 --      ["Bonely"] = "", -- A_Classic_Fairytale:shadow
       ["BOOM!"] = "БАБАХ!",
       ["Boom!"] = "Бум!",
 --      ["Boss defeated!"] = "",
 --      ["Boss Slayer!"] = "",
+      ["BOTTOM FEEDER"] = "АУТСАЙДЕР", -- Mutant
 --      ["Brain Blower"] = "", -- A_Classic_Fairytale:journey
 --      ["Brainiac"] = "", -- A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:shadow
 --      ["Brainila"] = "", -- A_Classic_Fairytale:united
@@ -114,8 +125,8 @@
 --      ["Brain Teaser"] = "", -- A_Classic_Fairytale:backstab
 --      ["Brutal Lily"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil
 --      ["Brutus"] = "", -- A_Classic_Fairytale:backstab
---      ["Build a fortress and destroy your enemy."] = "", -- Construction_Mode
---      ["Build a track and race."] = "",
+      ["Build a fortress and destroy your enemy."] = "Постройте крепость и уничтожьте своего врага.", -- Construction_Mode
+      ["Build a track and race."] = "Постройте трек и гоняйте!",
 --      ["Bullseye"] = "", -- A_Classic_Fairytale:dragon
 --      ["But it proved to be no easy task!"] = "", -- A_Classic_Fairytale:dragon
 --      ["But that's impossible!"] = "", -- A_Classic_Fairytale:backstab
@@ -125,64 +136,78 @@
 --      ["But why would they help us?"] = "", -- A_Classic_Fairytale:backstab
 --      ["But you're cannibals. It's what you do."] = "", -- A_Classic_Fairytale:enemy
 --      ["But you said you'd let her go!"] = "", -- A_Classic_Fairytale:journey
---      ["Cake"] = "", -- Construction_Mode
+--      ["C-1"] = "", -- portal
+--      ["C-2"] = "", -- portal
+      ["Cake"] = "Торт", -- Construction_Mode
 --      ["Call me Beep! Well, 'cause I'm such a nice...person!"] = "", -- A_Classic_Fairytale:family
 --      ["Cannibals"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood
 --      ["Cannibal Sentry"] = "", -- A_Classic_Fairytale:journey
 --      ["Cannibals?! You're the cannibals!"] = "", -- A_Classic_Fairytale:enemy
       ["CAPTURE THE FLAG"] = "ЗАХВАТ ФЛАГА",
---      ["Careless"] = "",
+      ["Careless"] = "Беспечный",
 --      ["Carol"] = "", -- A_Classic_Fairytale:family
---      ["CHALLENGE COMPLETE"] = "", -- User_Mission_-_RCPlane_Challenge
+      ["Challenge"] = "Испытание", -- SpeedShoppa
+      ["CHALLENGE COMPLETE"] = "МИССИЯ ПРОЙДЕНА", -- User_Mission_-_RCPlane_Challenge
+      ["Challenge completed!"] = "Испытание пройдено!", -- SpeedShoppa
+      ["Challenge failed!"] = "Испытание провалено!", -- SpeedShoppa
       ["Change Weapon"] = "Сменить оружие",
 --      ["changing range from %i%% to %i%% with period of %i msec"] = "", -- Gravity
+      ["Cheater"] = "Читер", -- User_Mission_-_RCPlane_Challenge
 --      ["Choose your side! If you want to join the strange man, walk up to him.|Otherwise, walk away from him. If you decide to att...nevermind..."] = "", -- A_Classic_Fairytale:shadow
---      ["Cleaver"] = "", -- Construction_Mode
+      ["Cleaver"] = "Секач", -- Construction_Mode
 --      ["Cleaver Placement Mode"] = "", -- Construction_Mode
 --      ["Climber"] = "", -- ClimbHome
 --      ["Climb Home"] = "", -- ClimbHome
---      ["Clowns"] = "", -- User_Mission_-_Nobody_Laugh
---      ["Clumsy"] = "",
---      ["Cluster Bomb"] = "", -- Construction_Mode
---      ["Cluster Bomb MASTER!"] = "", -- Basic_Training_-_Cluster_Bomb
---      ["Cluster Bomb Training"] = "", -- Basic_Training_-_Cluster_Bomb
---      ["Codename: Teamwork"] = "",
+      ["Clowns"] = "Клоуны", -- User_Mission_-_Nobody_Laugh
+      ["Clumsy"] = "Неуклюжий",
+      ["Cluster Bomb"] = "Касcетная бомба", -- Construction_Mode
+      ["Cluster Bomb MASTER!"] = "МАСТЕР Касcетной бомбы", -- Basic_Training_-_Cluster_Bomb
+      ["Cluster Bomb Training"] = "Тренировка с Касcетной бомбой", -- Basic_Training_-_Cluster_Bomb
+      ["Codename: Teamwork"] = "Кодовое имя: 'Командная работа'",
 --      ["Collateral Damage"] = "", -- A_Classic_Fairytale:journey
 --      ["Collateral Damage II"] = "", -- A_Classic_Fairytale:journey
 --      ["Collect all the crates, but remember, our time in this life is limited!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Collect or destroy all the health crates."] = "", -- User_Mission_-_RCPlane_Challenge
+      ["Collect or destroy all the health crates."] = "Собери или уничтожь все аптечки.", -- User_Mission_-_RCPlane_Challenge
 --      ["Collect the crate on the right.|Hint: Select the rope, [Up] or [Down] to aim, [Space] to fire, directional keys to move.|Ropes can be fired again in the air!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Collect the crates within the time limit!|If you fail, you'll have to try again."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Come closer, so that your training may continue!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Compete to use as few planes as possible!"] = "", -- User_Mission_-_RCPlane_Challenge
---      ["Complete the track as fast as you can!"] = "",
---      ["COMPLETION TIME"] = "", -- User_Mission_-_Rope_Knock_Challenge
---      ["Configuration accepted."] = "", -- WxW
---      ["Congratulations"] = "", -- Basic_Training_-_Rope
---      ["Congratulations! You needed only half of time|to eliminate all targets."] = "", -- Basic_Training_-_Cluster_Bomb
---      ["Congratulations! You've completed the Rope tutorial! |- Tutorial ends in 10 seconds!"] = "", -- Basic_Training_-_Rope
---      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
+      ["Compete to use as few planes as possible!"] = "Постарайся использовать как можно меньше самолетов!", -- User_Mission_-_RCPlane_Challenge
+      ["Complete the track as fast as you can!"] = "Закончите трек так быстро, как сможете!",
+      ["COMPLETION TIME"] = "ВРЕМЯ ЗАВЕРШЕНИЯ", -- User_Mission_-_Rope_Knock_Challenge
+      ["Configuration accepted."] = "Конфигурация принята.", -- WxW
+      ["Congratulations!"] = "Поздравляем!",
+      ["Congratulations"] = "Поздравляем", -- Basic_Training_-_Rope
+      ["Congratulations! You have destroyed all targets within the time."] = "Поздравляем! Вы уничтожили все цели во время.", -- TargetPractice
+      ["Congratulations! You have truly mastered this challenge! Don't forget to save the demo."] = "Поздравляем! Вы действительно освоили это испытание!", -- User_Mission_-_RCPlane_Challenge
+      ["Congratulations! You needed only half of time|to eliminate all targets."] = "Поздравляем! Тебе понадобилась только половина|времени, чтобы уничтожить все цели.", -- Basic_Training_-_Cluster_Bomb
+      ["Congratulations! You've completed the Rope tutorial! |- Tutorial ends in 10 seconds!"] = "Поздравляем! Ты закончил упражнение с Верёвкой!  |- Упражнение завершится через 10 секунд!", -- Basic_Training_-_Rope
+      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Поздравляем! Ты уничтожил все цели во время.", --Bazooka, Shotgun, SniperRifle
       ["Congratulations!"] = "Поздравления!",
---      ["CONSTRUCTION MODE"] = "", -- Construction_Mode
---      ["Construction Station"] = "", -- Construction_Mode
+      ["CONSTRUCTION MODE"] = "РЕЖИМ СТРОИТЕЛЬСТВА", -- Construction_Mode
+      ["Construction Station"] = "Станция Утилит", -- Construction_Mode
 --      ["Continental supplies"] = "", -- Continental_supplies
---      ["Control pillars to score points."] = "",
---      ["Core"] = "", -- Construction_Mode
+      ["Copper"] = "Медный", -- User_Mission_-_Nobody_Laugh
+      ["CONTROL"] = "КОНТРОЛЬ", -- Control
+      ["Control pillars to score points."] = "Контролируй колонны, чтобы заработать очки.", -- Control
+      ["Core"] = "Ядро", -- Construction_Mode
 --      ["Corporationals"] = "", -- A_Classic_Fairytale:queen
 --      ["Corpsemonger"] = "", -- A_Classic_Fairytale:shadow
 --      ["Corpse Thrower"] = "", -- A_Classic_Fairytale:epil
---      ["Cost"] = "", -- Construction_Mode
---      ["Crate Placement Tool"] = "", -- Construction_Mode
-      ["Crates Left:"] = "Осталось ящиков:", -- User_Mission_-_RCPlane_Challenge
+      ["Cost"] = "Стоимость", -- Construction_Mode
+      ["Crate Placement Tool"] = "Инструмент Размещения Ящиков", -- Construction_Mode
+      ["Crates left: %d"] = "Осталось ящиков: %d", -- User_Mission_-_RCPlane_Challenge
+      ["crate(s)"] = "ящиков", -- SpeedShoppa
+      ["%d crate(s) remaining"] = "%d ящиков осталось", -- SpeedShoppa
 --      ["Cricket time: [Drop a fireable mine! ~ Will work if fired close to your hog & far away from enemy ~ 1 sec]"] = "", -- Continental_supplies
 --      ["Current setting is "] = "", -- Gravity
---      ["Cybernetic Empire"] = "",
+      ["Cybernetic Empire"] = "Кибер Империя", -- User_Mission_-_Bamboo_Thicket
 --      ["Cyborg. It's what the aliens call themselves."] = "", -- A_Classic_Fairytale:enemy
 --      ["Dahmer"] = "", -- A_Classic_Fairytale:backstab
---      ["DAMMIT, ROOKIE!"] = "",
---      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
---      ["Dangerous Ducklings"] = "",
---      ["Deadweight"] = "",
+      ["DAMMIT, ROOKIE!"] = "ЧЁРТ ПОБЕРИ, САЛАГА!",
+      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "ЧЁРТ ПОБЕРИ! СЛЕЗЬ С МОЕЙ ГОЛОВЫ!",
+      ["Dangerous Ducklings"] = "Опасные Утята", -- User_Mission_-_Dangerous_Ducklings
+      ["Deadweight"] = "Балласт",
+      ["deaths"] = "смертей", -- Mutant
 --      ["Decrease"] = "", -- Continental_supplies
 --      ["Defeat the cannibals"] = "", -- A_Classic_Fairytale:backstab
 --      ["Defeat the cannibals!|"] = "", -- A_Classic_Fairytale:united
@@ -190,37 +215,43 @@
 --      ["Defeat the cyborgs!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Defend your core from the enemy."] = "", -- Construction_Mode
 --      ["Defend yourself!|Hint: You can get tips on using weapons by moving your mouse over them in the weapon selection menu"] = "", -- A_Classic_Fairytale:shadow
---      ["Dematerializes weapons and equipment carried by enemy hedgehogs."] = "", -- Construction_Mode
---      ["Demolition is fun!"] = "",
+      ["Dematerializes weapons and equipment carried by enemy hedgehogs."] = "Аннигилирует вражеское оружие и оборудование.", -- Construction_Mode
+      ["Demo"] = "Демон", -- The_Specialists
+      ["Demolition is fun!"] = "Разрушать весело!",
 --      ["Dense Cloud"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
 --      ["Dense Cloud must have already told them everything..."] = "", -- A_Classic_Fairytale:shadow
 --      ["Depleted Kamikaze!"] = "",
---      ["Desert Eagle"] = "", -- Construction_Mode, A_Space_Adventure:death02
+      ["Derp"] = "Глупый", -- User_Mission_-_Nobody_Laugh
+      ["Desert Eagle"] = "Пистолет Desert Eagle", -- Construction_Mode, A_Space_Adventure:death02
 --      ["Destroy him, Leaks A Lot! He is responsible for the deaths of many of us!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Destroy invaders to score points."] = "",
 --      ["Destroy the targets!|Hint: Select the Shoryuken and hit [Space]|P.S. You can use it mid-air."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Destroy the targets!|Hint: [Up], [Down] to aim, [Space] to shoot"] = "", -- A_Classic_Fairytale:first_blood
+      ["Destroyer of planes"] = "Уничтожитель самолётов", -- User_Mission_-_RCPlane_Challenge
 --      ["Did anyone follow you?"] = "", -- A_Classic_Fairytale:united
 --      ["Did you see him coming?"] = "", -- A_Classic_Fairytale:shadow
 --      ["Did you warn the village?"] = "", -- A_Classic_Fairytale:shadow
 --      ["Die, die, die!"] = "", -- A_Classic_Fairytale:dragon
+      ["Disabled"] = "Отключено", -- WxW
 --      ["Disguise as a Rockhopper Penguin: [Swap place with a random enemy hog in the circle]"] = "", -- Continental_supplies
+      ["Disqualified!"] = "Дисквалификация!", -- User_Mission_-_That_Sinking_Feeling
 --      ["Dist: "] = "", -- Space_Invasion
 --      ["Do not laugh, inexperienced one, for he speaks the truth!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Do not let his words fool you, young one! He will stab you in the back as soon as you turn away!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Do the deed"] = "", -- A_Classic_Fairytale:first_blood
---      ["DOUBLE KILL"] = "", -- Mutant
+      ["DOUBLE KILL"] = "ДВОЙНОЕ УБИЙСТВО", -- Mutant
       ["Double Kill!"] = "Двойное убийство!",
 --      ["Do you have any idea how valuable grass is?"] = "", -- A_Classic_Fairytale:enemy
 --      ["Do you think you're some kind of god?"] = "", -- A_Classic_Fairytale:enemy
 --      ["Dragon's Lair"] = "", -- A_Classic_Fairytale:dragon
---      ["Drill Rocket"] = "", -- Construction_Mode
+      ["Drill Rocket"] = "Сверлящая ракета", -- Construction_Mode
 --      ["Drills"] = "", -- A_Classic_Fairytale:backstab
 --      ["Drill Strike"] = "", -- Construction_Mode
 --      ["Drone Hunter!"] = "",
 --      ["Drop a bomb: [Drop some heroic wind that will turn into a bomb on impact]"] = "", -- Continental_supplies
 
---      ["Drowner"] = "",
+      ["Drowner"] = "Утопающий", -- User_Mission_-_Nobody_Laugh
+      ["Drunk greenhorn"] = "Пьяный молокосос", -- User_Mission_-_RCPlane_Challenge
 --      ["Dude, all the plants are gone!"] = "", -- A_Classic_Fairytale:family
 --      ["Dude, can you see Ramon and Spiky?"] = "", -- A_Classic_Fairytale:journey
 --      ["Dude, that's so cool!"] = "", -- A_Classic_Fairytale:backstab
@@ -231,27 +262,31 @@
 --      ["Duration"] = "", -- Continental_supplies
 --      ["Dust storm: [Deals 15 damage to all enemies in the circle]"] = "", -- Continental_supplies
 
---      ["Dynamite"] = "", -- Construction_Mode
+      ["Dynamite"] = "Динамит", -- Construction_Mode
 --      ["Each turn is only ONE SECOND!"] = "", -- Frenzy
---      ["Each turn you get 1-3 random weapons"] = "",
---      ["Each turn you get one random weapon"] = "",
+      ["Each turn you get 1-3 random weapons"] = "Каждый ход вы получаете 1-3 случайных оружия",
+      ["Each turn you get one random weapon"] = "Каждый ход вы получаете одно случайное оружие",
 --      ["Eagle Eye"] = "", -- A_Classic_Fairytale:backstab
 --      ["Eagle Eye: [Blink to the impact ~ One shot]"] = "", -- Continental_supplies
 
 --      ["Ear Sniffer"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:epil
+      ["Eckles"] = "Заика", -- User_Mission_-_Nobody_Laugh
 --      ["Elderbot"] = "", -- A_Classic_Fairytale:family
---      ["Elimate your captor."] = "", -- User_Mission_-_The_Great_Escape
---      ["Eliminate all enemies"] = "",
---      ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle
---      ["Eliminate enemy hogs and take their weapons."] = "", -- Highlander
---      ["Eliminate Poison before the time runs out"] = "",
---      ["Eliminate the Blue Team"] = "",
---      ["Eliminate the enemy before the time runs out"] = "", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
+      ["Elimate your captor."] = "Уничтожь твоего похитителя.", -- User_Mission_-_The_Great_Escape
+      ["Eliminate all enemies"] = "Уничтожьте всех врагов",
+      ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Уничтожь все цели, пока время не вышло.|Для этой миссии доступен неограниченный боезапас.", --Bazooka, Shotgun, SniperRifle
+      ["Eliminate enemy hogs and take their weapons."] = "Уничтожьте вражеских ежей и получите их оружие.", -- Highlander
+      ["Eliminate Poison before the time runs out"] = "Уничтожь Яд пока время не вышло",
+      ["Eliminate the Blue Team"] = "Уничтожь Синюю Команду",
+      ["Eliminate the enemy before the time runs out"] = "Уничтожь врага пока время не вышло", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
 --      ["Eliminate the enemy hogs to win."] = "",
---      ["Eliminate the enemy specialists."] = "",
---      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+      ["Eliminate the enemy specialists."] = "Уничтожьте вражеских специалистов.",
+      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Уничтожьте Юнит 3378 |- Слабое Сопротивление должно выжить",
+      ["Elite pilot"] = "Элитный пилот", -- User_Mission_-_RCPlane_Challenge
 --      ["Elmo"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
---      ["Energetic Engineer"] = "",
+      ["Enabled"] = "Включено", -- WxW
+      ["Energetic Engineer"] = "Энергичный Инженер", -- User_Mission_-_Bamboo_Thicket
+      ["Engineer"] = "Инженер", -- The_Specialists
       ["Enjoy the swim..."] = "Приятного плавания...",
 --      ["[Enter]"] = "",
 --      ["Europe"] = "", -- Continental_supplies
@@ -260,119 +295,129 @@
 --      ["Every single time!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Everything looks OK..."] = "", -- A_Classic_Fairytale:enemy
 --      ["Exactly, man! That was my dream."] = "", -- A_Classic_Fairytale:backstab
---      ["Extra Damage"] = "", -- Construction_Mode
---      ["Extra Time"] = "", -- Construction_Mode
+      ["Experienced beginner"] = "Продвинутый новичок", -- User_Mission_-_RCPlane_Challenge
+      ["Extra Damage"] = "Дополнительный урон", -- Construction_Mode
+      ["Extra Time"] = "Дополнительное время", -- Construction_Mode
 --      ["Eye Chewer"] = "", -- A_Classic_Fairytale:journey
 --      ["Family Reunion"] = "", -- A_Classic_Fairytale:family
---      ["Fastest lap: "] = "",
---      ["Feeble Resistance"] = "",
+      ["Fastest lap: "] = "Лучший круг: ",
+      ["Feeble Resistance"] = "Слабое Сопротивление",
 --      ["Fell From Grace"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Fell From Heaven"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen
 --      ["Fell From Heaven is the best! Fell From Heaven is the greatest!"] = "", -- A_Classic_Fairytale:family
 --      ["Femur Lover"] = "", -- A_Classic_Fairytale:shadow
 --      ["Fierce Competition!"] = "", -- Space_Invasion
 --      ["Fiery Water"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
---      ["Filthy Blue"] = "", -- User_Mission_-_Dangerous_Ducklings
+      ["Filthy Blue"] = "Грязный Синяк", -- User_Mission_-_Dangerous_Ducklings
 --      ["Find your tribe!|Cross the lake!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Finish your training|Hint: Animations can be skipped with the [Precise] key."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Fire"] = "",
 
 --      ["First aid kits?!"] = "", -- A_Classic_Fairytale:united
 --      ["First Blood"] = "", -- A_Classic_Fairytale:first_blood
---      ["FIRST BLOOD MUTATES"] = "", -- Mutant
+      ["FIRST BLOOD MUTATES"] = "ПЕРВАЯ КРОВЬ МУТИРУЕТ", -- Mutant
 --      ["First Steps"] = "", -- A_Classic_Fairytale:first_blood
---      ["Flag captured!"] = "",
---      ["Flag respawned!"] = "",
---      ["Flag returned!"] = "",
---      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
+      ["Flag captured!"] = "Флаг захвачен!",
+      ["Flag respawned!"] = "Респаун флага!",
+      ["Flag returned!"] = "Флаг возвращен!",
+      ["Flags, and their home base will be placed where each team ends their first turn."] = "Флаги и базы будут помещены там, где каждая команда закончила свои первый ход.",
 --      ["Flamer"] = "",
---      ["Flamethrower"] = "", -- Construction_Mode
+      ["Flamethrower"] = "Огнемет", -- Construction_Mode
 --      ["Flaming Worm"] = "", -- A_Classic_Fairytale:backstab
+      ["Flawless victory!"] = "Безупречная победа!", -- User_Mission_-_RCPlane_Challenge
 
 --      ["Flesh for Brainz"] = "", -- A_Classic_Fairytale:journey
---      ["Flying Saucer"] = "", -- Construction_Mode, Frenzy
+      ["Flying Saucer"] = "Летающая тарелка", -- Construction_Mode, Frenzy
 --      ["For improved features/stability, play 0.9.18+"] = "", -- WxW
+      ["Frank"] = "Фрэнк", -- User_Mission_-_Nobody_Laugh
 --      ["Free Dense Cloud and continue the mission!"] = "", -- A_Classic_Fairytale:journey
---      ["Freezer"] = "", -- Construction_Mode
+      ["Freezer"] = "Замораживатель", -- Construction_Mode
 --      ["FRENZY"] = "", -- Frenzy
 --      ["Friendly Fire!"] = "",
 --      ["fuel extended!"] = "",
---      ["GAME BEGUN!!!"] = "",
---      ["Game Modifiers: "] = "",
+      ["GAME BEGUN!!!"] = "ПОЕХАЛИ!!!",
+      ["Game Modifiers: "] = "Игровые Модификаторы: ",
       ["GAME OVER!"] = "ИГРА ОКОНЧЕНА!",
---      ["Game Started!"] = "",
+      ["Game Started!"] = "Игра Началась!",
 --      ["Game? Was this a game to you?!"] = "", -- A_Classic_Fairytale:enemy
 --      ["GasBomb"] = "", -- Continental_supplies
 --      ["Gas Gargler"] = "", -- A_Classic_Fairytale:queen
 --      ["General information"] = "", -- Continental_supplies
---      ["Generates power."] = "", -- Construction_Mode
---      ["Generator"] = "", -- Construction_Mode
+      ["Generates power."] = "Генерирует энергию, необходимую для постройки сооружений.", -- Construction_Mode
+      ["Generator"] = "Генератор", -- Construction_Mode
 --      ["Get Dense Cloud out of the pit!"] = "", -- A_Classic_Fairytale:journey
---      ["Get on over there and take him out!"] = "",
+      ["Get on over there and take him out!"] = "Доберись туда и уничтожь его!",
 --      ["Get on the head of the mole"] = "", -- A_Classic_Fairytale:first_blood
---      ["Get out of there!"] = "", -- User_Mission_-_The_Great_Escape
+      ["Get out of there!"] = "Выберись отсюда!", -- User_Mission_-_The_Great_Escape
 --      ["Get that crate!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Get the crate on the other side of the island!|"] = "", -- A_Classic_Fairytale:journey
---      ["Get to the target using your rope! |Controls: Left & Right to swing the rope - Up & Down to Contract and Expand!"] = "", -- Basic_Training_-_Rope
+      ["Get to the target using your rope! |Controls: Left & Right to swing the rope - Up & Down to Contract and Expand!"] = "Доберись до цели, используя верёвку! |Упрвление: Влево и Вправо для раскачивания - Вверх и Вниз для укорочения и удлинения!", -- Basic_Training_-_Rope
 --      ["Get your teammates out of their natural prison and save the princess!|Hint: Drilling holes should solve everything.|Hint: It might be a good idea to place a girder before starting to drill. Just saying.|Hint: All your hedgehogs need to be above the marked height!|Hint: Leaks A Lot needs to get really close to the princess!"] = "", -- A_Classic_Fairytale:family
---      ["GG!"] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["GG!"] = "GG!", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Gimme Bones"] = "", -- A_Classic_Fairytale:backstab
 --      ["Girder"] = "", -- Construction_Mode
---      ["Girder Placement Mode"] = "", -- Construction_Mode
+      ["Girder Placement Mode"] = "Режим Размещения Балок", -- Construction_Mode
 --      ["Glark"] = "", -- A_Classic_Fairytale:shadow
       ["Goal"] = "Цель",
---      ["GO! GO! GO!"] = "",
---      ["Good birdy......"] = "",
---      ["Good Dude"] = "", -- User_Mission_-_The_Great_Escape
+      ["GO! GO! GO!"] = "ВПЕРЁД! ВПЕРЁД! ВПЕРЁД!",
+      ["Good birdy......"] = "Хорошая птичка...",
+      ["Good Dude"] = "Хороший", -- User_Mission_-_The_Great_Escape
 --      ["Good idea, they'll never find us there!"] = "", -- A_Classic_Fairytale:united
 --      ["Good luck...or else!"] = "", -- A_Classic_Fairytale:journey
---      ["Good luck out there!"] = "",
---      ["Good so far!"] = "",
---      ["Good to go!"] = "",
+      ["Good luck out there!"] = "Удачи там!",
+      ["Good so far!"] = "Пока хорошо!",
+      ["Good to go!"] = "Пошёл!",
 --      ["Go on top of the flower"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Go, quick!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Gorkij"] = "", -- A_Classic_Fairytale:journey
---      ["Go surf!"] = "", -- WxW
+      ["Go surf!"] = "Теперь сёрфить!", -- WxW
       ["GOTCHA!"] = "ПОПАЛСЯ!",
 --      ["Grab Mines/Explosives"] = "",
---      ["Grants nearby hogs life-regeneration."] = "", -- Construction_Mode
+      ["Grants nearby hogs life-regeneration."] = "Восстанавливает здоровье соседних ежей.", -- Construction_Mode
 --      ["Gravity"] = "", -- Gravity
 --      ["Great choice, Steve! Mind if I call you that?"] = "", -- A_Classic_Fairytale:shadow
---      ["Great work! Now hit it with your Baseball Bat! |Tip: You can change weapon with 'Right Click'!"] = "", -- Basic_Training_-_Rope
+      ["GREAT ! Let's kill all this enemies, using portals"] = "ПРЕКРАСНО ! Теперь можно убить всех с помощью порталов", -- portal
+      ["Great work! Now hit it with your Baseball Bat! |Tip: You can change weapon with 'Right Click'!"] = "Хорошая работа! А теперь ударь его Бейсбольной Битой! |Подсказка: Оружие можно сменить 'Правым кликом'!", -- Basic_Training_-_Rope
 --      ["Great! You will be contacted soon for assistance."] = "", -- A_Classic_Fairytale:shadow
 
+      ["Greenhorn"] = "Молокосос", -- User_Mission_-_RCPlane_Challenge
 --      ["Green lipstick bullet: [Poisonous, deals no damage]"] = "", -- Continental_supplies
 --      ["Greetings, "] = "", -- A_Classic_Fairytale:dragon
 --      ["Greetings, cloudy one!"] = "", -- A_Classic_Fairytale:shadow
---      ["Grenade"] = "", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
---      ["Grenade Training"] = "", -- Basic_Training_-_Grenade
---      ["Grenadiers"] = "", -- Basic_Training_-_Grenade
+      ["Grenade"] = "Граната", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
+      ["Grenade Group"] = "Группа Гренадеров", -- Target_Practice_-_Grenade_easy, Target_Practice_-_Grenade_hard
+      ["Grenade Training"] = "Тренировка с Гранатой", -- Basic_Training_-_Grenade
+      ["Grenadier"] = "Гренадер", -- Target_Practice_-_Grenade_easy, Target_Practice_-_Grenade_hard
+      ["Grenadiers"] = "Гренадеры", -- Basic_Training_-_Grenade
 --      ["Guys, do you think there's more of them?"] = "", -- A_Classic_Fairytale:backstab
 --      ["HAHA!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Haha!"] = "", -- A_Classic_Fairytale:united
---      ["Hahahaha!"] = "",
---      ["Haha, now THAT would be something!"] = "",
---      ["Hammer"] = "", -- Construction_Mode, Continental_supplies
+      ["Hahahaha!"] = "Хахахаха!",
+      ["Haha, now THAT would be something!"] = "Хаха, да не гони, ЭТО уже слишком!",
+      ["Hammer"] = "Молот", -- Construction_Mode, Continental_supplies
 --      ["Hannibal"] = "", -- A_Classic_Fairytale:epil
---      ["Hapless Hogs"] = "",
---      [" Hapless Hogs left!"] = "",
---      [" HAS MUTATED"] = "", -- Mutant
+      ["Hapless Hogs"] = "Несчастные Ежи",
+      ["%d Hapless Hogs left"] = "%d Несчастных Ёжиков осталось",
+      ["Harry"] = "Гарри", -- User_Mission_-_Nobody_Laugh
+      [" HAS MUTATED"] = " МУТИРОВАЛ", -- Mutant
 --      ["Hatless Jerry"] = "", -- A_Classic_Fairytale:queen
 --      ["Have no illusions, your tribe is dead, indifferent of your choice."] = "", -- A_Classic_Fairytale:shadow
 --      ["Have we ever attacked you first?"] = "", -- A_Classic_Fairytale:enemy
---      ["Healing Station"] = "", -- Construction_Mode
---      ["Health Crate Placement Mode"] = "", -- Construction_Mode
+      ["Healing Station"] = "Лечебная Станция", -- Construction_Mode
+      ["Health Crate Placement Mode"] = "Режим Размещения Аптечек", -- Construction_Mode
 --      ["Health crates extend your time."] = "",
---      ["Heavy"] = "",
+      ["Heartful"] = "Сердечный", -- Challenge_-_Speed_Shoppa_-_Hedgelove
+      ["Heavy"] = "Тяжёлый",
 --      ["Heavy Cannfantry"] = "", -- A_Classic_Fairytale:united
 --      ["Hedge-cogs"] = "", -- A_Classic_Fairytale:enemy
 --      ["Hedgehog projectile: [Fire your hog like a Sticky Bomb]"] = "", -- Continental_supplies
 
---      ["Hedgewars-Basketball"] = "",
---      ["Hedgewars-Knockball"] = "",
+      ["Hedgewars-Basketball"] = "Hedgewars Баскетбол",
+      ["Hedgewars-Knockball"] = "Hedgewars Вышибалы",
 --      ["Hedgibal Lecter"] = "", -- A_Classic_Fairytale:backstab
---      ["Heh, it's not that bad."] = "",
---      ["Hellish Handgrenade"] = "", -- Construction_Mode
+      ["Heh, it's not that bad."] = "Хех, не так уж всё и плохо.",
+      ["Hell Army"] = "Армия Ада", -- portal
+      ["Hellish Handgrenade"] = "Адская граната", -- Construction_Mode
 --      ["Hello again, "] = "", -- A_Classic_Fairytale:family
 --      ["Help me, Leaks!"] = "", -- A_Classic_Fairytale:journey
 --      ["Help me, please!!!"] = "", -- A_Classic_Fairytale:journey
@@ -382,13 +427,14 @@
 --      ["Here, let me help you!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Here, let me help you save her!"] = "", -- A_Classic_Fairytale:family
 --      ["Here...pick your weapon!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Hero Team"] = "", -- User_Mission_-_The_Great_Escape
+      ["Hero Team"] = "Герои", -- User_Mission_-_The_Great_Escape
 --      ["He's so brave..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["He won't be selling us out anymore!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Hey, guys!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Hey guys!"] = "", -- A_Classic_Fairytale:united
 --      ["Hey! This is cheating!"] = "", -- A_Classic_Fairytale:journey
-      ["HIGHLANDER"] = "Царь горы", -- Highlander
+      ["HIGHLANDER"] = "ЦАРЬ ГОРЫ", -- Highlander
+      ["hiden"] = "Скрытный", -- portal      
 --      ["Hightime"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hint: Double Jump - Press [Backspace] twice"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hint: Select the BlowTorch, aim and press [Fire]. Press [Fire] again to stop.|Don't blow up the crate."] = "", -- A_Classic_Fairytale:journey
@@ -396,17 +442,20 @@
 --      ["Hint: you might want to stay out of sight and take all the crates...|"] = "", -- A_Classic_Fairytale:journey
 --      ["His arms are so strong!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hit Combo!"] = "",
+      ["hits"] = "попаданий", -- Basic_Training_-_Bazooka
 --      ["Hmmm...actually...I didn't either."] = "", -- A_Classic_Fairytale:enemy
---      ["Hmmm, I'll have to find some way of moving him off this anti-portal surface..."] = "", -- portal
+      ["Hmmm, I'll have to find some way of moving him off this anti-portal surface..."] = "Хмм, надо придумать как скинуть его с анти-портальной поверхности...", -- portal
 --      ["Hmmm...it's a draw. How unfortunate!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
       ["Hmmm..."] = "Хммм...",
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
---      ["HOLY SHYTE!"] = "", -- Mutant
---      ["Homing Bee"] = "", -- Construction_Mode
+      ["HOLY SHYTE!"] = "ВОТ ЧЕРТ!", -- Mutant
+      ["Homing Bee"] = "Пчёлка", -- Construction_Mode
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
+      ["Hook"] = "Крюк", -- Challenge_-_Speed_Shoppa_-_Ropes
       ["Hooray!"] = "Ура!",
+      ["Hopeless case"] = "Безнадежный случай", -- User_Mission_-_RCPlane_Challenge
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
 --      ["How can I ever repay you for saving my life?"] = "", -- A_Classic_Fairytale:journey
 --      ["How come in a village full of warriors, it's up to me to save it?"] = "", -- A_Classic_Fairytale:dragon
@@ -415,7 +464,7 @@
 --      ["However, if you fail to do so, she dies a most violent death, just like your friend! Muahahaha!"] = "", -- A_Classic_Fairytale:journey
 --      ["However, if you fail to do so, she dies a most violent death! Muahahaha!"] = "", -- A_Classic_Fairytale:journey
 --      ["However, my mates don't agree with me on letting you go..."] = "", -- A_Classic_Fairytale:dragon
---      [" HP"] = "", -- Mutant
+      [" HP"] = " HP", -- Mutant
       ["Hunter"] = "Охотник", --Bazooka, Shotgun, SniperRifle
 --      ["I believe there's more of them."] = "", -- A_Classic_Fairytale:backstab
 --      ["I can see you have been training diligently."] = "", -- A_Classic_Fairytale:first_blood
@@ -426,7 +475,7 @@
 --      ["I could just teleport myself there..."] = "", -- A_Classic_Fairytale:family
 --      ["I'd better get going myself."] = "", -- A_Classic_Fairytale:journey
 --      ["I didn't until about a month ago."] = "", -- A_Classic_Fairytale:enemy
---      ["I don't know how you did that.. But good work! |The next one should be easy as cake for you!"] = "", -- Basic_Training_-_Rope
+      ["I don't know how you did that.. But good work! |The next one should be easy as cake for you!"] = "Я не знаю, как ты это сделал... Но ты молодец! |Следующая цель вообще не составит тебе труда!", -- Basic_Training_-_Rope
 --      ["I feel something...a place! They will arrive near the circles!"] = "", -- A_Classic_Fairytale:backstab
 --      ["If only I had a way..."] = "", -- A_Classic_Fairytale:backstab
 --      ["If only I were given a chance to explain my being here..."] = "", -- A_Classic_Fairytale:first_blood
@@ -438,6 +487,7 @@
 --      ["If you get stuck, use your Desert Eagle or restart the mission!|"] = "", -- A_Classic_Fairytale:journey
 --      ["If you know what I mean..."] = "", -- A_Classic_Fairytale:shadow
 --      ["If you say so..."] = "", -- A_Classic_Fairytale:shadow
+      ["Igmund"] = "Джокер", -- User_Mission_-_Nobody_Laugh
 --      ["I guess you'll have to kill them."] = "", -- A_Classic_Fairytale:dragon
 --      ["I have come to make you an offering..."] = "", -- A_Classic_Fairytale:shadow
 --      ["I have no idea where that mole disappeared...Can you see it?"] = "", -- A_Classic_Fairytale:shadow
@@ -447,6 +497,7 @@
 --      ["I just don't want to sink to your level."] = "", -- A_Classic_Fairytale:backstab
 --      ["I just found out that they have captured your princess!"] = "", -- A_Classic_Fairytale:family
 --      ["I just wonder where Ramon and Spiky disappeared..."] = "", -- A_Classic_Fairytale:journey
+      ["Ikeda"] = "Икэда", -- User_Mission_-_Bamboo_Thicket
 --      ["I'll hold them off while you return to the village!"] = "", -- A_Classic_Fairytale:shadow
 --      ["Imagine those targets are the wolves that killed your parents! Take your anger out on them!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["I'm...alive? How? Why?"] = "", -- A_Classic_Fairytale:backstab
@@ -469,20 +520,25 @@
 --      ["I need to warn the others."] = "", -- A_Classic_Fairytale:backstab
 --      ["In fact, you are the only one that's been acting strangely."] = "", -- A_Classic_Fairytale:backstab
 --      ["In order to get to the other side, you need to collect the crates first.|"] = "", -- A_Classic_Fairytale:dragon
---      ["INSANITY"] = "", -- Mutant
+      ["INSANITY"] = "БЕЗУМИЕ", -- Mutant
       ["Instructor"] = "Инструктор", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+      ["Insufficient Power"] = "Недостаточно Энергии", -- Construction_Mode
 --      ["Interesting idea, haha!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Interesting! Last time you said you killed a cannibal!"] = "", -- A_Classic_Fairytale:backstab
 --      ["In the meantime, take these and return to your \"friend\"!"] = "", -- A_Classic_Fairytale:shadow
 --      ["invaders destroyed"] = "",
+      ["Invalid Placement"] = "Неверное Размещение", -- Construction_Mode
 --      ["Invasion"] = "", -- A_Classic_Fairytale:united
---      ["Invulnerable"] = "", -- Construction_Mode
+      ["Invulnerable"] = "Неуязвимость", -- Construction_Mode
+      ["In your best (and only) flight you took out %d crates with one RC plane!"] = "В вашем лучшем (и единственном) полёте вы достали %d ящиков с одним самолётом.", -- User_Mission_-_RCPlane_Challenge
+      ["In your best flight you took out %d crates with one RC plane."] = "В вашем лучшем полёте вы достали %d ящиков с одним самолётом.", -- User_Mission_-_RCPlane_Challenge
 --      ["I saw it with my own eyes!"] = "", -- A_Classic_Fairytale:shadow
 --      ["I see..."] = "", -- A_Classic_Fairytale:shadow
 --      ["I see you have already taken the leap of faith."] = "", -- A_Classic_Fairytale:first_blood
 --      ["I see you would like his punishment to be more...personal..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["I sense another wave of cannibals heading my way!"] = "", -- A_Classic_Fairytale:backstab
 --      ["I sense another wave of cannibals heading our way!"] = "", -- A_Classic_Fairytale:backstab
+      ["I should get myself a portal gun, maybe this crate has one"] = "Надо достать портальную пушку, может в этом ящике?", -- portal
 --      ["I shouldn't have drunk that last pint."] = "", -- A_Classic_Fairytale:dragon
 --      ["Is this place in my head?"] = "", -- A_Classic_Fairytale:dragon
 --      ["It doesn't matter. I won't let that alien hurt my daughter!"] = "", -- A_Classic_Fairytale:dragon
@@ -495,7 +551,7 @@
 --      ["It must be the aliens' deed."] = "", -- A_Classic_Fairytale:backstab
 --      ["It must be the cyborgs again!"] = "", -- A_Classic_Fairytale:enemy
 --      ["I told you, I just found them."] = "", -- A_Classic_Fairytale:backstab
---      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
+     ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "Хорошо, что ВНЕЗАПНАЯ СМЕРТЬ аж через 99 ходов...",
 --      ["It's always up to women to clear up the mess men created!"] = "", -- A_Classic_Fairytale:dragon
 --      ["It's a shame, I forgot how to do that!"] = "", -- A_Classic_Fairytale:family
 --      ["It's impossible to communicate with the spirits without a shaman."] = "", -- A_Classic_Fairytale:shadow
@@ -521,7 +577,7 @@
 --      ["Just wait till I get my hands on that trauma! ARGH!"] = "", -- A_Classic_Fairytale:family
 --      ["Kamikaze"] = "", -- Construction_Mode
 --      ["Kamikaze Expert!"] = "",
---      ["Keep it up!"] = "",
+      ["Keep it up!"] = "Так держать!",
 --      ["Kerguelen"] = "", -- Continental_supplies
 --      ["Killing spree!"] = "",
 --      ["KILL IT!"] = "", -- A_Classic_Fairytale:first_blood
@@ -529,8 +585,9 @@
 --      ["Kill the aliens!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Kill the cannibal!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Kill the traitor...or spare his life!|Kill him or press [Precise]!"] = "", -- A_Classic_Fairytale:backstab
---      ["Land Sprayer"] = "", -- Construction_Mode
---      ["Laser Sight"] = "", -- Construction_Mode
+      ["King Customer"] = "Король Покупатель", -- Challenge_-_Speed_Shoppa_-_ShoppaKing
+      ["Land Sprayer"] = "Распылитель земли", -- Construction_Mode
+      ["Laser Sight"] = "Лазерный прицел", -- Construction_Mode
       ["Last Target!"] = "Последняя цель!",
 --      ["Leader"] = "", -- A_Classic_Fairytale:enemy
 --      ["Leaderbot"] = "", -- A_Classic_Fairytale:queen
@@ -542,6 +599,7 @@
 --      ["Lee"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["[Left Shift]"] = "",
 --      ["left shift"] = "", -- Continental_supplies
+      ["Lestat"] = "Лестат", -- portal
 --      ["Let a Continent provide your weapons!"] = "", -- Continental_supplies
 --      ["Let me test your skills a little, will you?"] = "", -- A_Classic_Fairytale:journey
 --      ["Let's go home!"] = "", -- A_Classic_Fairytale:journey
@@ -551,8 +609,8 @@
 --      ["Let them have a taste of my fury!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Let us help, too!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Light Cannfantry"] = "", -- A_Classic_Fairytale:united
---      ["Limburger"] = "", -- Construction_Mode
---      ["Listen up, maggot!!"] = "",
+      ["Limburger"] = "Старый Лимбургер", -- Construction_Mode
+      ["Listen up, maggot!!"] = "Слушай сюда, щегол!!",
 --      ["Little did they know that this hunt will mark them forever..."] = "", -- A_Classic_Fairytale:shadow
 --      ["Lively Lifeguard"] = "",
 
@@ -562,56 +620,63 @@
 --      ["Look out! There's more of them!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Look out! We're surrounded by cannibals!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Looks like the whole world is falling apart!"] = "", -- A_Classic_Fairytale:enemy
---      ["Low Gravity"] = "", -- Construction_Mode, Frenzy
+      ["Loon"] = "Псих", -- The_Specialists
+      ["Low Gravity"] = "Слабая гравитация", -- Construction_Mode, Frenzy
+      ["Lucifer"] = "Люцифер", -- portal
 --      ["Luckily, I've managed to snatch some of them."] = "", -- A_Classic_Fairytale:united
---      ["LUDICROUS KILL"] = "", -- Mutant
+      ["LUDICROUS KILL"] = "НЕЛЕПОЕ УБИЙСТВО", -- Mutant
 --      ["Made it!"] = "", -- ClimbHome
 --      ["- Massive weapon bonus on first turn"] = "", -- Continental_supplies
 --      ["May the spirits aid you in all your quests!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Medicine: [Fire some exploding medicine that will heal all hogs effected by the explosion]"] = "", -- Continental_supplies
---      ["MEGA KILL"] = "", -- Mutant
+      ["MEGA KILL"] = "МЕГА УБИЙСТВО", -- Mutant
 --      ["Meiwes"] = "", -- A_Classic_Fairytale:backstab
+      ["milliseconds"] = "миллисекунд", -- SpeedShoppa
 --      ["Mindy"] = "", -- A_Classic_Fairytale:united
---      ["Mine"] = "", -- Construction_Mode, Frenzy
+      ["Mine"] = "Мина", -- Construction_Mode, Frenzy
 --      ["Mine Deployer"] = "",
 --      ["Mine Eater!"] = "",
---      ["Mine Placement Mode"] = "", -- Construction_Mode
---      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["Mine Placement Mode"] = "Режим Размещения Мин", -- Construction_Mode
+      ["|- Mines Time:"] = "|- Задержка Мин:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["Mine Strike"] = "", -- Construction_Mode
       ["MISSION FAILED"] = "МИССИЯ ПРОВАЛЕНА", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["Mission lost!"] = "Миссия провалена!", -- Basic_Training_-_Grenade
 --      ["MISSION SUCCESS"] = "",
       ["MISSION SUCCESSFUL"] = "МИССИЯ УСПЕШНА", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
---      ["Molotov Cocktail"] = "", -- Construction_Mode
+      ["Mission won!"] = "Миссия успешна!", -- Basic_Training_-_Grenade
+      ["Molotov Cocktail"] = "Коктейль Молотова", -- Construction_Mode
 --      ["Molotov"] = "", -- Continental_supplies
---      ["MONSTER KILL"] = "", -- Mutant
+      ["MONSTER KILL"] = "УБИЙСТВО МОНСТРА", -- Mutant
 --      ["More Natives"] = "", -- A_Classic_Fairytale:epil
---      ["Mortar"] = "", -- Construction_Mode, A_Space_Adventure:death02
+      ["Mortar"] = "Миномёт", -- Construction_Mode, A_Space_Adventure:death02
 --      ["Movement: [Up], [Down], [Left], [Right]"] = "",
---      ["Mudball"] = "", -- Construction_Mode
+      ["Mudball"] = "Комок грязи", -- Construction_Mode
 --      ["Multi-shot!"] = "",
 --      ["Muriel"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Muscle Dissolver"] = "", -- A_Classic_Fairytale:shadow
---      ["-------"] = "", -- Mutant
---      ["Mutant"] = "", -- Mutant
---      ["Nade Boy"] = "", -- Basic_Training_-_Grenade
+      ["-------"] = "-------", -- Mutant
+      ["MUTANT"] = "МУТАНТ", -- Mutant
+      ["Mutant"] = "Мутант", -- Mutant
+      ["Nade Boy"] = "Снайперок", -- Basic_Training_-_Grenade
 --      ["Name"] = "", -- A_Classic_Fairytale:queen
-      ["Nameless Heroes"] = "Безымянные герои",
+      ["Nameless Heroes"] = "Герои Без Имен",
 --      ["Nancy Screw"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:queen
 --      ["Napalm"] = "", -- Construction_Mode
 --      ["Napalm rocket: [Fire a bomb with napalm!]"] = "", -- Continental_supplies
 --      ["Natives"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
---      ["Naughty Ninja"] = "", -- User_Mission_-_Dangerous_Ducklings
+      ["Naughty Ninja"] = "Озорной ниндзя", -- User_Mission_-_Dangerous_Ducklings
 --      ["New Barrels Per Turn"] = "",
       ["NEW CLAN RECORD: "] = "НОВЫЙ РЕКОРД КЛАНА: ",
---      ["NEW fastest lap: "] = "",
+      ["NEW fastest lap: "] = "НОВЫЙ лучший круг: ",
 --      ["New Mines Per Turn"] = "",
---      ["NEW RACE RECORD: "] = "",
+      ["NEW RACE RECORD: "] = "НОВЫЙ РЕКОРД ГОНКИ: ",
       ["Newton's Hammock"] = "Гамак Ньютона",
 --      ["Nicely done, meatbags!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Nice work, "] = "", -- A_Classic_Fairytale:dragon
 --      ["Nice work!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Nilarian"] = "", -- A_Classic_Fairytale:queen
---      ["Nobody Laugh"] = "", -- User_Mission_-_Nobody_Laugh
+      ["Ninja"] = "Ниндзя", -- The_Specialists
+      ["Nobody Laugh"] = "Никто не смеётся", -- User_Mission_-_Nobody_Laugh
 --      ["No, I came back to help you out..."] = "", -- A_Classic_Fairytale:shadow
 --      ["No...I wonder where they disappeared?!"] = "", -- A_Classic_Fairytale:journey
 --      ["Nom-Nom"] = "", -- A_Classic_Fairytale:journey
@@ -619,137 +684,155 @@
 --      ["Nope. It was one fast mole, that's for sure."] = "", -- A_Classic_Fairytale:shadow
 --      ["No! Please, help me!"] = "", -- A_Classic_Fairytale:journey
 --      ["NORMAL"] = "", -- Continental_supplies
---      ["Normal players can only score points by killing the mutant."] = "", -- Mutant
+      ["Normal players can only score points by killing the mutant."] = "Обычные игроки могут получить очки только убив Мутанта.", -- Mutant
 --      ["North America"] = "", -- Continental_supplies
---      ["Not all hogs are born equal."] = "", -- Highlander
---      ["NOT ENOUGH WAYPOINTS"] = "",
+      ["Not all hogs are born equal."] = "Не все ежи рождаются равными.", -- Highlander
+      ["NOT ENOUGH WAYPOINTS"] = "НЕДОСТАТОЧНО КОНТРОЛЬНЫХ ТОЧЕК",
 --      ["Not now, Fiery Water!"] = "", -- A_Classic_Fairytale:backstab
---      ["Not So Friendly Match"] = "", -- Basketball, Knockball
+      ["Not So Friendly Match"] = "Совсем Не Товарищеский Матч", -- Basketball, Knockball
 --      ["Not you again! My head still hurts from last time!"] = "", -- A_Classic_Fairytale:shadow
 --      ["No, we made sure of that!"] = "", -- A_Classic_Fairytale:united
---      ["Now find the next target! |Tip: Normally you lose health by falling down, so be careful!"] = "", -- Basic_Training_-_Rope
+      ["Now find the next target! |Tip: Normally you lose health by falling down, so be careful!"] = "Теперь найди следующую цель!|Подсказка: Ты потеряешь здоровье, если упадешь, будь осторожен!", -- Basic_Training_-_Rope
 --      ["No! What have I done?! What have YOU done?!"] = "", -- A_Classic_Fairytale:journey
 --      ["No. Where did he come from?"] = "", -- A_Classic_Fairytale:shadow
 --      ["Now how do I get on the other side?!"] = "", -- A_Classic_Fairytale:dragon
 --      ["No. You and the rest of the tribe are safer there!"] = "", -- A_Classic_Fairytale:backstab
---      ["Object Placement Tool"] = "", -- Construction_Mode
+      ["Object Placement Tool"] = "Инструмент Размещения Объектов", -- Construction_Mode
 --      ["Obliterate them!|Hint: You might want to take cover..."] = "", -- A_Classic_Fairytale:shadow
 --      ["Obstacle course"] = "", -- A_Classic_Fairytale:dragon
 --      ["Of course I have to save her. What did I expect?!"] = "", -- A_Classic_Fairytale:family
 --      ["OH, COME ON!"] = "", -- A_Classic_Fairytale:journey
 --      ["Oh, my!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Oh, my! This is even more entertaining than I've expected!"] = "", -- A_Classic_Fairytale:backstab
---      ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["Oh no! Just try again!"] = "О, нет! Попробуй еще раз!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["Oh no, not "] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
---      ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle
---      ["Oh no! You failed! Just try again."] = "", -- Basic_Training_-_Cluster_Bomb
+      ["Oh no! Time's up! Just try again."] = "О, нет! Время вышло! Попробуй еще раз.", --Bazooka, Shotgun, SniperRifle
+      ["Oh no! You failed! Just try again."] = "О, нет! Ты проиграл! Попробуй еще раз.", -- Basic_Training_-_Cluster_Bomb
 --      ["Oh, silly me! I forgot that I'm the shaman."] = "", -- A_Classic_Fairytale:backstab
 --      ["Olive"] = "", -- A_Classic_Fairytale:united
 --      ["Omnivore"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Once upon a time, on an island with great natural resources, lived two tribes in heated conflict..."] = "", -- A_Classic_Fairytale:first_blood
---      ["ONE HOG PER TEAM! KILLING EXCESS HEDGES"] = "", -- Mutant
+      ["ONE HOG PER TEAM! KILLING EXCESS HEDGES"] = "ТОЛЬКО ОДИН ЁЖ НА КОМАНДУ! ИЗБЫТОК ЕЖЕЙ БУДЕТ УДАЛЕН", -- Mutant
 --      ["One tribe was peaceful, spending their time hunting and training, enjoying the small pleasures of life..."] = "", -- A_Classic_Fairytale:first_blood
+      ["oneye"] = "Циклоп", -- portal
 --      ["on Skip"] = "", -- Continental_supplies
 --      ["Oops...I dropped them."] = "", -- A_Classic_Fairytale:united
 --      ["Open that crate and we will continue!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Operation Diver"] = "",
---      ["Opposing Team: "] = "",
+      ["Operation Diver"] = "Операция 'Ныряльщик'",
+      ["Opposing Team: "] = "Команда Соперника: ",
 --      ["or 'g=50, g2=150, period=4000' for gravity changing|from 50 to 150 and back with period of 4000 msec"] = "", -- Gravity
 --      ["Orlando Boom!"] = "", -- A_Classic_Fairytale:queen
---      ["Other kills don't give you points."] = "", -- Mutant
---      ["Ouch!"] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["Other kills don't give you points."] = "Другие убийства не дадут вам очков.", -- Mutant
+      ["Ouch!"] = "Ох!", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Our tribe, our beautiful island!"] = "", -- A_Classic_Fairytale:enemy
---      ["Parachute"] = "", -- Continental_supplies
---      ["Pathetic Hog #%d"] = "",
---      ["Pathetic Resistance"] = "", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
+      ["Parachute"] = "Парашют", -- Continental_supplies
+      ["Pathetic Hog #%d"] = "Жалкий Ёж #%d",
+      ["Pathetic Resistance"] = "Жалкое Сопротивление", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
 --      ["Penguin roar: [Deal 15 damage + 15% of your hogs health to all hogs around you and get 2/3 back]"] = "", -- Continental_supplies
 --      ["Perfect! Now try to get the next crate without hurting yourself!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Per-Hog Ammo"] = "",
---      ["Personal Portal Device"] = "", -- Construction_Mode
+      ["Per-Hog Ammo"] = "У каждого ежа свое оружие",
+      ["Personal Portal Device"] = "Портальная Пушка", -- Construction_Mode
 
 --      ["Per team weapons"] = "", -- Continental_supplies
 --      ["Pfew! That was close!"] = "", -- A_Classic_Fairytale:shadow
---      ["Piano Strike"] = "", -- Construction_Mode
---      ["Pickhammer"] = "", -- Construction_Mode
+      ["phosphatoglucidique"] = "Углеводофосфатный", -- portal
+      ["Piano Strike"] = "Фортепьяновый удар", -- Construction_Mode
+      ["Pickhammer"] = "Отбойный молоток", -- Construction_Mode
 
 --      ["Pings left:"] = "", -- Space_Invasion
---      ["Place more waypoints using the 'Air Attack' weapon."] = "",
---      ["Planes Used:"] = "", -- User_Mission_-_RCPlane_Challenge
---      ["Planes Used"] = "", -- User_Mission_-_RCPlane_Challenge
+      ["Place more waypoints using the 'Air Attack' weapon."] = "Расположите больше контрольных точек, используя 'Воздушную атаку'",
+      ["Planes used: %d"] = "Использовано самолётов: %d", -- User_Mission_-_RCPlane_Challenge
 --      ["Play with me!"] = "", -- A_Classic_Fairytale:shadow
---      ["Please place the way-point further from the waterline."] = "", -- Racer
---      ["Please place the way-point in the open, within the map boundaries."] = "", -- Racer
+      ["player"] = "игрок", -- portal
+      ["Please place the way-point further from the waterline."] = "Поместите контрольную точку подальше от воды.", -- Racer
+      ["Please place the way-point in the open, within the map boundaries."] = "Поместите контрольную точку в открытом месте внутри границ карты.", -- Racer
 --      ["Please, stop releasing your \"smoke signals\"!"] = "", -- A_Classic_Fairytale:shadow
 --      ["Point Blank Combo!"] = "", -- Space_Invasion
---      ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
---      ["POINTS"] = "", -- Mutant
+      ["points"] = "очки", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
+      ["POINTS"] = "ОЧКИ", -- Mutant
       ["Poison"] = "Яд",
 --      ["Population"] = "", -- Continental_supplies
 --      ["Portal hint: one goes to the destination, and one is the entrance.|"] = "", -- A_Classic_Fairytale:dragon
---      ["Portal mission"] = "", -- portal
+      ["Portal mission"] = "Портальная миссия", -- portal
 --      ["Power Remaining"] = "",
---      ["Prepare yourself"] = "",
+      ["Predator"] = "Хищник", -- portal
+      ["Prepare yourself"] = "Готовься",
 --      ["presice"] = "", -- Continental_supplies
---      ["Press [Enter] to accept this configuration."] = "", -- WxW
+      ["Press [Enter] to accept this configuration."] = "Нажмите [Enter] для принятия конфигурации.", -- WxW
 --      ["Press [Left] or [Right] to move around, [Enter] to jump"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Press [Precise] to skip intro"] = "",
---      ["Prestigious Pilot"] = "", -- User_Mission_-_RCPlane_Challenge
---      ["Private Novak"] = "", -- Basic_Training_-_Cluster_Bomb
+      ["Prestigious Pilot"] = "Престижный Пилот", -- User_Mission_-_RCPlane_Challenge
+      ["Private Nolak"] = "Рядовой Нолак", -- Target_Practice_-_Cluster_Bomb
+      ["Private Novak"] = "Рядовой Новак", -- Basic_Training_-_Cluster_Bomb
+      ["Professional pilot"] = "Профессиональный пилот", -- User_Mission_-_RCPlane_Challenge
+      ["Professional stunt pilot"] = "Профессиональный пилот-трюкач", -- User_Mission_-_RCPlane_Challenge
 --      ["Protect yourselves!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
---      ["Race complexity limit reached."] = "",
---      ["RACER"] = "",
+      ["Pyro"] = "Пироман", -- The_Specialists
+      ["Race complexity limit reached."] = "Лимит сложности гонки достигнут.",
+      ["RACER"] = "ГОНЩИК",
 --      ["Rachel"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Radar Ping"] = "", -- Space_Invasion
 --      ["Raging Buffalo"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
 --      ["Ramon"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
+      ["Rank: %s"] = "Ранк: %s", -- User_Mission_-_RCPlane_Challenge
 --      ["random in range from %i%% to %i%% with period of %i msec"] = "", -- Gravity
+      ["razac"] = "Чумной", -- portal
 --      ["RC Plane"] = "", -- Construction_Mode
---      ["RC PLANE TRAINING"] = "", -- User_Mission_-_RCPlane_Challenge
+      ["RC PLANE TRAINING"] = "ТРЕНИРОВКА С РАДИОУПРАВЛЯЕМЫМ САМОЛЕТОМ", -- User_Mission_-_RCPlane_Challenge
 --      ["Really?! You thought you could harm me with your little toys?"] = "", -- A_Classic_Fairytale:shadow
---      ["Reflector Shield"] = "", -- Construction_Mode
---      ["Reflects enemy projectiles."] = "", -- Construction_Mode
+      ["Reflector Shield"] = "Щит-Отражатель", -- Construction_Mode
+      ["Reflects enemy projectiles."] = "Отражает снаряды врагов.", -- Construction_Mode
 --      ["Regurgitator"] = "", -- A_Classic_Fairytale:backstab
 --      ["Reinforcements"] = "", -- A_Classic_Fairytale:backstab
---      ["Remember: The rope only bend around objects, |if it doesn't hit anything it's always stright!"] = "", -- Basic_Training_-_Rope
+      ["Remember: The rope only bend around objects, |if it doesn't hit anything it's always stright!"] = "Помни: Верёвка изгибается только вокруг объекты, |если же она ничего не касается, то всегда остается прямой!", -- Basic_Training_-_Rope
 --      ["Remember this, pathetic animal: when the day comes, you will regret your blind loyalty!"] = "", -- A_Classic_Fairytale:shadow
 --      ["REMOVED"] = "", -- Continental_supplies
---      ["Respawner"] = "", -- Construction_Mode
+      ["rescues"] = "спасено", -- User_Mission_-_That_Sinking_Feeling
+      ["Respawner"] = "Воскреситель", -- Construction_Mode
 --      ["Resurrector"] = "", -- Construction_Mode
---      ["Resurrects dead hedgehogs."] = "", -- Construction_Mode
---      [" - 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"] = "",
+      ["Resurrects dead hedgehogs."] = "Возвращает к жизни мертвых ежей.", -- Construction_Mode
+      [" - 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мя захватами флага | - Вы получаете очки только когда ваш флаг находится на базе | - Убитые/Утонувшие ежи теряют флаг | - Брошенные флаги могут быть возвращены или захвачены повторно | - Убитые ежи воскресают",
 --      ["Return to Leaks A Lot! If you get stuck, press [Precise] to try again!"] = "", -- A_Classic_Fairytale:shadow
+      ["Rider"] = "Адский Всадник", -- portal
 --      ["Righteous Beard"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
---      ["Rope"] = "", -- Construction_Mode
---      ["ROPE-KNOCKING"] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["ronald"] = "Рональд", -- portal
+      ["Rope"] = "Верёвка", -- Construction_Mode
+      ["ROPE-KNOCKING"] = "ВЫШИБАНИЕ-ВЕРЁВКОЙ", -- User_Mission_-_Rope_Knock_Challenge
+      ["Rope Master!"] = "Мастер Верёвки!", -- Basic_Training_-_Rope
+      ["Roper"] = "Верёвочник", -- SpeedShoppa
+      ["Ropes and Crates"] = "Верёвки и Ящики", -- Challenge_-_Speed_Shoppa_-_Ropes
+      ["Rope Team"] = "Верёвочники", -- Basic_Training_-_Rope
 --      ["Rope to safety"] = "", -- ClimbHome
---      ["Rope Training"] = "", -- Basic_Training_-_Rope
+      ["Rope Training"] = "Тренировка с Верёвкой", -- Basic_Training_-_Rope
 --      ["Rot Molester"] = "", -- A_Classic_Fairytale:shadow
---      ["Round Limit:"] = "",
+      ["Round Limit:"] = "Лимит Раундов:",
 --      ["Round Limit"] = "",
---      ["Rounds Complete: "] = "",
+      ["Rounds Complete: "] = "Раундов Завершено: ",
 --      ["Rounds Complete"] = "",
 --      ["Rubber Band"] = "", -- Construction_Mode
---      ["Rubber Placement Mode"] = "", -- Construction_Mode
---      ["RULES"] = "", -- Frenzy, Mutant
---      ["RULES OF THE GAME [Press ESC to view]"] = "",
+      ["Rubber Placement Mode"] = "Режим Размещения Батутов", -- Construction_Mode
+      ["RULES"] = "ПРАВИЛА", -- Frenzy, Mutant
+      ["RULES OF THE GAME [Press ESC to view]"] = "ПРАВИЛА ИГРЫ",
 --      ["Rusty Joe"] = "", -- A_Classic_Fairytale:queen
 --      ["s|"] = "",
 --      ["Sabotage/Flare: [Sabotage all hogs in the circle and deal ~1 dmg OR Fire a cluster up into the air]"] = "", -- Continental_supplies
 
+      ["Saint"] = "Святой", -- The_Specialists
 --      ["Salivaslurper"] = "", -- A_Classic_Fairytale:united
 --      ["Salvation"] = "", -- A_Classic_Fairytale:family
 --      ["Salvation was one step closer now..."] = "", -- A_Classic_Fairytale:dragon
---      ["Save as many hapless hogs as possible!"] = "",
+      ["Save as many hapless hogs as possible!"] = "Спасите как можно больше несчастных ежей!",
 --      ["Save Fell From Heaven!"] = "", -- A_Classic_Fairytale:journey
 --      ["Save Leaks A Lot!|Hint: The Switch utility might be of help to you."] = "", -- A_Classic_Fairytale:shadow
 --      ["Save the princess! All your hogs must survive!|Hint: Kill the cyborgs first! Use the ammo very carefully!|Hint: You might want to spare a girder for cover!"] = "", -- A_Classic_Fairytale:family
 --      ["Save the princess by collecting the crate in under 12 turns!"] = "", -- A_Classic_Fairytale:journey
 --      ["Scalp Muncher"] = "", -- A_Classic_Fairytale:backstab
 --      ["SCORE"] = "",
---      ["Score"] = "", -- Mutant
+      ["Score"] = "Счет", -- Mutant
 
       ["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
---      ["Seduction"] = "", -- Continental_supplies
+      ["%.1f seconds were remaining."] = "%.1f секунд еще оставалось.", -- Basic_Training_-_Bazooka      
+      ["Seduction"] = "Соблазнение", -- Continental_supplies
 --      ["Seems like every time you take a \"walk\", the enemy find us!"] = "", -- A_Classic_Fairytale:backstab
 --      ["See that crate farther on the right?"] = "", -- A_Classic_Fairytale:first_blood
       ["See ya!"] = "Увидимся!",
@@ -771,17 +854,19 @@
 --      ["Shield OFF:"] = "",
 --      ["Shield ON:"] = "",
 --      ["Shield Seeker!"] = "",
---      ["Shoryuken"] = "", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
---      ["Shotgun"] = "", -- Continental_supplies
+      ["Shoppa Union"] = "Союз Шоппы", -- Challenge_-_Speed_Shoppa_-_Ropes, Challenge_-_Speed_Shoppa_-_ShoppaKing
+      ["Shoppers"] = "Шопперы", -- SpeedShoppa
+      ["Shoryuken"] = "Восходящий удар Дракона", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
+      ["Shotgun"] = "Дробовик", -- Continental_supplies
 --      ["Shotgun Team"] = "",
 --      ["Shotgun Training"] = "",
 --      ["shots remaining."] = "",
---      ["Silly"] = "",
---      ["SineGun"] = "", -- Construction_Mode
---      ["Sinky"] = "",
+      ["Silly"] = "Глупый",
+      ["SineGun"] = "Синус-пушка (бета)", -- Construction_Mode
+      ["Sinky"] = "Утопленник",
 --      ["Sirius Lee"] = "", -- A_Classic_Fairytale:enemy
---      ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball
---      ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball
+      ["%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
 --      ["Slippery"] = "", -- A_Classic_Fairytale:journey
 --      ["Slot"] = "", -- Frenzy
 --      ["Slot keys save time! (F1-F10 by default)"] = "", -- Frenzy
@@ -792,42 +877,46 @@
 --      ["Smith 0.99b"] = "", -- A_Classic_Fairytale:enemy
 --      ["Smith 0.99f"] = "", -- A_Classic_Fairytale:enemy
 --      ["Smith 1.0"] = "", -- A_Classic_Fairytale:enemy
---      ["Sniper Rifle"] = "", -- Continental_supplies
+      ["Sniper"] = "Снайпер", -- The_Specialists
+      ["Sniper Rifle"] = "Снайперская винтовка", -- Continental_supplies
 --      ["Sniper!"] = "", -- Space_Invasion
       ["Sniper Training"] = "Тренировка снайпера",
---      ["Sniperz"] = "",
+      ["Sniperz"] = "Снайперы",
 --      ["So humiliating..."] = "", -- A_Classic_Fairytale:first_blood
+      ["Soldier"] = "Солдат", -- The_Specialists
 --      ["Some weapons have a second option. Find them with"] = "", -- Continental_supplies
 --      ["South America"] = "", -- Continental_supplies
 --      ["So? What will it be?"] = "", -- A_Classic_Fairytale:shadow
---      ["Spawn the crate, and attack!"] = "", -- WxW
+      ["Spawn the crate, and attack!"] = "Подбери ящик и атакуй!", -- WxW
 --      ["Special Weapons:"] = "", -- Continental_supplies
+--      ["Speed Shoppa"] = "", -- SpeedShoppa
 --      ["Spiky Cheese"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
 --      ["Spleenlover"] = "", -- A_Classic_Fairytale:united
---      ["Sponge"] = "",
---      ["Spooky Tree"] = "",
+      ["Sponge"] = "Губка",
+      ["Spooky Tree"] = "Зловещее дерево",
 --      ["Sprite Placement Mode"] = "", -- Construction_Mode
 --      ["Sprite Testing Mode"] = "", -- Construction_Mode
---      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
+      ["STATUS UPDATE"] = "ОБНОВЛЕНИЕ СТАТУСА", -- GaudyRacer, Space_Invasion
 --      ["Steel Eye"] = "", -- A_Classic_Fairytale:queen
 --      ["Step By Step"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Steve"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
---      ["Sticky Mine"] = "", -- Continental_supplies
---      ["Sticky Mine Placement Mode"] = "", -- Construction_Mode
+      ["Sticky Mine"] = "Мина-Липучка", -- Continental_supplies
+      ["Sticky Mine Placement Mode"] = "Режим Размещения Мин-Липучек", -- Construction_Mode
 --      ["Stronglings"] = "", -- A_Classic_Fairytale:shadow
 
---      ["Structure Placement Mode"] = "", -- Construction_Mode
---      ["Structure Placement Tool"] = "", -- Construction_Mode
+      ["Structure Placement Mode"] = "Режим Размещения Сооружений", -- Construction_Mode
+      ["Structure Placement Tool"] = "Инструмент Размещения Сооружений", -- Construction_Mode
+      ["Subject"] = "Испытуемый", -- portal
 --      ["Sundaland"] = "", -- Continental_supplies
---      ["Super Weapons"] = "", -- WxW
---      ["Support Station"] = "", -- Construction_Mode
---      ["Surf Before Crate"] = "", -- WxW
+      ["Super Weapons"] = "Супер Оружие", -- WxW
+      ["Support Station"] = "Станция Поддержки", -- Construction_Mode
+      ["Surf Before Crate"] = "Сёрфинг Перед Ящиком", -- WxW
 --      ["Surfer! +15 points!"] = "", -- Space_Invasion
 --      ["Surfer!"] = "", -- WxW
 --      ["Survive!|Hint: Cinematics can be skipped with the [Precise] key."] = "", -- A_Classic_Fairytale:shadow
 --      ["Swing, Leaks A Lot, on the wings of the wind!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["switch"] = "", -- Continental_supplies
---      ["Switched to "] = "",
+      ["Switched to "] = "Выбран ",
 --      ["Switch Hog"] = "", -- Construction_Mode
 --      ["Syntax Errol"] = "", -- A_Classic_Fairytale:dragon
 --      ["tab"] = "", -- Continental_supplies
@@ -835,14 +924,22 @@
 --      ["Talk about mixed signals..."] = "", -- A_Classic_Fairytale:dragon
 --      ["Tardis"] = "", -- Construction_Mode
 --      ["Target Placement Mode"] = "", -- Construction_Mode
+      ["Targets left: %d"] = "Осталось целей: %d", -- TargetPractice
+      ["Target Practice: Bazooka (easy)"] = "Учебная Стрельба: Базука (легко)", -- Target_Practice_-_Bazooka_easy
+      ["Target Practice: Bazooka (hard)"] = "Учебная Стрельба: Базука (сложно)", -- Target_Practice_-_Bazooka_hard
+      ["Target Practice: Grenade (easy)"] = "Учебная Стрельба: Граната (легко)", -- Target_Practice_-_Grenade_easy
+      ["Target Practice: Grenade (hard)"] = "Учебная Стрельба: Граната (сложно)", -- Target_Practice_-_Grenade_hard
+      ["Target Practice: Homing Bee"] = "Учебная Стрельба: Пчёлка", -- Target_Practice_-_Homing_Bee
+      ["Target Practice: Shotgun"] = "Учебная Стрельба: Дробовик", -- Target_Practice_-_Shotgun
       ["Team %d: "] = "Команда %d: ",
-      ["Team Scores"] = "Очки команды", -- Control, Space_Invasion
---      ["Teleporation Node"] = "", -- Construction_Mode
---      ["Teleportation Mode"] = "", -- Construction_Mode
---      ["Teleportation Node"] = "", -- Construction_Mode
+      ["Team of Hearts"] = "Команда сердец", -- Challenge_-_Speed_Shoppa_-_Hedgelove
+      ["Team Scores"] = "Очки команд", -- Control, Space_Invasion
+      ["Team Zook"] = "Команда Зуки", -- Target_Practice_-_Bazooka_easy, Target_Practice_-_Bazooka_hard
+      ["Teleportation Mode"] = "Режим Телепортации", -- Construction_Mode
+      ["Teleportation Node"] = "Узел Телепортации", -- Construction_Mode
 --      ["Teleport"] = "", -- Construction_Mode, Frenzy
 --      ["Teleport hint: just use the mouse to select the destination!"] = "", -- A_Classic_Fairytale:dragon
---      ["Teleport Unsuccessful. Please teleport within a clan teleporter's sphere of influence."] = "", -- Construction_Mode
+      ["Teleport Unsuccessful. Please teleport within a clan teleporter's sphere of influence."] = "Неудачная Телепортация. Вы можете телепортироваться только в области влияния ваших телепортов.", -- Construction_Mode
 --      ["Thanks!"] = "", -- A_Classic_Fairytale:family
 --      ["Thank you, my hero!"] = "", -- A_Classic_Fairytale:family
 --      ["Thank you, oh, thank you, Leaks A Lot!"] = "", -- A_Classic_Fairytale:journey
@@ -852,43 +949,46 @@
 --      ["That ought to show them!"] = "", -- A_Classic_Fairytale:backstab
 --      ["That's for my father!"] = "", -- A_Classic_Fairytale:backstab
 --      ["That shaman sure knows what he's doing!"] = "", -- A_Classic_Fairytale:shadow
---      ["That Sinking Feeling"] = "",
+      ["That Sinking Feeling"] = "Дед Мазай и Ёжики",
 --      ["That's not our problem!"] = "", -- A_Classic_Fairytale:enemy
 --      ["That's typical of you!"] = "", -- A_Classic_Fairytale:family
 --      ["That was just mean!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
 --      ["That was pointless."] = "",
 --      ["The answer is...entertaintment. You'll see what I mean."] = "", -- A_Classic_Fairytale:backstab
---      ["The anti-portal zone is all over the floor, and I have nothing to kill him...Droping something could hurt him enough to kill him..."] = "", -- portal
---      ["The Bottom Feeder can score points by killing anyone."] = "", -- Mutant
+      ["The anti-portal zone is all over the floor, and I have nothing to kill him...Droping something could hurt him enough to kill him..."] = "Весь пол покрыт анти-портальной краской и мне нечем его убить... Может сбросить на него что-то?..", -- portal
+      ["The Bottom Feeder can score points by killing anyone."] = "Аутсайдер может заработать очки убив любого.", -- Mutant
 --      ["The Bull's Eye"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The caves are well hidden, they won't find us there!"] = "", -- A_Classic_Fairytale:united
 --      ["The Crate Frenzy"] = "", -- A_Classic_Fairytale:first_blood
+      ["The Customer is King"] = "Покупатель это Король", -- Challenge_-_Speed_Shoppa_-_ShoppaKing
 --      ["The Dilemma"] = "", -- A_Classic_Fairytale:shadow
 --      ["The enemy can't move but it might be a good idea to stay out of sight!|"] = "", -- A_Classic_Fairytale:dragon
---      ["The enemy is hiding out on yonder ducky!"] = "",
+      ["The enemy is hiding out on yonder ducky!"] = "Враг прячется на соседней утке!",
 --      ["The Enemy Of My Enemy"] = "", -- A_Classic_Fairytale:enemy
 --      ["The First Blood"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The First Encounter"] = "", -- A_Classic_Fairytale:shadow
---      ["The first player to kill someone becomes the Mutant."] = "", -- Mutant
---      ["The flag will respawn next round."] = "",
+      ["The first player to kill someone becomes the Mutant."] = "Первый игрок, убивший кого-либо, становится Мутантом.", -- Mutant
+      ["The flag will respawn next round."] = "Флаг опять появится в следующем раунде.",
+      ["The flood has stopped! Challenge over."] = "Наводнение остановилось! Испытание закончено.", -- User_Mission_-_That_Sinking_Feeling
 --      ["The food bites back"] = "", -- A_Classic_Fairytale:backstab
 --      ["The giant umbrella from the last crate should help break the fall."] = "", -- A_Classic_Fairytale:first_blood
---      ["The Great Escape"] = "", -- User_Mission_-_The_Great_Escape
---      ["The Great Hog in the sky sees your sadness and grants you a boon."] = "", -- Construction_Mode
+      ["The Great Escape"] = "Великий Побег", -- User_Mission_-_The_Great_Escape
+      ["The Great Hog in the sky sees your sadness and grants you a boon."] = "Великий Ёж на небесах видит вашу печаль и благословляет вас даром.", -- Construction_Mode
 --      ["The guardian"] = "", -- A_Classic_Fairytale:shadow
+      ["The Hogies"] = "Боевые Ежи", -- Target_Practice_-_Cluster_Bomb
 --      ["The Individualist"] = "", -- A_Classic_Fairytale:shadow
 --      ["Their buildings were very primitive back then, even for an uncivilised island."] = "", -- A_Classic_Fairytale:united
 --      ["The Journey Back"] = "", -- A_Classic_Fairytale:journey
 --      ["The Leap of Faith"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The Moonwalk"] = "", -- A_Classic_Fairytale:journey
---      ["The Mutant has super-weapons and a lot of health."] = "", -- Mutant
---      ["The Mutant loses health quickly if he doesn't keep scoring kills."] = "", -- Mutant
---      ["The Nameless One"] = "",
---      ["The next one is pretty hard! |Tip: You have to do multiple swings!"] = "", -- Basic_Training_-_Rope
+      ["The Mutant has super-weapons and a lot of health."] = "У Мутанта есть супер-оружие и много здоровья.", -- Mutant
+      ["The Mutant loses health quickly if he doesn't keep scoring kills."] = "Мутант быстро теряет здоровье, если не зарабатывает очки за убийства.", -- Mutant
+      ["The Nameless One"] = "Дед Мазай",
+      ["The next one is pretty hard! |Tip: You have to do multiple swings!"] = "Следующая цель довольно сложна! |Подсказка: Нужно сделать несколько раскачиваний!", -- Basic_Training_-_Rope
 --      ["Then how do they keep appearing?"] = "", -- A_Classic_Fairytale:shadow
 --      ["The other one were all cannibals, spending their time eating the organs of fellow hedgehogs..."] = "", -- A_Classic_Fairytale:first_blood
---      ["The player with least points (or most deaths) becomes the Bottom Feeder."] = "", -- Mutant
---      ["There are a variety of structures available to aid you."] = "", -- Construction_Mode
+      ["The player with least points (or most deaths) becomes the Bottom Feeder."] = "Игрок с наименьшим количеством очков становится Аутсайдером.", -- Mutant
+      ["There are a variety of structures available to aid you."] = "Множество сооружений доступны вам в помощь.", -- Construction_Mode
 --      ["There must be a spy among us!"] = "", -- A_Classic_Fairytale:backstab
 --      ["There's more of them? When did they become so hungry?"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
 --      ["There's nothing more satisfying for me than seeing you share your beauty with the world every morning, my princess!"] = "", -- A_Classic_Fairytale:journey
@@ -900,7 +1000,7 @@
 --      ["The Shadow Falls"] = "", -- A_Classic_Fairytale:shadow
 --      ["The Showdown"] = "", -- A_Classic_Fairytale:shadow
 --      ["The Slaughter"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:first_blood
---      ["THE SPECIALISTS"] = "",
+      ["THE SPECIALISTS"] = "СПЕЦИАЛИСТЫ",
 --      ["The spirits of the ancerstors are surely pleased, Leaks A Lot."] = "", -- A_Classic_Fairytale:first_blood
 --      ["The Torment"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The Tunnel Maker"] = "", -- A_Classic_Fairytale:journey
@@ -927,28 +1027,33 @@
 --      ["This is typical!"] = "", -- A_Classic_Fairytale:dragon
 --      ["This must be some kind of sorcery!"] = "", -- A_Classic_Fairytale:shadow
 --      ["This must be the caves!"] = "", -- A_Classic_Fairytale:backstab
---      ["This one's tricky."] = "",
---      ["This rain is really something..."] = "",
+      ["This one's tricky."] = "Это непростая цель.",
+      ["This rain is really something..."] = "Этот дождь нескончаем...",
+      ["This was an awesome performance! But this challenge can be finished with even just one RC plane. Can you figure out how?"] = "Потрясающее исполнение! Но это испытание можно пройти всего с одним самолётом. Знаете как?", -- User_Mission_-_RCPlane_Challenge
 --      ["This will be fun!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Those aliens are destroying the island!"] = "", -- A_Classic_Fairytale:family
 --      ["Timed Kamikaze!"] = "",
 --      ["Time Extended!"] = "",
 --      ["Time Extension"] = "",
       ["TIME: "] = "ВРЕМЯ: ",
---      ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "", -- Basic_Training_-_Rope
+      ["Time's up!"] = "Время вышло!", -- Basic_Training_-_Sniper_Rifle
+      ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "Подсказка: Поведение верёвки отличается от того, что в реальном мире, |используй это как преимущество!", -- Basic_Training_-_Rope
 --      ["Toggle Shield"] = "",
 --      ["To help you, of course!"] = "", -- A_Classic_Fairytale:journey
+      ["Top-class elite pilot"] = "Элитный пилот топ класса", -- User_Mission_-_RCPlane_Challenge
 --      ["To place a girder, select it, use [Left] and [Right] to select angle and length, place with [Left Click]"] = "", -- A_Classic_Fairytale:shadow
 --      ["Torn Muscle"] = "", -- A_Classic_Fairytale:journey
 --      [" to save the village."] = "", -- A_Classic_Fairytale:dragon
 --      ["To the caves..."] = "", -- A_Classic_Fairytale:united
---      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
---      ["TRACK COMPLETED"] = "",
+      ["Toxic Team"] = "Токсичные", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+      ["TRACK COMPLETED"] = "ТРЕК ЗАВЕРШЕН",
 
---      ["training"] = "", -- portal
+      ["Trainee"] = "Ученик", -- TargetPractice
+      ["training"] = "Тренировка", -- portal
+      ["Training Team"] = "Обучающиеся", -- TargetPractice
 --      ["Traitors"] = "", -- A_Classic_Fairytale:epil
 --      ["Tribe"] = "", -- A_Classic_Fairytale:backstab
---      ["TrophyRace"] = "",
+      ["TrophyRace"] = "Трофейная Гонка",
 --      ["Try to protect the chief! You won't lose if he dies, but it is advised that he survives."] = "", -- A_Classic_Fairytale:united
 --      ["T_T"] = "",
 --      ["Tumbling Time Extended!"] = "",
@@ -958,53 +1063,57 @@
 --      ["Two little hogs cooperating, getting past obstacles..."] = "", -- A_Classic_Fairytale:journey
 --      ["Uhm...I met one of them and took his weapons."] = "", -- A_Classic_Fairytale:shadow
 --      ["Uhmm...ok no."] = "", -- A_Classic_Fairytale:enemy
---      ["ULTRA KILL"] = "", -- Mutant
+      ["ULTRA KILL"] = "УЛЬТРА УБИЙСТВО", -- Mutant
 --      ["Under Construction"] = "", -- A_Classic_Fairytale:shadow
 --      ["Unexpected Igor"] = "", -- A_Classic_Fairytale:dragon
 --      ["Unique new weapons"] = "", -- Continental_supplies
---      ["Unit"] = "",
+      ["Unit"] = "Юнит", -- User_Mission_-_Newton_and_the_Hammock
 --      ["Unit 0x0007"] = "", -- A_Classic_Fairytale:family
 --      ["Unit 334a$7%;.*"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
---      ["Unit 3378"] = "",
---      ["Unit 835"] = "",
+      ["Unit 3378"] = "Юнит 3378",
+      ["Unit 835"] = "Юнит 835", -- User_Mission_-_Bamboo_Thicket
 --      ["United We Stand"] = "", -- A_Classic_Fairytale:united
---      ["Unlimited Attacks"] = "",
---      ["Unlucky Sods"] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["Unlimited Attacks"] = "Бесконечные атаки",
+      ["Unlucky Sods"] = "Неудачники", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Unstoppable!"] = "",
---      ["Unsuspecting Louts"] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["Unsuspecting Louts"] = "Доверчивые хамы", -- User_Mission_-_Rope_Knock_Challenge
 --      ["[Up], [Down] to aim, [Space] to shoot!"] = "", -- A_Classic_Fairytale:first_blood
+      ["Upper-class elite pilot"] = "Элитный пилот высшего класса", -- User_Mission_-_RCPlane_Challenge
 --      ["Use it wisely!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Use it with precaution!"] = "", -- A_Classic_Fairytale:first_blood
---      ["User Challenge"] = "",
---      ["Use the air-attack weapons and the arrow keys to select structures."] = "", -- Construction_Mode
+      ["User Challenge"] = "Одиночная Миссия",
+      ["Use the air-attack weapons and the arrow keys to select structures."] = "Используйте 'Воздушную атаку' и стрелки, чтобы выбрать сооружение.", -- Construction_Mode
 --      ["Use the portal gun to get to the next crate, then use the new gun to get to the final destination!|"] = "", -- A_Classic_Fairytale:dragon
 --      ["Use the rope to get on the head of the mole, young one!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Use the rope to knock your enemies to their doom."] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["Use the portal to move fast and far, use it to kill, use it with caution!"] = "Используй портал для перемещения, используй его для убийства, используй его с осторожностью!", -- portal
+      ["Use the rope to knock your enemies to their doom."] = "Используйте веревку, чтобы сбить врагов к их гибели.", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Use your ready time to think."] = "", -- Frenzy
---      ["Use your rope to get from start to finish as fast as you can!"] = "",
---      ["Utility Crate Placement Mode"] = "", -- Construction_Mode
---      ["Vampirism"] = "", -- Construction_Mode
+      ["Use your rope to collect all crates as fast as possible."] = "Используйте веревку, чтобы собрать все ящики как можно быстрее.", -- SpeedShoppa
+      ["Use your rope to get from start to finish as fast as you can!"] = "Используй веревку, чтобы добраться от старта до финиша как можно быстрее!",
+      ["Utility Crate Placement Mode"] = "Режим Размещения Ящиков с Утилитами", -- Construction_Mode
+      ["Vampirism"] = "Вампиризм", -- Construction_Mode
 --      ["Vedgies"] = "", -- A_Classic_Fairytale:journey
 --      ["Vegan Jack"] = "", -- A_Classic_Fairytale:enemy
---      ["Victory!"] = "", -- Basic_Training_-_Rope
---      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
+      ["Victory!"] = "Победа!", -- Basic_Training_-_Rope
+      ["Victory for the "] = "Победа за ", -- CTF_Blizzard, Capture_the_Flag
+      ["voldemort"] = "Волан-де-Морт", -- portal
 --      ["Violence is not the answer to your problems!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Walls Left"] = "", -- WxW
---      ["Walls Required"] = "", -- WxW
---      ["WALL TO WALL"] = "", -- WxW
---      ["Wannabe Flyboys"] = "", -- User_Mission_-_RCPlane_Challenge
---      ["Wannabe Shoppsta"] = "", -- User_Mission_-_Rope_Knock_Challenge
+      ["Walls Left"] = "Стен осталось", -- WxW
+      ["Walls Required"] = "Стен Необходимо", -- WxW
+--      ["WALL TO WALL"] = "ОТ СТЕНЫ К СТЕНЕ", -- WxW
+      ["Wannabe Flyboys"] = "Хочу быть Пилотом", -- User_Mission_-_RCPlane_Challenge
+      ["Wannabe Shoppsta"] = "Хочу быть Шоппером", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Watch your steps, young one!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Watermelon Bomb"] = "", -- Construction_Mode
---      ["Waypoint placed."] = "",
---      ["Way-Points Remaining"] = "",
+      ["Watermelon Bomb"] = "Арбузная бомба", -- Construction_Mode
+      ["Waypoint placed."] = "Контрольная Точка добавлена.",
+      ["Way-Points Remaining"] = "Контрольных Точек осталось",
 --      ["Weaklings"] = "", -- A_Classic_Fairytale:shadow
 --      ["We all know what happens when you get frightened..."] = "", -- A_Classic_Fairytale:first_blood
---      ["Weapon Crate Placement Mode"] = "", -- Construction_Mode
---      ["Weapon Filter"] = "", -- Construction_Mode
+      ["Weapon Crate Placement Mode"] = "Режим Размещения Ящиков с Оружием", -- Construction_Mode
+      ["Weapon Filter"] = "Фильтр Оружия", -- Construction_Mode
 --      ["weaponschemes"] = "", -- Continental_supplies
---      ["Weapons Reset"] = "",
---      ["Weapons reset."] = "", -- Highlander
+      ["Weapons Reset"] = "Сброс оружия",
+      ["Weapons reset."] = "Сброс оружия.", -- Highlander
 --      ["We are indeed."] = "", -- A_Classic_Fairytale:backstab
 --      ["We can't defeat them!"] = "", -- A_Classic_Fairytale:shadow
 --      ["We can't hold them up much longer!"] = "", -- A_Classic_Fairytale:united
@@ -1014,7 +1123,7 @@
 --      ["We have to protect the village!"] = "", -- A_Classic_Fairytale:united
 --      ["We have to unite and defeat those cylergs!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Welcome, Leaks A Lot!"] = "", -- A_Classic_Fairytale:journey
---      ["Well done."] = "",
+      ["Well done."] = "Отлично.",
 --      ["We'll give you a problem then!"] = "", -- A_Classic_Fairytale:enemy
 --      ["We'll spare your life for now!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Well, that was a waste of time."] = "", -- A_Classic_Fairytale:dragon
@@ -1037,7 +1146,7 @@
 --      ["What a strange feeling!"] = "", -- A_Classic_Fairytale:backstab
 --      ["What do my faulty eyes observe? A spy!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Whatever floats your boat..."] = "", -- A_Classic_Fairytale:shadow
---      [" What !! For all of this struggle i just win some ... TIME o0"] = "", -- portal
+      [" What !! For all of this struggle i just win some ... TIME o0"] = " ЧТО ?! За все эти страдания я выиграл только немного ... ВРЕМЕНИ o0", -- portal
 --      ["What has "] = "", -- A_Classic_Fairytale:backstab
 --      ["What? Here? How did they find us?!"] = "", -- A_Classic_Fairytale:backstab
 --      ["What is this place?"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy
@@ -1055,7 +1164,7 @@
 --      ["Where do you get that?!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Where have you been?!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Where have you been?"] = "", -- A_Classic_Fairytale:united
---      ["Whip"] = "", -- Construction_Mode
+      ["Whip"] = "Кнут", -- Construction_Mode
 --      ["? Why?"] = "", -- A_Classic_Fairytale:backstab
 --      ["Why "] = "", -- A_Classic_Fairytale:backstab
 --      ["! Why?!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
@@ -1067,14 +1176,15 @@
 --      ["Why do you want to take over our island?"] = "", -- A_Classic_Fairytale:enemy
 --      ["Why me?!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Why would they do this?"] = "", -- A_Classic_Fairytale:backstab
+      ["Will be useful if I need a new plateform or if I want to rise...."] = "Это пригодится, чтобы подняться выше...", -- portal
 --      ["- Will Get 1-3 random weapons"] = "", -- Continental_supplies
 --      ["- Will give you an airstrike every fifth turn."] = "", -- Continental_supplies
 --      ["- Will give you a parachute every second turn."] = "", -- Continental_supplies
 
 
---      ["Will this ever end?"] = "",
---      ["WINNER IS "] = "", -- Mutant
---      ["WINNING TIME: "] = "",
+      ["Will this ever end?"] = "Когда уже конец?",
+      ["WINNER IS "] = "ПОБЕДИЛ ", -- Mutant
+      ["WINNING TIME: "] = "ПОБЕДНОЕ ВРЕМЯ: ",
 --      ["Wise Oak"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["With Dense Cloud on the land of shadows, I'm the village's only hope..."] = "", -- A_Classic_Fairytale:journey
 --      ["With the rest of the tribe gone, it was up to "] = "", -- A_Classic_Fairytale:dragon
@@ -1095,26 +1205,48 @@
 --      ["You are playing with our lives here!"] = "", -- A_Classic_Fairytale:enemy
 --      ["! You bastards!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
 --      ["You bear impressive skills, "] = "", -- A_Classic_Fairytale:dragon
---      ["You can't fire a portal on the blue surface"] = "", -- portal
+      ["You can't fire a portal on the blue surface"] = "Нельзя ставить порталы на синюю поверхность", -- portal
 --      ["You couldn't possibly believe that after refusing my offer I'd just let you go!"] = "", -- A_Classic_Fairytale:journey
---      ["You'd almost swear the water was rising!"] = "",
+      ["You'd almost swear the water was rising!"] = "Могу поклясться, что вода прибывает!",
 --      ["You'd better watch your steps..."] = "", -- A_Classic_Fairytale:journey
---      ["You did not make it in time, try again!"] = "", -- Basic_Training_-_Rope
+      ["You did not make it in time, try again!"] = "Время вышло, попробуй еще раз!", -- Basic_Training_-_Rope
+      ["You had %.2fs remaining on the clock (+%d points)."] = "У вас оставалось %.2f секунд на таймере (+%d очков).", -- Basic_Training_-_Sniper_Rifle
+      ["You had %.1fs remaining on the clock (+%d points)."] = "У вас оставалось %.1f секунд на таймере (+%d очков).", -- TargetPractice      
 --      ["You have 7 turns until the next wave arrives.|Make sure the arriving cannibals are greeted appropriately!|If the hog dies, the cause is lost.|Hint: you might want to use some mines..."] = "", -- A_Classic_Fairytale:backstab
 --      ["You have "] = "", -- A_Classic_Fairytale:dragon
 --      ["You have been giving us out to the enemy, haven't you!"] = "", -- A_Classic_Fairytale:backstab
---      ["You have been respawned, at your last checkpoint!"] = "", -- Basic_Training_-_Rope
---      ["You have been respawned, be more carefull next time!"] = "", -- Basic_Training_-_Rope
+      ["You have been respawned, at your last checkpoint!"] = "Ты возродился на последней контрольной точке!", -- Basic_Training_-_Rope
+      ["You have been respawned, be more carefull next time!"] = "Ты возродился, будь осторожней в следующий раз!", -- Basic_Training_-_Rope
 --      ["You have chosen the perfect moment to leave."] = "", -- A_Classic_Fairytale:united
+      ["You have collected %d out of %d crate(s)."] = "Вы собрали %d из %d ящиков.", -- SpeedShoppa
+      ["You have destroyed %d of %d targets."] = "Вы уничтожили %d из %d целей.", -- Basic_Training_-_Bazooka
+      ["You have destroyed %d of %d targets (+%d points)."] = "Вы уничтожили %d из %d целей (+%d очков).", -- Basic_Training_-_Sniper_Rifle
+      ["You have dropped %d missiles."] = "Вы запустили %d ракет.", -- User_Mission_-_RCPlane_Challenge
 --      ["You have failed to complete your task, young one!"] = "", -- A_Classic_Fairytale:journey
 --      ["You have failed to save the tribe!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You have finally figured it out!"] = "", -- A_Classic_Fairytale:enemy
+      ["You have finished the bazooka training!"] = "Вы прошли тренировку с базукой!", -- Basic_Training_-_Bazooka
+      ["You have finished the challenge!"] = "Вы прошли испытание!", -- User_Mission_-_RCPlane_Challenge
+      ["You have finished the challenge in %.3f s."] = "Вы прошли испытание за %.3f сек.", -- SpeedShoppa
+      ["You have finished the target practice!"] = "Вы завершили учебную стрельбу!", -- TargetPractice
+      ["You have gained an achievement: %s"] = "Вы получили достижение: %s", -- User_Mission_-_RCPlane_Challenge
 --      ["You have kidnapped our whole tribe!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You have killed an innocent hedgehog!"] = "", -- A_Classic_Fairytale:backstab
+      ["You have launched %d bazookas."] = "Вы запустили %d базук.", -- Basic_Training_-_Bazooka
+      ["You have launched %d homing bees."] = "Вы запустили %d пчёлок.", -- Target_Practice_-_Homing_Bee
+      ["You have made %d shots."] = "Вы сделали %d выстрелов.", -- Basic_Training_-_Sniper_Rifle
+      ["You haven't rescued anyone."] = "Вы никого не спасли.", -- User_Mission_-_That_Sinking_Feeling
+      ["You have obtained an achievement: Lively Lifeguard"] = "Вы получили достижение: Живучий Спасатель", -- User_Mission_-_That_Sinking_Feeling
+      ["You have perfectly beaten the challenge!"] = "Вы прекрасно прошли испытание!", -- User_Mission_-_RCPlane_Challenge
 --      ["You have proven yourself worthy to see our most ancient secret!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["You have proven yourselves worthy!"] = "", -- A_Classic_Fairytale:enemy
---      ["You have SCORED!!"] = "",
---      ["You have to destroy 12 targets in 180 seconds"] = "", -- Basic_Training_-_Cluster_Bomb
+      ["You have SCORED!!"] = "Вы доставили флаг!!",
+      ["You have shot %d times."] = "Вы выстрелили %d раз.", -- TargetPractice
+      ["You have thrown %d grenades."] = "Вы бросили %d гранат.", -- Target_Practice_-_Grenade_easy, Target_Practice_-_Grenade_hard
+      ["You have to destroy 12 targets in 180 seconds"] = "Тебе надо уничтожить 12 целей за 180 секунд", -- Basic_Training_-_Cluster_Bomb
+      ["You have used only 1 RC plane. Outstanding!"] = "Вы использовали всего 1 самолёт. Выдающееся достижение!", -- User_Mission_-_RCPlane_Challenge
+      ["You have used %d RC planes."] = "Вы использовали %d самолётов.", -- User_Mission_-_RCPlane_Challenge
+      ["You have successfully finished the sniper rifle training!"] = "Вы успешно завершили тренировку со снайперской винтовкой!", -- Basic_Training_-_Sniper_Rifle
 --      ["You have won the game by proving true cooperative skills!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You just appeared out of thin air!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You just committed suicide..."] = "", -- A_Classic_Fairytale:shadow
@@ -1122,33 +1254,42 @@
 --      ["You know...taking a stroll."] = "", -- A_Classic_Fairytale:backstab
 --      ["You know what? I don't even regret anything!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You'll see what I mean!"] = "", -- A_Classic_Fairytale:enemy
---      ["You may only attack from a rope!"] = "", -- WxW
---      ["You may only spawn 5 crates per turn."] = "", -- Construction_Mode
---      ["You may only use 1 Extra Time per turn."] = "", -- Construction_Mode
+      ["You lose!"] = "Вы проиграли!", -- Basic_Training_-_Bazooka
+      ["You may only attack from a rope!"] = "Вы можете атаковать только с верёвки!", -- WxW
+      ["You may only spawn 5 crates per turn."] = "Вы можете создавать только 5 ящиков за ход.", -- Construction_Mode
+      ["You may only use 1 Extra Time per turn."] = "Вы можете использовать Дополнительное Время только один раз за ход.", -- Construction_Mode
 --      ["You meatbags are pretty slow, you know!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You might want to find a way to instantly kill arriving cannibals!"] = "", -- A_Classic_Fairytale:backstab
+      ["You must survive the flood in order to score."] = "Вы должны пережить наводнение, чтобы заработать очки.", -- User_Mission_-_That_Sinking_Feeling
 --      ["Young one, you are telling us that they can instantly change location without a shaman?"] = "", -- A_Classic_Fairytale:united
 --      ["You probably know what to do next..."] = "", -- A_Classic_Fairytale:first_blood
+      ["Your accuracy was %.1f%%."] = "Ваша точность составила %.1f%%.", -- Basic_Training_-_Bazooka
+      ["Your accuracy was %.1f%% (+%d points)."] = "Ваша точность составила %.1f%% (+%d очков).", -- TargetPractice
 --      ["Your deaths will be avenged, cannibals!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Your death will not be in vain, Dense Cloud!"] = "", -- A_Classic_Fairytale:shadow
 --      ["You're...alive!? But we saw you die!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You're a pathetic liar!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You're funny!"] = "", -- A_Classic_Fairytale:journey
---      ["You're getting pretty good! |Tip: When you shorten you rope you move faster! |and when you lengthen it you move slower"] = "", -- Basic_Training_-_Rope
+      ["You're getting pretty good! |Tip: When you shorten you rope you move faster! |and when you lengthen it you move slower"] = "У тебя хорошо получается! |Подсказка: Когда веревка укорачивается, ты двигаешься быстрее! |А когда удлиняется - медленнее!", -- Basic_Training_-_Rope
 --      ["You're pathetic! You are not worthy of my attention..."] = "", -- A_Classic_Fairytale:shadow
 --      ["You're probably wondering why I bought you back..."] = "", -- A_Classic_Fairytale:backstab
 --      ["You're terrorizing the forest...We won't catch anything like this!"] = "", -- A_Classic_Fairytale:shadow
+      ["Your hedgehog died!"] = "Ваш ёж умер!", -- User_Mission_-_That_Sinking_Feeling
 --      ["Your hogs must survive!"] = "", -- A_Classic_Fairytale:journey
 --      ["Your movement skills will be evaluated now."] = "", -- A_Classic_Fairytale:first_blood
+      ["Your rank: %s"] = "Ваш ранк: %s", -- User_Mission_-_RCPlane_Challenge
 --      ["You saved"] = "",
+      ["You saved %d of 8 Hapless Hogs."] = "Вы спасли %d из 8 Несчастных Ёжиков", -- User_Mission_-_That_Sinking_Feeling
 --      ["You've been assaulting us, we have been just defending ourselves!"] = "", -- A_Classic_Fairytale:enemy
---      ["You've failed. Try again."] = "",
---      ["You've reached the goal!| |Time: "] = "",
+      ["You've failed. Try again."] = "Ты проиграл. Попробуй еще раз.",
+      ["You've reached the goal!| |Time: "] = "Вы достигли цели!| |Время: ",
 --      ["You will be avenged!"] = "", -- A_Classic_Fairytale:shadow
 --      ["- You will recieve 2-4 weapons on each kill! (Even on own hogs)"] = "", -- Continental_supplies
 --      ["You won't believe what happened to me!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Yuck! I bet they'll keep worshipping her even after I save the village!"] = "", -- A_Classic_Fairytale:family
 --      ["Zealandia"] = "", -- Continental_supplies
---      ["'Zooka Team"] = "",
+      ["zombi"] = "Зомби", -- portal
+      ["Zook"] = "Зук", -- Target_Practice_-_Bazooka_easy, Target_Practice_-_Bazooka_hard
+      ["'Zooka Team"] = "Команда Зука",
 --      ["Zork"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
     }
--- a/share/hedgewars/Data/Locale/ru.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/ru.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -42,7 +42,7 @@
 00:39=Летающая тарелка
 00:40=Коктейль Молотова
 00:41=Птичка
-00:42=Портативный телепорт
+00:42=Портальная Пушка
 00:43=Фортепьяновый удар
 00:44=Старый Лимбургер
 00:45=Синус-пушка (бета)
@@ -59,6 +59,7 @@
 00:55=Замораживатель
 00:56=Секач
 00:57=Батут
+00:58=Воздушная мина
 
 01:00=Вперёд к победе!
 01:01=Ничья
@@ -83,6 +84,9 @@
 01:20=%1 отскок
 01:21=Звук отключен
 01:22=Режим отсутствия
+01:23=Авто Камера Выкл.
+01:24=Авто Камера Вкл.
+01:25=Нажмите кнопку мишени для указания цели
 
 ; Event messages
 ; Hog (%1) died
@@ -454,6 +458,10 @@
 03:53=Модель 40
 ;03:54=Построй что нибудь
 03:54=Полезная вещь
+03:55=Холоднее уже не будет!
+03:56=Употребляй или злоупотребляй
+03:57=Полезная вещь
+03:58=Летающая неконтактная бомба
 
 ; Weapon Descriptions (use | as line breaks)
 04:00=Атакуй своих врагов обычной гранатой.|Она взорвется сразу, как только таймер|достигнет нуля.|1-5: Установить таймер гранаты|Атака: Удерживай для более дальнего броска
@@ -506,6 +514,15 @@
 04:47=Удвой веселье с двумя шипованными, коварными,|липучими минами. Устрой цепную реакцию или|защити себя (или то и другое!)|Атака: Удерживай для более дальнего броска|(дважды)
 04:48=Почему кротам достаются все оскорбления?|Вакингующий ёж может быть столь забавным!|Хороший удар этого молота сбреет треть|здоровья ежа и погрузит его в землю.|Атака: Ударить молотом
 04:49=Воскреси своих друзей!|Но будь осторожен, т.к. оно также воскресит|твоих врагов.|Атака: Удерживай атаку нажатой для медленного|воскрешения|Вверх: Ускорить воскрешение
+04:50=Кто-то скрывается под землёй?|Достань их сверлящим ударом!|Таймер контролирует глубину бурения.|Влево/Вправо: Определить направление атаки|1-5: Установить таймер|Курсор: Выбрать бомбардируемую область
+04:51=Швырни в противника комок грязи задаром!|Не наносит урона, но сталкивает|ежей и другие объекты назад.|Атака: Удерживай для более дальнего броска
+04:52=Не используется
+04:53=Проделайте путь сквозь время и пространство,|пока ваши соратники борятся в одиночестве.|Будьте готовы вернуться в любое время,|при Внезапной Смерти или когда все союзники повержены.|Предупреждение. Не работает во время Внезапной Смерти,|если вы один или если вы Король.|Атака: Активировать
+04:54=Распыляет поток липких хлопьеы.|Строит мосты, хоронит врагов, перекрывает туннели.|Будьте осторожны - эти хлопья не прилипают к вам!|Атака: Активировать|Вверх/Вниз: Продолжать прицельную стрельбу|Влево/Вправо: Изменить силу (дальность) распыления
+04:55=Bерните ледниковый период!|Замораживает ежей, делает пол скользким или|спасает вас от утопления, замораживая воду.|Атака: Включить/Выключить замораживатель|Вверх/Вниз: Продолжать прицельную стрельбу
+04:56=Вы можете бросить два секача во врага,|заблокировать проходы и туннели|и даже использовать их для восхождения!|Bострожно! Игры с ножами опасны.|Атака: Удерживай для выстрела с большей силой (дважды)
+04:57=Строит ОЧЕНЬ эластичный батут, от которого|ежи и другие объекты будут отскакивать|без получения урона.|Влево/Вправо: Изменить положение батута|Курсор: Разместить батут в нужной позиции
+04:58=Эта неконтактная бомба будет свободно летать в воздухе|и следовать за неосторожными ежами,|подходящими к ней слишком близко.|Однако, урон от взрыва слабее урона от обычной мины.|Атака: Удерживай для выстрела с большей силой
 
 ; Game goal strings
 05:00=Режимы игры
--- a/share/hedgewars/Data/Locale/stub.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/stub.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -10,8 +10,11 @@
 --      ["+2 for becoming a Mutant"] = "", -- Mutant
 --      ["30 minutes later..."] = "", -- A_Classic_Fairytale:shadow
 --      ["About a month ago, a cyborg came and told us that you're the cannibals!"] = "", -- A_Classic_Fairytale:enemy
+--      ["Above-average pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Accuracy Bonus!"] = "",
+--      ["Accuracy bonus: +%d points"] = "", -- Basic_Training_-_Sniper_Rifle
 --      ["Ace"] = "", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
+--      ["Achievement obtained: Lively Lifeguard"] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["Achievement Unlocked"] = "", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_That_Sinking_Feeling, Tumbler
 --      ["A Classic Fairytale"] = "", -- A_Classic_Fairytale:first_blood
 --      ["???"] = "", -- A_Classic_Fairytale:backstab
@@ -30,6 +33,7 @@
 --      ["a Hedgewars tag game"] = "", -- Mutant
 --      ["AHHh, home sweet home.  Made it in %d seconds."] = "", -- ClimbHome
 --      ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle
+--      ["Aiming practice"] = "", -- TargetPractice
 --      ["Air Attack"] = "", -- Construction_Mode
 --      ["A leap in a leap"] = "", -- A_Classic_Fairytale:first_blood
 --      ["A little gift from the cyborgs"] = "", -- A_Classic_Fairytale:shadow
@@ -71,13 +75,16 @@
 --      ["Attack From Rope"] = "", -- WxW
 --      ["Australia"] = "", -- Continental_supplies
 --      ["Available points remaining: "] = "",
+--      ["Average pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Back Breaker"] = "", -- A_Classic_Fairytale:backstab
 --      ["Back in the village, after telling the villagers about the threat..."] = "", -- A_Classic_Fairytale:united
 --      ["[Backspace]"] = "",
 --      ["Backstab"] = "", -- A_Classic_Fairytale:backstab
+--      ["Bad Guy"] = "", -- User_Mission_-_The_Great_Escape
+--      ["badmad"] = "", -- portal
 --      ["Bad Team"] = "", -- User_Mission_-_The_Great_Escape
 --      ["Ballgun"] = "", -- Construction_Mode
---      ["Bamboo Thicket"] = "",
+--      ["Bamboo Thicket"] = "", -- User_Mission_-_Bamboo_Thicket
 --      ["Barrel Eater!"] = "",
 --      ["Barrel Launcher"] = "",
 --      ["Barrel Placement Mode"] = "", -- Construction_Mode
@@ -88,6 +95,8 @@
 --      ["Bazooka"] = "", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
 --      ["Bazooka Training"] = "",
 --      ["Beep Loopers"] = "", -- A_Classic_Fairytale:queen
+--      ["Beginner"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["Below-average pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Best laps per team: "] = "",
 --      ["Best Team Times: "] = "",
 --      ["Beware, though! If you are slow, you die!"] = "", -- A_Classic_Fairytale:dragon
@@ -101,12 +110,14 @@
 --      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
 --      ["Blowtorch"] = "", -- Construction_Mode, Frenzy
 --      ["Blue Team"] = "", -- User_Mission_-_Dangerous_Ducklings
+--      ["Bobo"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["Bone Jackson"] = "", -- A_Classic_Fairytale:backstab
 --      ["Bonely"] = "", -- A_Classic_Fairytale:shadow
 --      ["BOOM!"] = "",
 --      ["Boom!"] = "",
 --      ["Boss defeated!"] = "",
 --      ["Boss Slayer!"] = "",
+--      ["BOTTOM FEEDER"] = "", -- Mutant
 --      ["Brain Blower"] = "", -- A_Classic_Fairytale:journey
 --      ["Brainiac"] = "", -- A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:shadow
 --      ["Brainila"] = "", -- A_Classic_Fairytale:united
@@ -125,6 +136,8 @@
 --      ["But why would they help us?"] = "", -- A_Classic_Fairytale:backstab
 --      ["But you're cannibals. It's what you do."] = "", -- A_Classic_Fairytale:enemy
 --      ["But you said you'd let her go!"] = "", -- A_Classic_Fairytale:journey
+--      ["C-1"] = "", -- portal
+--      ["C-2"] = "", -- portal
 --      ["Cake"] = "", -- Construction_Mode
 --      ["Call me Beep! Well, 'cause I'm such a nice...person!"] = "", -- A_Classic_Fairytale:family
 --      ["Cannibals"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood
@@ -133,9 +146,13 @@
 --      ["CAPTURE THE FLAG"] = "",
 --      ["Careless"] = "",
 --      ["Carol"] = "", -- A_Classic_Fairytale:family
+--      ["Challenge"] = "", -- SpeedShoppa
 --      ["CHALLENGE COMPLETE"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["Challenge completed!"] = "", -- SpeedShoppa
+--      ["Challenge failed!"] = "", -- SpeedShoppa
 --      ["Change Weapon"] = "",
 --      ["changing range from %i%% to %i%% with period of %i msec"] = "", -- Gravity
+--      ["Cheater"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Choose your side! If you want to join the strange man, walk up to him.|Otherwise, walk away from him. If you decide to att...nevermind..."] = "", -- A_Classic_Fairytale:shadow
 --      ["Cleaver"] = "", -- Construction_Mode
 --      ["Cleaver Placement Mode"] = "", -- Construction_Mode
@@ -160,29 +177,36 @@
 --      ["Configuration accepted."] = "", -- WxW
 --      ["Congratulations!"] = "",
 --      ["Congratulations"] = "", -- Basic_Training_-_Rope
+--      ["Congratulations! You have destroyed all targets within the time."] = "", -- TargetPractice
+--      ["Congratulations! You have truly mastered this challenge! Don't forget to save the demo."] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Congratulations! You needed only half of time|to eliminate all targets."] = "", -- Basic_Training_-_Cluster_Bomb
 --      ["Congratulations! You've completed the Rope tutorial! |- Tutorial ends in 10 seconds!"] = "", -- Basic_Training_-_Rope
 --      ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
 --      ["CONSTRUCTION MODE"] = "", -- Construction_Mode
 --      ["Construction Station"] = "", -- Construction_Mode
 --      ["Continental supplies"] = "", -- Continental_supplies
---      ["Control pillars to score points."] = "",
+--      ["CONTROL"] = "", -- Control
+--      ["Control pillars to score points."] = "", -- Control
+--      ["Copper"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["Core"] = "", -- Construction_Mode
 --      ["Corporationals"] = "", -- A_Classic_Fairytale:queen
 --      ["Corpsemonger"] = "", -- A_Classic_Fairytale:shadow
 --      ["Corpse Thrower"] = "", -- A_Classic_Fairytale:epil
 --      ["Cost"] = "", -- Construction_Mode
 --      ["Crate Placement Tool"] = "", -- Construction_Mode
---      ["Crates Left:"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["Crates left: %d"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["crate(s)"] = "", -- SpeedShoppa
+--      ["%d crate(s) remaining"] = "", -- SpeedShoppa
 --      ["Cricket time: [Drop a fireable mine! ~ Will work if fired close to your hog & far away from enemy ~ 1 sec]"] = "", -- Continental_supplies
 --      ["Current setting is "] = "", -- Gravity
---      ["Cybernetic Empire"] = "",
+--      ["Cybernetic Empire"] = "", -- User_Mission_-_Bamboo_Thicket
 --      ["Cyborg. It's what the aliens call themselves."] = "", -- A_Classic_Fairytale:enemy
 --      ["Dahmer"] = "", -- A_Classic_Fairytale:backstab
 --      ["DAMMIT, ROOKIE!"] = "",
 --      ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
---      ["Dangerous Ducklings"] = "",
+--      ["Dangerous Ducklings"] = "", -- User_Mission_-_Dangerous_Ducklings
 --      ["Deadweight"] = "",
+--      ["deaths"] = "", -- Mutant
 --      ["Decrease"] = "", -- Continental_supplies
 --      ["Defeat the cannibals"] = "", -- A_Classic_Fairytale:backstab
 --      ["Defeat the cannibals!|"] = "", -- A_Classic_Fairytale:united
@@ -191,20 +215,25 @@
 --      ["Defend your core from the enemy."] = "", -- Construction_Mode
 --      ["Defend yourself!|Hint: You can get tips on using weapons by moving your mouse over them in the weapon selection menu"] = "", -- A_Classic_Fairytale:shadow
 --      ["Dematerializes weapons and equipment carried by enemy hedgehogs."] = "", -- Construction_Mode
+--      ["Demo"] = "", -- The_Specialists
 --      ["Demolition is fun!"] = "",
 --      ["Dense Cloud"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
 --      ["Dense Cloud must have already told them everything..."] = "", -- A_Classic_Fairytale:shadow
 --      ["Depleted Kamikaze!"] = "",
+--      ["Derp"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["Desert Eagle"] = "", -- Construction_Mode, A_Space_Adventure:death02
 --      ["Destroy him, Leaks A Lot! He is responsible for the deaths of many of us!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Destroy invaders to score points."] = "",
 --      ["Destroy the targets!|Hint: Select the Shoryuken and hit [Space]|P.S. You can use it mid-air."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Destroy the targets!|Hint: [Up], [Down] to aim, [Space] to shoot"] = "", -- A_Classic_Fairytale:first_blood
+--      ["Destroyer of planes"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Did anyone follow you?"] = "", -- A_Classic_Fairytale:united
 --      ["Did you see him coming?"] = "", -- A_Classic_Fairytale:shadow
 --      ["Did you warn the village?"] = "", -- A_Classic_Fairytale:shadow
 --      ["Die, die, die!"] = "", -- A_Classic_Fairytale:dragon
+--      ["Disabled"] = "", -- WxW
 --      ["Disguise as a Rockhopper Penguin: [Swap place with a random enemy hog in the circle]"] = "", -- Continental_supplies
+--      ["Disqualified!"] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["Dist: "] = "", -- Space_Invasion
 --      ["Do not laugh, inexperienced one, for he speaks the truth!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Do not let his words fool you, young one! He will stab you in the back as soon as you turn away!"] = "", -- A_Classic_Fairytale:first_blood
@@ -220,7 +249,8 @@
 --      ["Drone Hunter!"] = "",
 --      ["Drop a bomb: [Drop some heroic wind that will turn into a bomb on impact]"] = "", -- Continental_supplies
 
---      ["Drowner"] = "",
+--      ["Drowner"] = "", -- User_Mission_-_Nobody_Laugh
+--      ["Drunk greenhorn"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Dude, all the plants are gone!"] = "", -- A_Classic_Fairytale:family
 --      ["Dude, can you see Ramon and Spiky?"] = "", -- A_Classic_Fairytale:journey
 --      ["Dude, that's so cool!"] = "", -- A_Classic_Fairytale:backstab
@@ -239,6 +269,7 @@
 --      ["Eagle Eye: [Blink to the impact ~ One shot]"] = "", -- Continental_supplies
 
 --      ["Ear Sniffer"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:epil
+--      ["Eckles"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["Elderbot"] = "", -- A_Classic_Fairytale:family
 --      ["Elimate your captor."] = "", -- User_Mission_-_The_Great_Escape
 --      ["Eliminate all enemies"] = "",
@@ -250,8 +281,11 @@
 --      ["Eliminate the enemy hogs to win."] = "",
 --      ["Eliminate the enemy specialists."] = "",
 --      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+--      ["Elite pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Elmo"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
---      ["Energetic Engineer"] = "",
+--      ["Enabled"] = "", -- WxW
+--      ["Energetic Engineer"] = "", -- User_Mission_-_Bamboo_Thicket
+--      ["Engineer"] = "", -- The_Specialists
 --      ["Enjoy the swim..."] = "",
 --      ["[Enter]"] = "",
 --      ["Europe"] = "", -- Continental_supplies
@@ -260,6 +294,7 @@
 --      ["Every single time!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Everything looks OK..."] = "", -- A_Classic_Fairytale:enemy
 --      ["Exactly, man! That was my dream."] = "", -- A_Classic_Fairytale:backstab
+--      ["Experienced beginner"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Extra Damage"] = "", -- Construction_Mode
 --      ["Extra Time"] = "", -- Construction_Mode
 --      ["Eye Chewer"] = "", -- A_Classic_Fairytale:journey
@@ -288,10 +323,12 @@
 --      ["Flamer"] = "",
 --      ["Flamethrower"] = "", -- Construction_Mode
 --      ["Flaming Worm"] = "", -- A_Classic_Fairytale:backstab
+--      ["Flawless victory!"] = "", -- User_Mission_-_RCPlane_Challenge
 
 --      ["Flesh for Brainz"] = "", -- A_Classic_Fairytale:journey
 --      ["Flying Saucer"] = "", -- Construction_Mode, Frenzy
 --      ["For improved features/stability, play 0.9.18+"] = "", -- WxW
+--      ["Frank"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["Free Dense Cloud and continue the mission!"] = "", -- A_Classic_Fairytale:journey
 --      ["Freezer"] = "", -- Construction_Mode
 --      ["FRENZY"] = "", -- Frenzy
@@ -338,14 +375,18 @@
 --      ["Grants nearby hogs life-regeneration."] = "", -- Construction_Mode
 --      ["Gravity"] = "", -- Gravity
 --      ["Great choice, Steve! Mind if I call you that?"] = "", -- A_Classic_Fairytale:shadow
+--      ["GREAT ! Let's kill all this enemies, using portals"] = "", -- portal
 --      ["Great work! Now hit it with your Baseball Bat! |Tip: You can change weapon with 'Right Click'!"] = "", -- Basic_Training_-_Rope
 --      ["Great! You will be contacted soon for assistance."] = "", -- A_Classic_Fairytale:shadow
 
+--      ["Greenhorn"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Green lipstick bullet: [Poisonous, deals no damage]"] = "", -- Continental_supplies
 --      ["Greetings, "] = "", -- A_Classic_Fairytale:dragon
 --      ["Greetings, cloudy one!"] = "", -- A_Classic_Fairytale:shadow
 --      ["Grenade"] = "", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
+--      ["Grenade Group"] = "", -- Target_Practice_-_Grenade_easy, Target_Practice_-_Grenade_hard
 --      ["Grenade Training"] = "", -- Basic_Training_-_Grenade
+--      ["Grenadier"] = "", -- Target_Practice_-_Grenade_easy, Target_Practice_-_Grenade_hard
 --      ["Grenadiers"] = "", -- Basic_Training_-_Grenade
 --      ["Guys, do you think there's more of them?"] = "", -- A_Classic_Fairytale:backstab
 --      ["HAHA!"] = "", -- A_Classic_Fairytale:enemy
@@ -355,7 +396,8 @@
 --      ["Hammer"] = "", -- Construction_Mode, Continental_supplies
 --      ["Hannibal"] = "", -- A_Classic_Fairytale:epil
 --      ["Hapless Hogs"] = "",
---      [" Hapless Hogs left!"] = "",
+--      ["%d Hapless Hogs left"] = "",
+--      ["Harry"] = "", -- User_Mission_-_Nobody_Laugh
 --      [" HAS MUTATED"] = "", -- Mutant
 --      ["Hatless Jerry"] = "", -- A_Classic_Fairytale:queen
 --      ["Have no illusions, your tribe is dead, indifferent of your choice."] = "", -- A_Classic_Fairytale:shadow
@@ -363,6 +405,7 @@
 --      ["Healing Station"] = "", -- Construction_Mode
 --      ["Health Crate Placement Mode"] = "", -- Construction_Mode
 --      ["Health crates extend your time."] = "",
+--      ["Heartful"] = "", -- Challenge_-_Speed_Shoppa_-_Hedgelove
 --      ["Heavy"] = "",
 --      ["Heavy Cannfantry"] = "", -- A_Classic_Fairytale:united
 --      ["Hedge-cogs"] = "", -- A_Classic_Fairytale:enemy
@@ -372,6 +415,7 @@
 --      ["Hedgewars-Knockball"] = "",
 --      ["Hedgibal Lecter"] = "", -- A_Classic_Fairytale:backstab
 --      ["Heh, it's not that bad."] = "",
+--      ["Hell Army"] = "", -- portal
 --      ["Hellish Handgrenade"] = "", -- Construction_Mode
 --      ["Hello again, "] = "", -- A_Classic_Fairytale:family
 --      ["Help me, Leaks!"] = "", -- A_Classic_Fairytale:journey
@@ -389,6 +433,7 @@
 --      ["Hey guys!"] = "", -- A_Classic_Fairytale:united
 --      ["Hey! This is cheating!"] = "", -- A_Classic_Fairytale:journey
 --      ["HIGHLANDER"] = "", -- Highlander
+--      ["hiden"] = "", -- portal
 --      ["Hightime"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hint: Double Jump - Press [Backspace] twice"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hint: Select the BlowTorch, aim and press [Fire]. Press [Fire] again to stop.|Don't blow up the crate."] = "", -- A_Classic_Fairytale:journey
@@ -396,6 +441,7 @@
 --      ["Hint: you might want to stay out of sight and take all the crates...|"] = "", -- A_Classic_Fairytale:journey
 --      ["His arms are so strong!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hit Combo!"] = "",
+--      ["hits"] = "", -- Basic_Training_-_Bazooka
 --      ["Hmmm..."] = "",
 --      ["Hmmm...actually...I didn't either."] = "", -- A_Classic_Fairytale:enemy
 --      ["Hmmm, I'll have to find some way of moving him off this anti-portal surface..."] = "", -- portal
@@ -406,7 +452,9 @@
 --      ["HOLY SHYTE!"] = "", -- Mutant
 --      ["Homing Bee"] = "", -- Construction_Mode
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
+--      ["Hook"] = "", -- Challenge_-_Speed_Shoppa_-_Ropes
 --      ["Hooray!"] = "",
+--      ["Hopeless case"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
 --      ["How can I ever repay you for saving my life?"] = "", -- A_Classic_Fairytale:journey
 --      ["How come in a village full of warriors, it's up to me to save it?"] = "", -- A_Classic_Fairytale:dragon
@@ -438,6 +486,7 @@
 --      ["If you get stuck, use your Desert Eagle or restart the mission!|"] = "", -- A_Classic_Fairytale:journey
 --      ["If you know what I mean..."] = "", -- A_Classic_Fairytale:shadow
 --      ["If you say so..."] = "", -- A_Classic_Fairytale:shadow
+--      ["Igmund"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["I guess you'll have to kill them."] = "", -- A_Classic_Fairytale:dragon
 --      ["I have come to make you an offering..."] = "", -- A_Classic_Fairytale:shadow
 --      ["I have no idea where that mole disappeared...Can you see it?"] = "", -- A_Classic_Fairytale:shadow
@@ -447,6 +496,7 @@
 --      ["I just don't want to sink to your level."] = "", -- A_Classic_Fairytale:backstab
 --      ["I just found out that they have captured your princess!"] = "", -- A_Classic_Fairytale:family
 --      ["I just wonder where Ramon and Spiky disappeared..."] = "", -- A_Classic_Fairytale:journey
+--      ["Ikeda"] = "", -- User_Mission_-_Bamboo_Thicket
 --      ["I'll hold them off while you return to the village!"] = "", -- A_Classic_Fairytale:shadow
 --      ["Imagine those targets are the wolves that killed your parents! Take your anger out on them!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["I'm...alive? How? Why?"] = "", -- A_Classic_Fairytale:backstab
@@ -471,18 +521,23 @@
 --      ["In order to get to the other side, you need to collect the crates first.|"] = "", -- A_Classic_Fairytale:dragon
 --      ["INSANITY"] = "", -- Mutant
 --      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+--      ["Insufficient Power"] = "", -- Construction_Mode
 --      ["Interesting idea, haha!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Interesting! Last time you said you killed a cannibal!"] = "", -- A_Classic_Fairytale:backstab
 --      ["In the meantime, take these and return to your \"friend\"!"] = "", -- A_Classic_Fairytale:shadow
 --      ["invaders destroyed"] = "",
+--      ["Invalid Placement"] = "", -- Construction_Mode
 --      ["Invasion"] = "", -- A_Classic_Fairytale:united
 --      ["Invulnerable"] = "", -- Construction_Mode
+--      ["In your best (and only) flight you took out %d crates with one RC plane!"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["In your best flight you took out %d crates with one RC plane."] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["I saw it with my own eyes!"] = "", -- A_Classic_Fairytale:shadow
 --      ["I see..."] = "", -- A_Classic_Fairytale:shadow
 --      ["I see you have already taken the leap of faith."] = "", -- A_Classic_Fairytale:first_blood
 --      ["I see you would like his punishment to be more...personal..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["I sense another wave of cannibals heading my way!"] = "", -- A_Classic_Fairytale:backstab
 --      ["I sense another wave of cannibals heading our way!"] = "", -- A_Classic_Fairytale:backstab
+--      ["I should get myself a portal gun, maybe this crate has one"] = "", -- portal
 --      ["I shouldn't have drunk that last pint."] = "", -- A_Classic_Fairytale:dragon
 --      ["Is this place in my head?"] = "", -- A_Classic_Fairytale:dragon
 --      ["It doesn't matter. I won't let that alien hurt my daughter!"] = "", -- A_Classic_Fairytale:dragon
@@ -529,6 +584,7 @@
 --      ["Kill the aliens!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Kill the cannibal!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Kill the traitor...or spare his life!|Kill him or press [Precise]!"] = "", -- A_Classic_Fairytale:backstab
+--      ["King Customer"] = "", -- Challenge_-_Speed_Shoppa_-_ShoppaKing
 --      ["Land Sprayer"] = "", -- Construction_Mode
 --      ["Laser Sight"] = "", -- Construction_Mode
 --      ["Last Target!"] = "",
@@ -542,6 +598,7 @@
 --      ["Lee"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["[Left Shift]"] = "",
 --      ["left shift"] = "", -- Continental_supplies
+--      ["Lestat"] = "", -- portal
 --      ["Let a Continent provide your weapons!"] = "", -- Continental_supplies
 --      ["Let me test your skills a little, will you?"] = "", -- A_Classic_Fairytale:journey
 --      ["Let's go home!"] = "", -- A_Classic_Fairytale:journey
@@ -562,7 +619,9 @@
 --      ["Look out! There's more of them!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Look out! We're surrounded by cannibals!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Looks like the whole world is falling apart!"] = "", -- A_Classic_Fairytale:enemy
+--      ["Loon"] = "", -- The_Specialists
 --      ["Low Gravity"] = "", -- Construction_Mode, Frenzy
+--      ["Lucifer"] = "", -- portal
 --      ["Luckily, I've managed to snatch some of them."] = "", -- A_Classic_Fairytale:united
 --      ["LUDICROUS KILL"] = "", -- Mutant
 --      ["Made it!"] = "", -- ClimbHome
@@ -571,6 +630,7 @@
 --      ["Medicine: [Fire some exploding medicine that will heal all hogs effected by the explosion]"] = "", -- Continental_supplies
 --      ["MEGA KILL"] = "", -- Mutant
 --      ["Meiwes"] = "", -- A_Classic_Fairytale:backstab
+--      ["milliseconds"] = "", -- SpeedShoppa
 --      ["Mindy"] = "", -- A_Classic_Fairytale:united
 --      ["Mine"] = "", -- Construction_Mode, Frenzy
 --      ["Mine Deployer"] = "",
@@ -579,8 +639,10 @@
 --      ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["Mine Strike"] = "", -- Construction_Mode
 --      ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Mission lost!"] = "", -- Basic_Training_-_Grenade
 --      ["MISSION SUCCESS"] = "",
 --      ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+--      ["Mission won!"] = "", -- Basic_Training_-_Grenade
 --      ["Molotov Cocktail"] = "", -- Construction_Mode
 --      ["Molotov"] = "", -- Continental_supplies
 --      ["MONSTER KILL"] = "", -- Mutant
@@ -592,6 +654,7 @@
 --      ["Muriel"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Muscle Dissolver"] = "", -- A_Classic_Fairytale:shadow
 --      ["-------"] = "", -- Mutant
+--      ["MUTANT"] = "", -- Mutant
 --      ["Mutant"] = "", -- Mutant
 --      ["Nade Boy"] = "", -- Basic_Training_-_Grenade
 --      ["Name"] = "", -- A_Classic_Fairytale:queen
@@ -611,6 +674,7 @@
 --      ["Nice work, "] = "", -- A_Classic_Fairytale:dragon
 --      ["Nice work!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Nilarian"] = "", -- A_Classic_Fairytale:queen
+--      ["Ninja"] = "", -- The_Specialists
 --      ["Nobody Laugh"] = "", -- User_Mission_-_Nobody_Laugh
 --      ["No, I came back to help you out..."] = "", -- A_Classic_Fairytale:shadow
 --      ["No...I wonder where they disappeared?!"] = "", -- A_Classic_Fairytale:journey
@@ -649,6 +713,7 @@
 --      ["Once upon a time, on an island with great natural resources, lived two tribes in heated conflict..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["ONE HOG PER TEAM! KILLING EXCESS HEDGES"] = "", -- Mutant
 --      ["One tribe was peaceful, spending their time hunting and training, enjoying the small pleasures of life..."] = "", -- A_Classic_Fairytale:first_blood
+--      ["oneye"] = "", -- portal
 --      ["on Skip"] = "", -- Continental_supplies
 --      ["Oops...I dropped them."] = "", -- A_Classic_Fairytale:united
 --      ["Open that crate and we will continue!"] = "", -- A_Classic_Fairytale:first_blood
@@ -669,14 +734,15 @@
 
 --      ["Per team weapons"] = "", -- Continental_supplies
 --      ["Pfew! That was close!"] = "", -- A_Classic_Fairytale:shadow
+--      ["phosphatoglucidique"] = "", -- portal
 --      ["Piano Strike"] = "", -- Construction_Mode
 --      ["Pickhammer"] = "", -- Construction_Mode
 
 --      ["Pings left:"] = "", -- Space_Invasion
 --      ["Place more waypoints using the 'Air Attack' weapon."] = "",
---      ["Planes Used:"] = "", -- User_Mission_-_RCPlane_Challenge
---      ["Planes Used"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["Planes used: %d"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Play with me!"] = "", -- A_Classic_Fairytale:shadow
+--      ["player"] = "", -- portal
 --      ["Please place the way-point further from the waterline."] = "", -- Racer
 --      ["Please place the way-point in the open, within the map boundaries."] = "", -- Racer
 --      ["Please, stop releasing your \"smoke signals\"!"] = "", -- A_Classic_Fairytale:shadow
@@ -688,21 +754,28 @@
 --      ["Portal hint: one goes to the destination, and one is the entrance.|"] = "", -- A_Classic_Fairytale:dragon
 --      ["Portal mission"] = "", -- portal
 --      ["Power Remaining"] = "",
+--      ["Predator"] = "", -- portal
 --      ["Prepare yourself"] = "",
 --      ["presice"] = "", -- Continental_supplies
 --      ["Press [Enter] to accept this configuration."] = "", -- WxW
 --      ["Press [Left] or [Right] to move around, [Enter] to jump"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Press [Precise] to skip intro"] = "",
 --      ["Prestigious Pilot"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["Private Nolak"] = "", -- Target_Practice_-_Cluster_Bomb
 --      ["Private Novak"] = "", -- Basic_Training_-_Cluster_Bomb
+--      ["Professional pilot"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["Professional stunt pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Protect yourselves!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
+--      ["Pyro"] = "", -- The_Specialists
 --      ["Race complexity limit reached."] = "",
 --      ["RACER"] = "",
 --      ["Rachel"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Radar Ping"] = "", -- Space_Invasion
 --      ["Raging Buffalo"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
 --      ["Ramon"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
+--      ["Rank: %s"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["random in range from %i%% to %i%% with period of %i msec"] = "", -- Gravity
+--      ["razac"] = "", -- portal
 --      ["RC Plane"] = "", -- Construction_Mode
 --      ["RC PLANE TRAINING"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Really?! You thought you could harm me with your little toys?"] = "", -- A_Classic_Fairytale:shadow
@@ -713,14 +786,21 @@
 --      ["Remember: The rope only bend around objects, |if it doesn't hit anything it's always stright!"] = "", -- Basic_Training_-_Rope
 --      ["Remember this, pathetic animal: when the day comes, you will regret your blind loyalty!"] = "", -- A_Classic_Fairytale:shadow
 --      ["REMOVED"] = "", -- Continental_supplies
+--      ["rescues"] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["Respawner"] = "", -- Construction_Mode
 --      ["Resurrector"] = "", -- Construction_Mode
 --      ["Resurrects dead hedgehogs."] = "", -- Construction_Mode
 --      [" - 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 to Leaks A Lot! If you get stuck, press [Precise] to try again!"] = "", -- A_Classic_Fairytale:shadow
+--      ["Rider"] = "", -- portal
 --      ["Righteous Beard"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
+--      ["ronald"] = "", -- portal
 --      ["Rope"] = "", -- Construction_Mode
 --      ["ROPE-KNOCKING"] = "", -- User_Mission_-_Rope_Knock_Challenge
+--      ["Rope Master!"] = "", -- Basic_Training_-_Rope
+--      ["Roper"] = "", -- SpeedShoppa
+--      ["Ropes and Crates"] = "", -- Challenge_-_Speed_Shoppa_-_Ropes
+--      ["Rope Team"] = "", -- Basic_Training_-_Rope
 --      ["Rope to safety"] = "", -- ClimbHome
 --      ["Rope Training"] = "", -- Basic_Training_-_Rope
 --      ["Rot Molester"] = "", -- A_Classic_Fairytale:shadow
@@ -736,6 +816,7 @@
 --      ["s|"] = "",
 --      ["Sabotage/Flare: [Sabotage all hogs in the circle and deal ~1 dmg OR Fire a cluster up into the air]"] = "", -- Continental_supplies
 
+--      ["Saint"] = "", -- The_Specialists
 --      ["Salivaslurper"] = "", -- A_Classic_Fairytale:united
 --      ["Salvation"] = "", -- A_Classic_Fairytale:family
 --      ["Salvation was one step closer now..."] = "", -- A_Classic_Fairytale:dragon
@@ -749,6 +830,7 @@
 --      ["Score"] = "", -- Mutant
 
 --      ["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
+--      ["%.1f seconds were remaining."] = "", -- Basic_Training_-_Bazooka
 --      ["Seduction"] = "", -- Continental_supplies
 --      ["Seems like every time you take a \"walk\", the enemy find us!"] = "", -- A_Classic_Fairytale:backstab
 --      ["See that crate farther on the right?"] = "", -- A_Classic_Fairytale:first_blood
@@ -771,6 +853,8 @@
 --      ["Shield OFF:"] = "",
 --      ["Shield ON:"] = "",
 --      ["Shield Seeker!"] = "",
+--      ["Shoppa Union"] = "", -- Challenge_-_Speed_Shoppa_-_Ropes, Challenge_-_Speed_Shoppa_-_ShoppaKing
+--      ["Shoppers"] = "", -- SpeedShoppa
 --      ["Shoryuken"] = "", -- Construction_Mode, Frenzy, A_Space_Adventure:death02
 --      ["Shotgun"] = "", -- Continental_supplies
 --      ["Shotgun Team"] = "",
@@ -792,16 +876,19 @@
 --      ["Smith 0.99b"] = "", -- A_Classic_Fairytale:enemy
 --      ["Smith 0.99f"] = "", -- A_Classic_Fairytale:enemy
 --      ["Smith 1.0"] = "", -- A_Classic_Fairytale:enemy
+--      ["Sniper"] = "", -- The_Specialists
 --      ["Sniper Rifle"] = "", -- Continental_supplies
 --      ["Sniper!"] = "", -- Space_Invasion
 --      ["Sniper Training"] = "",
 --      ["Sniperz"] = "",
 --      ["So humiliating..."] = "", -- A_Classic_Fairytale:first_blood
+--      ["Soldier"] = "", -- The_Specialists
 --      ["Some weapons have a second option. Find them with"] = "", -- Continental_supplies
 --      ["South America"] = "", -- Continental_supplies
 --      ["So? What will it be?"] = "", -- A_Classic_Fairytale:shadow
 --      ["Spawn the crate, and attack!"] = "", -- WxW
 --      ["Special Weapons:"] = "", -- Continental_supplies
+--      ["Speed Shoppa"] = "", -- SpeedShoppa
 --      ["Spiky Cheese"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
 --      ["Spleenlover"] = "", -- A_Classic_Fairytale:united
 --      ["Sponge"] = "",
@@ -818,6 +905,7 @@
 
 --      ["Structure Placement Mode"] = "", -- Construction_Mode
 --      ["Structure Placement Tool"] = "", -- Construction_Mode
+--      ["Subject"] = "", -- portal
 --      ["Sundaland"] = "", -- Continental_supplies
 --      ["Super Weapons"] = "", -- WxW
 --      ["Support Station"] = "", -- Construction_Mode
@@ -835,9 +923,17 @@
 --      ["Talk about mixed signals..."] = "", -- A_Classic_Fairytale:dragon
 --      ["Tardis"] = "", -- Construction_Mode
 --      ["Target Placement Mode"] = "", -- Construction_Mode
+--      ["Target Practice: Bazooka (easy)"] = "", -- Target_Practice_-_Bazooka_easy
+--      ["Target Practice: Bazooka (hard)"] = "", -- Target_Practice_-_Bazooka_hard
+--      ["Target Practice: Grenade (easy)"] = "", -- Target_Practice_-_Grenade_easy
+--      ["Target Practice: Grenade (hard)"] = "", -- Target_Practice_-_Grenade_hard
+--      ["Target Practice: Homing Bee"] = "", -- Target_Practice_-_Homing_Bee
+--      ["Target Practice: Shotgun"] = "", -- Target_Practice_-_Shotgun
+--      ["Targets left: %d"] = "", -- TargetPractice
 --      ["Team %d: "] = "",
+--      ["Team of Hearts"] = "", -- Challenge_-_Speed_Shoppa_-_Hedgelove
 --      ["Team Scores"] = "", -- Control, Space_Invasion
---      ["Teleporation Node"] = "", -- Construction_Mode
+--      ["Team Zook"] = "", -- Target_Practice_-_Bazooka_easy, Target_Practice_-_Bazooka_hard
 --      ["Teleportation Mode"] = "", -- Construction_Mode
 --      ["Teleportation Node"] = "", -- Construction_Mode
 --      ["Teleport"] = "", -- Construction_Mode, Frenzy
@@ -863,6 +959,7 @@
 --      ["The Bull's Eye"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The caves are well hidden, they won't find us there!"] = "", -- A_Classic_Fairytale:united
 --      ["The Crate Frenzy"] = "", -- A_Classic_Fairytale:first_blood
+--      ["The Customer is King"] = "", -- Challenge_-_Speed_Shoppa_-_ShoppaKing
 --      ["The Dilemma"] = "", -- A_Classic_Fairytale:shadow
 --      ["The enemy can't move but it might be a good idea to stay out of sight!|"] = "", -- A_Classic_Fairytale:dragon
 --      ["The enemy is hiding out on yonder ducky!"] = "",
@@ -871,11 +968,13 @@
 --      ["The First Encounter"] = "", -- A_Classic_Fairytale:shadow
 --      ["The first player to kill someone becomes the Mutant."] = "", -- Mutant
 --      ["The flag will respawn next round."] = "",
+--      ["The flood has stopped! Challenge over."] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["The food bites back"] = "", -- A_Classic_Fairytale:backstab
 --      ["The giant umbrella from the last crate should help break the fall."] = "", -- A_Classic_Fairytale:first_blood
 --      ["The Great Escape"] = "", -- User_Mission_-_The_Great_Escape
 --      ["The Great Hog in the sky sees your sadness and grants you a boon."] = "", -- Construction_Mode
 --      ["The guardian"] = "", -- A_Classic_Fairytale:shadow
+--      ["The Hogies"] = "", -- Target_Practice_-_Cluster_Bomb
 --      ["The Individualist"] = "", -- A_Classic_Fairytale:shadow
 --      ["Their buildings were very primitive back then, even for an uncivilised island."] = "", -- A_Classic_Fairytale:united
 --      ["The Journey Back"] = "", -- A_Classic_Fairytale:journey
@@ -929,15 +1028,18 @@
 --      ["This must be the caves!"] = "", -- A_Classic_Fairytale:backstab
 --      ["This one's tricky."] = "",
 --      ["This rain is really something..."] = "",
+--      ["This was an awesome performance! But this challenge can be finished with even just one RC plane. Can you figure out how?"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["This will be fun!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Those aliens are destroying the island!"] = "", -- A_Classic_Fairytale:family
 --      ["TIME: "] = "",
 --      ["Timed Kamikaze!"] = "",
 --      ["Time Extended!"] = "",
 --      ["Time Extension"] = "",
+--      ["Time's up!"] = "", -- Basic_Training_-_Sniper_Rifle
 --      ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "", -- Basic_Training_-_Rope
 --      ["Toggle Shield"] = "",
 --      ["To help you, of course!"] = "", -- A_Classic_Fairytale:journey
+--      ["Top-class elite pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["To place a girder, select it, use [Left] and [Right] to select angle and length, place with [Left Click]"] = "", -- A_Classic_Fairytale:shadow
 --      ["Torn Muscle"] = "", -- A_Classic_Fairytale:journey
 --      [" to save the village."] = "", -- A_Classic_Fairytale:dragon
@@ -945,7 +1047,9 @@
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["TRACK COMPLETED"] = "",
 
+--      ["Trainee"] = "", -- TargetPractice
 --      ["training"] = "", -- portal
+--      ["Training Team"] = "", -- TargetPractice
 --      ["Traitors"] = "", -- A_Classic_Fairytale:epil
 --      ["Tribe"] = "", -- A_Classic_Fairytale:backstab
 --      ["TrophyRace"] = "",
@@ -962,25 +1066,28 @@
 --      ["Under Construction"] = "", -- A_Classic_Fairytale:shadow
 --      ["Unexpected Igor"] = "", -- A_Classic_Fairytale:dragon
 --      ["Unique new weapons"] = "", -- Continental_supplies
---      ["Unit"] = "",
+--      ["Unit"] = "", -- User_Mission_-_Newton_and_the_Hammock
 --      ["Unit 0x0007"] = "", -- A_Classic_Fairytale:family
 --      ["Unit 334a$7%;.*"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
 --      ["Unit 3378"] = "",
---      ["Unit 835"] = "",
+--      ["Unit 835"] = "", -- User_Mission_-_Bamboo_Thicket
 --      ["United We Stand"] = "", -- A_Classic_Fairytale:united
 --      ["Unlimited Attacks"] = "",
 --      ["Unlucky Sods"] = "", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Unstoppable!"] = "",
 --      ["Unsuspecting Louts"] = "", -- User_Mission_-_Rope_Knock_Challenge
 --      ["[Up], [Down] to aim, [Space] to shoot!"] = "", -- A_Classic_Fairytale:first_blood
+--      ["Upper-class elite pilot"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Use it wisely!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Use it with precaution!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["User Challenge"] = "",
 --      ["Use the air-attack weapons and the arrow keys to select structures."] = "", -- Construction_Mode
 --      ["Use the portal gun to get to the next crate, then use the new gun to get to the final destination!|"] = "", -- A_Classic_Fairytale:dragon
+--      ["Use the portal to move fast and far, use it to kill, use it with caution!"] = "", -- portal
 --      ["Use the rope to get on the head of the mole, young one!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Use the rope to knock your enemies to their doom."] = "", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Use your ready time to think."] = "", -- Frenzy
+--      ["Use your rope to collect all crates as fast as possible."] = "", -- SpeedShoppa
 --      ["Use your rope to get from start to finish as fast as you can!"] = "",
 --      ["Utility Crate Placement Mode"] = "", -- Construction_Mode
 --      ["Vampirism"] = "", -- Construction_Mode
@@ -988,6 +1095,7 @@
 --      ["Vegan Jack"] = "", -- A_Classic_Fairytale:enemy
 --      ["Victory!"] = "", -- Basic_Training_-_Rope
 --      ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
+--      ["voldemort"] = "", -- portal
 --      ["Violence is not the answer to your problems!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Walls Left"] = "", -- WxW
 --      ["Walls Required"] = "", -- WxW
@@ -1067,6 +1175,7 @@
 --      ["Why do you want to take over our island?"] = "", -- A_Classic_Fairytale:enemy
 --      ["Why me?!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Why would they do this?"] = "", -- A_Classic_Fairytale:backstab
+--      ["Will be useful if I need a new plateform or if I want to rise...."] = "", -- portal
 --      ["- Will Get 1-3 random weapons"] = "", -- Continental_supplies
 --      ["- Will give you an airstrike every fifth turn."] = "", -- Continental_supplies
 --      ["- Will give you a parachute every second turn."] = "", -- Continental_supplies
@@ -1100,21 +1209,43 @@
 --      ["You'd almost swear the water was rising!"] = "",
 --      ["You'd better watch your steps..."] = "", -- A_Classic_Fairytale:journey
 --      ["You did not make it in time, try again!"] = "", -- Basic_Training_-_Rope
+--      ["You had %.2fs remaining on the clock (+%d points)."] = "", -- Basic_Training_-_Sniper_Rifle
+--      ["You had %.1fs remaining on the clock (+%d points)."] = "", -- TargetPractice
 --      ["You have 7 turns until the next wave arrives.|Make sure the arriving cannibals are greeted appropriately!|If the hog dies, the cause is lost.|Hint: you might want to use some mines..."] = "", -- A_Classic_Fairytale:backstab
 --      ["You have "] = "", -- A_Classic_Fairytale:dragon
 --      ["You have been giving us out to the enemy, haven't you!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You have been respawned, at your last checkpoint!"] = "", -- Basic_Training_-_Rope
 --      ["You have been respawned, be more carefull next time!"] = "", -- Basic_Training_-_Rope
 --      ["You have chosen the perfect moment to leave."] = "", -- A_Classic_Fairytale:united
+--      ["You have collected %d out of %d crate(s)."] = "", -- SpeedShoppa
+--      ["You have destroyed %d of %d targets."] = "", -- Basic_Training_-_Bazooka
+--      ["You have destroyed %d of %d targets (+%d points)."] = "", -- Basic_Training_-_Sniper_Rifle
+--      ["You have dropped %d missiles."] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["You have failed to complete your task, young one!"] = "", -- A_Classic_Fairytale:journey
 --      ["You have failed to save the tribe!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You have finally figured it out!"] = "", -- A_Classic_Fairytale:enemy
+--      ["You have finished the bazooka training!"] = "", -- Basic_Training_-_Bazooka
+--      ["You have finished the challenge!"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["You have finished the challenge in %.3f s."] = "", -- SpeedShoppa
+--      ["You have finished the target practice!"] = "", -- TargetPractice
+--      ["You have gained an achievement: %s"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["You have kidnapped our whole tribe!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You have killed an innocent hedgehog!"] = "", -- A_Classic_Fairytale:backstab
+--      ["You have launched %d bazookas."] = "", -- Basic_Training_-_Bazooka
+--      ["You have launched %d homing bees."] = "", -- Target_Practice_-_Homing_Bee
+--      ["You have made %d shots."] = "", -- Basic_Training_-_Sniper_Rifle
+--      ["You haven't rescued anyone."] = "", -- User_Mission_-_That_Sinking_Feeling
+--      ["You have obtained an achievement: Lively Lifeguard"] = "", -- User_Mission_-_That_Sinking_Feeling
+--      ["You have perfectly beaten the challenge!"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["You have proven yourself worthy to see our most ancient secret!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["You have proven yourselves worthy!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You have SCORED!!"] = "",
+--      ["You have shot %d times."] = "", -- TargetPractice
+--      ["You have successfully finished the sniper rifle training!"] = "", -- Basic_Training_-_Sniper_Rifle
+--      ["You have thrown %d grenades."] = "", -- Target_Practice_-_Grenade_easy, Target_Practice_-_Grenade_hard
 --      ["You have to destroy 12 targets in 180 seconds"] = "", -- Basic_Training_-_Cluster_Bomb
+--      ["You have used only 1 RC plane. Outstanding!"] = "", -- User_Mission_-_RCPlane_Challenge
+--      ["You have used %d RC planes."] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["You have won the game by proving true cooperative skills!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You just appeared out of thin air!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You just committed suicide..."] = "", -- A_Classic_Fairytale:shadow
@@ -1122,13 +1253,17 @@
 --      ["You know...taking a stroll."] = "", -- A_Classic_Fairytale:backstab
 --      ["You know what? I don't even regret anything!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You'll see what I mean!"] = "", -- A_Classic_Fairytale:enemy
+--      ["You lose!] = "", -- Basic_Training_-_Bazooka
 --      ["You may only attack from a rope!"] = "", -- WxW
 --      ["You may only spawn 5 crates per turn."] = "", -- Construction_Mode
 --      ["You may only use 1 Extra Time per turn."] = "", -- Construction_Mode
 --      ["You meatbags are pretty slow, you know!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You might want to find a way to instantly kill arriving cannibals!"] = "", -- A_Classic_Fairytale:backstab
+--      ["You must survive the flood in order to score."] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["Young one, you are telling us that they can instantly change location without a shaman?"] = "", -- A_Classic_Fairytale:united
 --      ["You probably know what to do next..."] = "", -- A_Classic_Fairytale:first_blood
+--      ["Your accuracy was %.1f%%."] = "", -- Basic_Training_-_Bazooka
+--      ["Your accuracy was %.1f%% (+%d points)."] = "", -- TargetPractice
 --      ["Your deaths will be avenged, cannibals!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Your death will not be in vain, Dense Cloud!"] = "", -- A_Classic_Fairytale:shadow
 --      ["You're...alive!? But we saw you die!"] = "", -- A_Classic_Fairytale:backstab
@@ -1138,9 +1273,12 @@
 --      ["You're pathetic! You are not worthy of my attention..."] = "", -- A_Classic_Fairytale:shadow
 --      ["You're probably wondering why I bought you back..."] = "", -- A_Classic_Fairytale:backstab
 --      ["You're terrorizing the forest...We won't catch anything like this!"] = "", -- A_Classic_Fairytale:shadow
+--      ["Your hedgehog died!"] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["Your hogs must survive!"] = "", -- A_Classic_Fairytale:journey
 --      ["Your movement skills will be evaluated now."] = "", -- A_Classic_Fairytale:first_blood
+--      ["Your rank: %s"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["You saved"] = "",
+--      ["You saved %d of 8 Hapless Hogs."] = "", -- User_Mission_-_That_Sinking_Feeling
 --      ["You've been assaulting us, we have been just defending ourselves!"] = "", -- A_Classic_Fairytale:enemy
 --      ["You've failed. Try again."] = "",
 --      ["You've reached the goal!| |Time: "] = "",
@@ -1149,6 +1287,8 @@
 --      ["You won't believe what happened to me!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Yuck! I bet they'll keep worshipping her even after I save the village!"] = "", -- A_Classic_Fairytale:family
 --      ["Zealandia"] = "", -- Continental_supplies
+--      ["zombi"] = "", -- portal
+--      ["Zook"] = "", -- Target_Practice_-_Bazooka_easy, Target_Practice_-_Bazooka_hard
 --      ["'Zooka Team"] = "",
 --      ["Zork"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
     }
--- a/share/hedgewars/Data/Locale/tips_it.xml	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Locale/tips_it.xml	Mon Nov 09 16:34:32 2015 +0000
@@ -6,52 +6,73 @@
     <tip>Scegli lo stesso colore di un amico per giocare in squadra. Ciascuno controllerà i propri ricci ma la vittoria o la sconfitta saranno comuni.</tip>
     <tip>Alcune armi potrebbero fare pochi danni ma possono essere devastanti se usate al momento giusto. Prova ad esempio ad utilizzare la Desert Eagle per spingere più ricci in acqua.</tip>
     <tip>Se non sai cosa fare e non vuoi sprecare munizioni, salta il turno. Ma non farlo troppe volte perché c'è il Sudden Death!</tip>
+    <tip>Vuoi utilizzare più a lungo la corda? Rilascia la corda a mezz'aria e spara di nuovo. Finché non tocchi il terreno potrai riusare la corda senza sprecare munizioni!</tip>
     <tip>Se vuoi evitare che altri possano impersonarti, utilizzando il tuo nickname, sul server ufficiale, registrati su http://www.hedgewars.org/.</tip>
     <tip>Sei stanco delle partite preimpostate? Prova una missione - le missioni offrono interessanti modalità differenti di partite in base alle tue scelte.</tip>
     <tip>Il gioco salverà sempre l'ultima partita giocata come demo. Seleziona 'Gioco locale' e clicca il bottone 'Demos' nell'angolo in basso a destra per gestirle.</tip>
-    <tip>Hedgewars è un programma Open Source e gratuito che noi creiamo nel nostro tempo libero. Se hai problemi, chiedi nei nostri forum ma, per favore, non aspettarti un supporto 24/7!</tip>
+    <tip>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Se hai problemi, chiedi nei nostri forum oppure visita il nostro canale IRC!</tip>
     <tip>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Se ti piace, aiutaci con una piccola donazione o contribuisci con il tuo lavoro!</tip>
-    <tip>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Condividilo con tutta la famiglia e e con gli amici come più ti piace!</tip>
-    <tip>Di tanto in tanto ci saranno tornei ufficiali. Gli eventi saranno annunciati su http://www.hedgewars.org/ con qualche giorno di anticipo.</tip>
+    <tip>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Condividilo con tutta la famiglia e con gli amici come più ti piace!</tip>
+    <tip>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Incontra gli sviluppatori sul canale <a href="irc://irc.freenode.net/hedgewars">#hedgewars</a>!</tip>
+    <tip>Di tanto in tanto ci saranno tornei ufficiali. Gli eventi saranno annunciati su <a href="http://www.hedgewars.org/">http://www.hedgewars.org/</a> con qualche giorno di anticipo.</tip>
     <tip>Hedgewars è disponibile in molte lingue. Se la traduzione nella tua lingua sembra mancante o non aggiornata, sentiti libero di contattaci!</tip>
-    <tip>Hedgewars può essere usato su molti sistemi operativi differenti come Microsoft Windows - XP, Vista, 7 -, Mac OS X e Linux.</tip>
+    <tip>Hedgewars può essere usato su molti sistemi operativi differenti come Microsoft Windows, Mac OS X e GNU/Linux.</tip>
     <tip>Ricordati che sei sempre in grado di configurare partire personalizzate in locale e online. Non devi sentirti limitato alle opzioni predefinite!</tip>
-    <tip>Durante il gioco dovresti fare una breve pausa almeno ogni ora. In caso di partite più lunghe, sospendi l'attività per almeno 30 minuti al termine del gioco!</tip>
+    <tip>Collega uno o più gamepad prima di iniziare il gioco per poterli assegnare alle tue squadra.</tip>
+    <tip>Durante il gioco dovresti fare una breve pausa almeno ogni ora per evitare la stanchezza da gioco eccessivo.</tip>
     <tip>Se la tua scheda grafica non è in grado di fornire OpenGL con accelerazione hardware, prova ad abilitare la modalità a bassa qualità per migliorare le prestazioni.</tip>
+    <tip>Se la tua scheda grafica non è in grado di fornire OpenGL con accelerazione hardware, prova ad aggiornarne i driver.</tip>
     <tip>Siamo aperti a suggerimenti e consigli costruttivi. Se non ti piace qualcosa o hai una buona idea, comunicacelo!</tip>
     <tip>In particolare quando giochi online sii educato e ricorda che potrebbero esserci dei minorenni che stanno giocando con te o contro di te!</tip>
-    <tip>Le modalità di gioco speciali, come 'Vampirismo' o 'Karma' ti permettono di sviluppare nuove tattiche. Provale in una partita personalizzata!</tip>
+    <tip>Le modalità di gioco speciali, come “Vampirismo” o “Karma” ti permettono di sviluppare nuove tattiche. Provale in una partita personalizzata!</tip>
     <tip>Non dovresti mai installare Hedgewars su computer che non possiedi (scuola, università, lavoro, ecc.). Per favore, chiedi ai responsabili!</tip>
     <tip>Hedgewars può essere perfetto per brevi partite durante le pause. Assicurati solamente di non aver aggiunto troppi ricci o di usare una mappa troppo grande. Ridurre tempo e vita può aiutare allo stesso modo.</tip>
     <tip>Nessun riccio è stato maltrattato durante lo sviluppo di questo gioco.</tip>
-    <tip>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Se qualcuno ti ha venduto il gioco, dovresti chiedere un rimborso!</tip>
-    <tip>Collega uno o più gamepad prima di iniziare il gioco per poterli assegnare alle tue squadra.</tip>
-    <tip>Crea un account su %1 per evitare che altri possano usare il tuo nickname preferito mentre giochi sul server ufficiale.</tip>
-    <tip>Se la tua scheda grafica non è in grado di fornire OpenGL con accelerazione hardware, prova ad aggiornarne i driver.</tip>
-    <tip>Ci sono tre salti disponibili. Premi [salto in alto] due volte per eseguire un salto in alto all'indietro.</tip>
+    <tip>Ci sono tre tipi di salto disponibili. Premi [salto in alto] due volte per eseguire un salto in alto all'indietro.</tip>
     <tip>Paura di cadere da un dirupo? Premi [mirino di precisione] per girare a [sinistra] o a [destra] senza muoverti.</tip>
     <tip>Alcune armi richiedono strategie particolari o semplicemente molto allenamento, quindi non arrenderti nell'utilizzo di un'arma specifica se manchi il nemico una volta.</tip>
     <tip>Molte armi non funzionano quando toccano l'acqua. L'Ape a Ricerca così come la Torta sono delle eccezioni.</tip>
     <tip>Il vecchio Limburger causa solo una piccola esplosione. Tuttavia il vento influisce sulla nuvola puzzolente e può avvelenare più ricci contemporaneamente.</tip>
-    <tip>L'Ultima Sonata è l'attacco aereo più dannoso. Perderai il tuo riccio, eseguendolo, quindi ci sono anche delle grosse controindicazioni.</tip>
-    <tip>Le Mine Adesive sono lo strumento perfetto per creare piccole reazioni a catena e spingere i ricci nemici in situazioni difficili... o in acqua.</tip>
+    <tip>L'Ultima Sonata è l'attacco aereo più dannoso. Perderai il tuo riccio, eseguendolo, quindi c'è anche una grossa controindicazione.</tip>
+    <tip>L'Ape a Ricerca può essere difficile da usare. Il suo raggio di curvatura dipende dalla sua velocità, quindi cerca di non usarla a piena potenza.</tip>
+    <tip>Le Mine Adesive sono lo strumento perfetto per creare piccole reazioni a catena e spingere i ricci nemici in situazioni difficili … o in acqua.</tip>
     <tip>Il Martello è più efficate se usato su ponti o travi. Colpire i ricci li farà sprofondare attraverso il terreno.</tip>
     <tip>Se sei bloccato dietro un riccio nemico, usa il Martello per liberarti senza essere danneggiato da un'esplosione.</tip>
     <tip>La distanza massima di cammino della Torta dipende dal terreno che deve attraversare. Usa [attacca] per farla esplodere prima.</tip>
     <tip>Il Lanciafiamme è un'arma che può essere usata anche per scavare gallerie.</tip>
+    <tip>Usa la Bomba Molotov o il Lanciafiamme per impedire temporaneamente ai ricci di attraversare terreni pianeggianti, tunnel o collinette.</tip>
     <tip>Vuoi sapere chi c'è dietro il gioco? Clicca sul logo Hedgewars nel menu principale per vederne gli autori e sviluppatori.</tip>
-    <tip>Ti piace Hedgewars? Diventa fan su %1 o seguici su %2!</tip>
-    <tip>Sentiti libero di disegnare tombe, cappelli, bandiere o anche mappe e temi personalizzati - lo puoi fare con TheGIMP! Ma nota che dovrai condividerli in qualche modo per usarli online.</tip>
-    <tip>Vuoi proprio un cappello specifico? Facci una piccola donazione e riceverai un cappello esclusivo a tua scelta!</tip>
+    <tip>Ti piace Hedgewars? Diventa fan su <a href="http://www.facebook.com/Hedgewars">Facebook</a> oppure seguici su <a href="http://twitter.com/hedgewars">Twitter</a></tip>
+    <tip>Sentiti libero di disegnare tombe, cappelli, bandiere o anche mappe e temi personalizzati! Ma nota che dovrai condividerli in qualche modo per usarli online.</tip>
     <tip>Mantieni aggiornati i driver della tua scheda video, per evitare problemi durante il gioco.</tip>
-    <tip>Puoi trovare i file di configurazione del gioco in "Documenti\Hedgewars". Crea delle copie di sicurezza o prendi i file con te, ma non modificarli manualmente!</tip>
-    <tip>Puoi associare i file relativi a Hedgewars (partite salvate e registrazioni demo) al gioco, in modo da lanciarli direttamente dal tuo gestore file o browser Internet.</tip>
-    <tip>Vuoi utilizzare più a lungo la corda? Rilascia la corda a mezz'aria e spara di nuovo. Finché non tocchi il terreno potrai riusare la corda senza sprecare munizioni!</tip>
-    <tip>Puoi trovare i file di configurazione del gioco in "Library/Application Support/Hedgewars" nella tua cartella utente. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</tip>
-    <tip>Puoi trovare i file di configurazione del gioco in ".hedgewars" nella tua cartella home. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</tip>
-    <tip>Usa la Bomba Molotov o il Lanciafiamme per impedire temporaneamente ai ricci di attraversari terreni pianeggianti, tunnel o collinette.</tip>
-    <tip>L'Ape a Ricerca può essere difficile da usare. Il suo raggio di curvatura dipende dalla sua velocità, quindi cerca di non usarla a piena potenza.</tip>
+    <tip>Testa o croce? Scrivi “/rnd” nella schermata LOBBY e lo scoprirai. Funziona anche “/rnd carta sasso forbice”!</tip>
+    <tip>Puoi associare i file relativi a Hedgewars (partite salvate e registrazioni demo) al gioco, in modo da lanciarli direttamente dal tuo gestore file o browser web.</tip>
+    <tip>Le mine Dud non sono innocue: Anche se il loro timer è rotto, possono ancora esplodere se vengono abusate troppo!</tip>
+    <tip>L'amore è caldo! Utilizza Seduzione per scongelare ricci congelati.</Tip>
+    <tip>Il fumo proveniente da un barile è un indicatore che è basso di “salute” e che anche piccole quantità di danno potrebbe farlo scoppiare.</tip>
+    <tip>I barili iniziano con 60 salute e subiscono danni come ricci, quindi hanno bisogno di un po' di danno per esplodere</tip>
+    <tip>Hai bisogno di più forza di rimbalzo? Modifica la forza di rimbalzo di granate, bombe a grappolo, vecchi limburgers e mine tenendo premuto [mirino di precisione] e premendo uno dei tasti del timer.</tip>
+    <tip>Hai dimenticato gli obiettivi o modificatori di gioco mentre stai giocando? Premi il pulsante pausa o esci per rivederli di nuovo!</tip>
+    <tip>Puoi prendere a pugni, frustare, e martellare anche altre cose e non solo ricci. Colpiscili tutti!</tip>
+    <tip> Se non menzionato altrimenti, le mine normalmente esplodono dopo 3 secondi.</tip>
+    <tip>In modalità Re, il tuo re partirà più sano, più forte e più resistente ai danni e colpi rispetto ai servi.</tip>
+    <tip>In modalità Re, il re si danneggerà in ogni turno quando non ci saranno più servi nella sua squadra.</tip>
+    <tip>La frusta colpisce anche i ricci e gli oggetti anche dietro una parete sottile.</tip>
+    <tip>La mannaia aumenta il danno con l'aumentare della velocità.</tip>
+    <tip>Puoi far cadere torte dalle scogliere, ma per farlo bisogna stare molto vicino al bordo, quindi stai attento.</tip>
+    <tip>Usa la tua corda per allontanare altri ricci ad esempio facendola scorrere sul terreno. Questa tecnica è nota come “rope-knocking”.</tip>
+    <tip>Non fermarti su un pendio ghiacciato, o scivolerai via. In alternativa, è possibile tenere premuto [mirino di precisione].</tip>
+    <tip>Nelle terre innevate Natalizie, i mucchi di neve aumentano nel corso del tempo, a meno che la terra non sia indistruttibile.</tip>
+    <tip>Fai attenzione nelle terre innevate e Natalizie, perché le travi sono fatte di ghiaccio scivoloso.</tip>
+    <tip>Il tempo di fuga dipende dall'arma che hai usato. Fai attenzione, alcune armi non hanno un tempo di fuga e finiscono subito il tuo turno!</tip>
     <windows-only>
-        <tip>La versione Windows di Hedgewars supporta Xfire. Assicurati di aggiungere Hedgewars alla sua lista giochi, così i tuoi amici potranno vederti giocare.</tip>
+        <tip>Questa versione di Hedgewars supporta <a href="http://www.xfire.com">Xfire</a>. Assicurati di aggiungere Hedgewars alla sua lista giochi, cosi i tuoi amici potranno vederti giocare.</tip>
+        <tip>Puoi trovare i file di configurazione di Hedgewars in “My Documents\Hedgewars”. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</tip>
     </windows-only>
+    <mac-only>
+        <tip>Puoi trovare i file di configurazione di Hedgewars in “Library/Application Support/Hedgewars” nella tua cartella utente. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</tip>
+    </mac-only>
+    <linux-only>
+        <tip>Puoi trovare i file di configurazione di Hedgewars in “.hedgewars” nella tua cartella utente. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</tip>
+    </linux-only>
 </tips>
--- a/share/hedgewars/Data/Maps/Basketball/map.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Maps/Basketball/map.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -54,3 +54,7 @@
 		end
 	end
 end
+
+function onNewTurn()
+    SetWeapon(amBaseballBat)
+end
--- a/share/hedgewars/Data/Maps/Control/map.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Maps/Control/map.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -369,7 +369,7 @@
 		--AddCaption(zz) -- number of times it took to work
 	end
 
-	ShowMission("CONTROL", 
+	ShowMission(loc("CONTROL"), 
 	"", 
 	loc("Control pillars to score points.") .. "|" .. 
 	loc("Goal") .. ": " .. pointLimit .. " " .. loc("points"), 0, 0)
@@ -418,7 +418,7 @@
 				end
 			end
 			
-			ShowMission("CONTROL", 
+			ShowMission(loc("CONTROL"), 
 			loc("Team Scores") .. ":", 
 			totalComment, 0, 1600)
 	
--- a/share/hedgewars/Data/Maps/Knockball/map.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Maps/Knockball/map.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -68,3 +68,7 @@
 		end
 	end
 end
+
+function onNewTurn()
+    SetWeapon(amBaseballBat)
+end
--- a/share/hedgewars/Data/Maps/TrophyRace/map.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -33,6 +33,7 @@
 local worsthog = nil
 
 local besthog = nil
+local besthogname = ''
 
 -- best time
 local besttime = maxtime + 1
@@ -142,6 +143,7 @@
             if ttime < besttime then
                 besttime = ttime
                 besthog = CurrentHedgehog
+                besthogname = GetHogName(besthog)
                 hscore = hscore .. loc("NEW fastest lap: ")
             else
                 hscore = hscore .. loc("Fastest lap: ")
@@ -150,7 +152,7 @@
                 worsttime = ttime
                 worsthog = CurrentHedgehog
             end
-            hscore = hscore .. GetHogName(besthog) .. " - " .. (besttime / 1000) .. " s | |" .. loc("Best laps per team: ")
+            hscore = hscore .. besthogname .. " - " .. (besttime / 1000) .. " s | |" .. loc("Best laps per team: ")
             
             if clan == ClansCount -1 then
                 -- Time for elimination - worst hog is out and the worst hog vars are reset.
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -141,7 +141,7 @@
 		game_lost = true
 		time_goal = 1
 		AddCaption(loc("You lose!"), 0xFFFFFFFF, capgrpGameState)
-		ShowMission(loc("Bazooka Training"), loc("Aiming practice"), loc("Oh no! You failed! Just try again."), -amSkip, 0)
+		ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Oh no! You failed! Just try again."), -amSkip, 0)
 	end
 
 	-- If the goal is reached or we've lost ...
@@ -162,11 +162,11 @@
 				SendStat(siCustomAchievement, string.format(loc("Your accuracy was %.1f%%."), (score/shots)*100))
 			end
 			if score == score_goal then
-				SendStat(siGameResult, "You have finished the bazooka training!")
+				SendStat(siGameResult, loc("You have finished the bazooka training!"))
 				SendStat(siCustomAchievement, string.format(loc("%.1f seconds were remaining."), (time_goal/1000), math.ceil(time_goal/12)))
 			end
 			if game_lost then
-				SendStat(siGameResult, "You lose!")
+				SendStat(siGameResult, loc("You lose!"))
 			end
 
 			-- Finally we end the game ...
@@ -224,7 +224,7 @@
 		if not game_lost then
 			game_lost = true
 			AddCaption(loc("You lose!", 0xFFFFFFFF, capgrpGameState))
-			ShowMission(loc("Bazooka Training") , loc("Aiming practice"), loc("Oh no! You failed! Just try again."), -amSkip, 0)
+			ShowMission(loc("Bazooka Training") , loc("Aiming Practice"), loc("Oh no! You failed! Just try again."), -amSkip, 0)
 
 			time_goal = 1
 		end
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -134,9 +134,9 @@
 		if end_timer == 0 then
 			-- Override the 'Draw' message with the appropriate message.
 			if game_lost then
-				AddCaption("Mission lost!", 0xffba00ff,capgrpGameState)
+				AddCaption(loc("Mission lost!"), 0xffba00ff,capgrpGameState)
 			else
-				AddCaption("Mission won!", 0xffba00ff,capgrpGameState)
+				AddCaption(loc("Mission won!"), 0xffba00ff,capgrpGameState)
 			end
 			-- Remove the team to end the game. Only do this once.
 			if team_death == false then
--- a/share/hedgewars/Data/Missions/Training/Challenge_-_Speed_Shoppa_-_ShoppaKing.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Challenge_-_Speed_Shoppa_-_ShoppaKing.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -1,7 +1,7 @@
 HedgewarsScriptLoad("/Scripts/SpeedShoppa.lua")
 
 local params = {}
-params.missionTitle = loc("The Customor is King")
+params.missionTitle = loc("The Customer is King")
 params.teamName = loc("Shoppa Union")
 params.hogName = loc("King Customer")
 params.teamFlag = "cm_shoppa"
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Bazooka_easy.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Bazooka_easy.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amBazooka,
 	gearType = gtShell,
-	missionTitle = "Target Practice: Bazooka (easy)",
+	missionTitle = loc("Target Practice: Bazooka (easy)"),
 	wind = 50,
 	solidLand = true,
 	map = "Lonely_Island",
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Bazooka_hard.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Bazooka_hard.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amBazooka,
 	gearType = gtShell,
-	missionTitle = "Target Practice: Bazooka (hard)",
+	missionTitle = loc("Target Practice: Bazooka (hard)"),
 	wind = 20,
 	solidLand = true,
 	artillery = true,
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Cluster_Bomb.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Cluster_Bomb.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amClusterBomb,
 	gearType = gtClusterBomb,
-	missionTitle = "Cluster Bomb Training",
+	missionTitle = loc("Cluster Bomb Training"),
 	solidLand = false,
 	map = "Trash",
 	theme = "Golf",
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Grenade_easy.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Grenade_easy.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amGrenade,
 	gearType = gtGrenade,
-	missionTitle = "Target Practice: Grenade (easy)",
+	missionTitle = loc("Target Practice: Grenade (easy)"),
 	solidLand = true,
 	artillery = true,
 	map = "SB_Crystal",
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Grenade_hard.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Grenade_hard.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amGrenade,
 	gearType = gtGrenade,
-	missionTitle = "Target Practice: Grenade (hard)",
+	missionTitle = loc("Target Practice: Grenade (hard)"),
 	solidLand = true,
 	artillery = true,
 	map = "SB_Crystal",
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Homing_Bee.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Homing_Bee.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amBee,
 	gearType = gtBee,
-	missionTitle = "Target Practice: Homing Bee",
+	missionTitle = loc("Target Practice: Homing Bee"),
 	solidLand = true,
 	map = "Hedgewars",
 	theme = "Nature",
--- a/share/hedgewars/Data/Missions/Training/Target_Practice_-_Shotgun.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/Target_Practice_-_Shotgun.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -3,7 +3,7 @@
 local params = {
 	ammoType = amShotgun,
 	gearType = gtShotgunShot,
-	missionTitle = "Target Practice: Shotgun",
+	missionTitle = loc("Target Practice: Shotgun"),
 	solidLand = false,
 	map = "SB_Haunty",
 	theme = "Halloween",
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Bamboo_Thicket.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Bamboo_Thicket.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -21,7 +21,7 @@
 	SuddenDeathTurns = 99999
 
 	AddTeam(loc("Pathetic Resistance"), 14483456, "Simple", "Island", "Default")
-	player = AddHog("Ikeda", 0, 10, "StrawHat")
+	player = AddHog(loc("Ikeda"), 0, 10, "StrawHat")
 			
 	AddTeam(loc("Cybernetic Empire"), 	1175851, "Simple", "Island", "Default")
 	enemy = AddHog(loc("Unit 835"), 1, 10, "cyborg1")
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Newton_and_the_Hammock.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Newton_and_the_Hammock.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -22,7 +22,7 @@
 	Theme = "Nature"
 
 	AddTeam(loc("Pathetic Resistance"), 14483456, "Simple", "Island", "Default")
-	player = AddHog("Ikeda", 0, 48, "StrawHat")
+	player = AddHog(loc("Ikeda"), 0, 48, "StrawHat")
 			
 	AddTeam(loc("Cybernetic Empire"), 	1175851, "Simple", "Island", "Default")
 	enemy = AddHog(loc("Unit") .. " 811", 1, 100, "cyborg1")
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Nobody_Laugh.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Nobody_Laugh.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -27,21 +27,21 @@
 	SetGearPosition(hhs[2], 1332, 451)
 
 	AddTeam(loc("Clowns"), 1175851, "Duck2", "Tank", "Mobster", "cm_spider")
-	hhs[3] = AddHog("Poison", 5, 100, "WhySoSerious")
+	hhs[3] = AddHog(loc("Poison"), 5, 100, "WhySoSerious")
 	SetGearPosition(hhs[3], 1133, 446)
-	hhs[4] = AddHog("Bobo", 5, 100, "clown")
+	hhs[4] = AddHog(loc("Bobo"), 5, 100, "clown")
 	SetGearPosition(hhs[4], 1215, 553)
-	hhs[5] = AddHog("Copper", 5, 10, "clown-copper")
+	hhs[5] = AddHog(loc("Copper"), 5, 10, "clown-copper")
 	SetGearPosition(hhs[5], 414, 376)
-	hhs[6] = AddHog("Derp", 5, 100, "clown-crossed")
+	hhs[6] = AddHog(loc("Derp"), 5, 100, "clown-crossed")
 	SetGearPosition(hhs[6], 1590, 886)
-	hhs[7] = AddHog("Eckles", 5, 100, "clown-copper")
+	hhs[7] = AddHog(loc("Eckles"), 5, 100, "clown-copper")
 	SetGearPosition(hhs[7], 772, 754)
-	hhs[8] = AddHog("Frank", 5, 50, "clown-copper")
+	hhs[8] = AddHog(loc("Frank"), 5, 50, "clown-copper")
 	SetGearPosition(hhs[8], 1688, 714)
-	hhs[9] = AddHog("Harry", 5, 50, "clown-copper")
+	hhs[9] = AddHog(loc("Harry"), 5, 50, "clown-copper")
 	SetGearPosition(hhs[9], 1932, 837)
-	hhs[10] = AddHog("Igmund", 5, 50, "WhySoSerious")
+	hhs[10] = AddHog(loc("Igmund"), 5, 50, "WhySoSerious")
 	SetGearPosition(hhs[10], 1601, 733)
 
 end
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_That_Sinking_Feeling.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_That_Sinking_Feeling.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -216,10 +216,10 @@
 
 			if (waterPix >= 1615) and (GameOver == false) then
 				GameOver = true
-				AddCaption("The flood has stopped! Challenge over.")
+				AddCaption(loc("The flood has stopped! Challenge over."))
 				SendStat(siGameResult, loc("Challenge completed!"))
 				SendStat(siPlayerKills, tostring(hhCount), loc("Nameless Heroes"))
-				SendStat(siPointType, "rescues")
+				SendStat(siPointType, loc("rescues"))
 
 				-- Do not count drowning hedgehogs
 				local hhLeft = hhCount
@@ -283,7 +283,7 @@
 			SendStat(siCustomAchievement, loc("You haven't rescued anyone."))
 		end
 		SendStat(siPlayerKills, "0", loc("Nameless Heroes"))
-		SendStat(siPointType, "points")
+		SendStat(siPointType, loc("points"))
 
 		SendStat(siGameResult, loc("Disqualified!"))
 		GameOver = true
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_The_Great_Escape.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_The_Great_Escape.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -20,7 +20,7 @@
 	player = AddHog(loc("Good Dude"), 0, 80, "NoHat") --NoHat
 
 	AddTeam(loc("Bad Team"), 	1175851, "Simple", "Island", "Default", "Hedgewars")
-	enemy = AddHog("Bad Guy", 1, 40, "NoHat")
+	enemy = AddHog(loc("Bad Guy"), 1, 40, "NoHat")
 
 end
 
--- a/share/hedgewars/Data/Missions/Training/portal.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Missions/Training/portal.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -16,29 +16,29 @@
 	Delay = 10 -- The delay between each round
 	Map = "portal" -- The map to be played
 	Theme = "Hell" -- The theme to be used
-	Goals = "use the portal to move fast and far, use it to kill, use it with caution !"  --the goal ...
+	Goals = loc("Use the portal to move fast and far, use it to kill, use it with caution!")  --the goal ...
 	
 	
 ----AddTeam(teamname, color, grave, fort, voicepack, flag)--
-	AddTeam("Subject", 14483406, "Simple", "Island", "Default", "cm_star")
-	player = AddHog("player", 0, 10, "Terminator_Glasses")
+	AddTeam(loc("Subject"), 14483406, "Simple", "Island", "Default", "cm_star")
+	player = AddHog(loc("player"), 0, 10, "Terminator_Glasses")
 
-	AddTeam("Hell Army", 1170801, "Simple", "Island", "Default", "cm_galaxy")
-	enemy1 = AddHog("Lucifer", 1, 200, "thinkingcap")
-	enemy2 = AddHog("voldemort", 1, 150, "WizardHat")
-	enemy3 = AddHog("zombi", 1, 100, "zombi")
-	enemy4 = AddHog("Predator", 1, 14, "predator")
-	enemy5 = AddHog("oneye", 1, 50, "cyclops")
-	enemy6 = AddHog("razac", 1, 50, "plaguemask")
-	enemy7 = AddHog("C-2", 1, 50, "cyborg1")
-	enemy8 = AddHog("Rider", 1, 50, "scif_SparkssHelmet")
+	AddTeam(loc("Hell Army"), 1170801, "Simple", "Island", "Default", "cm_galaxy")
+	enemy1 = AddHog(loc("Lucifer"), 1, 200, "thinkingcap")
+	enemy2 = AddHog(loc("voldemort"), 1, 150, "WizardHat")
+	enemy3 = AddHog(loc("zombi"), 1, 100, "zombi")
+	enemy4 = AddHog(loc("Predator"), 1, 14, "predator")
+	enemy5 = AddHog(loc("oneye"), 1, 50, "cyclops")
+	enemy6 = AddHog(loc("razac"), 1, 50, "plaguemask")
+	enemy7 = AddHog(loc("C-2"), 1, 50, "cyborg1")
+	enemy8 = AddHog(loc("Rider"), 1, 50, "scif_SparkssHelmet")
 
-	AddTeam("badmad", 1170801, "Simple", "Island", "Default", "cm_jupiter")
-	enemy9 = AddHog("C-1", 1, 50, "cyborg2")
-	enemy10 = AddHog("hiden", 1, 40, "daftpunkguymanuel")
-	enemy11 = AddHog("ronald", 1, 70, "clown")
-	enemy12 = AddHog("phosphatoglucidique", 1, 50, "chef")
-	enemy13 = AddHog("Lestat", 1, 30, "draculakz")
+	AddTeam(loc("badmad"), 1170801, "Simple", "Island", "Default", "cm_jupiter")
+	enemy9 = AddHog(loc("C-1"), 1, 50, "cyborg2")
+	enemy10 = AddHog(loc("hiden"), 1, 40, "daftpunkguymanuel")
+	enemy11 = AddHog(loc("ronald"), 1, 70, "clown")
+	enemy12 = AddHog(loc("phosphatoglucidique"), 1, 50, "chef")
+	enemy13 = AddHog(loc("Lestat"), 1, 30, "draculakz")
 
 	SetGearPosition(player, 350, 1820)
     SetGearPosition(enemy1, 2037, 1313)
@@ -168,7 +168,7 @@
 
 
 	ShowMission (loc("Portal mission"), loc("training"), "", -amPortalGun, 5000)
-	HogSay(player, "I should get myself a portal gun, maybe this crate has one", SAY_THINK)
+	HogSay(player, loc("I should get myself a portal gun, maybe this crate has one"), SAY_THINK)
 	
 
 
@@ -204,11 +204,11 @@
 
 	if gear == portalgun then
 		--AddAmmo(player, amPortalGun, 10000)
-		HogSay(player, "GREAT ! Let's kill all this enemies, using portals", SAY_THINK)
+		HogSay(player, loc("GREAT ! Let's kill all this enemies, using portals"), SAY_THINK)
 	end
 
 	if gear == girder then 
-		HogSay(player, "Will be useful if I need a new plateform or if I want to rise....", SAY_THINK)
+		HogSay(player, loc("Will be useful if I need a new plateform or if I want to rise...."), SAY_THINK)
 	end
 	
 	if gear == parachute then
--- a/share/hedgewars/Data/Scripts/Multiplayer/Construction_Mode.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Construction_Mode.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -1517,7 +1517,7 @@
 				end
 
 
-				AddCaption(cat[cIndex],0xffba00ff,capgrpMessage)
+				AddCaption(loc(cat[cIndex]),0xffba00ff,capgrpMessage)
 				AddCaption(pMode[pIndex],0xffba00ff,capgrpMessage2)
 				wallsVisible = true
 			else
@@ -1791,7 +1791,7 @@
 
 				loc("Generator") .. ": " .. loc("Generates power.")  .. "|" ..
 				loc("Respawner") .. ": " .. loc("Resurrects dead hedgehogs.")  .. "|" ..
-				loc("Teleporation Node") .. ": " .. loc("Allows free teleportation between other nodes.")  .. "|" ..
+				loc("Teleportation Node") .. ": " .. loc("Allows free teleportation between other nodes.")  .. "|" ..
 				loc("Construction Station") .. ": " .. loc("Allows placement of girders, rubber-bands, mines, sticky mines and barrels.")  .. "|" ..
 				loc("Support Station") .. ": " .. loc("Allows the placement of weapons, utiliites, and health crates.")  .. "|" ..
 
--- a/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -302,7 +302,7 @@
         if teams[i]~= nil then
 
             local curr_score = getTeamValue(teams[i], "Score")
-            showScore = showScore .. teams[i] .. ": " .. curr_score .. " (deaths: " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
+            showScore = showScore .. teams[i] .. ": " .. curr_score .. " (" .. loc("deaths") .. ": " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
 
         end
     end
@@ -329,7 +329,7 @@
 
             runOnHogsInTeam(removeFeeder, teams[i])
 
-            showScore = showScore .. teams[i] ..": " .. curr_score .. " (deaths: " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
+            showScore = showScore .. teams[i] ..": " .. curr_score .. " (" .. loc("deaths") .. ": " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
 
             if curr_score >= winScore then
                 gameOver = true
@@ -421,7 +421,7 @@
 
 function setFeeder(gear)
     if gear~= mutant and gear~= nil then
-        SetHogName(gear,"BOTTOM FEEDER")
+        SetHogName(gear, loc("BOTTOM FEEDER"))
         SetHogHat(gear, 'poke_slowpoke')
         setGearValue(gear,"Feeder", true)
     end
@@ -430,7 +430,7 @@
 function setMutantStuff(gear)
     mutant = gear
 
-    SetHogName(gear,"MUTANT")
+    SetHogName(gear, loc("MUTANT"))
     SetHogHat(gear,'WhySoSerious')
     SetHealth(gear, ( mutant_base_health + numhhs*25) )
     SetEffect(gear, hePoisoned, 1)
--- a/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -127,48 +127,48 @@
 
 			if z == 1 then
 
-					SetHogName(hhs[i],"Soldier")
+					SetHogName(hhs[i],loc("Soldier"))
 					SetHogHat(hhs[i], "sf_vega")
 					SetHealth(hhs[i],200)
 
 			elseif z == 2 then
 
 					SetHogHat(hhs[i], "Glasses")
-					SetHogName(hhs[i],"Engineer")
+					SetHogName(hhs[i],loc("Engineer"))
 
 			elseif z == 3 then
 
-					SetHogName(hhs[i],"Ninja")
+					SetHogName(hhs[i],loc("Ninja"))
 					SetHogHat(hhs[i], "NinjaFull")
 					SetHealth(hhs[i],80)
 
 			elseif z == 4 then
 
-					SetHogName(hhs[i],"Demo")
+					SetHogName(hhs[i],loc("Demo"))
 					SetHogHat(hhs[i], "Skull")
 					SetHealth(hhs[i],200)
 
 			elseif z == 5 then
 
-					SetHogName(hhs[i],"Sniper")
+					SetHogName(hhs[i],loc("Sniper"))
 					SetHogHat(hhs[i], "Sniper")
 					SetHealth(hhs[i],120)
 
 			elseif z == 6 then
 
-					SetHogName(hhs[i],"Saint")
+					SetHogName(hhs[i],loc("Saint"))
 					SetHogHat(hhs[i], "angel")
 					SetHealth(hhs[i],300)
 
 			elseif z == 7 then
 
-					SetHogName(hhs[i],"Pyro")
+					SetHogName(hhs[i],loc("Pyro"))
 					SetHogHat(hhs[i], "Gasmask")
 					SetHealth(hhs[i],150)
 
 			elseif z == 8 then
 
-					SetHogName(hhs[i],"Loon")
+					SetHogName(hhs[i],loc("Loon"))
 					SetHogHat(hhs[i], "clown")
 					SetHealth(hhs[i],100)
 
--- a/share/hedgewars/Data/Scripts/Multiplayer/WxW.lua	Thu Oct 01 12:17:42 2015 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/WxW.lua	Mon Nov 09 16:34:32 2015 +0000
@@ -158,9 +158,9 @@
 
 function BoolToCfgTxt(p)
 	if p == false then
-		return("Disabled")
+		return loc("Disabled")
 	else
-		return("Enabled")
+		return loc("Enabled")
 	end
 end
 
--- a/tools/CMakeLists.txt	Thu Oct 01 12:17:42 2015 +0200
+++ b/tools/CMakeLists.txt	Mon Nov 09 16:34:32 2015 +0000
@@ -58,7 +58,7 @@
 
     #create the .dmg for deployment
     #first make sure .app exists, then remove any old .dmg with same name, finally run the script
-    add_custom_target(dmg COMMAND "if [ ! -a Hedgewars.app ]; then make install\; fi;"
+    add_custom_target(dmg COMMAND make install
                           COMMAND rm -f ${CMAKE_BINARY_DIR}/Hedgewars-${HEDGEWARS_VERSION}.dmg
                           COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create-dmg.sh
                                   --volname "Hedgewars ${HEDGEWARS_VERSION}"